• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Qt - Wczytywanie konkretnego znaku z wyswietlacza

0 głosów
83 wizyt
pytanie zadane 14 sierpnia 2018 w C i C++ przez VegaOrionis Początkujący (350 p.)

Witam chciałbym pobrać konkretny znak z wyświetlacza. Załóżmy ze na wyświetlaczu wyświetla się jeden znak chce go pobrać i przypisać do konkretnego miejsca w moim QString'u. Ale nie wiem jak to zrobić.

// Wyświetlacz :  X

QString tekst= "ABC"

//tutaj pobrałem cały text a ja chce tylko jeden znak 
QString[1] = ui->Screen->text();  //    (wiem  że źle napisałem ale chciałem przedstawic o co mi chodzi)

//  tekst= AXC  - taki chce wynik koncowy


 

2 odpowiedzi

+1 głos
odpowiedź 15 sierpnia 2018 przez Bondrusiek Maniak (53,110 p.)
wybrane 17 sierpnia 2018 przez VegaOrionis
 
Najlepsza

Witam,

możesz użyć takiej konstrukcji:

// Wyświetlacz :  X
 
QString tekst= "ABC"
 
//tutaj pobrałem cały text a ja chce tylko jeden znak 

QChar character =  ui->Screen->text().at(0);

tekst.replace(1,1,character);

 

 

 

komentarz 17 sierpnia 2018 przez VegaOrionis Początkujący (350 p.)
Super! dzięki!
0 głosów
odpowiedź 14 sierpnia 2018 przez Extazy Gaduła (4,390 p.)
#include <QCoreApplication>
#include <QDebug>

int main(int argc, char *argv[])
{
    QCoreApplication a(argc, argv);

    QString tekst = "ABC";
    QString zmien ="XYZ";
    zmien.remove(1,2); //remove(x,y) x- od jakiego znaku zacząc, y - ile znaków usunąć
    tekst.replace(1,1,zmien);
    qDebug()<<tekst;


    return a.exec();
}

Oczywiście zmienną "zmien" możesz pobrać z jakiegoś editboxa, a potem go odpowiednio przyciąć używając funkcji remove(). Qt ma bardzo dobrą dokumentację, znajdziesz tam sporo przydatnych funkcji nie tylko do operacji na tekscie.

http://doc.qt.io/qt-5/qstring.html#replace

http://doc.qt.io/qt-5/qstring.html#insert

http://doc.qt.io/qt-5/qstring.html#remove

Do usuwania ostatniego znaku możesz użyć funkcji chop().

tekst.chop(); //W nawiasie liczba znaków do usunięcia

 

 

komentarz 14 sierpnia 2018 przez VegaOrionis Początkujący (350 p.)
Chodziło mi czy istnieje jakaś gotowa funkcja która POBIERA bezpośrednio konkretny znak z wyświetlacza -,-

no bo inaczej to sam mogę stworzyć drugiego Qstring'a do niego pobrać cały ciąg z wyświetlacza a potem wybrać konkretny znak i przypisać do drugiego.
QString x1="abcd";
QString x2="aaa"    // po pobraniu z wyświetlacza ma taką wartość

x2[1] = x1[1];
komentarz 14 sierpnia 2018 przez Extazy Gaduła (4,390 p.)

Z twojego pytania nie wynika, że chciałeś gotową funkcje. Przejrzyj dokumentacje to może coś znajdziesz, a jeżeli nie chcesz to zawsze możesz napisać własna funkcje. Sposób jej działania opisałeś w swoim komentarzu.wink

komentarz 15 sierpnia 2018 przez VegaOrionis Początkujący (350 p.)
Jasno napisałem że chce pobrać konkretny znak z wyświetlacza a  nie pobierać całego ciągu który się wyświetla i chce bezpośrednio go przypisać do mojego QString'a bez tworzenia dodatkowego QString'a . Chciałem wiedzieć czy istnieje jakiś sposób bo jak istnieje pobieranie całego ciągu to chciałem wiedzieć czy idzie wybrany 1 znak pobrać.

Podobne pytania

0 głosów
1 odpowiedź 65 wizyt
0 głosów
1 odpowiedź 53 wizyt
pytanie zadane 15 kwietnia w C i C++ przez niezalogowany
0 głosów
1 odpowiedź 148 wizyt
pytanie zadane 11 listopada 2017 w C i C++ przez Eliro Stary wyjadacz (11,130 p.)
Porady nie od parady
Zadając pytanie postaraj się o poprawną pisownię i czytelne formatowanie tekstu.Kompozycja

67,116 zapytań

114,063 odpowiedzi

241,764 komentarzy

47,028 pasjonatów

Przeglądających: 191
Pasjonatów: 11 Gości: 180

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto dwie polecane książki warte uwagi. Pełną listę znajdziesz tutaj.

...