如何从Pyside中的lineEdit获取文本?

2024-09-29 19:15:07 发布

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

我正在学习Pyside,我似乎无法将QLineEdit中的文本输入到我自己的方法中,以便将其输入到查询中等。我知道这与lineEdit.text()有关,但似乎不起作用。在文本进入变量之前,我需要将它与信号关联吗??

这是我一直在尝试的类型。我需要一个文本改变的信号,使它更新或什么??我试过添加self.line,但也没用,对面向对象编程有点生疏。

line=QtGui.QLineEdit(self)
myVar = line.text()

一个简短的代码示例会很好。谢谢!


Tags: 方法代码text文本self示例类型信号
1条回答
网友
1楼 · 发布于 2024-09-29 19:15:07

你似乎正在创建对象并在之后使用它。当然,您可以从text()获得一个空字符串;它不是这样工作的。

您应该将QLineEdit添加到一个GUI中,让用户使用它做一些事情,然后使用QLineEdit.text()获取文本。要知道用户何时更改了文本,是的,您应该连接到QLineEdit.textEdited插槽。

下面是一个完整的示例,它使用这样的机制,在修改文本后立即将所有文本从QLineEdit复制到QLabel

import sys

from PySide.QtCore import *
from PySide.QtGui import *

class MainWindow(QWidget):
    def __init__(self):
        QWidget.__init__(self)

        layout = QVBoxLayout()
        self.setLayout(layout)

        self.line_edit = QLineEdit()
        layout.addWidget(self.line_edit)

        self.label = QLabel()
        layout.addWidget(self.label)

        self.line_edit.textChanged.connect(self.line_edit_text_changed)

        self.show()

    def line_edit_text_changed(self, text):
        self.label.setText(text)

app = QApplication(sys.argv)
mw = MainWindow()
app.exec_()

下面的示例演示如何将自己的函数连接到插槽。但是由于QLabel有一个^{}插槽,我们可以只做self.line_edit.textChanged.connect(self.line_edit.setText)而不定义函数。

你真的应该读一些教程;我发现this one非常有用。

相关问题 更多 >

    热门问题