QLabel将第二个调用setText()上的文本长度限制为第一个值的长度

时间:2019-05-22 10:41:35

标签: python pyqt qlabel

在QWidget的初始化中设置标签时,文本会正确显示,但是在按下按钮更改文本时,文本不会完全显示。 它受旧字符串的char长度限制。该如何解决?

谢谢!

class MainWindow(QWidget):
    def __init__(self):
        super().__init__()
        self.init_ui()

    def init_ui(self):
        self.setGeometry(500, 500, 500, 420)

        Button("Change it!", self).set_tool_tip("Change the label text").resize().move(0, 40).on_click(
            self.change_label)

        self.Label = QLabel(self)
        self.Label.setText("I'm going to change and get bigger!")
        self.Label.move(0, 65)

    def change_label(self):
        self.Label.setText("I'm bigger then I was before, unfortunately I'm not fully shown. Can you help me? :)")

1 个答案:

答案 0 :(得分:1)

您必须使用self.Label.resize(width, height)中的change_label手动更改大小。但是您不知道width

有什么价值

最好使用任何布局管理器,它将自动调整窗口小部件的大小。

带有布局管理器垂直框的示例-QVBoxLayout

from PyQt5.QtWidgets import *

class MainWindow(QWidget):
    def __init__(self):
        super().__init__()
        self.init_ui()

    def init_ui(self):

        layout = QVBoxLayout()
        self.setLayout(layout)

        self.button = QPushButton("Change it!", self)
        self.button.clicked.connect(self.change_label)
        layout.addWidget(self.button)

        self.label = QLabel(self)
        self.label.setText("I'm going to change and get bigger!")
        layout.addWidget(self.label)

    def change_label(self):
        self.label.setText("I'm bigger then I was before, unfortunately I'm not fully shown. Can you help me? :)")


app = QApplication([])
main = MainWindow()
main.show()
app.exec()