我想在按钮单击时在QLabel中显示一些字符串,但我的代码只显示该字符串的第一个字符。我正在使用以下代码
class UITesterWindow(QWidget):
def __init__(self, parent=None):
super(UITesterWindow, self).__init__(parent)
self.test2 = QPushButton("Test1", self)
self.test2.setGeometry(10, 360, 200, 30)
self.test2.setStyleSheet("font: bold 12pt Courier")
self.emailIDIN = QtGui.QLabel(self)
self.emailIDIN.setStyleSheet("font: bold 18pt Courier")
self.emailIDIN.move(420, 170)
class SecondWindow(QMainWindow):
def __init__(self, parent=None):
super(SecondWindow, self).__init__(parent)
self.setGeometry(50, 50, 400, 450)
self.showMaximized()
self.testerEvent()
def testerEvent(self):
self.SecondWindow = UITesterWindow(self)
self.setCentralWidget(self.SecondWindow)
self.SecondWindow.test2.clicked.connect(lambda: self.test3("data"))
self.show()
def test3(self, data):
self.SecondWindow.emailIDIN.setText("hello")
在上面的代码中,我想将qlable设置为“hello”,但只显示“h”。这是什么原因以及如何更正我的代码?
之所以引起这个问题,是因为QLabel
的大小最初取决于文本的内容,并且因为这个空的最初只占用字母的必要宽度,所以解决方法是调用方法adjustSize()
。
def test3(self, data):
self.SecondWindow.emailIDIN.setText("hello")
self.SecondWindow.emailIDIN.adjustSize()
注意:不建议将变量命名为类,因为它可能导致错误。