[英]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.