Russian Qt Forum
Июнь 16, 2024, 04:28 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

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

Страниц: [1]   Вниз
  Печать  
Автор Тема: Размеры виджета в ячейке таблицы  (Прочитано 2729 раз)
Гурман
Гуру общения
******
Offline Offline

Сообщений: 1442

Qt 2.2, 3.3, 4.5, 4,7, 4.8, 5.3, 5.6, 5.9, 5.12


Просмотр профиля
« : Август 08, 2011, 18:58 »

Потребовалось встроить свой виджет в ячейку таблицы (делегатов не предлагать, не подходят в данном случае). Сделал его в дизайнере, встроил, все работает, кроме того, что размер виджета не изменяется с размером ячейки. Наверно FAQ, но все никак. При этом в соседних ячейках встроены стандартные виджеты (редактор строки, выпадающий список и т.д.) - у них размеры меняются. И ни в какую не получается - и скомпонован он внутри себя, и size policy expanding. Что ему может быть не так?
« Последнее редактирование: Август 08, 2011, 19:22 от Гурман » Записан

2^7-1 == 127, задумайтесь...
aliks-os
Гость
« Ответ #1 : Август 10, 2011, 11:42 »

без делегата ни как, а что за проблема встроить ваш виджет как делегат?
Записан
GreatSnake
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 2921



Просмотр профиля
« Ответ #2 : Август 10, 2011, 12:07 »

Есть подозрение, что ui-форму нужно поместить в отдельный виджет со своим лейаутом и уже этот виджет помещать в ячейку.
Записан

Qt 5.11/4.8.7 (X11/Win)
Гурман
Гуру общения
******
Offline Offline

Сообщений: 1442

Qt 2.2, 3.3, 4.5, 4,7, 4.8, 5.3, 5.6, 5.9, 5.12


Просмотр профиля
« Ответ #3 : Август 10, 2011, 14:57 »

Цитировать
без делегата ни как, а что за проблема встроить ваш виджет как делегат?

без делегата вполне может быть как - виджеты, которые создаются в коде, нормально ресайзятся в ячейках, но виджет, созданный в дизайнере почему-то нет

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

Цитировать
Есть подозрение, что ui-форму нужно поместить в отдельный виджет со своим лейаутом и уже этот виджет помещать в ячейку.

то есть? ui-форма - и так наследник виджета, и лейаут в нем есть, в какой ее еще виджет помещать?

вот такой виджет:

Код:
                {
                    QSpinBox* spin = new QSpinBox();
                    spin->setRange( INT_MIN, INT_MAX );
                    spin->setValue( tmp.value.toInt() );
                    widget = spin;
                }
ресайзится вместе с ячейкой таблицы

а вот такой:
Код:
                {
                    PathSelector* path = new PathSelector(); // : QWidget, создан в дизайнере
                    path->le()->setText( tmp.value.toString() );
                    widget = path;
                }
почему-то нет, привязываются они оба одним и тем же вызовом
Код:
ui->tableWidget->setCellWidget( row, 1, widget );
« Последнее редактирование: Август 10, 2011, 15:01 от Гурман » Записан

2^7-1 == 127, задумайтесь...
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


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