Название: Просмотр сигналов и слотов Отправлено: kibsoft от Январь 07, 2010, 00:14 Есть примерно такой код:
MainWindow::MainWindow(QWidget *parent):QMainWindow(parent) { usersList=new QListWidget(this); mesWindow=new MessageWindow(this);//это объект и у него есть слот setNewMessageWindow connect(this>usersList,SIGNAL(itemDoubleClicked(QListWidgetItem*)),mesWindow,SLOT(setNewMessageWindow(QListWidgetItem*)); } int main(int argc,char* argv[]) { MainWindow w1; w1.show(); return app.exec(); } Но при двойном клике на листвиджете ничего не происходит, т.е. сигнал и слот не соединились..как вообще можно проверить прошел ли connect? Название: Re: Просмотр сигналов и слотов Отправлено: BRE от Январь 07, 2010, 00:22 Но при двойном клике на листвиджете ничего не происходит, т.е. сигнал и слот не соединились..как вообще можно проверить прошел ли connect? connect возвращает bool значение о результате и выводит на консоль диагностические сообщения.Название: Re: Просмотр сигналов и слотов Отправлено: kibsoft от Январь 07, 2010, 00:29 connect возвратил true...но при клике ничего не происходит..
Если объект класса MessageWindow создавать в main, то все работает... int main(int argc,char* argv[]) { QApplication app(argc,argv); MainWindow w1; w1.show(); MessageWindow w2; QObject::connect(w1.usersList,SIGNAL(itemDoubleClicked(QListWidgetItem*)), &w2,SLOT(setNewMessageWindow(QListWidgetItem*))); return app.exec(); } А что неправильно в предыдущем примере? Название: Re: Просмотр сигналов и слотов Отправлено: kibsoft от Январь 07, 2010, 00:51 Если в первом посте изменить(просто для примера):
Код: connect(usersList,SIGNAL(currentRowChanged(int)), Код: connect(usersList,SIGNAL(itemDoubleClicked(QListWidgetItem*)), Название: Re: Просмотр сигналов и слотов Отправлено: lit-uriy от Январь 07, 2010, 03:23 а ты в свой слот отладочную строку помести, например:
qDebug() << "Jump to slot"; и посмотри в консоли, попадает в слот или нет. Тем самым область поиска проблемы сузишь Название: Re: Просмотр сигналов и слотов Отправлено: ilot от Январь 07, 2010, 06:45 А занесены ли в usersList какие-нибудь элементы? Изначально он создается пустым, в приведенных примерах не видно, чтобы в него что-то добавлялось. Если вы делаете двойной щелчок по пустому списку, то сигнал itemDoubleClicked просто не будет генерироваться.
Название: Re: Просмотр сигналов и слотов Отправлено: kibsoft от Январь 07, 2010, 12:46 usersList заполнен..в слот не заходит..listwidget вообще не реагирует на клики и даже не выделяет элемент списка.. хотя при создании объектов в main() все отлично работает(3 пост)...
|