[QT] pobieranie tekstu i parametry
Ostatnio zmodyfikowano 2017-11-01 12:57
Szybki_Jakub Temat założony przez niniejszego użytkownika |
[QT] pobieranie tekstu i parametry » 2017-10-31 20:30:20 Witam wszystkich. Poszukuje rozwiązania następującego problemu, mianowicie w moim programie potrzebuję pobierać tekst z wielu różnych elementów okienka niestety jedyne rozwiązanie jakie znam to pisanie osobnej funkcji do każdego jednego elementu jak w kodzie poniżej: QString Window::get_label() { return ui->label->text(); } QString Window::get_label_2() { return ui->label_2->text(); } QString Window::get_lineEdit() { return ui->lineEdit->text(); }
........
Zamiast tego chciałem napisać jedną funkcje której parametrem będzie nazwa obiektu zamieszczonego w oknie, coś w rodzaju: QString Window::get_text( Qstring obj ) { }
lecz jeszcze nie jestem jeszcze biegły w QT oraz wyrażeniach lambda |
|
czaffik |
» 2017-11-01 12:57:38 Funkcje lambda byłyby potrzebne gdybyś chciał podpiąć jedną funkcję pod wiele kontrolek, np pod kilka przycisków podpiąć funkcję zwracającą jego opis: QString get_description( int num ) { switch( num ) .... }
connect( ui->pushButton_4, & QPushButton::clicked,[ & ] { get_description( 4 ); } );
Uwaga, jeśli funkcja z klasy kontrolki jest przeładowana to wywołanie connecta z funkcją lambada może być bardziej zawiłe, chociaż już nie pamiętam jak to wygląda, nie mogę znaleźć. Jeżeli chcesz mieć tylko taką funkcję bez podpinania do jakichś zdarzeń kontrolek to nie jestem pewien, może coś takiego: QString Window::get_text( QWidget obj ) { return obj->text(); }
tylko musisz sprawdzić czy po pierwsze wszystkie kontrolki dziedziczą po QWidget, po drugie czy klasa QWidget zawiera metodę getText() lub text(), jeśli nie, to albo szukasz dalej takiej klasy która spełnia dwa powyższe warunki, albo wirtualnie numerujesz sobie kontrolki w oknie i jedziesz ze switchem. |
|
« 1 » |