pyqt4如何设置文本从行编辑到按钮上的标签单击
我试图设计数据输入窗体,当文本输入到行编辑窗口小部件时按下ok按钮时将向文本添加文本,但是答案是完全躲避我:pyqt4如何设置文本从行编辑到按钮上的标签单击
#!/usr/bin/python3
#-*- coding: utf-8 -*-
"""
Set label text from line edit with
ok click
"""
import sys
from PyQt4 import QtGui, QtCore
class Example(QtGui.QMainWindow):
def __init__(self):
super(Example, self).__init__()
self.initUI()
def initUI(self):
self.qle = QtGui.QLineEdit(self)
self.qle.move(100, 0)
sometext = self.qle.text
self.lbl = QtGui.QLabel(self)
self.lbl.move(100, 100)
btn = QtGui.QPushButton("Ok", self)
btn.move(30, 100)
btn.clicked.connect(self.buttonClicked)
self.setGeometry(200, 200, 300, 200)
self.show
def buttonClicked(self, sometext):
sender = self.sender()
self.lbl.setText(sometext)
def main():
app = QtGui.QApplication(sys.argv)
ex = Example()
sys.exit(app.exec_())
if __name__ == '__main__':
main()
请问您如何得到这个工作?
您可以使用此设置文本标签:QLabel.setText("string text")
与合并:QPushButton.clicked.connect(lambda: func())
并获得该行编辑文本:QLineEdit.text()
如此完整代码应该如下所示:
#!/usr/bin/python3
#-*- coding: utf-8 -*-
"""
Set label text from line edit with
ok click
"""
import sys
from PyQt4 import QtGui, QtCore
class Example(QtGui.QMainWindow):
def __init__(self):
super(Example, self).__init__()
self.initUI()
def initUI(self):
self.qle = QtGui.QLineEdit(self)
self.qle.move(100, 0)
sometext = self.qle.text
self.lbl = QtGui.QLabel(self)
self.lbl.move(100, 100)
btn = QtGui.QPushButton("Ok", self)
btn.move(30, 100)
self.setGeometry(200, 200, 300, 200)
self.show
if __name__ == '__main__':
app = QtGui.QApplication(sys.argv)
ex = Example()
def setLabelText():
text = qle.text()
ex.lbl.setText(text)
ex.btn.clicked.connect(lambda: setLabelText())
sys.exit(app.exec_())
我实际上不能测试这个代码,但它应该工作正常。 请告诉我,如果您有任何问题,请给我们一个回溯。
您可能还想考虑迁移到PyQt5.6(比最新版本略旧,但它内置了QtDesigner。快速谷歌搜索应该找到您正确的可执行安装程序,它不再在他们的网站上了。你找不到它我可以发给你。)
希望它的作品,并祝你好运!
编辑: 我只是想到了一个更简单的方法。应该刚刚说过这个。
if __name__ == '__main__':
app = QtGui.QApplication(sys.argv)
ex = Example()
ex.btn.clicked.connect(lambda: ex.lbl.setText(qle.text()))
sys.exit(app.exec_())
有点简单的答案。对您的代码进行了一些编辑。它工作正常,并成功运行。
import sys
from PyQt4 import QtGui, QtCore
class Example(QtGui.QMainWindow):
def __init__(self):
super(Example, self).__init__()
self.initUI()
def initUI(self):
self.qle = QtGui.QLineEdit(self)
self.qle.move(10, 10)
self.lbl = QtGui.QLabel(self)
self.lbl.setGeometry(10, 55,200,20)
self.lbl.setText("Type Something and Press Ok!")
btn = QtGui.QPushButton("Ok", self)
btn.move(10, 100)
btn.clicked.connect(self.buttonClicked)
self.setGeometry(200, 200, 300, 200)
self.show
def buttonClicked(self):
sender = self.sender()
self.lbl.setText(self.qle.text())
def main():
app = QtGui.QApplication(sys.argv)
ex = Example()
ex.show()
sys.exit(app.exec_())
if __name__ == '__main__':
main()
你也QLabel是无形,因为它是从你的QMainWindow区。
希望它有助于!
艾哈迈德塔哈,这很完美,非常感谢你,看来我仍然需要做一些关于类,方法和函数的基本范围的学习。是的,标签不可见是一个学校男孩的错误,我在我正在编写的程序中使用它,只是没有完全为我的测试代码编写布局。 – iFunction
不客气。接受这个答案,如果你认为它帮助你:) –
'self.lbl.setText(self.qle.text())'。 – ekhumoro