crossplatform.ru

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

3 страниц V   1 2 3 >  
Ответить в данную темуНачать новую тему
> Заполнить виджет окна..., Заполнить равномерно виджет окна...
fortero
  опции профиля:
сообщение 27.4.2011, 1:19
Сообщение #1


Участник
**

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

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




Репутация:   0  


Доброй ночи!
Имеется MDI дочернии окна, внутри есть необходимость установить виджет таблице QTableWidget, устанавливается благополучно, а как мне сделать, что бы таблица равномерно увеличивалась при увиличении окна, а то она статична в размере, дочерне окно я увеличил немного или до максимума а размер виджета таблицы остался прежний...
Спасибо за внимание!
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
silver47
  опции профиля:
сообщение 27.4.2011, 4:53
Сообщение #2


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

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

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




Репутация:   6  


Немного не понял. Имеется окно с QTableWidget, в одной из ячеек которой стоит другой виджет. При изменении размеров окна, размер таблицы меняется, а размер ячейки с виджетом нет?
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
igor_bogomolov
  опции профиля:
сообщение 27.4.2011, 7:52
Сообщение #3


Профессионал
*****

Группа: Сомодератор
Сообщений: 1215
Регистрация: 22.3.2009
Из: Саратов
Пользователь №: 630

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




Репутация:   29  


Используй компоновщики
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
fortero
  опции профиля:
сообщение 27.4.2011, 11:02
Сообщение #4


Участник
**

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

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




Репутация:   0  


Есть окно к примеру хоть класса QMainWindow и в нём нужно построить таблицу при помощи класса QTableWidget, всё получается но размер таблицы не увеличевается с размером окна, она фиксированного размера почему то...
А как припомощи компоновщика правельно задать параметры когда 1 виджет, что бы он занимал всё пространство окна и динамически увеличевался при увиличение окна?
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
silver47
  опции профиля:
сообщение 27.4.2011, 11:17
Сообщение #5


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

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

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




Репутация:   6  


В приведенном ниже примере установлю QTableWidget на виджет:
Widget::Widget(QWidget *parent) : QWidget(parent){
  QHBoxLayout *mainLay = new QHBoxLayout(this);
  mainLay->addWidget(table = new QTableWidget(1, 1, this));
  this->setLayout(mainLay);
}

А так для экземпляра QMainWindow:
this->setCentralWidget(table = new QTableWidget(1, 1, this));
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
fortero
  опции профиля:
сообщение 28.4.2011, 3:06
Сообщение #6


Участник
**

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

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




Репутация:   0  


Цитата(silver47 @ 27.4.2011, 11:17) *
В приведенном ниже примере установлю QTableWidget на виджет:
Widget::Widget(QWidget *parent) : QWidget(parent){
  QHBoxLayout *mainLay = new QHBoxLayout(this);
  mainLay->addWidget(table = new QTableWidget(1, 1, this));
  this->setLayout(mainLay);
}

А так для экземпляра QMainWindow:
this->setCentralWidget(table = new QTableWidget(1, 1, this));


Спасибо помогла с Layout!
А подскажите ещё пожалуйста, а как быть когда начинаешь окно растягивать увеличевать, как сделать что юы при увеличении геометрии окна таблица внутри окна тоже увеличивалась?
Спасибо за внимание...
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
silver47
  опции профиля:
сообщение 28.4.2011, 5:23
Сообщение #7


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

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

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




Репутация:   6  


Не понимаю я Вас. Как это помогло но не работает :). Давайте по-порядку. Я сейчас буду картинки прикреплять и объяснять что происходит, в конце поста прилеплю исходник.

1 Создаем Layout и засовываем в него таблицу. (рис1)
2 При изменении размеров окна, размер таблицы меняется, размер ячеек же остается постоянным!!!! (рис2)
3 Можно растянуть последний столбец, чтобы он занимал все оставшееся место (рис3), но это некрасиво.

Логичным является изменение размера ячеек в зависимости от размеров таблицы. По моему уровню знаний, это сделать сложнее, потому что нужно каким-то образом узнать что размеры таблицы изменились. Кроме как делать свой класс, унаследованный от QTableWidget. Может знающие люди чего посоветуют.

Обещанный код:
Эскизы прикрепленных изображений
Прикрепленное изображение
Прикрепленное изображение
Прикрепленное изображение
 

Прикрепленные файлы
Прикрепленный файл  temp.zip ( 1.25 килобайт ) Кол-во скачиваний: 71
 
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
ernie
  опции профиля:
сообщение 28.4.2011, 6:59
Сообщение #8


Участник
**

Группа: Участник
Сообщений: 130
Регистрация: 13.5.2010
Из: Irkutsk
Пользователь №: 1712

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




Репутация:   1  


Можно использовать setRowHeight и setColumnWidth при изменении размера, т.е. скажем setRowHeight(tableHeight/rowCount),где tableHeight - общая высота таблицы,так же и с шириной
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
silver47
  опции профиля:
сообщение 28.4.2011, 8:03
Сообщение #9


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

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

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




Репутация:   6  


Цитата(ernie @ 28.4.2011, 8:59) *
Можно использовать setRowHeight и setColumnWidth при изменении размера, т.е. скажем setRowHeight(tableHeight/rowCount),где tableHeight - общая высота таблицы,так же и с шириной


Блин, А кто спорит то?
Цитата(silver47 @ 28.4.2011, 7:23) *
Логичным является изменение размера ячеек в зависимости от размеров таблицы.


Вы знаете как:
Цитата(silver47 @ 28.4.2011, 7:23) *
нужно каким-то образом узнать что размеры таблицы изменились.
?

ПыСы:
Цитата(ernie @ 28.4.2011, 8:59) *
т.е. скажем setRowHeight(tableHeight/rowCount)

А если записей в таблице стотышьмилионов, что тогда увидим?

Сообщение отредактировал silver47 - 28.4.2011, 8:11
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
ernie
  опции профиля:
сообщение 28.4.2011, 8:57
Сообщение #10


Участник
**

Группа: Участник
Сообщений: 130
Регистрация: 13.5.2010
Из: Irkutsk
Пользователь №: 1712

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




Репутация:   1  


silver47,ну да,с высотой ячеек я погорячился что-то:))
По поводу как узнать,что размеры таблицы изменились,resizeEvent чем плох?
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение

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


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




RSS Текстовая версия Сейчас: 22.8.2019, 18:24