在PyQt5中,QWidgets模块提供一组UI元素来创建经典的桌面式用户界面。小部件可以显示数据和状态信息,接收用户输入,并为应该组合在一起的其他小部件提供容器。一个没有嵌入到父控件中的小部件称为窗口。包含各种子控件的父窗口小部件小部件。所以首先,你开始为你的窗口编写一个代码window=QtWidgets.QWidget()
(QWidget类是所有用户界面对象的基类)。创建窗口后,需要为UI窗口设置布局。Qt中有许多用于布局的类,但最常见的是QVBoxLayout(垂直排列窗口小部件)和{}(水平排列窗口小部件),很多时候它们都被用来制作自定义布局。现在将您的QVBoxLayout创建为
^{pr2}$
(请注意,vbox只是一个变量名)text_1=QtWidgets.QLineEdit()
text_2=QtWidgets.QLineEdit()
run_btn=QtWidgets.QPushButton("run")
text_3=QtWidgets.QLineEdit()
注意,在QPushButton中,我们可以将按钮的名称作为它的参数(在本例中是ex-run)。现在是事件和信号的时候了。
为了将按钮连接到一个函数,我们写下btn.clicked.connect(function_name)这里btn是我们的按钮。注意这里的函数名没有括号,这意味着我们没有调用函数,只是将按钮连接到函数上(当用户单击按钮时,函数将被执行)run_btn=QtWidgets.QPushButton("run")
def main():
data_1=text_1.text()
data_2=text_2.text()
text_3.setText(str(int(data_1)+int(data_2)))
现在在我们的main函数中,我们首先从text_1和{}收集数据(有一个text()方法,QLineEdit从QLineEdit获取数据,作为str)。因此,main函数同时接受{}和{}的值并将它们相加(如果输入的值不能转换成整数,则会引发错误)并通过setText()方法将该值设置为text_3。在
现在您必须将小部件打包到我们之前创建的vbox中vbox.addWidget(text_1)
vbox.addWidget(text_2)
vbox.addWidget(run_btn)
vbox.addWidget(text_3)
现在将窗口的布局设置为window.setLayout(vbox)
把窗户展示成window.show()
到现在为止,有一件事不见了,那就是那条线app=QtWidgets.QApplication(sys.argv)
这一行是必需的,因为每个PyQt5应用程序都必须创建一个application对象。sys.argv参数是命令行中的参数列表。
现在我们必须创建应用程序的主循环。事件处理从这一点开始。app.exec_()方法运行我们的应用程序,然后提供一个干净的出口。在
现在把所有这些放在一起:import sys
from PyQt5 import QtWidgets
app=QtWidgets.QApplication(sys.argv)
window=QtWidgets.QWidget()
vbox=QtWidgets.QVBoxLayout()
text_1=QtWidgets.QLineEdit()
text_2=QtWidgets.QLineEdit()
run_btn=QtWidgets.QPushButton("run")
text_3=QtWidgets.QLineEdit()
def main():
data_1=text_1.text()
data_2=text_2.text()
text_3.setText(str(int(data_1)+int(data_2)))
run_btn.clicked.connect(main)
vbox.addWidget(text_1)
vbox.addWidget(text_2)
vbox.addWidget(run_btn)
vbox.addWidget(text_3)
window.setLayout(vbox)
window.show()
sys.exit(app.exec_())
这将使UI窗口如下所示:
希望有帮助。
如有问题请发表意见。
编码快乐!在