繁体   English   中英

qt仅增长大小政策

[英]qt grow-only size policy

我有QLabel,这个宽度缩小到内容大小。 如何将大小策略设置为仅增长策略? 例如,我将文本设置为“ 12345”,并且QLabel应该增长到最小尺寸以显示此内容,但是当我设置为“ 12”时,该尺寸将不会缩小并保持原来的大小。

好了,除非你不需要使用你想为别人部件恢复的空间,你可以使用一个QtGui.QSpacerItem ; 请参见QSpacerItem类参考

您可以将大小策略设置为间隔项。

注意:当您使用QtDesigner时,此操作会自动完成。

在QtDesigner中,它应如下所示:

在此处输入图片说明

标签有ilustrative目的青色背景。

在这里,您有一些代码示例:

警告:代码已使用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_())

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM