我有 QLabel,这个宽度缩小到内容大小。如何将大小策略设置为仅增长策略?例如,我将文本设置为“12345”,并且 QLabel 应该增长到最小尺寸以显示此内容,但是当我设置“12”时,它不会缩小并保持旧尺寸。
问问题
261 次
1 回答
0
好吧,除非您不需要为其他小部件使用要恢复的空间,否则您可以使用QtGui.QSpacerItem
; 请参阅QSpacerItem 类参考。
您可以将大小策略设置为间隔项。
注意:这会在您使用 QtDesigner 时自动完成。
在 QtDesigner 中,它应该如下所示:
出于说明目的,标签具有青色背景。
在这里,您有一些代码示例:
警告:代码是用 Python 编写的。我不知道你的语言偏好。但是界面几乎是一样的。祝你好运。
import PyQt4.QtGui as gui
import PyQt4.QtCore as core
import sys
if __name__ == "__main__":
app = gui.QApplication(sys.argv)
widget = gui.QWidget(None)
label = gui.QLabel(widget)
label.setStyleSheet("background-color: cyan;")
label.setMinimumWidth(10)
label.setText("Write some text above")
text = gui.QLineEdit(widget)
layout = gui.QVBoxLayout(widget)
hlayout = gui.QHBoxLayout(widget) # This layout will contains
# the label and a sacer item.
layout.addWidget(text)
hlayout.addWidget(label) # Add the label.
# Create the spacer.
spacerItem = gui.QSpacerItem(40, 20, gui.QSizePolicy.Expanding, gui.QSizePolicy.Minimum)
hlayout.addItem(spacerItem) # Add the spacer.
layout.addItem(hlayout)
# Slot for change the text of the label.
@core.pyqtSlot()
def on_textChanged():
label.setText(text.text())
text.textChanged.connect(on_textChanged)
widget.show()
sys.exit(app.exec_())
于 2014-05-20T12:34:32.693 回答