Russian Qt Forum

Qt => 2D и 3D графика => Тема начата: Lunex.08 от Ноябрь 02, 2011, 07:21



Название: Графика, Nokia N900.
Отправлено: Lunex.08 от Ноябрь 02, 2011, 07:21
Добрый день.
Допустим есть следующий код в конструкторе файла mainwindow мобильного проекта:
Код:
    ui->setupUi(this);
    QWidget *widget = new QWidget(this);
    setCentralWidget(widget);

    QGraphicsView *view = new QGraphicsView(widget);
    QGraphicsScene *scene = new QGraphicsScene(0, 0, 480, 500);
    view->setScene(scene);
    QGraphicsEllipseItem *circle = new QGraphicsEllipseItem(0, 0, 100, 100);
    scene->addItem(circle);
    view->show();
Круг рисуется, но появляются полосы прокрутки и сцена располагается не на всем экране. Если высоту сцены(4-й аргумент) установить меньше 400 пикселей, то все отображается нормально. При превышении 400 появляется такая проблема. Как сделать так, чтобы все отображалось по размерам и без скролов?


Название: Re: Графика, Nokia N900.
Отправлено: Bepec от Ноябрь 02, 2011, 07:30
Нипаняяяятна.

А сколько у тебя главное окно размер?
А мб стоит view в поле загнать, чтоб масштабировался?

А мб стоит больше информации дать?


Название: Re: Графика, Nokia N900.
Отправлено: Lunex.08 от Ноябрь 02, 2011, 08:20
Окно на весь экран(800 x 480 px), портретный режим. Какая конкретно инфа еще нужна то?
На счет загнать в поле не совсем понял.


Название: Re: Графика, Nokia N900.
Отправлено: Lunex.08 от Ноябрь 02, 2011, 08:31
Проблему решил. Не установил размеры отображение(view). Я думал, что размер у view по умолчанию равен размеру родителя.  И еще обязательное условие - сцена должна быть меньше отображения, иначе опять таки скролы появляются.


Название: Re: Графика, Nokia N900.
Отправлено: Bepec от Ноябрь 02, 2011, 08:49
Lunex.08 - обычно, если окно имеет возможность масштабироваться(растягиваться и прочая), то виджеты на нем помещаются на поле - компоновщик, которое автоматически рассчитывает их расположение/величину по многим признакам.

Конечно это можно делать вручную (да и надо обязательно с отдельных случаях), но проще и удобнее поставить виджеты в поле и не задумываться о такой проблеме как у тебя :)

Поля компоновщики - QHBoxLayout, QVBoxLayout, QGridLayout. Они все доступны в Designer'e на тулбаре.

Насчет твоей мысли что
Цитировать
Я думал, что размер у view по умолчанию равен размеру родителя.

Если установлен компоновщик, то рассчет будет идти автоматом. А скроллы можно убрать 2 строчками.


Название: Re: Графика, Nokia N900.
Отправлено: Lunex.08 от Ноябрь 02, 2011, 13:52
Хм...Возможно так было б лучше) Но все-таки мне кажется один элемент правильней ручками редактировать, а вот уже множество элементов через компоновщик.