Russian Qt Forum
Ноябрь 24, 2024, 06:58 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: [1]   Вниз
  Печать  
Автор Тема: QTreeView::setColumnWidth  (Прочитано 5201 раз)
Yegor
Гость
« : Август 22, 2012, 13:59 »

Здравствуйте!
Когда я в диалоге размещаю QTreeView и для каждой колонки делаю setColumnWidth, то в результате ширины столбцов не меняются, остаются по умолчанию (headerDefaultSectionSize).
Вопрос, как все же изменить ширины столбцов программно?
Записан
QtCoder
Гость
« Ответ #1 : Август 22, 2012, 14:06 »

Здравствуйте!
Когда я в диалоге размещаю QTreeView и для каждой колонки делаю setColumnWidth, то в результате ширины столбцов не меняются, остаются по умолчанию (headerDefaultSectionSize).
Вопрос, как все же изменить ширины столбцов программно?
Если попытаться выставить ширину до того как выставил headerData получим этот эффект.
Записан
Yegor
Гость
« Ответ #2 : Август 22, 2012, 14:09 »

Объясните пожалуйста, что значить выставить headerData?
Записан
QtCoder
Гость
« Ответ #3 : Август 22, 2012, 14:13 »

Объясните пожалуйста, что значить выставить headerData?

Определить данные заголовков в модели.
в общем сначала надо поставить модель setModel() а затем менять ширину колонок. В модели есть headerData - виртуальный метод который отвечает за данные заголовков. Он может быть уже переопределен если используется стандартная модель вроде QsqlTableModel, а может и самому надо определить.
Записан
Yegor
Гость
« Ответ #4 : Август 22, 2012, 14:21 »

А можно ли ширину колонок менять из представления (QTreeView), а не из модели?
Записан
QtCoder
Гость
« Ответ #5 : Август 22, 2012, 14:35 »

А можно ли ширину колонок менять из представления (QTreeView), а не из модели?

Минимальный кусок кода мог бы прояснить картину, что вы делаете.
Записан
Yegor
Гость
« Ответ #6 : Август 22, 2012, 14:41 »

Конструктор диалогового окна:

Код:
    
    ui.setupUi(this);

    //Init model.
    m_pModel = new WatchDogModel(this);

    //Set model to view.
    ui.treeView_WatchDog->setModel(m_pModel);

    //Resize columns
    ui.treeView_WatchDog->setColumnWidth(0, 135);
    ui.treeView_WatchDog->setColumnWidth(1, 135);
    ui.treeView_WatchDog->setColumnWidth(2, 200);

И ни какого эффекта от установки ширин столбцов.
« Последнее редактирование: Август 22, 2012, 14:45 от Yegor » Записан
QtCoder
Гость
« Ответ #7 : Август 22, 2012, 15:28 »

Конструктор диалогового окна:

Чот ничо не могу сказать. Кастую Вереса в тему.
Записан
Bepec
Гость
« Ответ #8 : Август 22, 2012, 15:42 »

Кто меня призвал?Непонимающий Кому морду на... леденец дать? Веселый

Только что проверил - setColumnWidth работает так как надо. (колонки заданной ширины.)

При установке/удалении модели значения сбрасываются. (так и надо.)

PS приводи свой код полностью, а ещё лучше выложи минимальный компилируемый пример в архивчике.
« Последнее редактирование: Август 22, 2012, 15:49 от Bepec » Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.049 секунд. Запросов: 21.