2017-02-23 3 views
1

子供がいなくても最後の列として表示されるプレビューウィジェットを非表示にしたいと思います。私はインターネット上のあらゆる場所を見てきましたが、多くのユーザーが最後の列としてプレビューウィジェットを追加することを望ましくありませんでした。QColumnViewのプレビューウィジェットを非表示にしますか? [永遠に解決できない]!

こちらより哀れだものです、何ソリューションは、[2010年]今まで提供されていません。この厄介な行動を取り除く方法はありますか?もしそうでなければ、少なくともQt5ではQt開発者がこのオプションを提供してはいけませんか?私がここで何かを見逃したら私に知らせてください。

注:私は可能は、解決策を提案し、それらのいずれも0に列幅を設定

  • を働いた試してみた - createColumnためfalseを返す
  • を失敗しました - createColumnがすべてではありませんプレビューウィジェットが表示されているときに呼び出されます

答えて

1

これはできません。 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())); 
} 

あなたはそれが常に表示されていないプレビューウィジェットは、あなたがQtの中で自分自身をそれを固定することで貢献する必要がありますようにQColumnViewの動作を変更したい場合コードを作成してQt git repoにプッシュするか、Qt bug trackerで提案を作成し、誰かがそれを修正するのを待ちます。

+0

または、必要な振る舞いを持つ独自の列ビュークラスを作成します。 – ekhumoro

関連する問題