PyQt5的开发环境配置完成之后,开始编写第一个PyQt5的程序。
方法一:使用将.ui转换成.py文件的方法
import sys
from FirstPyQt import Ui_MainWindow
from PyQt5.QtWidgets import *#QtCore,QtGui,QtWidgets
# from QtTest import Ui_MainWindow#导入QtTest.py中的Ui_MainWindow界面类 这个和FirstPyQt一次性只能使用一个哦,因为父类相同
#类似qt里面的拖控件
# class MyMainWindow(QMainWindow,Ui_MainWindow):
# def __init__(self,parent=None):
# super(MyMainWindow,self).__init__(parent)#初始化父类
# self.setupUi(self)
# self.pushButton.clicked.connect(self.button_clicked)
#
# def button_clicked(self):
# self.label.setText("button clicked...")
#此方法 不用.ui转换成.py,类似qt里面的写在代码里面的
class MainWindow(QMainWindow):
def __init__(self):
super().__init__()
self.setWindowTitle("信号与槽示例")
# 创建一个按钮
button = QPushButton("点击我", self)
button.setStyleSheet('color:red;background-color:green;font-size:22pt')
# 将按钮的 clicked 信号连接到自定义槽函数
button.clicked.connect(self.button_clicked)
# 设置按钮为中央控件
self.setCentralWidget(button)
def button_clicked(self):
# 按钮点击后执行的操作
print("按钮被点击!")
#类似qt里面的拖控件
class MyFirstUi(QMainWindow,Ui_MainWindow):
def __init__(self,parent=None):
super(MyFirstUi,self).__init__(parent)#初始化父类
self.setupUi(self)
self.pushButton.clicked.connect(self.button_clicked)
def button_clicked(self):
self.textEdit.append("button clicked...")
# 按间距中的绿色按钮以运行脚本。
# 它检查当前模块是否作为主程序运行,这样可以确保代码的可复用性和可测试性。
if __name__ == '__main__':
app = QApplication(sys.argv)
# ui = FirstPyQt.Ui_MainWindow()
# widget = MyMainWindow()#QtWidgets.QWidget()
widget = MyFirstUi()#MyMainWindow()#MainWindow()
#调自定义的界面
widget.resize(800,600)
# widget.setWindowTitle("hello,pyqt5,第一个基于pyqt5的程序")
# 显示窗口,并释放资源
widget.show()
sys.exit(app.exec())#用于启动应用程序的主事件循环并确保应用程序在退出时正确清理资源。
实现了基础的信号槽,界面显示。
使用qt designer.exe编辑ui界面,通过PyUIC,实现将.ui文件转换成.py文件,也可以使用命令
pyuic5.exe -o xxx.ui xxx.py
。在使用命令的时候,一定注意路径,或者直接在pycharm中的终端里面输入以上命令,即可完成转换。
需要使用哪个.py,参考以上代码,直接import即可。
方法二:直接使用.ui文件。
导入 from PyQt5.uic import loadUi
import sys
try:
from PyQt5.QtWidgets import QApplication, QWidget,QMainWindow
from PyQt5.uic import loadUi
print("PyQt5 installed successfully")
except ImportError as e:
print(f"Error: {e}")
# import FirstPyQt
class MyFirstUi(QMainWindow):
def __del__(self):
print('python 析构函数~')
def __init__(self):
# super().__init__()
super(MyFirstUi, self).__init__()
try:
loadUi('FirstPyQt.ui',self)#加载.ui文件
print("ui loaded successfully")
except Exception as e:#as 关键字用于将捕获的异常绑定到一个变量
print(f"Error loading UI:{e}")
raise#用于手动引发异常,可以在代码中抛出指定的异常,以便在更高层次的代码中处理。
self.show()
# 检查 pushButton 是否存在
if hasattr(self, 'pushButton'):
print("pushButton found")
self.pushButton.clicked.connect(self.on_button_click)
else:
print("pushButton not found")
#注意:其实.ui文件中是有这些内容的,但是我self.不出来里面的控件,只有去.ui文件里查看有哪些控件了,控件的使用方法,只有靠自己查找qt creator的帮助、百度或者平时记录一些常用的方法和函数了
#但是将.ui文件转换为.py文件,就可以self.出来相应的控件及其函数
def on_button_click(self):
print("Button clicked!")
self.textEdit.append('Button clicked~~~~')
self.textEdit.setStyleSheet('background-color:blue;')
if __name__ == "__main__":
app = QApplication(sys.argv)
window = MyFirstUi()
window.show()
sys.exit(app.exec())