@l2p

Как использовать интерфейс (ui) в созданном заголовочном файле?

Всех приветствую!

Создал файл add.h, куда поместил нужный мне класс. Как мне вызвать в нем методы ui->?
В .cpp прописал #include "add.h"
  • Вопрос задан
  • 4694 просмотра
Решения вопроса 1
EXL
@EXL
Энтузиаст
Если вам нужны динамические диалоги, то можно сделать так:

QUiLoader uiLoader;
QFile file("sortdialog.ui");
QWidget *sortDialog = uiLoader.load(&file);
if (sortDialog) {
    ....
}

Источник.

Но скорее всего вам нужно просто создать форму с классом. Для этого в Qt Creator выбираете "File" -> "New File or Project" -> "Qt" -> "Qt Designer Form Class".

При желании в новый файл формы *.ui можно скопировать содержимое из старого (или вообще перезаписать его вашим старым *.ui). Всё будет работать.

А если вам нужно зафиксировать изменения в форме из внешнего класса, то всегда можно воспользоваться указателем:

TestClass.h:
#ifndef TESTCLASS_H
#define TESTCLASS_H

#include "ui_MainWindow.h"

class TestClass
{
public:
    TestClass();
    void changeTextOnForm(Ui_MainWindow *mainWindow);
};

#endif // TESTCLASS_H

TestClass.cpp:
#include "TestClass.h"

TestClass::TestClass()
{
}

void TestClass::changeTextOnForm(Ui_MainWindow *mainWindow)
{
    mainWindow->label_2->setText(QString("Text from ") + Q_FUNC_INFO);
    mainWindow->textBrowser->append(mainWindow->label_2->text());
}

MainWindow.cpp:
...
void MainWindow::on_pushButton_clicked()
{
    TestClass testClass;
    testClass.changeTextOnForm(this->ui);
}
...
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы