所以我試圖創建一個簡單的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