2

我必须说我对 PyQt4 模块还是很陌生,所以这个问题可能非常明显。但是,我花了很长时间尝试解决这个特定问题并且已经没有想法了。

到目前为止,这是我的代码:

...
self.btn = QtGui.QPushButton('Save Text', self)
self.btn.move(20, 20)
self.le = QtGui.QLineEdit(self)
self.le.move(130, 22)
self.btn.clicked.connect(self.save_text)
...

然后是函数:

def save_text(self):
    text, ok = QtGui.QInputDialog.getText(self, 'Input', 'Type text:')
    filename = QtGui.QFileDialog.getSaveFileName(self, 'Save File', '.')
    fname = open(filename, 'w')
    fname.write(self.le.setText(str(text)))
    fname.close()

这段代码工作正常,但我正在尝试改进它。我想要做的是将主窗口输入字段(self.le)中的文本直接保存到文件中。目前,每当Save Text按下按钮时,它都会打开一个新对话框,并且用户输入要保存在新对话框中的文本。本质上,我希望能够getText与 the一起使用并将其self.le保存到text变量中,但我一直无法这样做。是否有任何直接的方法可以通过单击按钮将文本从变量存储self.le到变量?text还是直接保存到文件中?我正在运行 Python 2.7。

4

2 回答 2

2

如果你想将 QlineEdit self.le 的文本保存到一个文件中,你只需要使用这个

text = self.le.text()

所以你的 save_text 函数变成了

def save_text(self):
    text, ok = self.le.text()   //basically access the QlineEdit self.le and use text() to access its text
    filename = QtGui.QFileDialog.getSaveFileName(self, 'Save File', '.')
    fname = open(filename, 'w')
    fname.write(self.le.setText(str(text)))
    fname.close()
于 2013-06-28T15:33:37.107 回答
0

好的,我找到了一种更简单的方法来完成我一直在尝试做的事情。这是代码:

...
self.btn = QtGui.QPushButton('Save Text', self)
self.btn.move(20, 20)
self.btn.clicked.connect(self.save_text)

self.te = QtGui.QTextEdit(self)
self.te.resize(200,100)
self.te.move(130,22)
...

然后是函数:

def save_text(self):
    text = self.te.toPlainText()
    filename = QtGui.QFileDialog.getSaveFileName(self, 'Save File', '.')
    fname = open(filename, 'w')
    fname.write(str(text))
    fname.close()
于 2013-06-28T16:25:04.140 回答