先安装插件扩展:
pip install PyQt5
pip instqll PyQt5-tools
然后引入包
from PyQt5 import QtWidgets
from PyQt5.QtWidgets import QApplication, QMainWindow, QMessageBox
import sys
定义一个主窗口类
# 窗口函数
class MyWindow(QMainWindow):
def __init__(self):
super(MyWindow, self).__init__()
self.setGeometry(200, 250, 500, 250) # 申明一个x坐标200 x坐标250 宽500 高250 的窗口
self.setWindowTitle("一个窗口") # 窗口标题
self.initUI()
添加UI控件
# UI入口
def initUI(self):
# 创建label
self.label = QtWidgets.QLabel(self)
self.label.setText("这是一个Label!")
self.label.move(50, 50) # 定位坐标 x, y
# 创建按钮1
self.b1 = QtWidgets.QPushButton(self)
self.b1.setText("按钮1")
self.b1.move(100, 100)
self.b1.clicked.connect(self.clicked) # 按钮点击执行函数
# 创建一个按钮2
self.b2 = QtWidgets.QPushButton(self)
self.b2.setText("按钮2")
self.b2.move(250, 100)
self.b2.clicked.connect(self.showMsgBox)
按钮点击事件
# 按钮1点击
def clicked(self):
self.label.setText("点击按钮后我被改变了")
self.update()
# 更新label宽度
def update(self):
self.label.adjustSize()
# 消息弹窗
def showMsgBox(self):
msg = QMessageBox()
msg.setWindowTitle("弹窗提示") # 弹窗标题
msg.setText("这是一个消息弹窗") # 弹窗内容
msg.setIcon(QMessageBox.Information) # 弹窗图标
x = msg.exec_() # 弹窗关闭
最后再初始化窗口
# 初始化窗口
def window():
app = QApplication(sys.argv)
win = MyWindow()
win.show()
sys.exit(app.exec_())
window()
完整代码列表
# coding=utf-8
from PyQt5 import QtWidgets
from PyQt5.QtWidgets import QApplication, QMainWindow, QMessageBox
import sys
# 窗口函数
class MyWindow(QMainWindow):
def __init__(self):
super(MyWindow, self).__init__()
self.setGeometry(200, 250, 500, 250) # 申明一个x坐标200 x坐标250 宽500 高250 的窗口
self.setWindowTitle("一个窗口") # 窗口标题
self.initUI()
# UI入口
def initUI(self):
# 创建label
self.label = QtWidgets.QLabel(self)
self.label.setText("这是一个Label!")
self.label.move(50, 50) # 定位坐标 x, y
# 创建按钮1
self.b1 = QtWidgets.QPushButton(self)
self.b1.setText("按钮1")
self.b1.move(100, 100)
self.b1.clicked.connect(self.clicked) # 按钮点击执行函数
# 创建一个按钮2
self.b2 = QtWidgets.QPushButton(self)
self.b2.setText("按钮2")
self.b2.move(250, 100)
self.b2.clicked.connect(self.showMsgBox)
# 按钮1点击
def clicked(self):
self.label.setText("点击按钮后我被改变了")
self.update()
# 更新label宽度
def update(self):
self.label.adjustSize()
# 消息弹窗
def showMsgBox(self):
msg = QMessageBox()
msg.setWindowTitle("弹窗提示") # 弹窗标题
msg.setText("这是一个消息弹窗") # 弹窗内容
msg.setIcon(QMessageBox.Information) # 弹窗图标
x = msg.exec_() # 弹窗关闭
# 初始化窗口
def window():
app = QApplication(sys.argv)
win = MyWindow()
win.show()
sys.exit(app.exec_())
window()