繁体   English   中英

Python PyQt4 .setText拒绝变量?

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM