即使没有子列,我也想隐藏显示为最后一列的预览小部件。我在互联网上到处寻找,无数的用户不希望预览小部件一直作为最后一栏被添加。
更可悲的是,从2010年至今还没有提供任何解决方案。有没有办法摆脱这种烦人的行为?如果不是,Qt开发人员不应该提供这个选项--至少在Qt5中是这样的?如果我漏掉了什么就告诉我。
注意:我尝试过可能的建议的解决方案,但没有一个有效。
发布于 2017-02-23 11:32:22
没有办法去做。在qcolumnview.cpp In QColumnViewPrivate::createColumn()中,您有(注释是我的):
if (model->hasChildren(index)) { // Create column when there are children to display
view = q->createColumn(index);
q->connect(view, SIGNAL(clicked(QModelIndex)),
q, SLOT(_q_clicked(QModelIndex)));
} else { // Create column when there are no more children => the column will show the preview widget
if (!previewColumn)
setPreviewWidget(new QWidget(q)); // Indirectly create previewColumn
view = previewColumn;
view->setMinimumWidth(qMax(view->minimumWidth(), previewWidget->minimumWidth()));
}如果您想要更改QColumnView的行为,使它不总是显示出来的预览小部件,那么您必须自己在Qt代码中修复它并将其推送到Qt中,或者在Qt 虫追踪器中创建一个建议,然后等待好的人来修复它。
https://stackoverflow.com/questions/42408736
复制相似问题