Название: Qt Designer не могу разобраться Отправлено: melifaro от Февраль 26, 2009, 22:27 Создаю в дизайнере форму на основе mainwindow, там же добавляю menuBar - menu1 - act_close, хочу чтобы по клику в меню по пункта "close" форма закрывалась...
1) в самом дизайнере не получилось т.к. связь сигнал - слот тянется только от самого menuBar'a, а не от отдельного QAction'a, в итоге форма закрывается при выборе любого пункта меню. 2) хотел связать в конструкторе, написать что-то типа connect(ui->menuBar->menu1->act_close,SIGNAL(click()),this,close()); но не смог найти даже menu1. Помогите понять оба способа, видимо я что-то не нашел или не понял. Название: Re: Qt Designer не могу разобраться Отправлено: pastor от Февраль 26, 2009, 22:38 1) В дизайнере открываем Signal/Slot Editor, Добавляем новый коннект. Устанавливаем Sender - act_close, Signal - triggered(), Receiver - mainwindow, Slot - close().
Но лично мне не нравится создавать коннекты в дизайнере, лучше юзать способ 2) 2) И коннектить в конструкторе: connect(ui->act_close,SIGNAL(triggered()),this,close()); Название: Re: Qt Designer не могу разобраться Отправлено: melifaro от Февраль 26, 2009, 23:00 1) Как добавить новый коннект? Кроме способа зажатия мышки на каком-то виджете и перетаскивания на другой, я никакого не видел
2) большое спасибо, всё оказалось проще чем я мог себе представить) Название: Re: Qt Designer не могу разобраться Отправлено: spirit от Февраль 27, 2009, 09:26 1) Как добавить новый коннект? Кроме способа зажатия мышки на каком-то виджете и перетаскивания на другой, я никакого не видел в дизайнере есть Signal/Slot Editor вот там можно коннектов и нашарашить. Название: Re: Qt Designer не могу разобраться Отправлено: AAXEE от Февраль 27, 2009, 20:11 Но лично мне не нравится создавать коннекты в дизайнере, лучше юзать способ 2) В этом есть что-то трушное=) Мне тоже не нравится.Название: Re: Qt Designer не могу разобраться Отправлено: lex_newton от Февраль 28, 2009, 16:54 Есть еще третий - интересный способ, о котором редко вспоминают. Но зачастую он оказывается весьма удобным ;)
В этом третьем случае не требуется писать connect(...). Необходимо лишь создать метод класса со строго определенным именем. Вот пример кода: Код: class CMainWindow : public QMainWindow, public Ui::MainWindow Здесь, action_item1 - это QAction, а triggered() - это испускемый этим QAction сигнал. Таким образом можно задать слот для любого сигнала. В этом случае коннект будет создается автоматически moc препроцессором. Название: Re: Qt Designer не могу разобраться Отправлено: Rcus от Февраль 28, 2009, 17:02 зашибись третий вариант :) в первом варианте строка коннекта генерируется автоматически и выполняется в setupUi, во втором мы ее пишем сами и выполняем в конструкторе, а в третьем вместо одной пишем 6 строк
Название: Re: Qt Designer не могу разобраться Отправлено: lex_newton от Февраль 28, 2009, 17:09 зашибись третий вариант :) в первом варианте строка коннекта генерируется автоматически и выполняется в setupUi, во втором мы ее пишем сами и выполняем в конструкторе, а в третьем вместо одной пишем 6 строк Ну дык разумеется, что это решение не для close(), который, сам по себе уже является слотом. Но знания такой возможности автору темы пригодится. Название: Re: Qt Designer не могу разобраться Отправлено: Yar от Март 11, 2009, 10:21 А не подскажете как в дизайнере добавлять connect?
Я по кнопке F4 повесил click, но как указать что по этому событию делать? Название: Re: Qt Designer не могу разобраться Отправлено: spirit от Март 11, 2009, 10:23 в дизайнере есть "Signal/Slot Editor" так можно создавать коннекты.
|