• 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
52 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 (51,590 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 (51,590 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 82 wizyt
pytanie zadane 14 sierpnia 2018 w C i C++ przez VegaOrionis Początkujący (350 p.)
0 głosów
1 odpowiedź 145 wizyt
pytanie zadane 11 listopada 2017 w C i C++ przez Eliro Stary wyjadacz (11,130 p.)
0 głosów
1 odpowiedź 64 wizyt
Porady nie od parady
Nie wiesz jak poprawnie zredagować pytanie lub pragniesz poznać którąś z funkcji forum? Odwiedź podstronę Pomoc (FAQ) dostępną w menu pod ikoną apteczki.FAQ

66,400 zapytań

113,160 odpowiedzi

239,542 komentarzy

46,663 pasjonatów

Przeglądających: 152
Pasjonatów: 0 Gości: 152

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.

...