Russian Qt Forum
Сентябрь 30, 2024, 16:32
Добро пожаловать,
Гость
. Пожалуйста,
войдите
или
зарегистрируйтесь
.
Вам не пришло
письмо с кодом активации?
1 час
1 день
1 неделя
1 месяц
Навсегда
Войти
Начало
Форум
WIKI (Вики)
FAQ
Помощь
Поиск
Войти
Регистрация
Russian Qt Forum
>
Forum
>
Qt
>
Пользовательский интерфейс (GUI)
>
Вопрос по скроллам
Страниц: [
1
]
Вниз
« предыдущая тема
следующая тема »
Печать
Автор
Тема: Вопрос по скроллам (Прочитано 5655 раз)
_arti_
Гость
Вопрос по скроллам
«
:
Май 25, 2007, 07:11 »
Ребята проясните ситуацию. Относительно недавно начал изучать Qt, поэтому некоторые моменты еще не понятны.
Добавляю на форму кнопки QPushButton, сверху вниз. Этих кнопок такое количество, что некоторые не помещаются на форме. Они становятся видны, если изменить размер формы. Вопрос в том, как сделать, чтобы
автоматически
появлялся скролл при добавлении кнопок, которые на помещаются в размер формы?
Записан
Mikhail
Программист
Offline
Сообщений: 587
Вопрос по скроллам
«
Ответ #1 :
Май 25, 2007, 08:08 »
Если кнопки не видны без изменения размера формы, значит ты не применяешь Layout ( элементы расположения ).
Если форма с кнопками не помещается на экране значит неправильная концепция построения формы.
В противном случае, помещай кнопки на widget произвольных (необходимых) размеров, а уже этот widget с кнопками в QScrollArea размещенную на форме.
Для того чтобы скролл автоматически появлялся необходимо предварительно переопределить QScrollArea и создать его плагин для дизайнера.
А для начала советую "учиться, учиться и еще раз учиться". Изучай примеры, документацию и т.п. на кокретных прикладных задачах.
Записан
SABROG
Гость
Вопрос по скроллам
«
Ответ #2 :
Май 25, 2007, 08:41 »
Цитировать
Если форма с кнопками не помещается на экране значит неправильная концепция построения формы.
А если приложение проектировалось на мощной тачке, где разрещение огромное, все помещается, а потом было перенесено на слабенькую машинку где разрешение 640x480, врятли скролл откуда-то возмется, а вот caption уползет куда-нибудь далеко вверх.
2_arti_: посмотри пример \examples\widgets\imageviewer\ если картинка больше окна, то появляются скролы, если меньше, то убираются. Простановкой свойств не обойтись, придется пописать код.
Записан
_arti_
Гость
Вопрос по скроллам
«
Ответ #3 :
Май 25, 2007, 08:52 »
Цитата: "Mikhail"
В противном случае, помещай кнопки на widget произвольных (необходимых) размеров, а уже этот widget с кнопками в QScrollArea размещенную на форме.
не работает, мож чего-то не понимаю, а?
Выношу код на суд.
#include <QApplication>
#include <QWidget>
#include <QScrollArea>
#include <QPushButton>
#include <QHBoxLayout>
int main(int argc, char *argv[])
{
QApplication app(argc, argv);
QWidget w;
QScrollArea *area = new QScrollArea(&w);
area->setVerticalScrollBarPolicy(Qt::ScrollBarAlwaysOn);
QWidget *wid = new QWidget(area);
QPushButton *b1 = new QPushButton("button1", wid),
*b2 = new QPushButton("button2", wid),
*b3 = new QPushButton("button3", wid),
*b4 = new QPushButton("button4", wid);
b1->setGeometry(5, 5, 50, 30);
b2->setGeometry(5, 40, 50, 30);
b3->setGeometry(5, 75, 50, 30);
b4->setGeometry(5, 110, 50, 30);
//area->setWidget(wid);
w.show();
return app.exec();
}
Записан
Mikhail
Программист
Offline
Сообщений: 587
Вопрос по скроллам
«
Ответ #4 :
Май 25, 2007, 09:44 »
получай рабочий код:
#include <QApplication>
#include <QWidget>
#include <QScrollArea>
#include <QPushButton>
#include <QHBoxLayout>
int main(int argc, char *argv[])
{
QApplication app(argc, argv);
QWidget w;
QVBoxLayout *mainLayout = new QVBoxLayout;
QScrollArea *area = new QScrollArea(&w);
QWidget *wid = new QWidget;
wid->setMinimumWidth( 200);
wid->setMinimumHeight( 200);
QPushButton *b1 = new QPushButton( "button1",wid ),
*b2 = new QPushButton("button2", wid),
*b3 = new QPushButton("button3", wid),
*b4 = new QPushButton("button4", wid);
b1->setGeometry(5, 5, 50, 30);
b2->setGeometry(5, 40, 50, 30);
b3->setGeometry(5, 75, 50, 30);
b4->setGeometry(5, 110, 50, 30);
area->setWidget(wid);
mainLayout->addWidget( area );
w.setLayout(mainLayout);
w.resize ( 300, 300 );
w.show();
return app.exec();
}
Записан
_arti_
Гость
Вопрос по скроллам
«
Ответ #5 :
Май 25, 2007, 10:13 »
Ребята спасибо, все заработало, нашел свои ошибки. )))
Записан
pastor
Administrator
Джедай : наставник для всех
Offline
Сообщений: 2901
Вопрос по скроллам
«
Ответ #6 :
Май 25, 2007, 11:33 »
Цитата: "SABROG"
А если приложение проектировалось на мощной тачке, где разрещение огромное, все помещается, а потом было перенесено на слабенькую машинку где разрешение 640x480, врятли скролл откуда-то возмется, а вот caption уползет куда-нибудь далеко вверх.
А это уже говорит о неудачном проектировании самого гуя. Такие ситуации разработчик должен знать и принимать во внимание при разработке приложения
Записан
Integrated Computer Solutions, Inc. (ICS)
http://www.ics.com/
Страниц: [
1
]
Вверх
Печать
« предыдущая тема
следующая тема »
Перейти в:
Пожалуйста, выберите назначение:
-----------------------------
Qt
-----------------------------
=> Вопросы новичков
=> Уроки и статьи
=> Установка, сборка, отладка, тестирование
=> Общие вопросы
=> Пользовательский интерфейс (GUI)
=> Qt Quick
=> Model-View (MV)
=> Базы данных
=> Работа с сетью
=> Многопоточное программирование, процессы
=> Мультимедиа
=> 2D и 3D графика
=> OpenGL
=> Печать
=> Интернационализация, локализация
=> QSS
=> XML
=> Qt Script, QtWebKit
=> ActiveX
=> Qt Embedded
=> Дополнительные компоненты
=> Кладовая готовых решений
=> Вклад сообщества в Qt
=> Qt-инструментарий
-----------------------------
Программирование
-----------------------------
=> Общий
=> С/C++
=> Python
=> Алгоритмы
=> Базы данных
=> Разработка игр
-----------------------------
Компиляторы и платформы
-----------------------------
=> Linux
=> Windows
=> Mac OS X
=> Компиляторы
===> Visual C++
-----------------------------
Разное
-----------------------------
=> Новости
===> Новости Qt сообщества
===> Новости IT сферы
=> Говорилка
=> Юмор
=> Объявления
Загружается...