2017-02-23 43 views
0

如何將圖像添加到Qt中的對話框中?在Qt對話框中佈置圖像

我知道這在過去經常被問到,大部分答案都是QLabel及其setPixmap成員。然而,這通常不是什麼用戶(我)打算:

  • 一個QLabel與像素圖組不參與周邊QLayout。也就是說,當對話框被調整大小時,它只是拒絕調整大小,例如QPushButton就可以。在QHorizontalLayout中彼此相鄰的兩個QPushButton將類似地等分它們之間的可用水平空間。 A QLabe在相同佈局中使用QPushButton旁邊的像素圖將保持固定大小。

  • 默認情況下,裸體QLabel在調整大小時不會調整其內容的大小。

  • 但是,當它(QLabel::setResizeContents)它不會保持寬高比。

有沒有對一個對話框中顯示一個像素圖,並有其合理參與佈局任何本地方式?

+0

你的問題很廣泛。 – eyllanesc

+0

我不這麼認爲。你爲什麼? – Kamajii

+0

您可以嘗試圖形場景視圖框架。將圖像作爲像素圖項添加到場景中。 –

回答

0

項目大小可通過sizePolicy屬性進行管理。從Qt documentation

sizePolicy:QSizePolicy

這個屬性保存控件的默認佈局行爲。

如果存在管理此小部件子項的QLayout,則使用由該佈局指定的大小 策略。如果沒有這樣的QLayout,則使用該函數的結果,即 。

默認策略是首選/首選,這意味着小部件 可以自由調整大小,但更喜歡sizeHint()返回的大小。 類似按鈕的小部件設置尺寸策略以指定它們可能水平延伸但縱向固定。 lineedit控件(例如QLineEdit,QSpinBox或可編輯的 QComboBox)和其他水平方向的小部件(如 QProgressBar)也是如此。 QToolButton通常是方形的,所以它們允許在兩個方向上增長 。支持不同方向的小部件(例如 QSlider,QScrollBar或QHeader)僅指定相應的 方向的拉伸。可以提供滾動條的小部件(通常爲QScrollArea的 的子類)傾向於指定它們可以使用 附加空間,並且它們可以使用小於sizeHint()的方法。

我認爲你正在尋找QSizePolicy::Expanding大小政策:

的sizeHint()是一個合理的規模,但小部件可以收縮和 仍然是有用的。該小部件可以利用額外的空間,所以它應該獲得儘可能多的空間(例如,水平滑塊的水平方向 )。

設置爲您的QLabel並檢查它將如何調整大小。嘗試使用QSizePolicy::Policy enum中的其他值。

+0

這個問題沒有提供任何解決方案。 –