Я пытался понять это последние 3 часа.
Честно говоря, я не решался задать этот вопрос, но кажется, что на мою конкретную вещь никто не ответит. Итак, вот моя ситуация:
TL; DR: Как связать вновь созданные окна (либо в коде, либо в Qt Designer) с соответствующей частью. Значит, как связать сгенерированное кодом окно и Qt Designer и наоборот?
Сейчас я работаю над оконным приложением с Qt5 в Visual Studio 2017 .
Я хочу, чтобы новое окно открывалось, когда я нажимал на кнопку, а затем редактировал его с помощью Qt Designer, как я делаю с главным окном.
(Имейте в виду, я использую Visual Studio 2017 в основном для программирования.)
Я смог сделать именно это. Но у меня нет никакого способа и идеи о том, как получить доступ к «классу» и всему окну с помощью Qt Designer.
Я подумал, что мне нужен файл * .ui для подачи его в Qt Designer, но я понятия не имею, как его создать.
Кроме того, я прочитал всю документацию, но не понял, как применить полученные знания.
Итак, мой код для открытия нового окна выглядит так:
mainprog.h:
class Program: public QMainWindow
{
Q_OBJECT
public:
Program(QWidget *parent = Q_NULLPTR);
private:
Ui::ProgramClass ui;
Ui::ProgramClass * uip = &ui;
private slots:
void on_pushbutton_settings_released();
};
mainprog.cpp:
Program::Program(QWidget *parent)
: QMainWindow(parent)
{
ui.setupUi(this);
connect(uip->pushButton_settings, SIGNAL(released()), this, SLOT(on_pushbutton_settings_released()));
}
//-----------------------------------------------
// Related function
void Program::on_pushbutton_settings_released()
{
qDebug() << "on_pushbutton_settings_released";
QWindow *settings_window = new QWindow();
settings_window->show();
}
Так вот как я могу создать и отобразить новое окно (здесь: settings_window).
Но как "получить доступ" к его классу и его методам и отредактировать его в Qt Designer? Если бы я был в Qt Creator, проблем не было бы (или, по крайней мере, меньше), потому что существует множество руководств, и Qt Creator автоматически создает все необходимые файлы.
Но я работаю в Visual Studio 2017 и поэтому не могу использовать все утилиты Qt Designer / Creator / и т. Д.
Я думал, что смогу создать определенные заголовочные и * .cpp- файлы. Но опять же, что я должен положить туда, чтобы сделать все? Я обнаружил, что всегда есть файл " ui_Program.h " и что он создается путем чтения файла * .ui.
Но все же, даже если я создал такие вещи, как заставить их читать все?
Или, возможно, я бы спросил наоборот: Как использовать / связать вновь созданное окно в Qt Designer в моем собственном коде в Qt5 C ++ со всеми связанными классами, заголовками и т. Д .?