在应用PyQt5设计GUI界面时,经常会遇到输入或选择多个参数的问题,把它写到一个窗体中,会显得主窗体很臃肿。所以一般是添加一个按钮,调用对话框,将这些参数选择放入弹出的对话框中,关闭对话框时将参数值返回给主窗体。实现方法是应用PyQt5中 PyQt5.QtWidgets中QDialog类。其中PyQt5内部实现了一些诸如QInputDialog等标准对话框,这些标准对话框都继承自QDialog。在另一些情况我们需要自己写一些自定义对话框并将对话框中的某些值传送到主窗口内。
例如,我在工程中需要通过对话框设置文件的路径并将参数传送到主窗口,可以选择内置的QInputDialog直接输入路径传送,也可以选择QFileDialog调用文件对话框选择文件直接返回文件绝对路径。在实际使用中我们常把这两种结合在一起使用。功能为打开一自定义对话框,可点击按钮调用QfileDialog调用文件对话框选择文件,文件路径返回到文本框上显示并传递到主窗口,也可通过再文本框内直接输入文件绝对路径。
class DbPathDialog(QDialog, Ui_dbpathDialog):
def __init__(self, parent=None):
super().__init__(parent)
self.setupUi(self) # 窗口界面
self.openfileButton.clicked.connect(self.set_db_path) # 定义了一个openfileButton 点击时将信号发送到self.set_db_path槽函数
self.filename = os.path.join(os.getcwd(), 'Setting.db') # 定义了一个文件的默认地址
if not os.path.exists(self.filename