本节先通过一个简单的示例程序介绍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所示的窗口。

图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的类与其他的类或变量区分开来。

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

  1. vbs获取程序窗体句柄_VBS调用windows api函数(postmessage)实现后台发送按键脚本...

    '========================================================================== ' ' VBScript Source File ...

  2. pythongui程序,python第一个GUI程序

    第一个GUI程序 截止目前,我们的python基本语法就已经讲完了,但是python的应用确实无比之广,不同的应用领域需要学习不同的Python库,比如爬虫的urllib模块,科学计算numpy模块, ...

  3. python怎么开发gui程序_第一个GUI程序

    Python GUI 开发有好几个第三方的库,我选择的是tkinter 最简单的一个GUI程序 import tkinter as tk//给库来个简写,用的时候简洁一点 root = tk.Tk() ...

  4. 用Java开发桌面应用程序(Swing开发GUI程序)

    前面学过了面向对象基本概念.面向对象基本特征.Java基本包和API:异常.多线程.IO等. 基本概念 Swing:java中的一个包,负责开发GUI程序 GUI:图形用户界面,一般指可视化桌面系统中 ...

  5. vbs获取程序窗体句柄_[VBA][高阶应用][类模块]自绘窗体进度条类cProgressBar.cls

    纯API自绘窗体的进度条类,废话少说,直接上代码 这个进度条类的调用方式: Private Declare Function FindWindow Lib "user32.dll" ...

  6. python抢优惠券程序_python3 优惠券查询GUI程序

    from tkinter import ttk from tkinter import messagebox import pymssql import tkinter import decimal ...

  7. 一个程序通过窗体句柄控制另一个窗体

    接下来,我们来演示不同程序中,怎么通过窗体句柄控制其它程序窗体. 演示的例子是:控制系统的记事本窗体,先移动,再最大化,最后关闭 要求:桌面上有一个记事本,名称是:测试文本.txt - 记事本,保证是 ...

  8. VC中获取窗体句柄的各种方法

    AfxGetMainWnd AfxGetMainWnd获取自身窗体句柄 HWND hWnd = AfxGetMainWnd()->m_hWnd; GetTopWindow 函数功能:该函数检查与 ...

  9. JCEF3——谷歌浏览器内核Java版实现(一):使用jawt获取窗体句柄

    前言 最近一段时间研究谷歌浏览器内核.谷歌浏览器内核一直开源,并维护更新,它的开源项目中内核更新速度和Chrome浏览器版本更新进度一样!而且它不同于WebKit(值得一题的是谷歌浏览器已不使用Web ...

最新文章

  1. linux slocate(secure locate) 命令详解
  2. 项目管理怎样游刃有余
  3. 常见人工智能比赛平台总结
  4. HTML在前端开发中起到的作用,什么是字符串,web前端开发里起到什么作用
  5. Adobe illustrator 抽丝剥茧选中多个点 - 连载 13
  6. python数据处理随笔总结
  7. 计算机安装最新的安全补丁,Win10不要装!微软发布4月安全补丁合集
  8. 如何把博客园的博客弄出狂拽酷炫的效果
  9. 什么能让我们用青春、用生命去垫付?
  10. freemaker if 多个条件_小函数,大用处!巧用AND函数,避开IF函数嵌套
  11. 有序表的最小和(element)
  12. layui 主动验证表单规则
  13. PCIe EA (Enhanced Allocation) 介绍
  14. 会写代码的CTO曹艳白曹总,智核创投创始人,给搜房贡献的第一个大数据方面的专利...
  15. c# EASYUI+MVC filebox示例
  16. vs2013 打开失败 未能完成操作,不支持此接口
  17. idea 编译器注释汉字变繁体字解决办法
  18. windows版微信多开
  19. 喜讯|大脑营行苏引华荣获巨量引擎2023全民悦读会“悦读星推官”
  20. easyRtc设置视频清晰度的方法

热门文章

  1. 三星:Android之外,技术为王
  2. C#面向对象基础(六) 继承
  3. [笔记]java-package
  4. 如何备份 Outlook Express 项
  5. ASP.NET 2.0 Club Web Site Starter Kit 补丁
  6. 2022. 将一维数组转变成二维数组
  7. leetcode1319. 连通网络的操作次数(并查集)
  8. 安装angular cli_Angular 9适用于初学者—如何使用Angular CLI安装第一个应用程序
  9. 使用机器学习预测天气_如何使用机器学习根据文章标题预测喜欢和分享
  10. JavaScript正则表达式快速简单的指南