使用Pyqt开发界面软件,自然会用到Qt Designer进行界面设计,然后保存为 .ui 文件。但是在 Python 代码里面如何使用这些 .ui 文件呢,界面设计中的功能又怎么实现呢。这时候就需要用到self.button.clicked.connect(self.click)
self.button.clicked.connect(self.click) 是一个将信号与槽链接的方法(method),它的作用是在点击 button 时,执行(self.click)里的方法。
例如:
在Qt Designer进行界面设计时安,设计一个打开文件的按钮,具体实现:
class Stats:
def __init__(self):
# 从文件中加载UI定义
qfile_stats = QFile("ui/stats.ui")
# 调用了 open 方法并传递 QFile.ReadOnly 参数来以只读模式打开文件
qfile_stats.open(QFile.ReadOnly)
qfile_stats.close()
# 初始化界面
# 从 UI 定义中动态 创建一个相应的窗口对象
self.ui = QUiLoader().load(qfile_stats)
# 模型训练
# 导入训练的数据集文件
# pushButton为Qt Designer 中按钮的属性名
# choose_file为方法名
self.ui.pushButton.clicked.connect(self.choose_file)
# 选择模型保存地址
self.ui.pushButton_2.clicked.connect(self.save_model)
# 训练按钮设置
self.ui.pushButton_3.clicked.connect(self.train_net)
# 训练结果生成图
self.ui.pushButton_7.clicked.connect(self.train_result)
def choose_file(self):
get_directory_path = QFileDialog.getExistingDirectory(self.ui,
"选取指定文件夹",
"C:/")
# 清除text文本展示
dir_choose_sdf = get_directory_path
self.ui.textEdit_12.clear()
# 显示加载成功的信息
self.ui.textEdit_12.append(f'加载训练数据集文件夹地址成功,地址为:{dir_choose_sdf}')
# 选择模型文件保存地址
def save_model(self):
global dir_save_file2
dir_save_file2 = QFileDialog.getExistingDirectory(self.ui,
"选取模型文件保存地址",
"/") # 起始路径
# 清除展示信息区
self.ui.textEdit_3.clear()
# 显示选取保存的地址
self.ui.textEdit_3.append(f'选择模型文件保存的地址为:{dir_save_file2}')
app = QApplication([])
stats = Stats()
# 展示窗口
stats.ui.show()
app.exec_()