![]() |
|
![]() ![]() ![]() |
|
gordmiand |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 772 Регистрация: 15.4.2007 Репутация: нет Всего: 0 |
Подскажиет как можно (?) обращаться с виджетами как с элементами массивов???
у меня 2 цели: 1. есть набор комбобоксов (именно так, а не таблица), в каждом из которых выбирается свое значение некой величины - вот и хотелось бы одним махом считать в массив установленные данные в каждом комбобоксе, обращаясь к ним как к элементам некоего массива комбобоксов... 2. такая же история с пунктами (QAction-ы) меню: как мне в один заход (слот) считать текущее состояние всех этих пунктов меню (выбран/не выбран (стоит отметка чека) пункт)...то есть надо работать с набором ку-экшенов как с массивом данных...можно примерчик дать.... |
|||
|
||||
ecspertiza |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 763 Регистрация: 3.11.2008 Где: г.Смоленск Репутация: 4 Всего: 5 |
Вот держи примерчик, он тебе должен помочь)
Присоединённый файл ( Кол-во скачиваний: 8 ) ![]() |
|||
|
||||
SABROG |
|
|||
![]() Hacker ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2481 Регистрация: 18.9.2006 Репутация: 81 Всего: 91 |
По идее такую задачу решает QDataWidgetMapper. Можно завести QStandardItemModel, где каждую колонку модели привязать к конкретному QComboBox'у: void QDataWidgetMapper::addMapping ( QWidget * widget, int section ) //section - номер колонки Я не помню, чтобы QDataWidgetMapper работал с QMenu, но даже в этом случае можно реализовать передачу данных между модельью и любым интересующим тебя виджетом: QDataWidgetMapper::setItemDelegate() |
|||
|
||||
gordmiand |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 772 Регистрация: 15.4.2007 Репутация: нет Всего: 0 |
SABROG:
по п1. - имелось ввиду, что каждая ячейка определенного столбца (допустим третьего) таблицы представляет собой отдельный комбобокс....получается набор комбобоксов с выбранными в каждом из них данными - вот их-то и хотелось считывать не из каждого бокса, а сразу из их "массива"... кстати - а как реализовать комбобокс вместо ячейки таблицы? по п.2. - тоже хотелось бы иметь возможность работы с набором пунктов меню как с массивом... хотелось бы более наглядный (подробный) конкретный пример... |
|||
|
||||
SABROG |
|
|||
![]() Hacker ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2481 Регистрация: 18.9.2006 Репутация: 81 Всего: 91 |
Я еще больше запутался. Ответ типа "можно получить список всех дочерних виджетов в виде массива указателей и работать с ним в цикле", тебя устроит? Если да, то
QList<T> QObject::findChildren ( const QRegExp & regExp ) const Есть еще и другие конструкторы, но имена виджетам можно задать спецом такие, чтобы не пересекались с ненужными виджетами и при этом удовлетворяли регулярному выражению. |
|||
|
||||
gordmiand |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 772 Регистрация: 15.4.2007 Репутация: нет Всего: 0 |
вау....крутоо..это надо обдумать...
а как реализовать вместо каждой ячейки какого-либо столбца таблицы отдельные комбобоксы? |
|||
|
||||
SABROG |
|
|||
![]() Hacker ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2481 Регистрация: 18.9.2006 Репутация: 81 Всего: 91 |
Как обычно, QItemDelegate. Только надо учесть тот факт, что по умолчанию любой виджет для ячейки будет создаваться каждый раз заново при попытке отредактировать ячейку и уничтожаться после окончания редактирования. Решается через openPersistentEditor(), чтобы они всегда отображались. Только тут возникает уже проблема с тормозами на большом количестве ячеек. |
|||
|
||||
![]() ![]() ![]() |
Правила форума "С/С++: Кроссплатформенное программирование, QT/Gtk+/wxWidgets" | |
|
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, JackYF, Любитель. |
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | С/С++: Кроссплатформенное программирование, Qt/Gtk+/wxWidgets | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |