Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/281.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python PyQt4.setText拒绝变量?_Python_Pyqt_Pyqt4_Settext_Pyuic - Fatal编程技术网

Python PyQt4.setText拒绝变量?

Python PyQt4.setText拒绝变量?,python,pyqt,pyqt4,settext,pyuic,Python,Pyqt,Pyqt4,Settext,Pyuic,我想说我对Python相当在行,但是创建GUI对我来说是一个新概念。我使用Qt Creator格式化GUI,并使用pyuic从file.ui转换代码 我已经对大多数GUI进行了编码,但是我在为行编辑、按钮等更新标签文本时遇到了问题。因此,这个GUI有一个选项窗口,可以从主程序打开,用户可以在其中指定某些参数。目前,我打开选项,设置值,关闭,重新打开选项窗口,文本没有更改为新的变量值。但是,普通字符串确实有效。只有当程序重新启动时,变量才会“粘滞”。 我正在导入一个config.py文件,其中有一

我想说我对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不会自动重新加载该文件,为了强制加载,您必须使用
重新加载
,在您的情况下:

def retranslateUi(self, OptionsWindow):
    [...]
    reload(config)
    confs = config.configAttrs.split(',')
    [...]

当您说它不工作时,您的意思是当您再次运行应用程序时,它不会显示您在关闭它之前看到的内容?我是stackoverflow的新手,这附近有回复按钮吗D我在OP中添加了图库来表达问题。我仍然不理解你,你可以更好地解释。不要把图片链接放在这里,如果可能的话,尝试在这里处理所有事情,那么在某个时候这些链接将被破坏,没有人能看到它们或复制解决方案或理解问题。我理解你的问题,为了解决这个问题,我必须有一个最小的代码并重现错误,而您显示的代码不是。。。您可以通过github、drive或类似的方式共享您的代码。这非常有意义。对配置文件进行了更改,但它仅在main.py文件的最顶部导入一次。因此,这些更改只有在完全重新启动后才会出现。现在我因为忽略了一些简单的任务而觉得自己很傻我真的需要第二双眼睛,因为我不习惯GUI带来的这么多混乱。谢谢你,艾伦斯克!