Russian Qt Forum
Июля 04, 2025, 02:10 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

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

Страниц: [1]   Вниз
  Печать  
Автор Тема: QTreeView::setColumnWidth  (Прочитано 5445 раз)
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.023 секунд. Запросов: 18.