首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >当按下字符串时,如何在QlineEdit中获取文本?

当按下字符串时,如何在QlineEdit中获取文本?
EN

Stack Overflow用户
提问于 2018-08-02 06:57:22
回答 2查看 0关注 0票数 0

我正在尝试实现一个功能。我的代码如下。

我希望当用户点击名为“connect”的按钮时,在字符串中使用对象名称'host'的文本中的文本说'shost'。我怎样才能做到这一点?我尝试过但失败了。我该如何实现这个功能?

代码语言:javascript
复制
import sys
from PyQt4.QtCore import *
from PyQt4.QtGui import *


class Form(QDialog):
    def __init__(self, parent=None):
        super(Form, self).__init__(parent)

        le = QLineEdit()
        le.setObjectName("host")
        le.setText("Host")
        pb = QPushButton()
        pb.setObjectName("connect")
        pb.setText("Connect") 
        layout.addWidget(le)
        layout.addWidget(pb)
        self.setLayout(layout)

        self.connect(pb, SIGNAL("clicked()"),self.button_click)

        self.setWindowTitle("Learning")

    def button_click(self):
    #i want the text in lineedit with objectname 
    #'host' in a string say 'shost'. when the user click 
    # the pushbutton with name connect.How do i do it?
    # I tried and failed. How to implement this function?




app = QApplication(sys.argv)
form = Form()
form.show()
app.exec_()

现在我该如何实现“button_click”功能?我刚刚开始使用pyQt!

EN

回答 2

Stack Overflow用户

发布于 2018-08-02 15:24:37

对象名称不是很重要。你应该关注的是存储lineedit对象(Le)和按钮对象(PB)的变量。

代码语言:txt
复制
QObject(self.pb, SIGNAL("clicked()"), self.button_clicked)

def button_clicked(self):
  self.le.setText("shost")

我想这就是你想要的。

票数 0
EN

Stack Overflow用户

发布于 2018-08-02 16:37:17

我的第一个建议是使用Designer来创建GUI。

以下是一些PyQt教程,可帮助你走上正确的轨道。

PyQt4类参考是一个很好的指南,用于确定哪些方法可用于特定类。在这种情况下,你会查找QLineEdit并看到有一种text方法。

要回答你的具体问题:

要使GUI元素可用于对象的其余部分,请在其前面加上 self.

代码语言:javascript
复制
import sys
from PyQt4.QtCore import SIGNAL
from PyQt4.QtGui import QDialog, QApplication, QPushButton, QLineEdit, QFormLayout

class Form(QDialog):
    def __init__(self, parent=None):
        super(Form, self).__init__(parent)

        self.le = QLineEdit()
        self.le.setObjectName("host")
        self.le.setText("Host")

        self.pb = QPushButton()
        self.pb.setObjectName("connect")
        self.pb.setText("Connect") 

        layout = QFormLayout()
        layout.addWidget(self.le)
        layout.addWidget(self.pb)

        self.setLayout(layout)
        self.connect(self.pb, SIGNAL("clicked()"),self.button_click)
        self.setWindowTitle("Learning")

    def button_click(self):
        # shost is a QString object
        shost = self.le.text()
        print shost


app = QApplication(sys.argv)
form = Form()
form.show()
app.exec_()
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/-100001882

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档