【发布时间】:2012-01-24 23:28:13
【问题描述】:
我是一名学生程序员,我正在使用 Qt 构建一个用于工作的 GUI 界面。我有一个QTreeWidget,共有 8 列。需要输入到这些列中的每一列的输入相当小。在这方面,我试图找到一种方法将所有列的大小重新调整为所需的最少空间。很像单击分隔线时执行的操作。我查看了几个网站和 Qt 文档,但没有找到解决方案。查看文档后,似乎有很多方法可以做到这一点,但我无法让其中一种工作。我开始认为我需要在某处启用/禁用某些东西。就好像我在构建函数中写入的更改(此函数清除表;从我的向量中读取数据,在表中显示某些数据,然后假设将标题/列重新调整到足够大小以适应列的内容)甚至没有应用。我已经尝试了以下没有任何更改:
ui->treeWidgetInjections->setColumnWidth(i, minimumWidth());
ui->treeWidgetInjections->resizeColumnToContents(i);
ui->treeWidgetInjections->header()->ResizeToContents;
ui->treeWidgetInjections->header()->resizeSection(i, minimumWidth());
所有这些都在我的构建函数的末尾(删除了无关信息):
ui->treeWidgetInjections->clear();
for (int i=0; i < qTreeInjectionData.size(); i++)
{
//fill Qtree with items;
//fill QTree items with data;
//re size function here;
}
请只留下富有成效的反馈,因为我只对学习和克服这一挑战感兴趣。提前致谢!
【问题讨论】:
-
我认为我的 for 循环是这里的问题;特别是我认为 .size 可能是造成这个问题的原因。
-
我想让 qtreewidget 的第一列小于 20px,但它永远不会小于像 80px 或 90px 这样的宽度。我该怎么做?
标签: c++ qt header qtreewidget