首先,我想说一下,我的问题已经在SO上讨论过了,链接在这里:https://dev59.com/gUjSa4cB1Zd3GeqPGImn。但是那些答案并不好用...
所以,这就是问题:我有一个QTableView类,其中包含一个简单的model,通过tableView->setModel(model)方法连接。例如,我有4-5列。我启动了我的项目应用程序,并对列宽进行了一些更改。之后我按了退出键,我的项目应用程序使用QSettings将tableView->horizontalHeader()->saveState()数据保存到文件中。当我再次启动应用程序时,它会做出以下操作:
所以,这就是问题:我有一个QTableView类,其中包含一个简单的model,通过tableView->setModel(model)方法连接。例如,我有4-5列。我启动了我的项目应用程序,并对列宽进行了一些更改。之后我按了退出键,我的项目应用程序使用QSettings将tableView->horizontalHeader()->saveState()数据保存到文件中。当我再次启动应用程序时,它会做出以下操作:
tableView->horizontalHeader()->restoreState(/* data from settings ini file */);
但是,什么都没有发生!列的宽度具有标准宽度。它们没有根据我的存储值进行更改! :(
谢谢!
PS:这个问题在 QTreeView
类中并不明显。在 QTreeView
中一切正常!
QTableView
和QTreeView
,在执行restoreState()
时,我得到了true值... - mosgQTableView
基类的问题 - Qt的一个bug。因为我尝试使用简单的Qt演示示例(带有QTableViews)恢复状态,但仍然没有成功。我不想在我的项目中添加额外的代码,因为我认为基本的Qt功能(保存/恢复标题状态)必须正常工作!但我会再尝试一个例子,即在程序运行时从内存中保存/恢复标题设置.. - mosg