2017-02-23 63 views
1

Я хочу скрыть виджет предварительного просмотра, который отображается как последний столбец, даже если у него нет детей. Я искал всюду в Интернете, и множество пользователей не хотели, чтобы виджет предварительного просмотра был добавлен как последний столбец все время.Скрыть виджет предварительного просмотра в QColumnView? [Навсегда не разрешено]!

Что более жалким здесь есть Ни одно решение не было предложено до сих пор [С 2010]. Есть ли способ избавиться от этого раздражающего поведения? Если нет, не должны ли разработчики Qt предоставлять эту опцию по крайней мере в Qt5? Дайте мне знать, если я пропущу что-то здесь.

Примечание: Я попробовал возможные предложенные решения, и ни один из них не работал

  • Установка ширины столбца до 0 - Failed
  • Вернуться Ложные для createColumn - createColumn не совсем когда отображается виджет предварительного просмотра

ответ

1

Невозможно это сделать. В qcolumnview.cpp в 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 git repo или создайте предложение в Qt bug tracker и дождитесь, когда кто-нибудь его исправит.

+0

Или напишите свой собственный класс просмотра столбцов, который имеет именно то поведение, которое вы хотите. – ekhumoro

 Смежные вопросы

  • Нет связанных вопросов^_^