调整大小以适应 QTableView 中的行和列非常慢
Posted
技术标签:
【中文标题】调整大小以适应 QTableView 中的行和列非常慢【英文标题】:Sizing to fit rows and columns in a QTableView is very slow 【发布时间】:2011-11-20 05:53:32 【问题描述】:我有一个带有自定义模型的 QTableView,它工作正常。但是,当我启动程序时,我希望行和列的大小适合,因为默认情况下它们占用了太多空间。我应该注意到我的表有 65k 行(只有 3 列),而且它们总是相同的。以下代码运行良好,但速度很慢。
memorListView 是一个 QTableView。在此行之前,我setModel
到我的自定义模型
memoryListView->resizeRowsToContents();
memoryListView->resizeColumnsToContents();
就像我提到的,这正是我需要的,但运行大约需要 8 秒。我认为这是因为所有数据都需要从模型中提取出来,否则视图很乐意懒惰地请求它。
我可以手动设置行和列的大小,这是我目前的解决方法,但这是一个跨平台的应用程序,我不想担心不同的小部件、文本大小、DPI 等会导致问题.我可以自动调整 one 行的大小,然后将其余行设置为该行的大小,这将是正确的,但看起来很 hacky。
我希望我只是天真地做这件事,我可以切换一些选项来让它更快。我知道所有行和列的大小都相同;我可以告诉它以某种方式使用该提示吗?
提前致谢。
【问题讨论】:
【参考方案1】:您可以简单地使用QFontMetrics
测量文本的宽度,然后将列宽设置为它。类似的东西应该可以工作:
QFontMetrics fontMetrics(yourWidget->font());
int columnWidth = fontMetrics.width("some text");
【讨论】:
嗯,我会试一试。看起来很有希望。以上是关于调整大小以适应 QTableView 中的行和列非常慢的主要内容,如果未能解决你的问题,请参考以下文章