pyqt qlabel 只显示字符串的第一个字符 [英] pyqt qlabel displays only first char of string

查看:37
本文介绍了pyqt qlabel 只显示字符串的第一个字符的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我想在单击按钮时在 QLabel 中显示一些字符串,但我的代码只显示字符串的第一个字符.我为此使用以下代码

I want to display some string in QLabel on button click but my code only shows first char of the string. I am using following code for this

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".这是什么原因,我该如何更正我的代码?

In above code I want to set qlable as "hello" but only 'h' is displayed. What is the reason for this and how can I correct my code?

推荐答案

问题是因为 QLabel 的大小最初取决于文本的内容,而由于这个空最初只需要字母所需的宽度,解决方法是调用方法 adjustSize().

The problem is caused because the size of the QLabel initially depends on the content of the text, and since this empty initially only takes the necessary width for a letter, the solution is to call the method adjustSize().

def test3(self, data):
    self.SecondWindow.emailIDIN.setText("hello")
    self.SecondWindow.emailIDIN.adjustSize()

注意:不建议将变量命名为类,因为它会导致错误.

这篇关于pyqt qlabel 只显示字符串的第一个字符的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆