我有一个使用设置的 QML 应用程序。所以我创建了一个 python 槽来读取settings.toml, 并返回值。我已经正确设置了上下文属性,并且可以毫无问题地调用其他函数,而无需从 QML 获取返回值。
...
class Settings(QObject)
@pyqtSlot(str, str)
def getSettings(self, category, key):
try:
with open("settings.toml", "r") as settings:
toml_object = toml.load(settings)
return str(toml_object[category][key])
except FileNotFoundError:
self.settingsFileNotFound.emit()
except toml.TomlDecodeError:
self.settingsError.emit()
except BaseException:
self.fatalError.emit()
...
tomlsettings.看起来像这样。
...
[last-used-font-settings]
font = "Arial"
...
从 python 打印函数时,它按预期工作。
...
print(Settings.getSettings("last-used-font-settings", "font")) # Returns Arial
...
但是当从 qml 登录时:
...
Component.onCompleted: console.log(Settings.getSettings("last-used-font-settings", "font"))
/* Returns qml: undefined */
...
如何解决这个问题?我不太擅长创建 @pyqtProperty,但如果我设法创建一个,我绝对不想为每个值创建一个属性!
你看,信号不能用于此目的。:(
呼如林
相关分类