2016-01-01 44 views
4

的Qt 5.5.0防止QDockWidget自動調整大小行爲

在我的申請,我有一個的QGraphicsView作爲主要部件和性能QDockWidget。 目標是供用戶在圖形視圖中選擇一個項目,並根據項目爲該項目提供適當的屬性。

我通過具有用含有每個屬性窗口小部件的佈局的屬性管理器插件實現這一點。我有信號和插槽來獲取當前選定的項目,然後顯示()我需要的部件並隱藏()其餘部分。

這個偉大的工程!但是,當選擇不同的項目時,碼頭會根據所顯示的小部件縮小或增大。這很刺耳,而且很煩人。不過,當用戶手動調整碼頭大小時,它會保持該大小。我希望維持的大小是默認的,而不是這種自動調整行爲。


事情我已經嘗試:

我試圖改變碼頭sizePolicy()和主窗口:沒有影響。

我設置爲我的屬性管理器中的最小尺寸確實防止從被告席時,顯示較小的一組屬性的萎縮。不過,我還是希望用戶能夠碼頭縮小到一個更小的尺寸,如果他們願意的話,這種方法防止...


結論:

有沒有標誌或東西,是在用戶調整碼頭時設置的,它告訴它保持這個尺寸?如果是這樣,有沒有辦法手動設置它?

我沒有試過繼承QDockWidget或QMainWindow的呢。是否有一種方法可以重寫以實現正確的行爲?

感謝您的幫助!

+0

[這](http://stackoverflow.com/questions/21739119/qt-hboxlayout-stop-mainwindow-from-resizing-to-contents)可能會給你一些信息。 – LogicStuff

+2

@LogicStuff非常感謝你,QSizePolicy ::被忽略的是我需要什麼:) – BenSeawalker

+1

如果我有更多的upvotes給予 - 只是我所需要的信息。 –

回答

3

所有這一切是必然的,叫

setSizePolicy(QSizePolicy::Preferred, QSizePolicy::Expanding); 

在我的財產管理部件的構造(該QDockWidget的中央物件)

我也重載size​​Hint()函數返回一個可敬的默認大小。