Russian Qt Forum
Ноябрь 25, 2024, 14:36 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

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

Страниц: [1]   Вниз
  Печать  
Автор Тема: сапер  (Прочитано 3595 раз)
zorra
Гость
« : Апрель 26, 2014, 21:03 »

Доброго времени суток. Начал изучать программирование в qt. Задали делать сапера. Застрял на расположении кнопок. использовал QGridLayout. Кнопки расположил по сетке (9x9). Вообщем вот кусочек кода:
Код:
QGridLayout *l1 = new QGridLayout;
....
.... (тут я вставлял кнопки в l1)
....
l1->setMargin(0);
l1->setSpacing(0);
setLayout(l1);

проблема в том, что при растягивании формы, появляются пробелы между строками. как избежать этого?
Записан
gil9red
Administrator
Джедай : наставник для всех
*****
Offline Offline

Сообщений: 1805



Просмотр профиля WWW
« Ответ #1 : Апрель 26, 2014, 21:48 »

Попробуйте setRowStretch и setColumnStretch Улыбающийся


Сейчас смодулировал то, что вы хотите в дизайнере (скрин прилагается) и посмотрел код, который он сгенерировал, в общем такой:
Код
C++ (Qt)
// Вставка пружин, который будут прижимать виджеты
QSpacerItem * horizontalSpacer = new QSpacerItem(40, 20, QSizePolicy::Expanding, QSizePolicy::Minimum);
gridLayout->addItem(horizontalSpacer, 0, 2, 1, 1);
 
QSpacerItem * verticalSpacer = new QSpacerItem(20, 40, QSizePolicy::Minimum, QSizePolicy::Expanding);
gridLayout->addItem(verticalSpacer, 2, 0, 1, 1);
 
Горизонтальная пружинка добавляется в первую строку, последний столбец
Вертикальнаяпружинка добавляется в последнюю строку, первый столбец
« Последнее редактирование: Апрель 26, 2014, 21:59 от gil9red » Записан

zorra
Гость
« Ответ #2 : Апрель 26, 2014, 22:39 »

gil9red, я вот попробовал сделать так, как вы сказали, получается такая вот штука при растяжении экрана:
Записан
zorra
Гость
« Ответ #3 : Апрель 26, 2014, 22:49 »

Я может не очень точно написал, надо как-то сделать, чтобы при растягивании формы, кнопки равномерно растягивались по форме без пробелов.
Записан
gil9red
Administrator
Джедай : наставник для всех
*****
Offline Offline

Сообщений: 1805



Просмотр профиля WWW
« Ответ #4 : Апрель 27, 2014, 00:07 »

Тогда:
У кнопок поставьте sizePolicy на Preffered -> button->setSizePolicy( QSizePolicy::Preferred, QSizePolicy::Preferred ); Подмигивающий
Записан

Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


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