python PyQt5中文教程☞【第二节】PyQt5基本功能(创建窗口、应用程序图标、显示提示语、通过按钮关闭窗口、消息框(关闭窗口确认框)、窗口显示在屏幕中间【居中显示】)
引用文章:http://code.py40.com/pyqt5/
文章目录
- 简单的例子:创建一个小窗口
- 应用程序的图标
- 显示提示语
- 通过按钮关闭窗口
- 消息框(关闭窗口确认框)
- 窗口显示在屏幕的中间【居中显示】
简单的例子:创建一个小窗口
PyQt5是一种高级的语言,下面只有几行代码就能显示一个小窗口。底层已经实现了窗口的基本功能。
# -*- coding: utf-8 -*-
"""
@File : test4.py
@Time : 2020/4/13 16:57
@Author : Dontla
@Email : sxana@qq.com
@Software: PyCharm
"""
# !/usr/bin/python3
# -*- coding: utf-8 -*-import sys# 这里我们提供必要的引用。基本控件位于pyqt5.qtwidgets模块中。
from PyQt5.QtWidgets import QApplication, QWidgetif __name__ == '__main__':# 每一pyqt5应用程序必须创建一个应用程序对象。sys.argv参数是一个列表,从命令行输入参数。app = QApplication(sys.argv)# QWidget部件是pyqt5所有用户界面对象的基类。他为QWidget提供默认构造函数。默认构造函数没有父类。w = QWidget()# resize()方法调整窗口的大小。这里是250px宽150px高w.resize(250, 150)# move()方法移动窗口在屏幕上的位置到x = 300,y = 300坐标。w.move(300, 300)# 设置窗口的标题w.setWindowTitle('Simple')# 显示在屏幕上w.show()# 系统exit()方法确保应用程序干净的退出# app的exec_()方法有下划线。因为exec()执行是一个Python关键词,所以用exec_()代替sys.exit(app.exec_())
结果:
应用程序的图标
应用程序图标是一个小的图像,通常在标题栏的左上角显示。在下面的例子中我们将介绍如何做pyqt5的图标。同时我们也将介绍一些新方法。
#!/usr/bin/python3
# -*- coding: utf-8 -*-"""
py40 PyQt5 tutorialThis example shows an icon
in the titlebar of the window.author: Jan Bodnar
website: py40.com
last edited: January 2015
"""import sys
from PyQt5.QtWidgets import QApplication, QWidget
from PyQt5.QtGui import QIconclass Example(QWidget):def __init__(self):super().__init__()self.initUI() # 界面绘制交给InitUi方法def initUI(self):# 设置窗口的位置和大小self.setGeometry(300, 300, 300, 220)# 设置窗口的标题self.setWindowTitle('Icon')# 设置窗口的图标,引用当前目录下的web.png图片self.setWindowIcon(QIcon('timg.jpg'))# 显示窗口self.show()if __name__ == '__main__':# 创建应用程序和对象app = QApplication(sys.argv)ex = Example()sys.exit(app.exec_())
软件图标的ICON还是用带透明通道的png图为好
结果:
Python编程语言支持程序和面向对象编程风格。Pyqt5使用OOP编程。
面向对象编程有三个重要的方面:类、变量和方法。这里我们创建一个新的类为Examle。Example继承自QWidget类。
显示提示语
在下面的例子中我们显示一个提示语
#!/usr/bin/python3
# -*- coding: utf-8 -*-"""
Py40 PyQt5 tutorial This example shows a tooltip on
a window and a button.author: Jan Bodnar
website: py40.com
last edited: January 2015
"""import sys
from PyQt5.QtWidgets import (QWidget, QToolTip, QPushButton, QApplication)
from PyQt5.QtGui import QFont class Example(QWidget):def __init__(self):super().__init__()self.initUI()def initUI(self):#这种静态的方法设置一个用于显示工具提示的字体。我们使用10px滑体字体。QToolTip.setFont(QFont('SansSerif', 10))#创建一个提示,我们称之为settooltip()方法。我们可以使用丰富的文本格式self.setToolTip('This is a <b>QWidget</b> widget')#创建一个PushButton并为他设置一个tooltipbtn = QPushButton('Button', self)btn.setToolTip('This is a <b>QPushButton</b> widget')#btn.sizeHint()显示默认尺寸btn.resize(btn.sizeHint())#移动窗口的位置btn.move(50, 50) self.setGeometry(300, 300, 300, 200)self.setWindowTitle('Tooltips') self.show()if __name__ == '__main__':app = QApplication(sys.argv)ex = Example()sys.exit(app.exec_())
结果:
通过按钮关闭窗口
关闭一个窗口可以点击标题栏上的X。在下面的例子中,我们将展示我们如何通过编程来关闭窗口。
#!/usr/bin/python3
# -*- coding: utf-8 -*-"""
Py40 PyQt5 tutorialThis program creates a quit
button. When we press the button,
the application terminates.author: Jan Bodnar
website: py40.com
last edited: January 2015
"""import sys
from PyQt5.QtWidgets import QWidget, QPushButton, QApplication
from PyQt5.QtCore import QCoreApplicationclass Example(QWidget):def __init__(self):super().__init__()self.initUI()def initUI(self):self.setGeometry(300, 300, 250, 150)self.setWindowTitle('Quit button')qbtn = QPushButton('Quit、Quit、Quit\n退出、退出、退出', self)# Dontla 20200414 将按钮绑定退出?qbtn.clicked.connect(QCoreApplication.instance().quit)qbtn.resize(qbtn.sizeHint())qbtn.move(50, 50)self.show()if __name__ == '__main__':app = QApplication(sys.argv)ex = Example()sys.exit(app.exec_())
结果:
消息框(关闭窗口确认框)
默认情况下,如果我们单击x按钮窗口就关门了。有时我们想修改这个默认的行为。例如我们在编辑器中修改了一个文件,当关闭他的时候,我们显示一个消息框确认。
#!/usr/bin/python3
# -*- coding: utf-8 -*-"""
ZetCode PyQt5 tutorialThis program shows a confirmation
message box when we click on the close
button of the application window.author: Jan Bodnar
website: zetcode.com
last edited: January 2015
"""import sys
from PyQt5.QtWidgets import QWidget, QMessageBox, QApplicationclass Example(QWidget):def __init__(self):super().__init__()self.initUI()def initUI(self):self.setGeometry(300, 300, 250, 150)self.setWindowTitle('Message box')self.show()def closeEvent(self, event):# Dontla 20200414 最后一个参数是默认高亮的选择项reply = QMessageBox.question(self, 'Message',"Are you sure to quit?", QMessageBox.Yes |QMessageBox.No, QMessageBox.No)if reply == QMessageBox.Yes:event.accept()else:event.ignore()if __name__ == '__main__':app = QApplication(sys.argv)ex = Example()sys.exit(app.exec_())
结果:
我们关闭窗口的时候,触发了QCloseEvent。我们需要重写closeEvent()事件处理程序。
我们显示一个消息框,两个按钮:“是”和“不是”。第一个字符串出现在titlebar。第二个字符串消息对话框中显示的文本。第三个参数指定按钮的组合出现在对话框中。最后一个参数是默认按钮,这个是默认的按钮焦点。
我们处理返回值,如果单击Yes按钮,关闭小部件并终止应用程序。否则我们忽略关闭事件。
窗口显示在屏幕的中间【居中显示】
下面的脚本显示了如何在屏幕中心显示窗口。
#!/usr/bin/python3
# -*- coding: utf-8 -*-"""
Py40 PyQt5 tutorialThis program centers a window
on the screen.author: Jan Bodnar
website: py40.com
last edited: January 2015
"""import sys
from PyQt5.QtWidgets import QWidget, QDesktopWidget, QApplicationclass Example(QWidget):def __init__(self):super().__init__()self.initUI()def initUI(self):# Dontla 20200414 不像setGeometry()函数那样指定位置和长宽,这个只指定长宽self.resize(250, 150)self.center()self.setWindowTitle('Center')self.show()# 控制窗口显示在屏幕中心的方法def center(self):# 获得窗口qr = self.frameGeometry()# print(qr) # PyQt5.QtCore.QRect(0, 0, 249, 149)# 获得屏幕中心点cp = QDesktopWidget().availableGeometry().center()# print(cp) # PyQt5.QtCore.QPoint(682, 363)# 显示到屏幕中心qr.moveCenter(cp)# Dontla 20200414 不懂这句跟上面那句啥区别?意思?# self.move(qr.topLeft()) # origin# print(qr.topLeft()) # PyQt5.QtCore.QPoint(558, 289)if __name__ == '__main__':app = QApplication(sys.argv)ex = Example()sys.exit(app.exec_())
结果:
QtGui,QDesktopWidget类提供了用户的桌面信息,包括屏幕大小。
python PyQt5中文教程☞【第二节】PyQt5基本功能(创建窗口、应用程序图标、显示提示语、通过按钮关闭窗口、消息框(关闭窗口确认框)、窗口显示在屏幕中间【居中显示】)相关推荐
- visual basic VB.NET实例系列教程第二节(好玩又有趣的龟兔赛跑程序)
没有什么比时间更具有说服力了,因为时间无须通知我们就能改变一切.<活着>----余华 时间过得真快呀,马上又到一天的下午三点了,今天我们继续教程,今天我们学点简单又有趣的东西. 龟兔赛跑是 ...
- Webview--如何让加载进来的页面自适应手机屏幕分辨率居中显示
让Webview加载的页面居中显示有我知道的俩种方法 第一种: [java] WebSettings settings = webView.getSettings(); settings.setL ...
- java如何设置文本框提示_[Java教程]一个友好的文本框内显示提示语 jquery 插件
[Java教程]一个友好的文本框内显示提示语 jquery 插件 0 2014-08-08 18:01:25 插件实现文本框内默认显示提示语,当文本框获得焦点时提示语消失. 如果没有输入或输入为空则失 ...
- python PyQt5中文教程☞【第五节】PyQt5事件(Event)和信号(信号槽 Signals slots)
引用文章:http://code.py40.com/pyqt5/22.html 在这一部分的pyqt5教程中,我们将探讨PyQt5中的事件Event 文章目录 事件 Event 信号槽 Signals ...
- python PyQt5中文教程☞【第十节】PyQt5绘图(绘制文本drawText()、画点drawPoints()、设置颜色、QPen(画笔)绘制线条、QBrush(笔刷)绘制纹理
引用文章:http://code.py40.com/pyqt5/32.html 文章目录 绘制文本 画点 PyQt5颜色 QPen(画笔) QBrush(笔刷) 总结:一发现有事件触发就会更新QWid ...
- Python基础学习(第二节 下)
这里写目录标题 1.布尔值的相关运算符 (1)布尔值 (2)比较运算符 (3)逻辑运算符 (4)同一运算符 2.字符串 (1)字符串的基本特点 (2)字符串的创建和len( )函数 (3)转义字符 ( ...
- Python Scrapy中文教程,Scrapy框架快速入门!
谈起爬虫必然要提起 Scrapy 框架,因为它能够帮助提升爬虫的效率,从而更好地实现爬虫. Scrapy 是一个为了抓取网页数据.提取结构性数据而编写的应用框架,该框架是封装的,包含 request ...
- Python MoviePy中文教程导览及可执行音视频剪辑工具下载
☞ ░ 前往老猿Python博文目录 ░ <Python音视频剪辑库MoviePy1.0.3中文教程导览及可执行工具下载>是老猿两个关于moviepy的专栏<PyQt+moviepy ...
- Python编程基础:第二节 多重赋值Multiple Assignment
第二节 多重赋值Multiple Assignment 前言 取不同值的变量 取相同值的变量 前言 上一节中我们介绍了变量,通常情况下需要为每一个变量赋予相应的值,但是我们如果将每一个变量赋值都用一行 ...
最新文章
- 算法设计7—哈希表1
- js实现城市级联选择,二级选择
- jquery检测浏览器类型
- shell脚本自动备份MySQL数据库
- arcgis api 3.x for js 入门开发系列六地图分屏对比(附源码下载)
- 翻译练习:Hadoop概述
- dot全称_游戏dot是什么
- 单片机c语言 开方函数,单片机C语言求平方根函数
- 程序员心中的“女神”
- HTML5UI横向排列,5个实用的UI排版技巧,让你的作品更细致
- NanUI 无边框拖拽
- 【AiLearning】test2:搭建Shallow Netural Network
- 单亲家庭父子的理财通信
- 6.1儿童节,致我们回不去的童年
- EZo UIBuilder中嵌入微博分享按钮【实例】
- 张正友标定法实战-标定森云GMSL相机
- java实现最近搜索词条
- JavaScript实现加密与解密详解
- 【tio-websocket】6、tio-websocket-server使用ByteBuffer收发消息
- 最全RAID( RAID 0、RAID 1、RAID 5、RAID 10 ······) 以及它们的优缺点以及原理解析
热门文章
- java agent_GitHub - dingjs/javaagent: 基于javaagent开发的APM工具,收集方法的执行次数和执行时间,定时输出成json格式的日志。...
- java正则表达式对象_Java正则表达式之Pattern类
- 【ABAP】SAP供应商自定义决裁生成实现
- SAP-MM-移动类型解析之收货03--退货
- 【PP操作手册】成品入库和订单报工
- LSMW批处理使用方法(12)_步骤16、17
- WF(工作流)模块介绍
- TabHost 和 FragmentTabHost
- Webservice接口、Webservice例子
- html设置团偏跟着移动,雷阵雨云团向东偏南移动,北京两地将有强降雨+7级大风+冰雹!...