Qt

Qt: Добавить свой виджет на форму

Допустим, у нас есть определенный набор виджетов, который нужно повторить на каждой странице объекта QTabWidget. Этих страниц может быть очень много. Один из самых удобных и простых способов создавать такие страницы с нужным набором элементов — это создать виджет с этим набором и помещать его на каждую новую страницу.

Для создания виджета сделаем следующее: Файл->Создать файл или проект…->Qt (Класс формы Qt Designer), в разделе templates/forms выбираем Widget. Нам необходимо, чтобы наша форма была потомком QWidget.

На новой форме располагаем все необходимые элементы. Например, вот так:

Пример виджета

В коде необходимо прописать все необходимые слоты/сигналы, чтобы все действия в нашем виджете можно было связать с основной программой.

В моем примере класс виджета называется jobWidget, объект QTabWidget — jobTabs.

На кнопку создания новой страницы вешаем слот:

[pastacode lang=»cpp» manual=»jobWidget%20*widget%20%3D%20new%20jobWidget%3B%0Aint%20index%20%3D%20ui-%3EjobTabs-%3EaddTab(%0A%09widget%2C%0A%09tr(%22New%20job%20%251%22)%0A%09.arg(ui-%3EjobTabs-%3Ecount()%2B1))%3B» message=»» highlight=»» provider=»manual»/]

Переменная index получит значение индекса новой страницы. Это может понадобится в будущем. Здесь же необходимо связать все слоты-сигналы.

Итоговый вид - виджет на форме

Это скриншот одной небольшой программки вот отсюда: Jobs trace: Учет потраченного на проекты времени.

Qt: Добавить свой виджет на форму: 1 комментарий

Оставьте своё мнение...

Этот сайт использует Akismet для борьбы со спамом. Узнайте, как обрабатываются ваши данные комментариев.