在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? :)")
答案 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()