Qt i SIGNAL, SLOT
| adikiekrz | 09.02.2008 12:19:33 | |
![]() | stworzylem taki connect: connect(ui.listWidget, SIGNAL(itemClicked()), this, SLOT(test()))); chodzi mi o to by pokliknieci na item w listwidget w label pojawil mi sie napis ktory jest funkcji test(), jak ta funkcja jest w pushbutton to dziala a w listwidget nie chce. | |
| ringo99 | 26.05.2009 22:19:12 | |
![]() | Pierwsze pytanie to czy w swoim kodzie w miejscu deklaracji slotu używasz makra slots ? a druga sprawa dotyczy sygnałów, czy aby na pewno dobry sygnał obsługujesz ?? i w sposób poprawny ?? jak dla mnie to sprawa jest dość prosta, obsługujemy sygnał i w slocie zmieniamy napis odpowiedniego lablel'a. Po za tym pamiętaj ze chcąc zmienić nazwę elementu listy nie wywołujesz funkcji zmiany label'a na rzecz kontrolki QListWidget tylko na rzecz itemu który może ci zwrócić po wyemitowaniu sygnału. btw... polecam dokumentację, jest bardzo prosto i przejrzyście. Oto urywek dokumentacji który może rozwiązać twój problem: [c] void QListWidgetItem::setText ( const QString & text ) Sets the text for the list widget item's to the given text. See also text().[/c] a tak wyglada deklaracja slotu test(); [c] class klasa_okna: public QWidget { private slots: /// dodadkowo pojawia /// sie makro slots void test(); /// a tutaj juz nasz slot private: ... ... public: ... ... protected: ... ... }; [/c] connect'y powinny znajdować się w konstruktorze. | |

