vbs获取程序窗体句柄_PyQt5 GUI程序的基本框架

本节先通过一个简单的示例程序介绍PyQt5 GUI应用程序的基本框架。

启动Python自带的编程和交互式环境IDLE,点击“File”→“New File”菜单项,打开一个文件编辑窗口,在此窗口中输入下面的程序,并保存为文件demo2_1Hello.py,此文件保存在随书示例Demo2_1目录下。

## demo2_1Hello.py## 使用PyQt5,纯代码化创建一个简单的GUI程序import sysfrom PyQt5 import QtCore, QtGui, QtWidgetsapp = QtWidgets.QApplication(sys.argv) #创建app,用QApplication类widgetHello = QtWidgets.QWidget() #创建窗体,用QWidget类widgetHello.resize(280,150) #设置窗体的宽度和高度widgetHello.setWindowTitle("Demo2_1") #设置窗体的标题文字LabHello = QtWidgets.QLabel(widgetHello) #创建标签,父容器为widgetHelloLabHello.setText("Hello World,PyQt5") #设置标签文字font = QtGui.QFont() #创建字体对象font,用QFont类font.setPointSize(12) #设置字体大小font.setBold(True) #设置为粗体LabHello.setFont(font) #设置为标签LabHello的字体size=LabHello.sizeHint() #获取LabHello的合适大小,返回值是QSize类对象LabHello.setGeometry(70, 60, size.width(), size.height())widgetHello.show() #显示对话框sys.exit(app.exec_()) #应用程序运行

程序输入完成后,在程序编辑器窗口中点击“Run”→“Run Module”菜单项,或直接按快捷键F5就可以运行程序,会出现图2-1所示的窗口。

37590e2a1e6a38337aad03d03fabb34a.png

图2-1 文件demo2_1Hello.py运行结果窗口

这是一个典型的GUI应用程序。观察文件demo2_1Hello.py的代码,并结合程序中的注释,可以看出此程序的基本工作原理。

(1)首先导入了PyQt5包中的一些模块,包括QtCore,QtGui,QtWidgets,其中每个模块都包含了一些类。

(2)用下面的语句创建了一个应用程序。

app = QtWidgets.QApplication(sys.argv)

这里用到了QtWidgets模块中的QApplication类。QApplication是管理GUI应用程序的控制流程和设置的类,这里创建的应用程序对象是app。

(3)使用QtWidgets模块中的QWidget类创建了窗体对象widgetHello,然后调用QWidget类的resize()函数设置窗体大小,调用setWindowTitle()函数设置窗体标题。

(4) 使用QtWidgets模块中的QLabel类创建了一个标签对象LabHello,创建LabHello的语句是:

LabHello = QtWidgets.QLabel(widgetHello)

这里将widgetHello作为参数传递给QLabel的构造函数,实际是指定widgetHello作为LabHello的父容器,这样标签LabHello才会显示在窗体widgetHello上。

后面的代码用QLabel的接口函数setText()设置标签的文字,又创建了一个QFont对象用于设置标签的字体,还设置了标签在窗体上的位置和大小。

(5)窗体显示和程序运行。

窗体widgetHello和文字标签LabHello创建并设置好各种属性后,就显示窗体并运行应用程序,即程序中的最后两行语句:

widgetHello.show()sys.exit(app.exec_())

这里的窗体widgetHello是应用程序的主窗体,应用程序运行后开始消息管理。

这个示例程序演示了使用PyQt5的一些类创建GUI程序的基本过程。首先需要用QApplication类创建一个应用程序实例,然后创建一个窗体(窗体类主要有QWidget、QDialog、QMainWindow),再创建界面组件(例如一个QLabel组件)并在窗体上显示,最后是显示窗体并开始应用程序的消息循环。这个程序虽然功能很简单,只显示了一个带标签的窗口,关闭窗口还需要点击窗口右上角的关闭按钮,但它已经是一个标准的GUI应用程序。

提示 从上面的程序中可以看出,PyQt5中的类都是以大写字母Q开头命名的,如QWidget、QApplication、QLabel等,这样的命名规则很容易将PyQt5的类与其他的类或变量区分开来。

3bc408ced2c00757f5413ab2431a2ced.png

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

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

相关文章

【学神】1-4 用户及用户组管理

用户及用户组管理本节所述内容:用户和组的相关配置文件管理用户和组 进入单用户模式找回root身份一、用户和组的相关配置文件1.用户的分类(1)根据帐号的位置:本地帐号、远程(域)帐号、LDAP&…

阿里REDIS优化

转载于:https://www.cnblogs.com/isoftware/p/3745956.html

WordPress 常用数据库SQL查询语句大全

https://www.wpdaxue.com/wordpress-sql.html 在使用WordPress的过程中,我们少不了要对数据库进行修改操作,比如,更换域名、修改附件目录、批量修改文章内容等等。这个时候,使用SQL查询语句可以大大简化我们的工作量。 关于如何操…

linux搭建FTP服务器

1、搭建环境:OS:centOS7SOFT:vsftpd2、网络基本配置 [rootlocalhost ~]# vi /etc/sysconfig/network-scripts/ifcfg-XXX //其中XXX请填写实际文件名称TYPEEthernetBOOTPROTOstatic //静态IPDEFROUTEyesPEERDNSyesPEERROUTESyesIPV4_FAILURE_FATALnoIPV4INITye…

vb子程序未定义怎么改怎么办_煤粉输送不畅、秤不稳怎么办?多家企业这样改!...

摘要: CWF型煤粉转子喂料系统优点在于运行稳定、精度高,一致以来受到用户的青睐,但其对煤粉要求也高,尤其是水分含量,直接影响给料的稳定性和受控性。各种非正常因素对测控的影响较大,容易造成下料不畅、波动等现象,下…

eclipse 错误: 找不到或无法加载主类

eclipse 突然报 错误: 找不到或无法加载主类查找网上资料,也查看了环境变量中的JAVA_HOME,PATH等,都按照正确的配置,而且配置前面都添加了,;,但是照样还是一样。运行了旧的程序,都可以正常运行,但是新建的类…

Flex +WebService

<?xml version"1.0" encoding"utf-8"?> <mx:Application xmlns:mx"http://www.adobe.com/2006/mxml" layout"absolute"><mx:Script><![CDATA[import mx.controls.DataGrid;import flash.external.ExternalInte…

SQL Server实现读写分离提高系统并发

转自&#xff1a;http://www.canway.net/Lists/CanwayOriginalArticels/DispForm.aspx?ID666 在一些大型的网站或者应用中&#xff0c;单台的SQL Server 服务器可能难以支撑非常大的访问压力。很多人在这时候&#xff0c;第一个想到的就是一个解决性能问题的利器——负载均衡。…

php如何获取网址中的参数

https://zhidao.baidu.com/question/140978452.html 比如有一个网址为 http://域名/goods.php?u59&id24#pinglun 我想得到这个id值 可以用正则,也可以用php函数解析到数组中 用正则可以这样 preg_match(/id(\d)/,$_SERVER["REQUEST_URI"],$m);//$_SERVER 这…

.net core 引用jar_Python一键转Jar包,Java调用Python新姿势!

粉丝朋友们&#xff0c;不知道大家看故事看腻了没&#xff08;要是没腻可一定留言告诉我^_^&#xff09;&#xff0c;今天这篇文章换换口味&#xff0c;正经的来写写技术文。言归正传&#xff0c;咱们开始吧&#xff01;今天的这篇文章&#xff0c;聊一个轩辕君之前工作中遇到的…

PHP版本的区别

2019独角兽企业重金招聘Python工程师标准>>> 以为这个已经写过了&#xff0c;发现没有&#xff0c;赶紧补充下。 PHP的版本&#xff0c;自从进入5以后&#xff0c;发布新版本速度明显提升很多&#xff0c;从PHP5.2开始&#xff0c;5.3 、5.4 、5.5&#xff0c;就快要…

1515 跳 - Wikioi

题目描述 Description邪教喜欢在各种各样空间内跳。现在&#xff0c;邪教来到了一个二维平面。在这个平面内&#xff0c;如果邪教当前跳到了(x,y)&#xff0c;那么他下一步可以选择跳到以下4个点&#xff1a;(x-1,y), (x1,y), (x,y-1), (x,y1)。而每当邪教到达一个点&#xff0…

python dry原则_关于Python 的这几个技巧,你应该知道

随着大数据时代的到来&#xff0c;我们每天都在接触爬虫相关的事情&#xff0c;这其中就不得不提及Python这门编程语言。我已经使用Python编程有多年了&#xff0c;即使今天我仍然惊奇于这种语言所能让代码表现出的整洁和对DRY编程原则的适用。这些年来的经历让我学到了很多的小…

快速格式化的DOS命令是什么?

https://zhidao.baidu.com/question/3269005.html Dos下的format命令是用来进行格式化的。 FORMAT A:或c:, d:等等&#xff0c;后面可以加一些参数 比如FORMAT A: /S 这是格式化并追加系统。也就是制作一个简单的启动盘。 如果给硬盘进行格式化&#xff08;重装系统前的准备工…

instanceof的用法①

1 public class typeof1{2 private String a"zzw";3 public void instance(){4 if(a instanceof String) //判断是不是String类型的5 {6 System.out.println("hello world!");7 }8 }9 public static …

ADT-bundle

eclipse 弹出 Version 1.4.2_03 of the JVM not suitable for this product.Version1.6or geeater is requir 原因jdk版本过低&#xff0c;需更换高版本 ADT-bundle-linux-X86 解压后有两个文件夹eclipse 和sdk 注意&#xff1a;adb命令在platform-tools下 解压后还需修改sdk的…

runtest的选项应用

runtest 6 --installnfs-utils-1.2.3-76.el6 --jobn2 #install指定安装包版本&#xff0c;jobn指定提交job数量 distro-list.sh all | grep -i fedora #查找所有fedora的分支&#xff0c;fedora25,27在beaker上安装不稳定&#xff0c;所以以后验证时使用fedora27&am…

合并两个有序链表算法(leetcode第21题)

题目描述&#xff1a; 将两个升序链表合并为一个新的 升序 链表并返回。新链表是通过拼接给定的两个链表的所有节点组成的。 示例 1&#xff1a;输入&#xff1a;l1 [1,2,4], l2 [1,3,4] 输出&#xff1a;[1,1,2,3,4,4] 示例 2&#xff1a;输入&#xff1a;l1 [], l2 [] 输…

css设置鼠标滑过背景变色;鼠标滑过背景变色

https://jingyan.baidu.com/article/9158e000381292a254122828.html div:hover{background-color: red;}

vue 微信支付的坑_vue_模式下h5微信支付

微信公众号配置网页授权域名&#xff1a;填写网址域名微信开发者平台配置url&#xff1a;访问url&#xff1a;http://www.bc.com/pay/pay支付授权目录&#xff1a;http://www.bc.com/pay/访问url&#xff1a;http://www.bc.com/pay支付授权目录&#xff1a;http://www.bc.com/访…