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

line edit Qt

0 głosów
54 wizyt
pytanie zadane 15 kwietnia w C i C++ przez niezalogowany
edycja 15 kwietnia
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 przez Bondrusiek Maniak (53,110 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 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 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 przez Bondrusiek Maniak (53,110 p.)

To dobrze że działa.

PS

Chyba masz literówkę Button

komentarz 16 kwietnia przez niezalogowany
edycja 16 kwietnia
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
2 odpowiedzi 83 wizyt
pytanie zadane 14 sierpnia 2018 w C i C++ przez VegaOrionis Początkujący (350 p.)
0 głosów
1 odpowiedź 148 wizyt
pytanie zadane 11 listopada 2017 w C i C++ przez Eliro Stary wyjadacz (11,130 p.)
0 głosów
1 odpowiedź 65 wizyt
Porady nie od parady
Forum posiada swój własny serwer Discord, dzięki któremu będziesz mógł po prostu pogadać z innymi Pasjonatami lub zapytać o jakiś problem. Podstrona z chatem znajduje się w menu pod ikoną człowieka w dymku.IRC

67,157 zapytań

114,107 odpowiedzi

241,851 komentarzy

47,045 pasjonatów

Przeglądających: 325
Pasjonatów: 16 Gości: 309

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.

...