lin*_*nuS 9 python pyqt signals-slots pyqt4 qt-designer
我是Qt和GUI编程的新手,但我已经在python中编写了相当多的代码 - 编写模块等等.我需要为我的一些旧模块开发简单的GUI.
我想做的事情可以通过以下简单的例子来表示:
def f(x, y):
z = x + y
return z
Run Code Online (Sandbox Code Playgroud)
对于此功能,我将为x和y提供两个行编辑,为z提供一个.现在我创建一个按钮'计算',当我这样做时,我希望它从行编辑中获取x和y运行函数f(x,y)并将输出提供给z.
有没有办法直接在Qt Designer中添加f(x,y)用python编写的函数?
如果不是什么选择?
ekh*_*oro 16
编写PyQt4 gui时的基本工作流程是:
pyuic4.因此,给定UI文件calc.ui,您可以生成UI模块:
pyuic4 -w calc.ui > calc_ui.py
Run Code Online (Sandbox Code Playgroud)
然后创建一个这样的应用程序模块:
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_())
Run Code Online (Sandbox Code Playgroud)
请注意,objectName在Designer的属性编辑器中为每个小部件设置它有助于以后轻松识别它们.特别是,objectName主窗体的类将成为导入的GUI类的类名(假设使用了"-w"标志pyuic4).