crossplatform.ru

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

5 страниц V  < 1 2 3 4 5 >  
Ответить в данную темуНачать новую тему
> QScrollArea, скоролы не появляются
Litkevich Yuriy
  опции профиля:
сообщение 15.8.2010, 17:52
Сообщение #21


разработчик РЭА
*******

Группа: Сомодератор
Сообщений: 9669
Регистрация: 9.1.2008
Из: Тюмень
Пользователь №: 64

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




Репутация:   94  


Цитата(RazrFalcon @ 15.8.2010, 21:33) *
Ну а виджет в скорол арию.
арию пусть в опере поют.
виджету нет необходимости устанавливать геометрию руками. В реальных программах этот приём почти не используется.
после после создания области прокрутки нужно просто установить её свойство widgetResizable в ИСТИНУ.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
RazrFalcon
  опции профиля:
сообщение 15.8.2010, 18:05
Сообщение #22


Zombie Mod
*****

Группа: Участник
Сообщений: 1654
Регистрация: 24.5.2010
Из: Харьков
Пользователь №: 1752

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




Репутация:   212  


Цитата(Litkevich Yuriy @ 15.8.2010, 17:52) *
после создания области прокрутки нужно просто установить её свойство widgetResizable в ИСТИНУ.

Но у меня оно и так true. Изначально.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Litkevich Yuriy
  опции профиля:
сообщение 15.8.2010, 18:27
Сообщение #23


разработчик РЭА
*******

Группа: Сомодератор
Сообщений: 9669
Регистрация: 9.1.2008
Из: Тюмень
Пользователь №: 64

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




Репутация:   94  


приведи код от создания области прокрутки, до помещения первого из виджетов, которые ты хочешь чтобы в ней были.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
RazrFalcon
  опции профиля:
сообщение 15.8.2010, 19:42
Сообщение #24


Zombie Mod
*****

Группа: Участник
Сообщений: 1654
Регистрация: 24.5.2010
Из: Харьков
Пользователь №: 1752

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




Репутация:   212  


Цитата(Litkevich Yuriy @ 15.8.2010, 18:27) *
приведи код от создания области прокрутки, до помещения первого из виджетов, которые ты хочешь чтобы в ней были.
widget в scrollAreа кидаю на форме.
FlowLayout *flowLayout = new FlowLayout;
flowLayout->addWidget(new QGraphicsView);
...
flowLayout->addWidget(new QGraphicsView);
widget->setLayout(flowLayout);
scrollArea->setWidgetResizable(true); //потом дописал, хотя на в свойствах в дизайнере стоит галочка.
//на ресайз окна
scrollArea->setGeometry(0,0,width()-100,height());
widget->setGeometry(0,0,width()+1000,height()+1000); //1000 пикс. чтоб наглядней было
в проект скинул flowlayout.h и flowlayout.cpp из примера.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
ufna
  опции профиля:
сообщение 15.8.2010, 23:39
Сообщение #25


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

Группа: Участник
Сообщений: 362
Регистрация: 24.5.2008
Из: Курган/СПб
Пользователь №: 182

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




Репутация:   5  


можешь кинуть минимальный код на твою проблему?

попробуй не через setGeometry, а через resize(). Когда меняешь геометрию, если память не изменяет, никаких событий не возникает - скролл арея не будет догадываться что размеры виджета изменились (либо если он поменян насильно до добавления в арею, то во время добавления лейаут менеджер урежет до нужных ему размеров).
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
RazrFalcon
  опции профиля:
сообщение 16.8.2010, 2:23
Сообщение #26


Zombie Mod
*****

Группа: Участник
Сообщений: 1654
Регистрация: 24.5.2010
Из: Харьков
Пользователь №: 1752

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




Репутация:   212  


Цитата(ufna @ 15.8.2010, 23:39) *
попробуй не через setGeometry, а через resize().

Тоже не пашит. Проект ниже.

Сообщение отредактировал RazrFalcon - 16.8.2010, 2:24
Прикрепленные файлы
Прикрепленный файл  Tempus.zip ( 5.73 килобайт ) Кол-во скачиваний: 100
 
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Litkevich Yuriy
  опции профиля:
сообщение 16.8.2010, 4:35
Сообщение #27


разработчик РЭА
*******

Группа: Сомодератор
Сообщений: 9669
Регистрация: 9.1.2008
Из: Тюмень
Пользователь №: 64

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




Репутация:   94  


widget в scrollAreа в дизайнере вообще не помещаем.
scrollArea->setWidgetResizable(true);
//
FlowLayout *flowLayout = new FlowLayout;
flowLayout->addWidget(new QGraphicsView);
...
flowLayout->addWidget(new QGraphicsView);
//
QWidget *widget = new QWidget();
widget->setLayout(flowLayout);
scrollArea->setWidget(widget);


RazrFalcon, все твои беды от того, что ты пытаешься размещать виджеты вручную. Я тебе уже говорил, что в реальных программах так не делают, без крайней нужды.
Да и вообще стиль плохой. Файл main.cpp отсутствует.

Прикрепленный файл  Tempus2.zip ( 4.98 килобайт ) Кол-во скачиваний: 177
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
RazrFalcon
  опции профиля:
сообщение 16.8.2010, 12:57
Сообщение #28


Zombie Mod
*****

Группа: Участник
Сообщений: 1654
Регистрация: 24.5.2010
Из: Харьков
Пользователь №: 1752

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




Репутация:   212  


Спасибо пашит. То есть все из-за того что я формой пользовался?! Хм...
В принципе она мне и не нужна практически никогда, так что буду теперь без нее.
Только не пойму в чем проблема с main.cpp?! В него ничего не помещают, он всегда одинаковый, и еще и отдельным фалом, таскать с собой вечно. Так почему бы просто его не в писать в главный .cpp . Не вижу проблемы, ну "кроме хорошего тона написания программы".
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Litkevich Yuriy
  опции профиля:
сообщение 16.8.2010, 13:43
Сообщение #29


разработчик РЭА
*******

Группа: Сомодератор
Сообщений: 9669
Регистрация: 9.1.2008
Из: Тюмень
Пользователь №: 64

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




Репутация:   94  


Цитата(RazrFalcon @ 16.8.2010, 16:57) *
То есть все из-за того что я формой пользовался?!
если речь о дизайнере форм, то - нет

Цитата(RazrFalcon @ 16.8.2010, 16:57) *
Так почему бы просто его не в писать в главный .cpp
главный и есть main (переводится именно так)
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
RazrFalcon
  опции профиля:
сообщение 16.8.2010, 16:47
Сообщение #30


Zombie Mod
*****

Группа: Участник
Сообщений: 1654
Регистрация: 24.5.2010
Из: Харьков
Пользователь №: 1752

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




Репутация:   212  


Цитата(Litkevich Yuriy @ 16.8.2010, 13:43) *
главный и есть main (переводится именно так)
Это я понял, просто мне что с ним что без него как то одинаково. По крайней мере разницы не вижу. И так и так компилит.
PS перестал работать ресайз QGraphicsView. Все время одного размера появляются, стандартного.
for (int i=0;i<gv_count;i++)
{
    list.append(new QGraphicsView);
    list[i]->setGeometry(list[i]->x(),list[i]->y(),500, 100);
    flowLayout->addWidget(list[i]);
}
scrollAreaWidgetContents->setLayout(flowLayout);
Где б я не ставил setGeometry, оно или не работает, или просто все обекты сбиваются в одну позицию, что значит я не то сделал.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение

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


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




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