安装PyQt6
pip install pyqt6
pip install pyqt6-tools
可以对编辑的窗口进行预览。
用Qt Designer设计第一个应用程序
安装好程序后,会安装上PyQt6相应的工具,如果安装在conda
的base
环境中,designer.exe
在相应的目录,一般都会加入到环境变量,所以不用考虑安装路径。
在powershell中运行:
designer.exe
就可以调出Qt的界面设计器,如果经历过VB,VC,对这个界面应该非常熟悉,直接拖动到窗口就实现界面的初步设计。比如:保存为windows.ui
运行
pyuic6.exe -x .windows.ui -o windows_ui.py
把ui转成py文件。代码如下:
from PyQt6 import QtCore, QtGui, QtWidgets
class Ui_Form(object):
def setupUi(self, Form):
Form.setObjectName("Form")
Form.resize(400, 300)
self.pushButton = QtWidgets.QPushButton(parent=Form)
self.pushButton.setGeometry(QtCore.QRect(20, 90, 75, 23))
self.pushButton.setObjectName("pushButton")
self.pushButton_2 = QtWidgets.QPushButton(parent=Form)
self.pushButton_2.setGeometry(QtCore.QRect(110, 90, 75, 23))
self.pushButton_2.setObjectName("pushButton_2")
self.retranslateUi(Form)
QtCore.QMetaObject.connectSlotsByName(Form)
def retranslateUi(self, Form):
_translate = QtCore.QCoreApplication.translate
Form.setWindowTitle(_translate("Form", "第一个Qt程序"))
self.pushButton.setText(_translate("Form", "PushButton"))
self.pushButton_2.setText(_translate("Form", "PushButton"))
if __name__ == "__main__":
import sys
app = QtWidgets.QApplication(sys.argv)
Form = QtWidgets.QWidget()
ui = Ui_Form()
ui.setupUi(Form)
Form.show()
sys.exit(app.exec())
运行代码,得到:
另一种加载的方式
在代码中直接调用UI的py文件,也实现相同的功能。
from PyQt6.QtWidgets import QApplication, QWidget
from windows_ui import Ui_Form
import sys
class Window(QWidget):
def __init__(self):
super().__init__()
self.ui = Ui_Form()
self.ui.setupUi(self)
self.setWindowTitle("我的UI")
app = QApplication(sys.argv)
window = Window()
window.show()
sys.exit(app.exec())
第三种直接调用ui文件
from PyQt6.QtWidgets import QApplication, QWidget
from PyQt6 import uic
import sys
class UI(QWidget):
def __init__(self):
super().__init__()
uic.loadUi("windows.ui",self)
app = QApplication(sys.argv)
window = UI()
window.show()
sys.exit(app.exec())
QPushButton例子
from PyQt6.QtWidgets import QApplication, QWidget,QPushButton,QMenu
from PyQt6 import uic
from PyQt6.QtGui import QIcon, QFont#,QSiz
from PyQt6.QtCore import QSize
import sys,PyQt6
class Window(QWidget):
def __init__(self):
super().__init__()
self.setWindowIcon(PyQt6.QtGui.QIcon("logo.jpg"))
self.resize(600, 400)
btn = QPushButton("点击",self)
#uic.loadUi("windows.ui",self)
self.setWindowTitle("我的PushButton按钮")
btn.setGeometry(100,100,130,130)
btn.setFont(QFont("Times",14))
btn.setIcon(QIcon("logo.jpg"))
btn.setIconSize(QSize(36,36))
menu = QMenu()
menu.setFont(QFont("Times",16))
menu.setStyleSheet('background-color:red')
menu.addAction("复制")
menu.addAction("剪切")
menu.addAction("粘贴")
btn.setMenu(menu)
app = QApplication(sys.argv)
window = Window()
window.show()
sys.exit(app.exec())