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

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

Страниц: [1]   Вниз
  Печать  
Автор Тема: Графика, Nokia N900.  (Прочитано 3534 раз)
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 появляется такая проблема. Как сделать так, чтобы все отображалось по размерам и без скролов?
« Последнее редактирование: Ноябрь 02, 2011, 07:28 от Lunex.08 » Записан
Bepec
Гость
« Ответ #1 : Ноябрь 02, 2011, 07:30 »

Нипаняяяятна.

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

А мб стоит больше информации дать?
Записан
Lunex.08
Гость
« Ответ #2 : Ноябрь 02, 2011, 08:20 »

Окно на весь экран(800 x 480 px), портретный режим. Какая конкретно инфа еще нужна то?
На счет загнать в поле не совсем понял.
« Последнее редактирование: Ноябрь 02, 2011, 08:24 от Lunex.08 » Записан
Lunex.08
Гость
« Ответ #3 : Ноябрь 02, 2011, 08:31 »

Проблему решил. Не установил размеры отображение(view). Я думал, что размер у view по умолчанию равен размеру родителя.  И еще обязательное условие - сцена должна быть меньше отображения, иначе опять таки скролы появляются.
Записан
Bepec
Гость
« Ответ #4 : Ноябрь 02, 2011, 08:49 »

Lunex.08 - обычно, если окно имеет возможность масштабироваться(растягиваться и прочая), то виджеты на нем помещаются на поле - компоновщик, которое автоматически рассчитывает их расположение/величину по многим признакам.

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

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

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

Если установлен компоновщик, то рассчет будет идти автоматом. А скроллы можно убрать 2 строчками.
Записан
Lunex.08
Гость
« Ответ #5 : Ноябрь 02, 2011, 13:52 »

Хм...Возможно так было б лучше) Но все-таки мне кажется один элемент правильней ручками редактировать, а вот уже множество элементов через компоновщик.
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


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