簡體   English   中英

Qt:QDockWidget中QLabel的大小

[英]Qt: size of QLabel in a QDockWidget

我創建了一個左QDockWidget ,並添加了2個QLabel 我想要標簽的平方大小(默認為100x100)。

因此,當用戶增加QDockWidget的寬度時,應如何強制我的標簽保持平方大小?

我嘗試了很多事情,但沒有成功:(

我認為您應該覆蓋int QWidget :: heightForWidth(int aWidth)const函數。 因此,您需要創建自己的QLabel子類。

class MyLabel
{
public:
    virtual int heightForWidth( int aWidth ) const override
    {
        return aWidth; // So it will be square.
    }
};

我想我有解決辦法。

我創建這個子類:

class SquareLabel : public QLabel
{
public:
    SquareLabel(QWidget* parent = 0) : QLabel(parent)
    {
        setMinimumSize(100, 100);

        QSizePolicy pol(QSizePolicy::Preferred, QSizePolicy::Preferred);
        pol.setHeightForWidth(true);
        setSizePolicy(pol);
    }
    virtual int heightForWidth(int w) const { return w; }
    virtual QSize sizeHint() const { int w = this->width(); return QSize(w, heightForWidth(w)); }

protected:
    void resizeEvent(QResizeEvent* event) { }
};

我所有的標簽都添加到QVBoxLayout中,並且我需要以下屬性:

layout->setAlignment(Qt::AlignTop);

現在,我需要在標簽中調整像素圖的大小。 我將在關閉此問題之前發布它。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM