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

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

Страниц: [1]   Вниз
  Печать  
Автор Тема: Теряются скрытые элементы при перемещении(QTreeView, QStandardItemModel)  (Прочитано 2940 раз)
joker
Новичок

Offline Offline

Сообщений: 49


Просмотр профиля
« : Январь 16, 2011, 01:24 »

Больше хочу переспросить, прав ли я что это бага.

В примере - дерево. Если элемент с двумя колонками перетащить в элемент "folder" то:
 - если вторая колонка будет видима она нормально переедет
 - если будет невидима (те перетащили и потом включили видимость) то эта колонка "пропадет".

Код:
#ifndef DIALOG_H
#define DIALOG_H

#include <QtGui>

class Dialog : public QDialog
{
    Q_OBJECT

public:
    Dialog(QWidget *parent = 0);
    ~Dialog();
    QTreeView *view;
public slots:
    void showHidden();
};

#endif // DIALOG_H

Код:
#include "dialog.h"

Dialog::Dialog(QWidget *parent)
    : QDialog(parent)
{
    view = new QTreeView();
    QStandardItemModel *model = new QStandardItemModel();
    QStandardItem *root = model->invisibleRootItem();

    QStandardItem *item1 = new QStandardItem("first_column ");
    root->setChild(0,item1);
    QStandardItem *item2 = new QStandardItem("second_column ");
    root->setChild(0,1,item2);

    QStandardItem *folder1 = new QStandardItem("folder");
    root->appendRow(folder1);


    view->setModel(model);
    view->setDragDropMode(QAbstractItemView::InternalMove);
    view->setColumnHidden(1, true);

    QPushButton *bt = new QPushButton("Show/Hide");

    connect(bt, SIGNAL(clicked()), this, SLOT(showHidden()));

    QVBoxLayout *lay = new QVBoxLayout();
    lay->addWidget(view);
    lay->addWidget(bt);
    setLayout(lay);
}

void Dialog::showHidden(){
    view->setColumnHidden(1, !view->isColumnHidden(1));
}

Dialog::~Dialog()
{

}
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


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