использование функций python непосредственно в Qt-дизайнере как сигналы

Я новичок в программировании Qt и GUI, но я сделал справедливую бит кодирования в python – писать модули и так далее. Мне нужно разработать простые графические интерфейсы для некоторых моих старых модулей.

То, что я пытаюсь сделать, может быть представлено следующим простым примером:

def f(x, y): z = x + y return z 

Для этой функции я дам два редактирования строки для x и y и один для z. Теперь я создаю кнопку «вычислять», и когда я делаю это, я хочу, чтобы он принял x и y из редактирования строки, запустил функцию f(x,y) и дал выход z.

Есть ли способ сделать это прямо в Qt Designer, добавив функцию f(x,y) написанную на python?

Если нет, то какие альтернативы?

  • Файл .py, который скомпилирован из файла .qrc (с использованием pyside-rcc), не работает
  • Использование QTDesigner с PyQT и Python 2.6
  • QIcon.fromTheme не отображает значок в PyQt
  • QtDesigner & PySide: QTableWidget недоступен
  • PyQt: нет ошибки msg (traceback) при выходе
  • Отображение всплывающих окон в Python (PyQt4)
  • Настройка кода виджета дизайнера Qt?
  • Как создать новые окна PyQt4 из существующего окна?
  • One Solution collect form web for “использование функций python непосредственно в Qt-дизайнере как сигналы”

    Основной рабочий процесс при написании gui PyQt4:

    1. Создайте пользовательский интерфейс с помощью Qt Designer.
    2. Создайте модуль Python из файла пользовательского интерфейса, используя pyuic4 .
    3. Создайте модуль приложения для основной логики программы.
    4. Импортируйте GUI-класс в модуль приложения.
    5. Подключите графический интерфейс к логике программы.

    Итак, с учетом файла пользовательского интерфейса calc.ui , вы можете сгенерировать модуль пользовательского интерфейса:

     pyuic4 -w calc.ui > calc_ui.py 

    А затем создайте модуль приложения примерно так:

     from PyQt4 import QtGui, QtCore from calc_ui import CalculatorUI class Calculator(CalculatorUI): def __init__(self): CalculatorUI.__init__(self) self.buttonCalc.clicked.connect(self.handleCalculate) def handleCalculate(self): x = int(self.lineEditX.text()) y = int(self.lineEditY.text()) self.lineEditZ.setText(str(x + y)) if __name__ == '__main__': import sys app = QtGui.QApplication(sys.argv) window = Calculator() window.show() sys.exit(app.exec_()) 

    Обратите внимание, что это помогает установить objectName для каждого виджета в Редакторе свойств Designer, чтобы они могли быть легко идентифицированы позже. В частности, objectName основной формы станет классом-классом импортируемого класса GUI (при условии, что используется флаг «-w» для pyuic4 ).

    Python - лучший язык программирования в мире.