Qt Designer: как добавить пользовательский слот и код к кнопке

Я использую Qt4 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/С++, поэтому я оставляю ответ.