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

line edit Qt

Object Storage Arubacloud
0 głosów
216 wizyt
pytanie zadane 15 kwietnia 2019 w C i C++ przez niezalogowany
edycja 15 kwietnia 2019
Chcę zmusić LineEdit żeby po kliknięciu(jednokrotnym) na nią, zaznaczyła (lub przejściu tabulatorem) cały tekst, i jak będę coś wprowadzał to żeby mi wyczyściło poprzedni tekst, jak clear() przy dodatkowym przycisku.

returnPressed() potrzebna jest mi do czegoś innego.

Albo inna kontrola np button by się nadał, ale nie wiem jak pobrać z niego tekst (np przy wciśniętym przycisku pojawia się test do edycji i zapisuje w stringu).

Lub ewentualnie nałożyć przycisk na lineedit i razem je połączyć by nie zmieniały położenia przy zmianie okna.

Lub tą skasować a na jej miejsce utworzyć nowa.

1 odpowiedź

0 głosów
odpowiedź 15 kwietnia 2019 przez Bondrusiek Maniak (61,410 p.)

Witam,

aby zaznaczyć cały tekst dla lineedit możesz wykorzystać metodę(slot)

void QLineEdit::selectAll()

Co do tego kliknięcia to możesz to zrobić na dwa sposoby. Przeładować

void QWidget::mouseReleaseEvent(QMouseEvent * event)

na takiej zasadzie że sprawdzasz położenie kliknięcia myszy. Jeśli znajduje się wewnątrz lineedita używasz metody selectAll().

Najlepszym rozwiązaniem jest stworzenie własnego eventu poprzez installEventFilter oraz eventFilter. Dzięki temu możesz stworzyć własne wersje eventów.

https://doc.qt.io/archives/qt-4.8/eventsandfilters.html

komentarz 15 kwietnia 2019 przez niezalogowany

Generalnie nie proszę o gotowce, ale zależy na dość szybkim opanowaniu podstaw (długo by opowiadać) i na razie tylko podstaw programowania GUI. Ale z tym własnym zdarzeniem to by było elegancko. Selectall() mi nie działało bo jak chciałem wpisać cyfrę to kasowało mi poprzednią. Z tym pobraniem pozycji straciłem wczoraj cały późny wieczór i nic nie wymyśliłem podstawy C++ i parę dni na Qt to trochę za mało dla mnie by wszystko poukładać w głowie.

Po co mi to. Próbuję napisać mały programik do nauki tabliczki mnożenia taki osobisty tj z komunikatami osobistym.

A później parę troszeczkę większych. 

komentarz 16 kwietnia 2019 przez niezalogowany

@Bondrusiek, Tak po Januszowemu ale poszło

void Widget::on_pressButtom_pressed()
{
     ui->pressButtom->hide();
     ui->lineEdit->setText("");
     ui->lineEdit->setFocus();
}

 

komentarz 16 kwietnia 2019 przez Bondrusiek Maniak (61,410 p.)

To dobrze że działa.

PS

Chyba masz literówkę Button

komentarz 16 kwietnia 2019 przez niezalogowany
edycja 16 kwietnia 2019
po angielsku to tak, ale zmienna to zmienna może się nazywać jak chce.

ups przepraszam funkcja składowa a właściwie to chyba podklasa.

Podobne pytania

0 głosów
0 odpowiedzi 132 wizyt
0 głosów
2 odpowiedzi 632 wizyt
pytanie zadane 14 sierpnia 2018 w C i C++ przez VegaOrionis Początkujący (350 p.)
0 głosów
1 odpowiedź 838 wizyt
pytanie zadane 11 listopada 2017 w C i C++ przez Eliro Stary wyjadacz (12,160 p.)

92,696 zapytań

141,607 odpowiedzi

320,114 komentarzy

62,056 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.

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...