qt - 在 QColumnView 中隐藏预览小部件?

标签 qt pyqt qt5

我想隐藏显示为最后一列的预览小部件,即使它没有子项也是如此。我在互联网上到处查看,无数用户不希望预览小部件始终添加为最后一列。

更可悲的是,到目前为止[从2010年开始]还没有提供解决方案。有什么办法可以摆脱这种烦人的行为吗?如果没有,Qt 开发人员不应该至少在 Qt5 中提供此选项吗?如果我错过了什么,请告诉我。

注意:我已经尝试了可能的建议的解决方案,但没有一个有效

  • 将列宽设置为 0 - 失败
  • createColumn 返回 False - 显示预览小部件时根本不会调用 createColumn

最佳答案

没有办法做到这一点。在 QColumnViewPrivate::createColumn()qcolumnview.cpp 中,您有(评论是我的):

 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 git 存储库来做出贡献,或者在 Qt bug tracker 中创建建议并等待好心人修复它。

关于qt - 在 QColumnView 中隐藏预览小部件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42408736/

相关文章:

python - 增加QtWebKit每台主机的最大连接数

python - 为什么使用setWindowFlags后子对话框无法显示?

c++ - 遵循除了内容之外的布局

c++ - Qt在类里面拥有自己的枚举

c++ - 如何划分程序——Qt、C++使用mvc逻辑

c++ - 了解 Qt 平台变量

c++ - QRegularExpression和反斜杠的使用规则

c++ - 指向 vector 中元素的指针

c++ - 如何将隐藏的数据发送到pyqt中的QComboBOX

qt5 - 如何返回 null QDomElement?