crossplatform.ru

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

> Помогите прикрутить к виджету скролл!
maxvanceffer
  опции профиля:
сообщение 10.11.2009, 13:27
Сообщение #1


Студент
*

Группа: Участник
Сообщений: 72
Регистрация: 30.5.2009
Из: Moldova
Пользователь №: 790

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




Репутация:   0  


Вообщем
распологаю на форме несколько своих виджетов. За тем форма заноситься в Стакед виджет, тот же в свою очередь не может быть шире или выше
заданных значений. Ну и сама проблема, что если я на форму накидаую к примеру больше 10 своих виджетов, то они видны не будут.

Я так понимаю выход один скролл прикрутить к этому. Но как с ним работать или с чего начать понятия не имею. Подскажите пожалуста! Или дай сылки на примеры плз.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
 
Начать новую тему
Ответов (1 - 6)
Litkevich Yuriy
  опции профиля:
сообщение 10.11.2009, 14:25
Сообщение #2


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

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

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




Репутация:   94  


идея с окошком, не текстовый документ, содержащим линейку прокрутки для того, чтобы можно было увидеть все виджеты - редкостное ГОВНО!
Никогда так не делай!
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
AD
  опции профиля:
сообщение 10.11.2009, 14:55
Сообщение #3


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

Группа: Участник
Сообщений: 2003
Регистрация: 4.2.2008
Из: S-Petersburg
Пользователь №: 84

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




Репутация:   17  


Хм.... Не очень понимаю, какие именно виджеты? Какие-то навороченные и сложные или же простые? Ну т.е. поле ввода строки, кнопки, метки и прочая шелуха - простые виджеты, листбоксы, "обогащенные" текстовые поля и прочее - сложные. Если вариант, что на форме более 10 сложных виджетов, то лучше переделать интерфейс приложения. А если 4-5 сложных виджетов и до фига простых, то их может быть очень много!
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Litkevich Yuriy
  опции профиля:
сообщение 10.11.2009, 15:48
Сообщение #4


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

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

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




Репутация:   94  


типа такой лажи как doxywizard:
Прикрепленное изображение
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
maxvanceffer
  опции профиля:
сообщение 10.11.2009, 16:36
Сообщение #5


Студент
*

Группа: Участник
Сообщений: 72
Регистрация: 30.5.2009
Из: Moldova
Пользователь №: 790

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




Репутация:   0  


вот прилогаю скрин, для большей наглядности задачи. Но с паджинатором мне как очень не нравиться идея так как и так это стакед виджет.

Прикрепленное изображение
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Litkevich Yuriy
  опции профиля:
сообщение 10.11.2009, 16:42
Сообщение #6


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

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

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




Репутация:   94  


не знаю, что такое паджинатор.
Тут по сути таблица, её и используй (QTableView) с собственными делегатами.
Другой вариант - графическое представление, у тролей в конкурсе один чувак выиграл, сделав календарь анимированный с использованием графического представления - QuickCalendarView
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
AD
  опции профиля:
сообщение 10.11.2009, 17:58
Сообщение #7


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

Группа: Участник
Сообщений: 2003
Регистрация: 4.2.2008
Из: S-Petersburg
Пользователь №: 84

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




Репутация:   17  


Если исходить из картинки, то на мой взгляд, удобнее сделать как это делается на интернет-страницах, т.е. выводить за раз на форме фиксированное количество таких вот виджетов, а внизу указать количество таких страниц. При переключении страницы изменяется нужные надписи на виджетах.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
maxvanceffer
  опции профиля:
сообщение 13.11.2009, 22:53
Сообщение #8


Студент
*

Группа: Участник
Сообщений: 72
Регистрация: 30.5.2009
Из: Moldova
Пользователь №: 790

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




Репутация:   0  


Решил ответ самостоятельно:
Вообщем кому нужен скрол на виджете пригодиться, так я перелопатил много форумов , и блогов. В нашей любимой кт есть виджет скролл арея но в документации не густо описан, всего один пример для болие сложной задачи вообще не понятен.

И так у меня стояла такая задача есть форма , на ней размешаються виджеты при помоши лэйаут менеджера. А потом эта форма помешаеться в стакед Виджет.

Проблемы :
И если размер формы будет мал то они налезут друг на друга.
И не понятно сразу на что вешать скролл на стакед или на форму!?(вчасности это для меня было не понятно)


Решение моё, и как я сделал.

Кидаем на форму где должны распологаться наборы этих виджетов, фрэйм или другой любой контейнер для этих виджетов. Фрэйм я так и
оставил с названием фрэм.
и в коде делаем следушее.

    QGridLayout *grid = new QGridLayout;
    grid->setSpacing(0);
    grid->setGeometry(this->geometry());
    grid->setMargin(0);

    ui->frame->setLayout(flowLayout);
    ui->frame->setParent(0); // Вот тут очень важное замечание. Отделяем чайлд от родителя !

    QScrollArea *scroll=new QScrollArea;
    // Навешиваем на фрэйм скролл
    scroll->setWidget(ui->frame);  
    scroll->setHorizontalScrollBarPolicy(Qt::ScrollBarAlwaysOff);
    scroll->setVerticalScrollBarPolicy(Qt::ScrollBarAsNeeded);
    scroll->setFrameStyle(QFrame::NoFrame);
    scroll->setAutoFillBackground(false);
    // Если установить эту функцию в true, то размер фрэйма будет меняться автоматически в зависемости от количества добавленых на него    
    //    элементов.
    scroll->setWidgetResizable(true);
    // Вешаем это лэйаут менеджер на форму в который помешён наш скролл.
    grid->addWidget(scroll);
    setLayout(grid);


Всё после этого получаем само упровляемую по вышине форму. В которой будет скролл поевляться по надобности.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение

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


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




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