How to get text in QlineEdit when QpushButton is pressed in a string?(在字符串中按下 QpushButton 时如何在 QlineEdit 中获取文本?)
问题描述
我正在尝试实现一个功能.我的代码如下.
I am trying to implement a function. My code is given below.
当用户单击名称为连接"的按钮时,我想在字符串中获取对象名称为主机"的文本,例如主机".我怎样才能做到这一点?我尝试过,但失败了.如何实现这个功能?
I want to get the text in lineedit with objectname 'host' in a string say 'shost' when the user clicks the pushbutton with name 'connect'. How can I do this? I tried and failed. How do I implement this function?
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!
Now how do I implement the function "button_click" ? I have just started with pyQt!
推荐答案
我的第一个建议是使用 Qt Designer 来创建你的 GUI.自己打字很糟糕,需要更多时间,而且你肯定会比 Qt Designer 犯更多的错误.
My first suggestion is to use Qt Designer to create your GUIs. Typing them out yourself sucks, takes more time, and you will definitely make more mistakes than Qt Designer.
这里有一些 PyQt 教程 帮助您走上正轨.列表中的第一个是您应该开始的地方.
Here are some PyQt tutorials to help get you on the right track. The first one in the list is where you should start.
了解哪些方法可用于特定类的一个很好的指南是 PyQt4 类参考.在这种情况下,您将查找 QLineEdit
并看到有一个 text
方法.
A good guide for figuring out what methods are available for specific classes is the PyQt4 Class Reference. In this case, you would look up QLineEdit
and see the there is a text
method.
回答您的具体问题:
要使您的 GUI 元素可用于对象的其余部分,请在它们前面加上 self.
To make your GUI elements available to the rest of the object, preface them with self.
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_()
这篇关于在字符串中按下 QpushButton 时如何在 QlineEdit 中获取文本?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持编程学习网!
本文标题为:在字符串中按下 QpushButton 时如何在 QlineEdit 中获取文本?
基础教程推荐
- 如何让 python 脚本监听来自另一个脚本的输入 2022-01-01
- 何时使用 os.name、sys.platform 或 platform.system? 2022-01-01
- Dask.array.套用_沿_轴:由于额外的元素([1]),使用dask.array的每一行作为另一个函数的输入失败 2022-01-01
- 线程时出现 msgbox 错误,GUI 块 2022-01-01
- 筛选NumPy数组 2022-01-01
- 用于分类数据的跳跃记号标签 2022-01-01
- 使用PyInstaller后在Windows中打开可执行文件时出错 2022-01-01
- 如何在海运重新绘制中自定义标题和y标签 2022-01-01
- 在 Python 中,如果我在一个“with"中返回.块,文件还会关闭吗? 2022-01-01
- Python kivy 入口点 inflateRest2 无法定位 libpng16-16.dll 2022-01-01