QT第一个程序跑起来
因为Pyside2为官方亲儿子,以后应用可能会更广泛,故学习的是Pyside2。
要让一个QT界面显示出来,需要以下步骤:
1.导入相关的控件,如主窗口、按钮、文本编辑器等,代码如下:
1 from PySide2.QtWidgets import QApplication,QMainWindow,QPushButton,QPlainTextEdit,QMessageBox
2.定义相关函数,如按钮响应事件等。
#自定义函数,作slot,响应事件 def handleCalc(): print('hello') info = textEdit.toPlainText() # 薪资20000 以上 和 以下 的人员名单 salary_above_20k = '' salary_below_20k = '' for line in info.splitlines(): if not line.strip(): continue parts = line.split(' ') # 去掉列表中的空字符串内容 parts = [p for p in parts if p] name,salary,age = parts if int(salary) >= 20000: salary_above_20k += name + '\n' else: salary_below_20k += name + '\n' QMessageBox.about(window, '统计结果', f'''薪资20000 以上的有:\n{salary_above_20k} \n薪资20000 以下的有:\n{salary_below_20k}''' )
3.主程序初始化,要用此语句:
1 #其中数组内容可为空,有具体内容则可以配置属性 2 app = QApplication([])
4.窗口的配置,如坐标、属性等。此处窗口类似于VB中的form,示例代码:
1 #主窗口 2 window = QMainWindow() 3 #尺寸 4 window.resize(500,400) 5 #在屏幕中的坐标系 6 window.move(400,300) 7 #主窗口标题 8 window.setWindowTitle('薪资统计')
5.具体控件属性、事件等配置。此处以按钮和文本编辑器为例:
1 #文本编辑器构建 window为主窗口对象 2 textEdit = QPlainTextEdit(window) 3 #提示信息 4 textEdit.setPlaceholderText('请输入薪资表') 5 #坐标 注意是相对于窗体了 6 textEdit.move(10,25) 7 #尺寸 像素为单位 8 textEdit.resize(300,350) 9 10 #文字,及其父窗口 11 button = QPushButton('统计',window) 12 button.move(380,80) 13 #按钮响应事件 事件槽 14 button.clicked.connect(handleCalc)
6.窗口显示出来。和VB的form.show类似。
1 #显示窗口 2 window.show()
7.进入死循环,等待用户操作界面,界面一直显示。有点类似于TKinter的mainloop()
1 #有此代码才会显示,否则一闪而过。进入此处理循环 2 app.exec_()
终于,一个界面可以显示出来了,并且点击按钮可以进行响应。
在具体运行时,出现了一个问题,写成了button.clicked.connect(handleCalc()),导致运行后直接运行了自定义函数,点击按钮也无响应,发现是sginal与plot未关联,以后必须要注意这些细节。

浙公网安备 33010602011771号