В поддержку Qt

статьи в помощь разработчику

   

Главная

Статьи:

Установка MinGW

Установка SDK 7

Установка Qt

Сборка Qt

Установка Qt Creator

Настройка Qt Creator

Проблемы Qt 4.8.3

Распараллеливание компиляции

Распараллеливание для Qt 5.0.1

Сборка отладчика GDB

Установка библиотеки Qwt

Плагин Qwt

Установка QwtPolar

Установка QwtPplot3D

Изменение палитры цветов QwtPlot3D

Конфигурация сборки по умолчанию

Сборка Qt Creator из исходников

Пример использования QwtPlot

Масштабирование QwtPlot в стиле TChart

Синхронное масштабирование

Пример использования QwtPolar

Пример использования QwtPlot3D

Редактирование QSplitter

Сборка в Ubuntu для Windows

Установка пакетов без интернета

Установка драйвера NVIDIA

 

Главная > Редактирование QSplitter

 

Редактирование QSplitter в дизайнере форм

В статье Синхронное масштабирование графиков на форме из проекта с примером используется контейнер QSplitter, в котором размещаются 3 графика. В дизайнере форм в палитре компонентов такой контейнер отсутствует, поэтому предлагается прописать его в файл формы *.ui вручную. Данная статья призвана оказать помощь в создании формы, содержащей QSplitter с графиками.

Итак, открываем в дизайнере пустую форму, например, mainwindow.ui. Положим, что с нее убраны за ненадобностью главное меню, панель инструментов и панель состояния (хотя они могут и присутствовать и ничем не помешают). Находим в палитре компонентов контейнер Widget на вкладке Containers и помещаем его на форму. По умолчанию он получит имя widget. Изменяем его размеры так, чтобы внутри было достаточно места. Находим на этой же вкладке компонент Frame и размещаем его в трех экземплярах внутри ранее размещенного виджета один под другим, разделив имеющееся пространство на 3 примерно равные части. Для определенности присвоим этим фреймам имена frame1, frame2 и frame3. Внутрь каждого фрейма помещаем график – компонент QwtPlot, который можно найти на вкладке Qwt Widgets палитры компонентов. (Для того чтобы виджеты Qwt были видны в дизайнере форм, необходимо установить плагин Qwt.) Присвоим графикам имена plot1, plot2 и plot3 соответственно. В результате должна получиться форма, изображенная на рисунке, для контроля рядом с ней изображено содержимое инспектора объектов

Закрываем файл формы в дизайнере и открываем его в текстовом редакторе. Находим строку

<widget class="QWidget" name="widget" native="true">

и заменяем ее следующими строками

<widget class="QSplitter" name="splitter">
 <property name="orientation">
  <enum>Qt::Vertical</enum>
 </property>
 <property name="opaqueResize">
  <bool>false</bool>
 </property>

Закрываем текстовый редактор, сохранив внесенные изменения, и опять открываем файл в дизайнере форм. В инспекторе объектов должен появиться QSplitter

Теперь задействуем компоновщики, их можно найти на панели инструментов дизайнера

Для центрального виджета выбираем "Скомпоновать по сетке" (элемент "С" на рисунке), компоновщику сохраним имя gridLayout. Для фреймов выбираем выбираем "Скомпоновать по горизонтали" (элемент "Г" на рисунке), компоновщикам дадим имена соответственно horLayout1, horLayout2 и horLayout3. В результате форма принимает упорядоченный вид

Учитывая, что места на форме не очень много, можно уменьшить величину отступов и тем самым предоставить немного больше места графикам. Для этого выделяем центральный виджет и в инспекторе объектов правим свойства компоновщика

layoutLeftMargin:   3
layoutTopMargin:    3
layoutRightMargin:  3
layoutBottomMargin: 3

Поочередно выделяем фреймы и устанавливаем следущее

layoutLeftMargin:   1
layoutTopMargin:    1
layoutRightMargin:  1
layoutBottomMargin: 1
layoutSpacing:      1

Окончательный вид формы изображен на рисунке