2015-11-10 50 views
2

我在Ubuntu上使用了qt 5.1.1兩年。現在我安裝qt 5.5。 (我的意思是這兩個版本都存在於我的Ubuntu上) 實際上,這個版本的Qt框架不如舊版本那麼好。 所以我想用qt 5.1.1。qt中的setSectionResizeMode有什麼問題?

的問題是在這裏,現在我有我的代碼下面的錯誤:

代碼:

_headerView->setSectionResizeMode(QHeaderView::Stretch); 

錯誤:

... error: 'class QHeaderView' has no member named 'setSectionResizeMode' 

我發現this answer on this site。但實際上我沒有得到如何解決問題!它只是說它的原因。

PS:我想要這行代碼來拉伸我的表修復到我的窗口。

+2

嘗試使用'setResizeMode' –

回答

3

當您的計算機上安裝了兩個或更多版本的qt時,可能會發生此錯誤。
setResizeMode是一個覆蓋新版本的舊功能,並將其名稱更改爲setSectionResizeMode解決此問題最安全的方法是使用setResizeMode,您可以確定它可以從5以後的任何Qt使用。

+1

我不明白這是如何被接受的解決方案。整個觀點是'setResizeMode()'被'setSectionResizeMode()'替代,並且在Qt 5.0處棄用 - 參見http://doc.qt.io/qt-5/qheaderview-obsolete.html。至少現在(Qt 5.7.1)'setResizeMode()'不存在,所以說「解決這個問題最安全的方法就是使用setResizeMode,你可以確保它可以被5以後的任何Qt使用」是非常錯誤的,因爲您肯定無法確定在Qt​​ 5或更高版本中仍會使用不推薦使用的函數。 – JonBrave