首先,我想說,我的問題已經在這裏討論過了,在SO和here it is。但答案是沒有好的...如何使restoreState()和saveState()正確工作到QTableView類?
所以,這裏是問題:我有一個QTableView
類,用一個簡單的model
,與tableView->setModel(model);
方法連接。例如,我有4-5列。我啓動了我的項目應用程序,並對列寬進行了一些更改。按下Exit後,我的項目應用程序將tableView->horizontalHeader()->saveState();
數據的狀態保存爲QSettings
到文件。當我再次啓動我的應用程序時,它會這樣:
tableView->horizontalHeader()->restoreState(/* data from settings ini file */);
但是,沒有任何反應!列寬有標準寬度。他們不會改變我的儲值! :(
感謝
!PS:這個問題不是QTreeView
類變得明顯QTreeView
一切正常
restoreState()返回true或false來指示它是否成功。你的回報是真的嗎? – 2010-09-07 13:41:58
@Arnold Spence在執行restoreState()時,我的所有'QTableView'和'QTreeView'都得到了* true *值... – mosg 2010-09-07 14:41:20
在啓動時,您是否調用了restoreState()?一些簡短的搜索似乎表明,你想等到應用程序完成啓動並初始化所有內容。作爲一個實驗,您可以嘗試嚮應用程序添加一個按鈕或菜單,以在運行後調用還原,並查看它是否可行。 – 2010-09-08 00:41:14