覆盖 QLabel 中的 setText()

丹尼斯·米勒

我正在尝试制作一个 QLabel 小部件,它将调整文本的字体大小,以便整个文本始终适合 QLabel。

class QLabelFontAutoResize(QLabel):
    def __init__(self, text):
        super(QLabelFontAutoResize, self).__init__()
        self._text = text
        self.setText(self._text)

    def setText(self, text):
        width     = float( self.size().width() )
        _font     = self.font()
        _fontSize = 1

        #Find Correct Font Size
        while (True):
            _font.setPointSize(_fontSize)
            _fontMetric = QFontMetrics( _font )

            #Text width exceeds QLabel width
            if _fontMetric.width(text) > width:
                _fontSize = _fontSize-1
                break
            _fontSize = _fontSize + 1

        _font.setPointSize(_fontSize)
        self.setFont(_font)

        #This is recursive, How do I actually set the Text
        self.setText(text)

如何在不创建递归函数的情况下覆盖 setText(),并实际设置 QLabel 的文本?

注意:QLabel 将是固定大小,并且不会调整大小,因此我不会覆盖 resizeEvent。我希望在设置文本时更改字体。

埃利亚内斯克

你只需要调用父的方法:

class QLabelFontAutoResize(QLabel):
    [...]
    def setText(self, text):
        [...]
        self.setFont(_font)
        QLabel.setText(self, text)
        # super(QLabelFontAutoResize, self).setText(text)
        # super().setText(text)

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

QLabel中的gif图像

来自分类Dev

在QGridLayout中拉伸QLabel

来自分类Dev

QTabWidget中的Qt4 QLabel

来自分类Dev

在Android中SetText只需要resId

来自分类Dev

QScrollArea中的QLabel

来自分类Dev

如何在QT中彼此堆叠QLabel?

来自分类Dev

在Vim中覆盖覆盖

来自分类Dev

TextWatcher中的SetText

来自分类Dev

在QLabel中显示sql查询的输出

来自分类Dev

如何检测QLabel中的文本何时更改?

来自分类Dev

JTextArea中的setText()机制?

来自分类Dev

Android中的TextView.setText

来自分类Dev

Settext与JavaFX中的sleeps

来自分类Dev

获取QLabel在PyQT中单击的信息

来自分类Dev

单击按钮后,在QLabel中删除图像

来自分类Dev

Swift中的UITextField`setText`

来自分类Dev

如何在ReccyclerView的onBindViewHolder中设置setText?

来自分类Dev

gettimeofday,QTime或QLabel-> setText中的100%CPU利用率

来自分类Dev

@使用整数覆盖toString。然后将setText设置为JLabel

来自分类Dev

如何在QT中彼此堆叠QLabel?

来自分类Dev

Android:AsyncTask中的setText(“ Loading ...”)

来自分类Dev

Android setText for循环中包含覆盖其自身的JsonObject值

来自分类Dev

Android EditText中的SetText错误

来自分类Dev

Settext到TextView中的片段

来自分类Dev

GWT DoubleBox方法setValue覆盖setText

来自分类Dev

QLabel 中的 QrubberBand 和 MPlayer

来自分类Dev

QLabel 在 gif 上覆盖 png

来自分类Dev

如果标签尺寸小,QLabel setText 不显示 QLineEdit 的文本

来自分类Dev

如何在 QLabel、QT 中设置图像?