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未关联,以后必须要注意这些细节。




posted @ 2021-05-14 09:23  流星落地  阅读(146)  评论(0)    收藏  举报