PyQt5基础练习1

news/2024/5/9 1:33:07/文章来源:https://blog.csdn.net/weixin_44943389/article/details/128154928

0. 本文学习地址

1. PyQt5是由一系列Python模块组成

超过620个类,6000函数和方法。能在诸如Unix、Windows和Mac OS等主流操作系统上运行。

1.1 PyQt5有两种证书

  • GPL
  • 商业证书

2. 实验1 实现简单的窗体

2.1 完整代码

#!/usr/bin/python3
# -*- coding: utf-8 -*-"""
ZetCode PyQt5 tutorialIn this example, we create a simple
window in PyQt5.author: Jan Bodnar
website: zetcode.com
Last edited: August 2017
"""import sys
from PyQt5.QtWidgets import QApplication, QWidget # 这里引入了PyQt5.QtWidgets模块,这个模块包含了基本的组件。if __name__ == '__main__':app = QApplication(sys.argv) # 每个PyQt5应用都必须创建一个应用对象。sys.argv是一组命令行参数的列表。Python可以在shell里运行,这个参数提供对脚本控制的功能。w = QWidget() # QWidge控件是一个用户界面的基本控件,它提供了基本的应用构造器。默认情况下,构造器是没有父级的,没有父级的构造器被称为窗口(window)w.resize(250, 150) w.move(300, 300) # 表示从左上角开始的长,表示高w.setWindowTitle('Simple')w.show() # show()能让控件在桌面上显示出来。控件在内存里创建,之后才能在显示器上显示出来。sys.exit(app.exec_())

2.2 关键点解释

show函数执行后,我们进入了应用的主循环

  • 事件处理器这个时候开始工作。
  • 主循环从窗口上接收事件,并把事件派发到应用控件里。
  • 当调用exit()方法或直接销毁主控件时,主循环就会结束。
  • sys.exit()方法能确保主循环安全退出。
  • 外部环境会收到主控件如何结束的信息。

sys.exit(app.exec_())

exec_()之所以有个下划线,是因为exec是一个Python的关键字。

2.3 关于屏幕的长和宽

是以像素px为单位来表示的

3. 实验2 实现带窗口图标的窗体

3.1 完整代码

#!/usr/bin/python3
# -*- coding: utf-8 -*-"""
ZetCode PyQt5 tutorialThis example shows an icon
in the titlebar of the window.Author: Jan Bodnar
Website: zetcode.com
Last edited: August 2017
"""import sys
from PyQt5.QtWidgets import QApplication, QWidget
from PyQt5.QtGui import QIconclass Example(QWidget):def __init__(self):super().__init__()self.initUI()def initUI(self):# 创建GUI页面self.setGeometry(300, 300, 300, 220)self.setWindowTitle('Icon')self.setWindowIcon(QIcon('web.png'))self.show()# 你想要运行程序,起码写一个入口啊
if __name__ == '__main__':
#     1.实例化应用程序对象app = QApplication(sys.argv)
#     2.实例widget对象
ex = Example()
#     3.退出工具
sys.exit(app.exec_())# if __name__ == '__main__':
#
#     app = QApplication(sys.argv) # 创建应用对象
#     ex = Example() # 创建实例对象
#     sys.exit(app.exec_())

4. 实验3

4.1 完整代码

#!/usr/bin/python3
# -*- coding: utf-8 -*-"""
ZetCode PyQt5 tutorialThis example shows a tooltip on
a window and a button.Author: Jan Bodnar
Website: zetcode.com
Last edited: August 2017
"""import sys
from PyQt5.QtWidgets import (QWidget, QToolTip,QPushButton, QApplication)
from PyQt5.QtGui import QFontclass Example(QWidget):def __init__(self):super().__init__()self.initUI()def initUI(self):QToolTip.setFont(QFont('SansSerif', 10))self.setToolTip('This is a <b>QWidget</b> widget')# 这里的内容是button进行设置btn = QPushButton('Button', self)btn.setToolTip('This is a <b>QPushButton</b> widget')btn.resize(btn.sizeHint())btn.move(50, 50)# 这是对窗体进行设置self.setGeometry(300, 300, 300, 200)  # 这条语句相当于resize()和move()两条语句self.setWindowTitle('Tooltips')  # 设置好窗口的标题self.show()# 我来写一个程序运行入口
if __name__ == '__main__':app = QApplication(sys.argv)ex = Example()sys.exit(app.exec_())#
# if __name__ == '__main__':
#
#     app = QApplication(sys.argv) # 每个PyQt5应用都必须创建一个应用对象
#     ex = Example() # 实例化类对象
#     sys.exit(app.exec_()) # 确保主循环结束后正常结束窗体程序

5. PyCharm编程小技巧

5.1 在编写

在这里插入图片描述
的时候,直接输入main即可得到完整代码

  • 编译器会自动生成该内容

5.2 快速输入代码小技巧

  • tab键是代码补全的功能
  • enter键是插入的功能,在cursor的地方插入东西

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.luyixian.cn/news_show_229713.aspx

如若内容造成侵权/违法违规/事实不符,请联系dt猫网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

零基础学习软件测试,掌握四点就够了

近年来越来越多的人转行到软件测试这一领域&#xff0c;对于很多外行的人来说&#xff0c;肯定对这一行业有很多不了解&#xff0c;对于这一职业的职责以及要求都会不清楚&#xff0c;那么我们今天就来梳理一下关于软件测试行业的信息。 一、软件测试的主要职责你知道吗&#x…

[附源码]计算机毕业设计学生疫情防控信息填报系统Springboot程序

项目运行 环境配置&#xff1a; Jdk1.8 Tomcat7.0 Mysql HBuilderX&#xff08;Webstorm也行&#xff09; Eclispe&#xff08;IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持&#xff09;。 项目技术&#xff1a; SSM mybatis Maven Vue 等等组成&#xff0c;B/S模式 M…

16.前端笔记-CSS-学成在线案例

1、CSS属性书写顺序 &#xff08;1&#xff09;布局定位属性 display/position/float/clear/visibility/overflow(建议display第一个写&#xff0c;关系到模式) &#xff08;2&#xff09;自身属性 width/height/margin/padding/border/background &#xff08;3&#xff09;文…

[附源码]计算机毕业设计springboot项目管理系统的专家评审模块

项目运行 环境配置&#xff1a; Jdk1.8 Tomcat7.0 Mysql HBuilderX&#xff08;Webstorm也行&#xff09; Eclispe&#xff08;IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持&#xff09;。 项目技术&#xff1a; SSM mybatis Maven Vue 等等组成&#xff0c;B/S模式 M…

“极致成本向左,本质安全向右”-谈谈锂电池储能系统的发展趋势

极致成本 or 本质安全? 1 快速增长的电化学储能电站 根据CNESA全球储能项目库的不完全统计,截至 2021 年底,全球已投运电力储能项目累计装机规模 209.4GW, 同比增长 9%。其中,抽水蓄能的累计装机规模占比首次低于 90%,比去年同期下降4.1个百分点;新型储能的累计装机规模…

30张图 讲清楚Redis Cluster

今天下午和一位同学聊Redis集群&#xff0c;这玩意真没那么简单&#xff0c;内容非常多。 Redis Cluster是Redis官方提供的Redis集群功能。 1.为什么要实现Redis Cluster 1.主从复制不能实现高可用 2.随着公司发展&#xff0c;用户数量增多&#xff0c;并发越来越多&#x…

【人工智能/算法】搜索求解(Solving Problems by Searching)

文章目录一、求解与搜索二、盲目式搜索1. 深度优先搜索&#xff08;Depth First Search, DFS&#xff09;回溯搜索&#xff08;Backtracking Search&#xff09;2. 广度优先搜索&#xff08;Breadth First Search, BFS&#xff09;一致代价搜索&#xff08;Uniform-cost Search…

BBR 数学模型直观展示

看 BBR 的理想图示&#xff1a; 但现实中数据包到达并非绝对均匀&#xff0c;考虑统计突发&#xff0c;实际情况如下&#xff1a; ​后文将 Delivery Rate 设为 B(Bandwidth)&#xff0c;将 RTT 设为 D(Delay)。 B/inflt 曲线一定上凸&#xff0c;可想象 1 个 inflt 只有一种…

北京一互联网公司被端,所有开发被全部带走!

△Hollis, 一个对Coding有着独特追求的人△这是Hollis的第 407 篇原创分享作者 l Hollis来源 l Hollis&#xff08;ID&#xff1a;hollischuang&#xff09;近日&#xff0c;北京市朝阳公安分局对外公开&#xff0c;按照公安部“净网”专项行动整体部署&#xff0c;朝阳警方深入…

学习二十大奋进新征程线上知识答题活动回顾

学习二十大奋进新征程线上知识答题活动回顾 活动背景 开展直播宣讲、组织知识竞赛答题……各地通过多种形式广泛开展学习宣传活动&#xff0c;一起学。 为深入学习宣传贯彻二十大精神&#xff0c;近日&#xff0c;我市开展“奋进新征程&#xff0c;共创强国业”学习二十大精神…

Spring MVC统一异常处理的3种方式(附带实例)

在 Spring MVC 应用的开发中&#xff0c;不管是对底层数据库操作&#xff0c;还是业务层或控制层操作&#xff0c;都会不可避免地遇到各种可预知的、不可预知的异常需要处理。 如果每个过程都单独处理异常&#xff0c;那么系统的代码耦合度高&#xff0c;工作量大且不好统一&a…

SAS,Stata,HLM,R,SPSS和Mplus分层线性模型HLM分析学生受欢迎程度数据

全文链接&#xff1a;http://tecdat.cn/?p10809本文用于比较六个不同统计软件程序&#xff08;SAS&#xff0c;Stata&#xff0c;HLM&#xff0c;R&#xff0c;SPSS和Mplus&#xff09;的两级分层线性模型的过程和输出&#xff08;点击文末“阅读原文”获取完整代码数据&#…

2021.06青少年软件编程(Python)等级考试试卷(三级)

2021.06青少年软件编程(Python)等级考试试卷(三级) 一、单选题(共25题,每题2分,共50分) 1.关于open()函数的参数,下列描述正确的是?( D ) A. "w+" 以十六进制格式打开一个文件只用于写入 B. "r+"打开一个文件用于读写。文件指针将会放在文件…

视觉SLAM十四讲ch4笔记——李群与李代数

文章目录视觉SLAM十四讲ch4——李群与李代数4.1 李群李代数基础4.2 指数映射和对数映射4.2.1 so(3)↔SO(3)so(3) \leftrightarrow SO(3)so(3)↔SO(3)4.2.2 se(3)↔SE(3)se(3) \leftrightarrow SE(3)se(3)↔SE(3)4.2.3 小总结&#xff1a;so(3)↔SO(3)so(3) \leftrightarrow SO(…

slam学习 - 基本VO代码学习

本打算学习 orb -slam3 源码&#xff0c;但还是先把《slam 14》上的代码看完再说&#xff0c;至少把整个流程走一遍。 相关参考 https://blog.csdn.net/weixin_44684139/article/details/105305564 https://blog.csdn.net/qq_35590091/article/details/97111744 代码需求分析…

耗时大半个月收整全套「Java架构进阶pdf」

花了我大半个月时间收整了全套的「Java架构进阶pdf」&#xff0c;这一波下来&#xff0c;刷完你就会知道&#xff0c;真真香啊&#xff0c;我的心血果然&#xff0c;没白费&#xff01; 请注意&#xff1a;关于全套的「Java架构进阶pdf」&#xff0c;我会从面试-筑基-框架-分布…

npm vue 路由之一级路由(npm默认已经集成了vue)

npm vue 路由之一级路由&#xff08;npm默认已经集成了vue&#xff09; 文档https://v3.router.vuejs.org/zh/installation.html npm install vue-router3.5.2 --save 1.在App.vue上面添加 <router-view></router-view>2.在main.js上面添加 import VueRouter fro…

Lattice库联合ModelSim仿真FIFO

Lattice联合ModelSim仿真FIFO前言一、添加IP二、库文件添加&#xff08;一&#xff09;方式一&#xff1a;添加器件库到ModelSim&#xff08;二&#xff09;方法二&#xff1a;直接添加器件库到Libray,和tb.v在同一个目录下仿真三、仿真&#xff08;一&#xff09;仿真文件&…

[附源码]Python计算机毕业设计Django基于java的社区管理系统

项目运行 环境配置&#xff1a; Pychram社区版 python3.7.7 Mysql5.7 HBuilderXlist pipNavicat11Djangonodejs。 项目技术&#xff1a; django python Vue 等等组成&#xff0c;B/S模式 pychram管理等等。 环境需要 1.运行环境&#xff1a;最好是python3.7.7&#xff0c;…

计网个人作业03

R14. True or false? a a. Suppose Host A is sending a large file to Host B over a TCP connection. If the sequence number for a segment of this connection is m, then the sequence number for the subsequent segment will necessarily be m 1. 假设主机A通过一…