PyQt5的基本用法

创建一个pyqt5应用程序

使用了PyQt5中的QtWidgets模块
  • 基本控件位于pyqt5.qtwidgets模块中。
from PyQt5.QtWidgets import QApplication, QWidget
  • 每一个pyqt5应用程序必须创建一个应用程序对象。sys.argv参数是一个列表,sys.argv就是运行程序时候获取命令行参数。
app = QApplication(sys.argv)
  • QWidget部件是pyqt5所有用户界面对象的基类,它为QWidget提供默认构造函数,默认构造函数没有父类。
w = QWidget()
  • resize()方法调整窗口的大小。
w.resize(300, 300)	# 宽x高
  • move()方法移动窗口在屏幕上的位置。
w.move(300, 300)	# 坐标
  • setWindowTitle(“Simple”)设置窗口的标题为Simple
w.setWindowTitle("Simple")
  • show()显示在屏幕上
w.show()
  • app.exet_()是指程序一直循环运行直到主窗口被关闭终止进程(如果没有这句话,程序运行时会一闪而过)
  • 其实我感觉这个sys.exit()其实没什么作用,他其实就是用来反映程序终止的状态的,在它有父进程的情况下最好有这个sys.exit()通过她的返回值可以判断子进程的状态。而在没有子进程的程序中,其实sys.exit(app.exec_())和app.exec_()效果是一样的。

设置应用程序的图标

使用的是PyQt5.QtGui模块
  • 首先建立一个类,继承所有用户界面的基类QWidget:
class Example(QWidget):
	def __init__(self):
		# super()调用父类QWidget的方法
		super().__init__()
		# 把绘制界面的任务交给initUI方法
		self.initUI()
	def initUI(self):
		# 设置窗口的位置和大小
		self.setGeometry(300, 300, 300, 300)
		# 设置窗口图标,引用当前目录下的web.png图片
		self.setWindowIcon(QIcon("web.png"))
		# 显示窗口
		self.show()
  • setGeometry(a,b,c,d)方法设置窗口的位置和大小
  • setWindowIcon()方法用来设置程序图标,它需要一个QIcon类型的对象作为参数。调用QIcon构造函数时,我们需要提供要显示的图标的路径(相对或绝对路径)。同时注意:使用QIcon类型必须导入此模块from PyQt5.QtGui import QIcon

显示提示语

  • 使用静态的方法设置一个用于显示工具提示的字体。
QToolTip.setFont(QFont("SansSerif", 10))
  • 创建一个按钮PushButton并为他设置一个tooltip
  • 创建一个提示,我们称之为setToolTip()方法,在此我们使用的是富文本格式
from PyQt5.QtWidgets import QPushButton
btn = QPushButton('Button', self)
btn.setToolTip('This is a <b>QPushButton</b> widget')
# btn.sizeHint()显示默认尺寸
btn.resize(btn.sizeHint())

关闭窗口

使用的PyQt5的QtCore模块
  • 通过编程来关闭窗口
  • 先创建一个按钮QPushButton
  • 单击按钮关闭窗口
from PyQt5.QtCore import QCoreApplication
qbtn = QPushButton("Quit", self)
qbtn.cliked.connect(QCoreApplication.instance().quit)

PyQt5使用的是OPP编程

  • 面向对象的编程有三个重要的方面:类、变量和方法。上面我们创建一个新的类Example,Example继承自QWidget类。

消息框

  • 当我们关闭窗口的时候会弹出一个提示信息让你确认是否关闭
  • 使用了QtWidgets中的QMessageBox方法
  • 在写的Example类中重写父类的closeEvent方法:
def closeEvent(self, event):
	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()        

窗口显示在屏幕的中间

  • 下面的脚本显示了如何在屏幕中心显示窗口
#!/usr/bin/python3
# -*- coding: utf-8 -*-

"""
Py40 PyQt5 tutorial 

This 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, QApplication

class Example(QWidget):
    def __init__(self):
        super().__init__()
        self.initUI()
        
    def initUI(self): 
        self.resize(250, 150)
        self.center()
        self.setWindowTitle('Center')    
        self.show()
        
    #控制窗口显示在屏幕中心的方法    
    def center(self):
        #获得窗口
        qr = self.frameGeometry()
        #获得屏幕中心点
        cp = QDesktopWidget().availableGeometry().center()
        #显示到屏幕中心
        qr.moveCenter(cp)
        self.move(qr.topLeft())
        
if __name__ == '__main__':
    
    app = QApplication(sys.argv)
    ex = Example()
    sys.exit(app.exec_())  
  • QtGui,QDesktopWidget类提供了用户的桌面信息,包括屏幕大小。
  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值