我正在尝试设计数据输入表单,当按下确定按钮时,将文本输入到行中时,将文本添加到标签中,但是答案完全掩盖了我:
#!/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 ars convisible 因为它不在您的qmainwindow区域。
希望它有帮助!