python的preference设置_在PyQ中实现preferences对话框窗口

使用QSettings。下面是PyQt5中的一个示例。在

首先,主窗口的ui定义# file ui_main.py

from PyQt5 import QtCore, QtWidgets

class Ui_MainWindow(object):

def setupUi(self, MainWindow):

MainWindow.setObjectName("MainWindow")

MainWindow.resize(584, 897)

self.menubar = QtWidgets.QMenuBar(MainWindow)

self.menubar.setGeometry(QtCore.QRect(0, 0, 584, 21))

self.menubar.setObjectName("menubar")

self.menuPreferences = QtWidgets.QMenu(self.menubar)

self.menuPreferences.setObjectName("menuPreferences")

MainWindow.setMenuBar(self.menubar)

self.setPreferencesAction = QtWidgets.QAction(MainWindow)

self.setPreferencesAction.setObjectName("setPreferencesAction")

self.menuPreferences.addAction(self.setPreferencesAction)

self.menubar.addAction(self.menuPreferences.menuAction())

self.retranslateUi(MainWindow)

QtCore.QMetaObject.connectSlotsByName(MainWindow)

def retranslateUi(self, MainWindow):

_translate = QtCore.QCoreApplication.translate

MainWindow.setWindowTitle(_translate("MainWindow", "MainWindow"))

self.menuPreferences.setTitle(_translate("MainWindow", "Settings"))

self.setPreferencesAction.setText(_translate("MainWindow", "Preferences"))

第二,首选项对话框ui定义:

^{pr2}$

MainWindow跟踪QSettings对象中的配置,该对象使用传入其构造函数的application和company字符串进行唯一定义(和访问)。在# file main.py

class MainWindow(QMainWindow):

def __init__(self, parent=None):

super(MainWindow, self).__init__(parent)

self.settings = QSettings(COMPANY_NAME, APPLICATION_NAME)

self.ui = Ui_MainWindow()

self.ui.setupUi(self)

当触发“首选项”对话框时,settings将被加载并传递给PreferencesDialog。如果对话框成功返回,新设置将被保存并使用del写入存储器@pyqtSlot(bool)

def on_setPreferencesAction_triggered(self, triggered):

settings = self.settings

default_config_value = settings.value(CONFIG_KEY_1, defaultValue=None, type=str)

preference_dialog = PreferencesDialog(default_config_value=default_config_value, parent=self)

if preference_dialog.exec():

settings.setValue(CONFIG_KEY_1, preference_dialog.preferences[CONFIG_KEY_1])

# this writes the settings to storage

del settings

PreferencesDialog构造函数根据它接收到的参数设置值,并将一个pyqtSlot附加到适当的signal以将值保存在字典中。在

要运行演示:if __name__ == '__main__':

import sys

app = QApplication(sys.argv)

window = MainWindow()

window.show()

sys.exit(app.exec_())

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值