从QLineEdi中提取文本

2024-04-26 17:17:14 发布

您现在位置:Python中文网/ 问答频道 /正文

我用一个简单的QLineEdit和QbuttonBox(分别是lineEdit和buttonBox)创建了一个对话框,现在我尝试在按OK时使用行编辑中的内容。它只会显示为空白,在执行过程中不打印,并在打印底部打印“None”(无)。浏览并找到了文本(),但仍然没有爱。感谢任何帮助。在

from PyQt4 import QtGui, QtCore
import sys

import x

class Dialog(QtGui.QDialog, x.Ui_Dialog):

    def __init__(self):
        super(Dialog, self).__init__()
        self.setupUi(self)
        global base
        base = self.buttonBox.accepted.connect(self.go)


    def go(self):
        what = self.lineEdit.text()
        return what
        print(what)



app = QtGui.QApplication(sys.argv)
form = Dialog()
form.show()
app.exec_()

print(base)

Tags: importselfformappgobaseinitdef
1条回答
网友
1楼 · 发布于 2024-04-26 17:17:14

示例代码大部分是正确的,除了go()方法在有机会打印任何内容之前返回。因此,如果删除该行,它将按预期工作,即:

class Dialog(QtGui.QDialog, x.Ui_Dialog):
    def __init__(self):
        super(Dialog, self).__init__()
        self.setupUi(self)
        self.buttonBox.accepted.connect(self.go)

    def go(self):
        what = self.lineEdit.text()
        print(what)

另外,在将信号连接到处理程序时获取返回值也没有意义。如果连接无效,它只会引发一个错误。在

编辑

如果您想从对话框外部访问编辑行的文本,那么实际上并不需要信号。只需确保在用户输入文本之前对话框一直处于块状态,然后直接访问行编辑:

^{pr2}$

相关问题 更多 >