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

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

Страниц: [1]   Вниз
  Печать  
Автор Тема: Делегат для QtableWidget  (Прочитано 6319 раз)
sektor
Самовар
**
Offline Offline

Сообщений: 100


Просмотр профиля
« : Июнь 02, 2016, 13:21 »

Добрый день всем. Хочу создать диалоговое окно с таблицей, при двойном клике на элемент таблицы редактирование происходило с  делегатом spinBox. Я знаю это можно сделать с помощью модель представления, но не хотел заморачиваться и хотел сделать на виджете tableWidget. Можно ли использовать делегирование для tableWidget, если да, пожалуйста приведите пример.
Записан
Racheengel
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 2679


Я работал с дискетам 5.25 :(


Просмотр профиля
« Ответ #1 : Июнь 02, 2016, 14:36 »

QTableWidget это наследник QAbstractItemView.
Соответственно делегировать можно, как и для вью.
Пример дает гугл очень быстро:
http://doc.qt.io/qt-4.8/qt-itemviews-spinboxdelegate-example.html
Записан

What is the 11 in the C++11? It’s the number of feet they glued to C++ trying to obtain a better octopus.

COVID не волк, в лес не уйдёт
sektor
Самовар
**
Offline Offline

Сообщений: 100


Просмотр профиля
« Ответ #2 : Июнь 03, 2016, 11:47 »

Сделал как в примере, что то у меня таблица пустая получается. Нет элементов.

Код:
{
    ui->setupUi(this);
    ui->tableWidget->horizontalHeader()->setSectionResizeMode(QHeaderView::Stretch);
    ui->tableWidget->verticalHeader()->setSectionResizeMode(QHeaderView::Stretch);
    ItemDelegat delegat;
    ui->tableWidget->setItemDelegate(&delegat);
    ui->tableWidget->setItem(1,1, new QTableWidgetItem());

}
Записан
GreatSnake
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 2921



Просмотр профиля
« Ответ #3 : Июнь 03, 2016, 11:57 »

Объект созданный в скопе будет уничтожен при выходе из скопа.
Записан

Qt 5.11/4.8.7 (X11/Win)
sektor
Самовар
**
Offline Offline

Сообщений: 100


Просмотр профиля
« Ответ #4 : Июнь 03, 2016, 15:56 »

Все понял, получилось. А можно будет для каждой ячейки spinbox - а свои параметры установить ?
Записан
Racheengel
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 2679


Я работал с дискетам 5.25 :(


Просмотр профиля
« Ответ #5 : Июнь 03, 2016, 20:58 »

void QItemDelegate::setEditorData(QWidget *editor, const QModelIndex &index) const

Sets the data to be displayed and edited by the editor from the data model item specified by the model index.

в делегат передается редактируемый индекс в модели и собственно редактор, для которго можно посадить свои параметры согласно индекса.
Записан

What is the 11 in the C++11? It’s the number of feet they glued to C++ trying to obtain a better octopus.

COVID не волк, в лес не уйдёт
sektor
Самовар
**
Offline Offline

Сообщений: 100


Просмотр профиля
« Ответ #6 : Июнь 08, 2016, 13:03 »

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


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