Диссидент
Эксперт C
27706 / 17322 / 3812
Регистрация: 24.12.2010
Сообщений: 38,979
1

Виджет в ячейке QTableWidget

19.04.2015, 15:08. Показов 3110. Ответов 1
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
В ячейки помещаются виджеты (QSpinBox, но не суть) . К сигналу изменения спина коннектится слот. В этом слоте по sender-у я нахожу этот виджет. Вопросы
а) Как выйти на QTableWidget (получить указатель на него)
б) Как понять, в какой ячейке он находится (row, column)
По поводу (а) можно, конечно, найти Таблицу по findChild
По поводу (б) можно придумать костыль, типа того, что давать спинам имена (setObjectName) вида "row:column" или там свойства.
А без костылей, своими ногами? Только через делегаты-модель?

Добавлено через 18 часов 21 минуту
По поводу (а). TableWidget оказался дедушкой Спинбокса (и, видимо, любого виджета, вставляемого по setCellWidget)

Добавлено через 8 минут
Факт обнаружен с помощью маленькой самопальной функциклюшки, разбирающей родословную
C++ (Qt)
1
2
3
4
5
6
7
8
9
10
void MetaJur(QObject *g)
{ 
   if (g==0) { qDebug() <<"g==0"; return; }
   qDebug() << g->metaObject()->className() <<g-> objectName();
   QObject *par = g->parent();
   while(par!=NULL) {
     qDebug() << par->objectName() << par->metaObject()->className();
     par = par->parent();
   }
}
Может кому пригодится...

А по поводу (б)... Видимо, придется у спина создавать пару свойств "row", "column"...
1
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
19.04.2015, 15:08
Ответы с готовыми решениями:

QTableWidget 2 кнопки в ячейке
Знаю как добавить одну кнопку в ячейку таблицы, но мне нужно 2, пробовал через layout, но это не...

QTableWidget (реагирование на клик по ячейке);
Всем привет, хотел спросить, как можно скрывать определенные кнопки на интерфейсе по клику мыши на...

Состояние Checkstate в ячейке QTableWidget
Собственно как узнать его состояние? В смысле Qt::Checked или Qt::Unchecked checkbox в ячейке. Есть...

QTableWidget (несколько строк в ячейке)
Нужно, чтобы, если строка добавляемая в ячейку больше, чем размер ячейки, то она записывалась не с...

1
Диссидент
Эксперт C
27706 / 17322 / 3812
Регистрация: 24.12.2010
Сообщений: 38,979
20.04.2015, 20:36  [ТС] 2
По ходу попытки понять механизм заполнения ячеек QTableWidget возник такой вопрос.
При использовании setCellWidget никакого объекта QTableWidgetItem не создается. Так?
В ячейке может быть либо Виджет, либо Итем? А тогда как понять, кто именно в данной ячейке? Просто item или, соответственно, cellWidget возвратят 0 ? Да?
0
20.04.2015, 20:36
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
20.04.2015, 20:36
Помогаю со студенческими работами здесь

Выравнивание QCheckBox в ячейке QTableWidget
Доброго времени суток коллеги. Суть вопроса в следующем: В ячейке таблицы необходимо установить...

QTableWidget сигнал изменения виджета в ячейке
Qt 4.8.4 Есть таблица QTableWidget данных на строчек 20 не более. В ячейки этой таблицы с помощью...

QTableWidget кнопка и текст в 1 ячейке используя QTableWidgetItem
Собственно необходимо запихнуть кнопку для удаления в ячейку с текстом(текст и кнопка должны быть...

QTableWidget, как записать несоколько строк в ячейке?
Никак не могу найти ответа на вопрос. Нужно в ячейке таблицы сделать запись в две строки, например...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru