gpt4 book ai didi

python - 如何使用 PyQt4 GUI 编辑 yaml 文件

转载 作者:行者123 更新时间:2023-12-01 05:01:33 24 4
gpt4 key购买 nike

所以我尝试创建一个简单的 GUI,它采用 yaml 文件并通过 PyQT 对其进行编辑。假设 yaml 包含 {example: "Helloworld"}

我什至无法在 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. 使用文本更改框中输入的内容覆盖 yaml 文档。

最佳答案

import sys, yaml
from PyQt4 import QtGui, QtCore

class Example(QtGui.QWidget):

def __init__(self):
super(Example, self).__init__()
self.verticalLayout = QtGui.QVBoxLayout()
self.plainTextEdit = QtGui.QPlainTextEdit()
self.verticalLayout.addWidget(self.plainTextEdit)
self.pushButton = QtGui.QPushButton("Load Yaml")
self.verticalLayout.addWidget(self.pushButton)
self.setLayout(self.verticalLayout)
self.pushButton.clicked.connect(self.loadYaml)

def loadYaml(self):
fileName = str(QtGui.QFileDialog.getOpenFileName(self, "Open File","/home/some/folder","Yaml(*.yaml);;AllFiles(*.*)"))
f = open(fileName)
getData = yaml.safe_load(f)
prettyData = yaml.dump(getData, default_flow_style=False)
self.plainTextEdit.appendPlainText(str(prettyData))

def main():
app = QtGui.QApplication(sys.argv)
ex = Example()
ex.show()
sys.exit(app.exec_())


if __name__ == '__main__':
main()

试试这个代码

关于python - 如何使用 PyQt4 GUI 编辑 yaml 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26005148/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com