Создание, обработка и переключение между окнами QTCreator

Мое исследование этого вопроса показывает, что я несколько бью мертвую лошадь, однако я не могу получить окончательный ответ.

Я использую QT Creator для создания графического интерфейса, который поможет взаимодействовать с регистром единиц (простые объекты, с некоторыми идентификаторами и тому подобное).

У меня есть главное меню, которое содержит 5 кнопок и таблицу. Изображенный здесь. Мой проект в настоящее время включает эти файлы, и мой основной в настоящее время выглядит так:

#include "mainwindow.h"
#include <QApplication>

int main(int argc, char *argv[])
{
    QApplication a(argc, argv);
    MainWindow w;
    UnitRegister e;
    CommInterface c;
    w.setRegistryPtr(e);
    w.setCommPtr(c);
    w.setTablePtr(w.findChild<QTableWidget*>("unitTable"));

    w.show();

    return a.exec();
}

Что я хочу сделать, так это нажать одну из четырех кнопок слева и использовать ее для переключения на другой вид в главном окне.

Для этой цели я рассмотрел использование QStackedWidget, а затем наличие страницы для каждой кнопки меню. У меня вопрос такой:

  • Как мне / я должен создать отдельный класс формы элемента QT (заголовок, файл.cpp и.ui) для каждой страницы
  • Как переключаться между страницами, которые я добавил, используя QT Designer.
  • Как я могу гарантировать, что разные страницы могут получить доступ к UnitRegister, созданному в моем главном файле.

Я не обязательно ищу полный ответ, но кое-что, чтобы заставить меня идти.

1 ответ

Переключение страниц: рассмотрим QButtonGroup чтобы дать вашим идентификаторам кнопок, которые вы можете сопоставить с индексами вашего QStackedWidget, Тогда вы можете сделать это:

connect(buttonGroup, SIGNAL(buttonClicked(int)), stackedWidget, SLOT(setCurrentIndex(int)));

Организация страниц: создайте файл.ui и соответствующий контейнерный виджет для каждой страницы в вашем стеке виджетов. Это намного проще, чем один массивный файл.ui.

Доступ к UnitRegister Есть множество способов сделать это. Добавление функции сеттера в ваши классы - это один из способов.

Другие вопросы по тегам