Python Qt 入门学习(二)————界面设计师 Qt Designer

Qt Designer 简介

上节讲的是通过代码创建一个一个界面,但是这种方式需要反复调试,才能呈现我们想要的位置,太麻烦。

因此出现了 QT 界面生成器 Qt Designer,直接通过拖拽就可以直观的创建出程序大体的界面。

windows 打开位置:

运行在Python安装目录下 Lib\site-packages\PySide2\designer.exe 

界面的创建

选择 Widget 创建
在这里插入图片描述
使用Plain Text Edit 创建一个用户输入的文本框
在这里插入图片描述
选择 Push Button 创建我们的点击按钮,然后双击创建的这个按钮修改名字为“统计
在这里插入图片描述
接下来创建输入提示,
1、找到QPlain TextEdit 这个类
2、在下面的属性里找到 placeholderText ,然后在其右侧输入 你要输入的提示信息
3、在左侧的创建窗口可以显示你输入的提示信息
在这里插入图片描述
修改主窗口标题,在Form对象里的属性windowTitle中修改
在这里插入图片描述
然后保存为 stats.ui 文件
在这里插入图片描述

界面的加载

from PySide2.QtWidgets import QApplication, QMessageBox
from PySide2.QtUiTools import QUiLoader
from PySide2.QtCore import QFile

class Stats:

    def __init__(self):
        # 从文件中加载UI定义
        qfile_stats = QFile("stats.ui")
        qfile_stats.open(QFile.ReadOnly)
        qfile_stats.close()
        
        # 从 UI 定义中动态 创建一个相应的窗口对象
        # 注意:里面的控件对象也成为窗口对象的属性了
        # 比如 self.ui.button , self.ui.textEdit
        self.ui = QUiLoader().load(qfile_stats)

        self.ui.button.clicked.connect(self.handleCalc)

    def handleCalc(self):
        info = self.ui.textEdit.toPlainText()

        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(self.ui,
                    '统计结果',
                    f'''薪资20000 以上的有:\n{salary_above_20k}
                    \n薪资20000 以下的有:\n{salary_below_20k}'''
                    )

app = QApplication([])
stats = Stats()
stats.ui.show()
app.exec_()

使用PyQt5

如果使用的是 PyQt5 而不是 PySide2,加载UI文件的代码如下

from PyQt5 import uic

class Stats:

    def __init__(self):
        # 从文件中加载UI定义
        self.ui = uic.loadUi("main.ui")

完整代码

from PyQt5.QtWidgets import QApplication, QMessageBox
from PyQt5 import uic


class Stats:

    def __init__(self):
        # 从文件中加载UI定义
        self.ui = uic.loadUi("stats.ui")

        # 从 UI 定义中动态 创建一个相应的窗口对象
        # 注意:里面的控件对象也成为窗口对象的属性了
        # 比如 self.ui.button , self.ui.textEdit

        self.ui.button.clicked.connect(self.handleCalc)

    def handleCalc(self):
        info = self.ui.textEdit.toPlainText()

        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(self.ui,
                          '统计结果',
                          f'''薪资20000 以上的有:\n{salary_above_20k}
                    \n薪资20000 以下的有:\n{salary_below_20k}'''
                          )


app = QApplication([])
stats = Stats()
stats.ui.show()
app.exec_()

参考:http://www.python3.vip/doc/tutorial/python/level2/gui/qt_03/

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值