• 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
38 wizyt
pytanie zadane 15 kwietnia w C i C++ przez fisker Bywalec (2,340 p.)
edycja 15 kwietnia przez fisker
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 Nałogowiec (49,160 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 fisker Bywalec (2,340 p.)

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 fisker Bywalec (2,340 p.)

@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 Nałogowiec (49,160 p.)

To dobrze że działa.

PS

Chyba masz literówkę Button

komentarz 16 kwietnia przez fisker Bywalec (2,340 p.)
edycja 16 kwietnia przez fisker
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 74 wizyt
pytanie zadane 14 sierpnia 2018 w C i C++ przez VegaOrionis Początkujący (350 p.)
0 głosów
1 odpowiedź 137 wizyt
pytanie zadane 11 listopada 2017 w C i C++ przez Eliro Stary wyjadacz (10,480 p.)
0 głosów
1 odpowiedź 59 wizyt
Porady nie od parady
Odznacz odpowiedź zieloną fajką, jeśli uważasz, że jest ona najlepsza ze wszystkich i umożliwiła ci rozwiązanie problemu.Najlepsza odpowiedź

63,239 zapytań

109,483 odpowiedzi

228,714 komentarzy

43,293 pasjonatów

Przeglądających: 284
Pasjonatów: 12 Gości: 272

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.

...