QLabel 将第二次调用 setText() 的文本长度限制为第一个值的长度
QLabel limiting text length on second calling setText() to the length of the first value
在 QWidget 的初始化中设置标签时,文本会正确显示,但是在按下按钮更改文本时,文本不会完全显示。
它受限于旧字符串的字符长度。如何解决?
提前致谢!
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? :)")
您必须使用 change_label
中的 self.Label.resize(width, height)
手动更改大小。但是你不知道 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()
在 QWidget 的初始化中设置标签时,文本会正确显示,但是在按下按钮更改文本时,文本不会完全显示。 它受限于旧字符串的字符长度。如何解决?
提前致谢!
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? :)")
您必须使用 change_label
中的 self.Label.resize(width, height)
手动更改大小。但是你不知道 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()