我试图使用Qt设计器中设计的一个接口,让用户编辑程序的首选项。在
我当前可以通过将以下功能连接到“首选项”菜单选项来显示我制作的GUI:
def preferences(self):
preferences_dialog = QtGui.QDialog()
preferences_dialog.ui = Ui_Preferences()
preferences_dialog.ui.setupUi(preferences_dialog)
preferences_dialog.setAttribute(QtCore.Qt.WA_DeleteOnClose)
preferences_dialog.exec_()
我的问题是:实现这个功能的好方法是什么,这样我就可以使用GUI中的字段来更改配置文件中的值?在
我还希望在更改之前显示框中预先存在的值。在
我是否应该创建一个新的类来使用上面的函数作为它的\uu init\uu方法?我想我可能需要一个类来处理窗口的所有进程。另外,我不确定是否有一个好的方法在文件和GUI之间传递数据,而不需要一堆特定的代码。在
使用QSettings。下面是PyQt5中的一个示例。在
首先,主窗口的ui定义
第二,首选项对话框ui定义:
^{pr2}$MainWindow
跟踪QSettings
对象中的配置,该对象使用传入其构造函数的application
和company
字符串进行唯一定义(和访问)。在当触发“首选项”对话框时,
settings
将被加载并传递给PreferencesDialog
。如果对话框成功返回,新设置将被保存并使用del
写入存储器PreferencesDialog
构造函数根据它接收到的参数设置值,并将一个pyqtSlot
附加到适当的signal
以将值保存在字典中。在要运行演示:
相关问题 更多 >
编程相关推荐