Я пытаюсь сохранить данные приложения и "организации", указанные c, и решил использовать класс QSettings
. В целом все работает хорошо, однако я обнаружил, что не могу сохранить в реестре HKEY_LOCAL_MACHINE
, который является местоположением для QSettings
, когда для области QSettings
установлено System. Я сделал урезанное приложение, чтобы попытаться сохранить его во всех четырех местах, описанных ниже.
application_user_settings
и company_user_settings
сохраняются в правильном месте, но application_system_settings
и company_system_settings
не сохраняются вообще. Кроме того, в приведенном ниже сценарии я распечатал QSettings
fileName
для каждого экземпляра, и они распечатали ожидаемые пути.
Я подумал, что это может быть проблема с привилегиями администратора, поэтому я снова открыл Pycharm, IDE, которую я использую, и запустил ее как администратор, который должен запускать все файлы python как администратор. Даже после этого у меня все та же проблема.
Кто-нибудь знает, почему QSettings
неправильно сохраняет в области системы?
import sys
from PySide2.QtWidgets import QApplication, QMainWindow
from PySide2.QtCore import QSettings
app = QApplication(sys.argv)
window = QMainWindow()
window.show()
application_user_settings = QSettings('Company_Name', 'Application_Name')
application_user_settings.setValue('bruh_user', 1.0)
print(application_user_settings.fileName()) # \HKEY_CURRENT_USER\Software\Company_Name\Application_Name
company_user_settings = QSettings('Company_Name')
company_user_settings.setValue('bruh_user', 1.0)
print(company_user_settings.fileName()) # \HKEY_CURRENT_USER\Software\Company_Name\OrganizationDefaults
application_system_settings = QSettings(QSettings.SystemScope, 'Company_Name', 'Application_Name')
application_system_settings.setValue('bruh_system', 2.0)
print(application_system_settings.fileName()) # \HKEY_LOCAL_MACHINE\Software\Company_Name\Application_Name
company_system_settings = QSettings(QSettings.SystemScope, 'Company_Name')
company_system_settings.setValue('bruh_system', 2.0)
print(company_system_settings.fileName()) # \HKEY_LOCAL_MACHINE\Software\Company_Name\OrganizationDefaults
app.exec_()
HKEY_CURRENT_USER \ SOFTWARE
![enter image description here](https://i.stack.imgur.com/H6NpZ.png)
HKEY_LOCAL_MACHINE \ SOFTWARE
![enter image description here](https://i.stack.imgur.com/WKIpN.png)