Я использую Qt4 Designer, и я хочу, чтобы, когда я нажимаю кнопку "Да", выполняется какой-то код. И когда я нажимаю "нет", другой код будет выполнен. Как я могу это сделать?
Qt Designer: как добавить пользовательский слот и код к кнопке
Ответ 1
-
Нажмите инструмент
Edit Signal/Slots
. -
Создайте соединение для своей кнопки. Для этого выберите свою кнопку в дизайнере, нажав на нее левой кнопкой мыши. Переместите мышь в какое-то место в главном окне, чтобы создать соединение с основным окном (это похоже на красную линию с заземлением).
-
Когда вы отпустите кнопку мыши, появится диалоговое окно
Configure Connection
. -
В этом диалоговом окне выберите сигнал в левом текстовом элементе управления (отправителе), например,
pressed()
. -
Затем нажмите
edit
в правильном текстовом элементе управления (ресивере). Появится диалоговое окно дляSignals/Slots of MainWindow
. -
В слот-панели добавьте новый слот (зеленый крест). Появится текст
slot1()
. Дважды щелкните по нему, чтобы отредактировать строку, и вместо нее напишите имя вашей функцииdoit_when_yes_ispressed()
. Accept. -
Теперь в диалоговом окне
Configure Connection
вы увидите свою функцию в правильном текстовом элементе управления. Выберите и примите. -
В дизайнере теперь вы видите сигнал и свою функцию в виджетах.
Ответ 2
- Щелкните правой кнопкой мыши свой виджет
- Выберите "Перейти к слоту..."
- Выберите сигнал и нажмите OK
Ваше объявление пользовательского слота и определение этого сигнала будут добавлены в файлы *.cpp и *.h. Его имя будет сгенерировано автоматически.
обн: Извините, я не заметил, что вопрос касается самого Python и QtDesigner, я думал о режиме конструктора в среде разработки QtCreator. Однако это может быть полезно для тех, кто ищет информацию Qt/С++, поэтому я оставляю ответ.