Russian Qt Forum
Ноябрь 25, 2024, 00:41 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: [1]   Вниз
  Печать  
Автор Тема: Помогите справиться с QScrollArea  (Прочитано 4655 раз)
virtual_root
Гость
« : Октябрь 02, 2012, 20:14 »

Добрый вечер ребята! Пожалуйста подскажите мне пожалуйста что я делаю не так.. уже целую неделю вожусь, много примеров пересмотрела, но не могу никак понять почему у меня не работает мой код..
Моя проблема: у меня есть две формы widget и form. На форме widget расположен компонент QScrollArea в который я программно устанавливаю вторую форму form, которая является наследником от QWidget. Она заведомо большего размера. Но скролл у QScrollArea  почему-то не появляется!
Что я уже только не делала, но не хочет он никак скролировать мою форму!
Вот мой код:
Код
C++ (Qt)
#ifndef WIDGET_H
#define WIDGET_H
 
#include <QWidget>
 
namespace Ui {
class Widget;
}
 
class Widget : public QWidget
{
   Q_OBJECT
 
public:
   explicit Widget(QWidget *parent = 0);
   ~Widget();
 
private:
   Ui::Widget *ui;
};
 
#endif // WIDGET_H
 
Код
C++ (Qt)
#include "widget.h"
#include "ui_widget.h"
#include "form.h"
 
Widget::Widget(QWidget *parent) :
   QWidget(parent),
   ui(new Ui::Widget)
{
   ui->setupUi(this);
   ui->scrollArea->setWidget(new Form());
   ui->scrollArea->setWidgetResizable(true);
   ui->scrollArea->setVerticalScrollBarPolicy(Qt::ScrollBarAlwaysOn);
}
 
Widget::~Widget()
{
   delete ui;
}
 
Код
C++ (Qt)
#ifndef FORM_H
#define FORM_H
 
#include <QWidget>
 
namespace Ui {
class Form;
}
 
class Form : public QWidget
{
   Q_OBJECT
 
public:
   explicit Form(QWidget *parent = 0);
   ~Form();
 
private:
   Ui::Form *ui;
};
 
#endif // FORM_H
 
Код
C++ (Qt)
#include "form.h"
#include "ui_form.h"
 
Form::Form(QWidget *parent) :
   QWidget(parent),
   ui(new Ui::Form)
{
   ui->setupUi(this);
}
 
Form::~Form()
{
   delete ui;
}
 
Ребята, пожалуйста, помогите справиться с проблемой!
Записан
Alex Custov
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 2063


Просмотр профиля
« Ответ #1 : Октябрь 02, 2012, 20:47 »

Цитировать
widgetResizable : bool

This property holds whether the scroll area should resize the view widget.

If this property is set to false (the default), the scroll area honors the size of its widget. Regardless of this property, you can programmatically resize the widget using widget()->resize(), and the scroll area will automatically adjust itself to the new size.

If this property is set to true, the scroll area will automatically resize the widget in order to avoid scroll bars where they can be avoided, or to take advantage of extra space.
Записан
virtual_root
Гость
« Ответ #2 : Октябрь 03, 2012, 09:50 »

спасибо огромное заработало!!! У меня ещё важный вопросик, а если я программно потом ещё увеличиваю размер виджета который внутри QScrollArea, как заставить QScrollArea обновить прокручиваемую область?
Записан
virtual_root
Гость
« Ответ #3 : Октябрь 03, 2012, 12:36 »

всё автоматически происходит! всем спасибо!!!
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.268 секунд. Запросов: 22.