PyQt5的学习---01

这篇具有很好参考价值的文章主要介绍了PyQt5的学习---01。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

1. PySide2、PyQt5 都是基于著名的 Qt 库。

Qt库里面有非常强大的图形界面开发库,但是Qt库是C++语言开发的,PySide2、PyQt5可以让我们通过Python语言使用Qt。

但是 PySide2、PyQt5 这两者有什么区别呢?

可以形象地这样说: PySide2 是Qt的 亲儿子 , PyQt5 是Qt还没有亲儿子之前的收的义子。

两个库的使用,差别很小:它们的调用接口几乎一模一样。

2.接口

QApplication :

提供了整个图形界面程序的底层管理功能,比如:初始化、程序入口参数的处理,用户事件(对界面的点击、输入、拖拽)分发给各个对应的控件,等等…

QMainWindow、QPlainTextEdit、QPushButton:

是3个控件类,分别对应界面的主窗口、文本框、按钮他们都是控件基类对象QWidget的子类。

控件对象的 move 方法决定了这个控件显示的位置。设置相对位置

控件对象的 resize 方法决定了这个控件显示的大小。

3. 界面动作处理 (signal 和 slot)

在 Qt 系统中, 当界面上一个控件被操作时,比如 被点击、被输入文本、被鼠标拖拽等, 就会发出 信号 ,英文叫 signal 。就是表明一个事件(比如被点击、被输入文本)发生了。

我们可以预先在代码中指定 处理这个 signal 的函数,这个处理 signal 的函数 叫做 slot 。

4. 实战:统计薪资大于20000的人员:

薛蟠     4560 25
薛蝌     4460 25
薛宝钗   35776 23
薛宝琴   14346 18
王夫人   43360 45
王熙凤   24460 25
王子腾   55660 45
王仁     15034 65
尤二姐   5324 24
贾芹     5663 25
贾兰     13443 35
贾芸     4522 25
尤三姐   5905 22
贾珍     54603 35
from PySide2.QtWidgets import QApplication,QMainWindow,QPushButton,QPlainTextEdit,QMessageBox




#这个函数就定义的 signal 的函数;用于触发点击事件;
def handle_click():

    into=textEdit.toPlainText()

    salary_above_20K=''
    salary_below_20k=''

    for line in into.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}")



app=QApplication([])

window=QMainWindow()


window.move(300,310)
window.resize(600,600)
window.setWindowTitle("薪资统计")


#编辑界面:
textEdit=QPlainTextEdit(window)
textEdit.setPlaceholderText("请输入薪资表")
textEdit.move(10,25)
textEdit.resize(450,500)

#按钮:
button=QPushButton('统计',window)
button.move(480,100)
button.clicked.connect(handle_click) #button提交 ;触发点击事件

window.show() #显示界面;
app.exec_() #执行app

封装成类:

from PySide2.QtWidgets import QApplication,QMainWindow,QPushButton,QPlainTextEdit,QMessageBox

class Qt_demo():
    def __init__(self):
        self.window=QMainWindow()
        self.window.resize(600,600)
        self.window.move(500,500)
        self.window.setWindowTitle("薪资统计")

        self.textEdit=QPlainTextEdit(self.window)
        self.textEdit.setPlaceholderText("请输入薪资表")#设置提示:
        self.textEdit.move(10,25)
        self.textEdit.resize(450,500)

        self.button=QPushButton('统计',self.window)
        self.button.move(480,100)
        self.button.clicked.connect(self.handle_click)

        pass



    def handle_click(self):
        info=self.textEdit.toPlainText() #输入信息;

        salary_above_20k=''
        salary_below_20k = ''

        for line in info.splitlines():
            if not line.strip():
                pass
            content=line.split(' ') #以空格分割字符;
            content=[con for con in content if con]

            name,salary,age=content
            if int(salary)>=20000:
                salary_above_20k+=name+'\n'
            else:
                salary_below_20k+=name+'\n'
        QMessageBox.about(self.window,"统计结果",
                          f"薪资大于20k的人有:\n{salary_above_20k}\n"
                          f"薪资低于20k的人有:\n{salary_below_20k}"
                          )
app=QApplication([])
Qt_demo=Qt_demo()
Qt_demo.window.show()
app.exec_()

资料来源:一个案例 | 白月黑羽 (byhy.net)文章来源地址https://www.toymoban.com/news/detail-424784.html

到了这里,关于PyQt5的学习---01的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包