[英]Python PyQt4 .setText refusing variables?
我会说我对Python相当满意,但是创建GUI对我来说是一个新概念。 我已经使用Qt Creator来格式化GUI,并使用pyuic来转换来自file.ui的代码。
我已经将大多数GUI编码了,但是在更新行编辑,按钮等标签的文本时遇到了这个问题。因此,该GUI具有从主程序打开的选项窗口,用户可以在其中指定某些参数。 当前,我打开选项,设置值,关闭,重新打开选项窗口,并且文本尚未更改为变量的新值。 纯字符串确实可以工作。 仅当程序重新启动时,变量才会“粘住”。
我正在导入config.py文件,其中有一个包含参数字符串的变量。 它们被格式化并与所有其他标签等一起设置。但是由于某种原因未设置。
config.py
configAttrs="clientid,oauth,123,source,123"
mainProgram.py的嵌套函数,用于设置标签等的文本。
def retranslateUi(self, OptionsWindow):
OptionsWindow.setWindowTitle(_translate("OptionsWindow", "OptionsWindow", None))
self.label_MainOptions.setText(_translate("OptionsWindow", "Options", None))
confs = config.configAttrs.split(',')
clientid = str(confs[0])
oauth = str(confs[1])
cache = str(confs[2])
heightAdjust = str(confs[4])
#does NOT work when reopening options window
#does work with restart
self.lineEdit_ClientID.setText(_translate("OptionsWindow", clientid, None))
#does NOT work when reopening options window
#does work with restart
self.lineEdit_ClientID.setText('{0}'.format(clientid))
#does work when reopening options window
#does work with restart
self.lineEdit_ClientID.setText(_translate("OptionsWindow", 'string_clientid', None))
缩短了上面的代码。*
造成问题的原因是,尽管config.py文件已被修改,但它不会由python自动重新加载,为了强制执行该操作,您必须使用reload
,具体情况如下:
def retranslateUi(self, OptionsWindow):
[...]
reload(config)
confs = config.configAttrs.split(',')
[...]
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.