此总结主要参考下面这篇文章:PyQt5基本功能
文中出现的self均默认继承了QWidget的类,改为继承QMainWindow类也是可以的
import sys
from PyQt5.QtWidgets import QApplication, QWidget
#导入必要的相关库
if __name__ == '__main__':
w = QWidget()
w.show()
app = QApplication(sys.argv)
sys.exit(app.exec_())
除了上面这种,还可以用OOP编程
import sys
from PyQt5.QtWidgets import QApplication, QWidget
class Example(QWidget):
def __init__(self):
super().__init__()
self.initUI()
def initUI(self):
self.show()
if __name__ == '__main__':
app = QApplication(sys.argv)
ex = Example()
sys.exit(app.exec_())
#这里假设前面已经声明继承了QWidget的类
self.resize(width,length)
self.move(x,y) # 左上角为(0,0)点
self.setGeometry(x,y,width,length)
self.setWindowTitle('window_title')
resize & move 和 setGeometry的区别参见下图:
resize和setGeometry的对应功能是一致的,move与对应的不同
from PyQt5.QtWidgets import QToolTip
from PyQt5.Gui import QFont, QIcon
#这里只导入与这部分内容直接相关的库
#程序图标
self.setWindowIcon(QIcon(image.path))#如果是在当前文件夹下,只需填入文件名即可
#字体/字号
QToolTip.setFont(QFont('SansSerif',10))
#提示语
self.setToolTip('sldfjlj')#这里可以使用丰富的文本格式包括HTML
from PyQt5.QtWidgets import QPushButton
btn = QPushButton('Button_name',self)
btn.resize(btn.sizeHint()) #默认尺寸
btn.move(50,50)
btn.setToolTip('')
from PyQt5.QtCore import QCoreApplication
btn.clicked.connect(QCoreApplication.instance().quit)
from PyQt5.QtWidgets import QMessageBox
#这里的closeEvent是一个已经存在的函数,由点击右上角的‘X’触发,这里是把这个函数进行修改
#所以在自己编写的程序里往往是看不到对这个函数的调用的,这个与下面一部分内容的示例是不同的
def closeEvent(self, event):
reply = QMessageBox.question(self,'Message',"Are you sure to quit?", QMessageBox.Yes | QMessageBox.No, QMessageBox.No)
#第一个参数是title,第二个参数是显示的问题,第三个参数是指定按钮的组合出现在对话框中,最后一个参数是默认按钮,就是对话框出现后敲回车执行的按钮
#目前来看后两个参数是只能这样写而不能写成别的形式的,首字母甚至不能是小写形式,感觉应该是可以改的
if reply == QMessageBox.Yes:
event.accept()
else:
event.ignore()
btn.clicked.connect(self.msg)
#显示问题
def msg(self):
reply = QMessageBox.question(self,'Message',"Are you sure to quit?", QMessageBox.Yes|QMessageBox.No, QMessageBox.No)
#显示信息
def msg(self):
reply = QMessageBox.information(self,'信息提示框',"ok, 弹出测试信息")
from PyQt5.QtWidgets import QDesktopWidget
self.center()
def center(self):
#获得窗口
qr = self.frameGeometry()
#获得屏幕中心点
cp = QDesktopWidget().availableGeometry().center()
#显示到屏幕中心
qr.moveCenter(cp)
self.move(qr.topLeft())
# -*- coding: utf-8 -*-
import sys
from PyQt5.QtWidgets import (QWidget, QToolTip, QPushButton, QApplication, QMessageBox, QDesktopWidget)
from PyQt5.QtGui import QFont,QIcon
from PyQt5.QtCore import QCoreApplication
class Example(QWidget):
def __init__(self):
super().__init__()
self.initUI()
def initUI(self):
QToolTip.setFont(QFont('SansSerif',10))
self.setToolTip('这是一个 QWidget 部件')
btn = QPushButton('退出', self)
btn.setToolTip('这是一个 QPushButton 部件')
# default size
btn.resize(btn.sizeHint())
btn.move(50, 50)
btn.clicked.connect(QCoreApplication.instance().quit)
self.setGeometry(300,300,300,200)
self.center()
self.setWindowTitle('tooltips')
self.setWindowIcon(QIcon('web.jpg'))
self.show()
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()
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_())