当前位置:   article > 正文

PyQt5的基本用法_pyqt5的用法

pyqt5的用法

创建一个pyqt5应用程序

使用了PyQt5中的QtWidgets模块
  • 基本控件位于pyqt5.qtwidgets模块中。
from PyQt5.QtWidgets import QApplication, QWidget
  • 1
  • 每一个pyqt5应用程序必须创建一个应用程序对象。sys.argv参数是一个列表,sys.argv就是运行程序时候获取命令行参数。
app = QApplication(sys.argv)
  • 1
  • QWidget部件是pyqt5所有用户界面对象的基类,它为QWidget提供默认构造函数,默认构造函数没有父类。
w = QWidget()
  • 1
  • resize()方法调整窗口的大小。
w.resize(300, 300)	# 宽x高
  • 1
  • move()方法移动窗口在屏幕上的位置。
w.move(300, 300)	# 坐标
  • 1
  • setWindowTitle(“Simple”)设置窗口的标题为Simple
w.setWindowTitle("Simple")
  • 1
  • show()显示在屏幕上
w.show()
  • 1
  • 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()
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • setGeometry(a,b,c,d)方法设置窗口的位置和大小
  • setWindowIcon()方法用来设置程序图标,它需要一个QIcon类型的对象作为参数。调用QIcon构造函数时,我们需要提供要显示的图标的路径(相对或绝对路径)。同时注意:使用QIcon类型必须导入此模块from PyQt5.QtGui import QIcon

显示提示语

  • 使用静态的方法设置一个用于显示工具提示的字体。
QToolTip.setFont(QFont("SansSerif", 10))
  • 1
  • 创建一个按钮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())
  • 1
  • 2
  • 3
  • 4
  • 5

关闭窗口

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

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()        
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6

窗口显示在屏幕的中间

  • 下面的脚本显示了如何在屏幕中心显示窗口
#!/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_())  
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41
  • 42
  • 43
  • QtGui,QDesktopWidget类提供了用户的桌面信息,包括屏幕大小。
声明:本文内容由网友自发贡献,转载请注明出处:【wpsshop博客】
推荐阅读
相关标签
  

闽ICP备14008679号