所以我试图创建一个简单的GUI,它需要一个yaml文件并通过PyQT进行编辑。 假设yaml包含{example:“Helloworld”}如何使用PyQt4 GUI编辑yaml文件
即使在GUI框中显示yaml,我也遇到了麻烦。
所以我用Python编写的GUI文本框:
import yaml
import sys
from PyQt4 import QtGui, QtCore
class GUI(QtGui.QWidget):
def __init__(self):
super(GUI, self).__init__()
self.initUI()
def initUI(self):
msg = QtGui.Qlabel("This is a test message")
self.msg.move(60, 20)
self.addedLine = QtGui.QLabel(self)
textBox = QtGui.QLineEdit(self)
textBox.move(60, 100)
self.addedLine.move(60, 40)
textBox.textChanged[str].connect(self.onChanged)
self.setGeometry(500, 500, 500, 500)
self.setWindowTitle('QtGui.QLineEdit')
self.show()
def onChanged(self, text):
self.addedLine.setText(text)
self.addedLine.adjustSize()
def main():
app = QtGui.QApplication(sys.argv)
ex = GUI()
sys.exit(app.exec_())
if __name__ == '__main__':
main()
而这仅仅是用于显示YAML数据
def displayYaml():
yamlDoc = open("yaml.yml",'r')
data = yaml.load(yamlDoc)
yamlDoc.close()
prettyData = yaml.dump(data, default_flow_style=False)
return prettyData
所以我可以这样displayYaml功能添加到一个简单的函数GUI类?或者我必须将它作为一个单独的文件并导入它?我尝试没有功能的displayYaml代码,并试图直接写入入initUI但是,这并不工作,我得到的错误:
UnboundLocalError: local variable 'yaml' referenced before assignment
最后,我希望它 1显示了YAML文档。这将是一条固定的消息行。 2.有一个单独的消息行和文本更改框,我已经做了 3.使用textchange框中的任何输入覆盖yaml文档。
您可以将'displayYaml'到类。你可以把它作为一个独立的函数在一个事件上调用(单击按钮等),或者你可以让initUI运行它。 – 101 2014-09-23 21:48:29
这也不是很有效,所以老实说,我是一个,但没有想法。 – KirinSoo 2014-09-23 22:09:36