PyQt5-快速上手笔记-01
窗口
import sys
from PyQt5.QtWidgets import QApplication, QWidget
from PyQt5.QtGui import QIcon
class Example(QWidget):
def __init__(self):
super().__init__()
self.image = "./data/web.webp"
self.initUI()
def initUI(self):
self.setGeometry(300, 300, 300, 220)
self.setWindowTitle("Icon")
self.setWindowIcon(QIcon(self.image))
self.show()
if __name__ == "__main__":
app = QApplication(sys.argv)
ex = Example()
sys.exit(app.exec_())
按钮
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):
QToolTip.setFont(QFont("SimSun", 10)) # 设置提示框的字体
self.setToolTip("这是一个<b>窗口</b>")
btn = QPushButton("Button", self)
btn.setToolTip("这是一个<b>按键</>")
btn.resize(btn.sizeHint())
btn.move(50, 50)
self.setGeometry(300, 300, 300, 200)
self.setWindowTitle("提示框")
self.show()
关闭按钮
from PyQt5.QtWidgets import QWidget, QPushButton
from PyQt5.QtCore import QCoreApplication
class myWidget(QWidget):
def __init__(self):
super().__init__()
self.init_ui()
def init_ui(self):
qbtn = QPushButton("关闭", self)
qbtn.clicked.connect(QCoreApplication.instance().quit)
# 修改qbtn的style
qbtn.resize(qbtn.sizeHint())
qbtn.move(50, 50)
# 设置整个框架的形式
self.setGeometry(300, 300, 250, 150)
self.setWindowTitle("退出按键")
self.show()
消息盒子
from PyQt5.QtWidgets import QWidget, QMessageBox
class myWidget(QWidget):
def __init__(self):
super().__init__()
self.init_ui()
def init_ui(self):
self.setGeometry(300, 300, 250, 150)
self.setWindowTitle("文本框")
self.show()
def closeEvent(self, event):
reply = QMessageBox.question(self, "Message",
"你确认要退出嘛?",
QMessageBox.Yes|QMessageBox.No, QMessageBox.No)
if reply == QMessageBox.Yes :
event.accept()
else:
event.ignore()
如果关闭QWidget,就会产生一个QCloseEvent,并且把它传入到closeEvent函数的event参数中。改变控件的默认行为,就是替换掉默认的事件处理。
我们创建了一个消息框,上面有俩按钮:Yes和No.第一个字符串显示在消息框的标题栏,第二个字符串显示在对话框,第三个参数是消息框的俩按钮,最后一个参数是默认按钮,这个按钮是默认选中的。返回值在变量reply里
消息盒子
QtGui.QDesktopWidget提供了用户的桌面信息,包括屏幕的大小。
cp = QDesktopWidget().availableGeometry().center()
获取显示器的分辨率,然后返回屏幕中心的位置
self.move(qr.topLeft())
然后通过move函数把主窗口的左上角移动到其框架的左上角,这样就把窗口居中了。
from PyQt5.QtWidgets import QWidget, QDesktopWidget
class myWidget(QWidget):
def __init__(self):
super().__init__()
self.init_ui()
def init_ui(self):
# 设置整个窗口
self.resize(250, 150)
self.center()
self.setWindowTitle("居中窗口")
self.show()
def center(self):
qr = self.frameGeometry()
cp = QDesktopWidget().availableGeometry().center()
qr.moveCenter(cp)
self.move(qr.topLeft())