• 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

Aruba Cloud - Virtual Private Server VPS
0 głosów
917 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 (61,440 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 Pabiak Gaduła (4,490 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 Pabiak Gaduła (4,490 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ź 277 wizyt
0 głosów
0 odpowiedzi 157 wizyt
0 głosów
1 odpowiedź 259 wizyt
pytanie zadane 15 kwietnia 2019 w C i C++ przez niezalogowany

93,281 zapytań

142,284 odpowiedzi

322,304 komentarzy

62,604 pasjonatów

Motyw:

Akcja Pajacyk

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

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj

Wprowadzenie do ITsec, tom 1 Wprowadzenie do ITsec, tom 2

Można już zamawiać dwa tomy książek o ITsec pt. "Wprowadzenie do bezpieczeństwa IT" - mamy dla Was kod: pasja (użyjcie go w koszyku), dzięki któremu uzyskamy aż 15% zniżki! Dziękujemy ekipie Sekuraka za fajny rabat dla naszej Społeczności!

...