Russian Qt Forum

Qt => Пользовательский интерфейс (GUI) => Тема начата: Kuper от Сентябрь 24, 2010, 16:06



Название: Не работает QScrollArea созданный через дизайнер
Отправлено: Kuper от Сентябрь 24, 2010, 16:06
Доброго времени суток.
Пытаюсь создать скроллируемую область в дизайнере, но скролинг не работает.

Ход действий:
1. Создаю скролларию
2. В скролларию помещаю витджет
3. В витджет помещаю 3 кнопки
4. Сжимаю скрол арию до токого состояния что бы была видна только одна кнопка
5. Запускаю приложение. Скроллинг не работает. Т.е полосы прокрутки не появляются (если ставлю скроллбарполиси показывать всегда, то полоса прокрутки появляется, но бегунок растянут на всю длинну полосы прокрутки и никак не реагирует)

Если добавляю в скроларию дитжет и кнопки в него кодом - все замечательно работает.
Но нужно научиться добавлять именно через дизайнер (нужно быстро делать макеты).

Вопрос: это баг или я что то неправильно делаю. Спасибо.

PS Qt 4.7, Qt Creator 2.0, пишу мобильное приложение. 


Название: Re: Не работает QScrollArea созданный через дизайнер
Отправлено: MoPDoBoPoT от Сентябрь 24, 2010, 16:24
Про компоновщик (Layout) забыл.


Название: Re: Не работает QScrollArea созданный через дизайнер
Отправлено: Kuper от Сентябрь 24, 2010, 16:58
Про компоновщик (Layout) забыл.

Попробовал с компоновщиком:
1. Создаю скролларию
2. В скролларию помещаю вертикаллэйаут
3. В вертикаллэйаут помещаю 3 кнопки
4. Сжимаю скрол арию до такого состояния, что бы была видна только одна кнопка
5. Запускаю приложение - результат тот же.

Эни айдиас?


Название: Re: Не работает QScrollArea созданный через дизайнер
Отправлено: MoPDoBoPoT от Сентябрь 24, 2010, 17:38
Еще компоновщик для виджета, который содержит кнопки.


Название: Re: Не работает QScrollArea созданный через дизайнер
Отправлено: Kuper от Сентябрь 24, 2010, 17:47
Еще компоновщик для виджета, который содержит кнопки.

А вот тут по подробнее если можно. Что за компоновщик для виджета?

PS Я пробовал писать вот такой код:
Код:
    QListWidget *list;
    QListWidgetItem *item1;
    QListWidgetItem *item2;
    QListWidgetItem *item3;
    list = new QListWidget();
    ui->scrollArea->setWidget(list);
    item1=new QListWidgetItem("BlueHills",list);//adding items to list
    item2=new QListWidgetItem("Sunset",list);
    item3=new QListWidgetItem("Water lilies",list);

Все работает замечательно. Не используются никакие компоновщики. Или я ошибаюсь?
Спасибо.


Название: Re: Не работает QScrollArea созданный через дизайнер
Отправлено: Kuper от Сентябрь 24, 2010, 18:04
Может кто нибудь опишет последовательность действий по которой нужно добавлять элементы, что бы скроллинг в QScrollarea заработал. На форумах люди описывают обратные проблемы (из дизайнера все получается, а кодом нет). По моей проблеме ничего не нашел. =((


Название: Re: Не работает QScrollArea созданный через дизайнер
Отправлено: lit-uriy от Сентябрь 24, 2010, 21:01
>>2. В скролларию помещаю вертикаллэйаут
не надо его туда помещать. Ты с самим дизайнером не правильно работаешь. Должно быть так:
2. помещаю 3 кнопки на виджет с прокруткой
3. выделяю виджет с прокруткой и на панели инструментов выбираю нужную компоновку


Название: Re: Не работает QScrollArea созданный через дизайнер
Отправлено: Kuper от Сентябрь 27, 2010, 11:51
>>2. В скролларию помещаю вертикаллэйаут
не надо его туда помещать. Ты с самим дизайнером не правильно работаешь. Должно быть так:
2. помещаю 3 кнопки на виджет с прокруткой
3. выделяю виджет с прокруткой и на панели инструментов выбираю нужную компоновку

Спасибо огромное. Понял свою ошибку. Все заработало.