186 / 186 / 21
Регистрация: 08.01.2011
Сообщений: 1,139
|
|
1 | |
Как создать список виджетов?22.12.2013, 07:00. Показов 6200. Ответов 13
Метки нет (Все метки)
Мне надо вывести список фильмов(картинка, актеры, описание и т.д.), как на сайтах кинотеатров показывают список фильмов(репертуар).
Получается, что в каждом элементе списка будут виджеты для вывода изображения и текстов. Читал про model view архитектуру, но так и не понял. Вижу только один вариант: в виджете создавать много виджетов в виде списка, а в этих виджетах делать описание фильма. Может есть более простой способ?
0
|
22.12.2013, 07:00 | |
Ответы с готовыми решениями:
13
Отобразить список моих виджетов на форме Создать класс «Квартира», в котором список комнат реализовать как односвязный список Создать список целых чисел. Создать новый список, записав в него отрицательные элементы Как создать список? |
1403 / 1260 / 262
Регистрация: 10.11.2013
Сообщений: 3,763
|
|
22.12.2013, 09:02 | 2 |
В QScrollArea вставляем QLayout и в него виджеты. Вот вам и список.
1
|
186 / 186 / 21
Регистрация: 08.01.2011
Сообщений: 1,139
|
||||||
22.12.2013, 17:01 [ТС] | 4 | |||||
К сожалению, нет времени на это разбираться.
Сделал так: Создается список groupbox'ов, в которых будут размещаться информация о фильмах(пока просто три радио кнопки). Эти groupbox'ы находятся в главном layout'е. Как сделать так, чтобы этот layout можно было скролить? Добавил ScrollArea и установил что скролить (setLayout(мой главный layout)). Но ничего не появляется.
0
|
1403 / 1260 / 262
Регистрация: 10.11.2013
Сообщений: 3,763
|
|
22.12.2013, 17:33 | 5 |
В QScrollArea нужно вставить не лайоут, а виджет. При создании QScrollArea в дизайнере он и так там есть.
Вот в него нужно добавить лайоут с вашими виджетами. Так же нужно растянуть этот самый виджет, к примеру через setFixedSize. Так как он должен быть больше самого QScrollArea, иначе что тогда скролить.
1
|
186 / 186 / 21
Регистрация: 08.01.2011
Сообщений: 1,139
|
||||||
22.12.2013, 18:14 [ТС] | 6 | |||||
Создал в дизайнере ScrollArea. На него положил Widget, а на него вертикальный layout.
Добавлено через 7 минут Скролить я хочу то, что не помещается в вертикальный layout. В дезайнере скролареа, виджет и верт. layout одного размера. Или надо по другому?
0
|
1403 / 1260 / 262
Регистрация: 10.11.2013
Сообщений: 3,763
|
|
22.12.2013, 18:15 | 7 |
1) Нужно указать что setWidgetResizable(false), у QScrollArea.
2) Если вы имена по умолчанию не меняли, то: ui->scrollAreaWidgetContents->setFixedSize(1000, 1000); Теперь должны появится скролбары, ну а дальше на ваше усмотрение.
1
|
186 / 186 / 21
Регистрация: 08.01.2011
Сообщений: 1,139
|
|
22.12.2013, 18:27 [ТС] | 8 |
Странно. Скрол скролит что-то другое, но не вертикальный layout. В вертикальном layout'е показываются только те групбоксы с радио кнопками, которые влезли в изначальный размер виджет и layout, который лежит в этом виджете.
0
|
1403 / 1260 / 262
Регистрация: 10.11.2013
Сообщений: 3,763
|
|
22.12.2013, 18:44 | 9 |
Не понял в чем проблема, но попробуйте задавать минимальный размер вашим QGroupBox, а размер виджета в скроле не трогать.
Тогда эти самый QGroupBox сами растянут виджет-родитель.
0
|
186 / 186 / 21
Регистрация: 08.01.2011
Сообщений: 1,139
|
||||||
22.12.2013, 19:07 [ТС] | 10 | |||||
Лайаут пытается все групбоксы разместить в себе, сплющивая эти групбоксы.
Установил миним. размер груп бокса и указал лайауту, чтобы он учитывал эти мин. размеры:
0
|
186 / 186 / 21
Регистрация: 08.01.2011
Сообщений: 1,139
|
|
22.12.2013, 19:09 [ТС] | 11 |
Вот так выглядит все:
тут видно, что лайаут не меняет своего размера.
0
|
186 / 186 / 21
Регистрация: 08.01.2011
Сообщений: 1,139
|
||||||
22.12.2013, 19:24 [ТС] | 12 | |||||
Вроде разобрался. Надо просто у виджета, на котором находится лайаут, тоже изменить размер:
0
|
1403 / 1260 / 262
Регистрация: 10.11.2013
Сообщений: 3,763
|
|
22.12.2013, 19:34 | 13 |
По идее родитель лайоута должен растягиваться в зависимости от размеров дочерних виджетов.
1
|
186 / 186 / 21
Регистрация: 08.01.2011
Сообщений: 1,139
|
||||||
22.12.2013, 20:38 [ТС] | 14 | |||||
Попробовал такое написать:
Тогда буду в ручную вычислять размер относительно кол-ва групбоксов и задавать размер виджету.
0
|
22.12.2013, 20:38 | |
22.12.2013, 20:38 | |
Помогаю со студенческими работами здесь
14
Перебор виджетов как массив Как изменять параметры виджетов? Как создать список номеров которыми можно управлять как базой данных Создать список L, включив в него по одному разу элементы, которые входят в список L1, но не входят в список L2 Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |