crossplatform.ru

Здравствуйте, гость ( Вход | Регистрация )

 
Ответить в данную темуНачать новую тему
> Добавление кнопки в QTableView через делегат.
Trisch
  опции профиля:
сообщение 16.8.2014, 15:33
Сообщение #1


Активный участник
***

Группа: Участник
Сообщений: 379
Регистрация: 30.1.2012
Из: Запорожье
Пользователь №: 3169

Спасибо сказали: 24 раз(а)




Репутация:   0  


Как добавить кнопку в таблицу (QTableView) через делегат так, что бы она отображалась сразу в ячейке, а не после нажатия по ячейке кнопкой мыши?

Сейчас кнопка в таблицу добавляется так:
QWidget *DelegateTable::createEditor(QWidget *parent, const QStyleOptionViewItem &option, const QModelIndex &index) const {
    ...
    QPushButton *editor = new QPushButton(parent);
    QString currentText = index.model()->data(index, Qt::DisplayRole).toString();
    editor->setText(currentText);
    return editor;
    ...
}
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
lanz
  опции профиля:
сообщение 16.8.2014, 21:08
Сообщение #2


Старейший участник
****

Группа: Участник
Сообщений: 690
Регистрация: 28.12.2012
Пользователь №: 3660

Спасибо сказали: 113 раз(а)




Репутация:   8  


Можно так например:
http://qt-project.org/doc/qt-4.8/qabstract...#setIndexWidget

Или вот так, хотя мне первый метод больше нравится:
http://qt-project.org/doc/qt-4.8/qabstract...ersistentEditor
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Trisch
  опции профиля:
сообщение 17.8.2014, 11:31
Сообщение #3


Активный участник
***

Группа: Участник
Сообщений: 379
Регистрация: 30.1.2012
Из: Запорожье
Пользователь №: 3169

Спасибо сказали: 24 раз(а)




Репутация:   0  


Тогда как мне узнать какая кнопка была нажата?

Это придется переопределять класс кнопки так, чтобы конструктор принимал номер строки и столбца, а сигнал отправлял эти параметры или есть по проще вариант?
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
lanz
  опции профиля:
сообщение 17.8.2014, 11:58
Сообщение #4


Старейший участник
****

Группа: Участник
Сообщений: 690
Регистрация: 28.12.2012
Пользователь №: 3660

Спасибо сказали: 113 раз(а)




Репутация:   8  


Можно QSignalMapper использовать.
http://qt-project.org/doc/qt-4.8/qsignalmapper.html
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение

Быстрый ответОтветить в данную темуНачать новую тему
Теги
Нет тегов для показа


1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0




RSS Текстовая версия Сейчас: 29.3.2024, 17:23