Qt GUI не меняется после компиляции - PullRequest
9 голосов
/ 06 января 2011

Я создал графический интерфейс с использованием скомпилированного и запущенного Qt Designer.
Затем я сделал несколько изменений в графическом интерфейсе и перекомпилировал его снова, но графический интерфейс остался прежним.
Даже если я удаляю виджеты и перекомпилирую, они появляются...

Я пробовал Clean All и Clean Project, но безуспешно ...
В чем может быть проблема?

Ответы [ 4 ]

7 голосов
/ 10 февраля 2011

Вы можете перекомпилировать ваш интерфейс с помощью следующей команды. У меня это сработало.

uic mainwindow.ui>ui_mainwindow.h
4 голосов
/ 09 февраля 2015

Я знаю, что это старая ветка, но я думаю, что она все еще активна.Одной из причин такого ошибочного поведения является включение флажка Shadow build.Нажмите на иконку "Project" в Qt создателе, под Build-> General, снимите флажок Shadow build.Восстановите снова.

3 голосов
/ 06 января 2011

Я думаю, что это краткое изложение того, что должно произойти.

1.начать с пустого проекта. 2.используйте QT-дизайнер для создания mainwindow.ui файла. 3.Создатель qt должен создать для вас файл заголовка ui_mainwindow.h , содержащий необходимые определения для вашего пользовательского интерфейса, а также функцию-член setupUi ().Создатель QT генерирует этот файл ui_mainwindow.h, вызывая uic (компилятор пользовательского интерфейса) . 4. Теперь, когда у вас есть этот файл, добавьте этот код в ваш проект, и я думаю, что он будет отображатьсяваш графический интерфейс Qt вы можете редактировать свой графический интерфейс в Qt designer и перекомпилировать, чтобы показать обновленные изменения (я думаю):)
#include "ui_mainwindow.h"
#include <QMainWindow.h>
#include <QApplication.h>

int main(int argumentCount, char * argumentValues[])
{
    QApplication app(argumentCount, argumentValues);
    Ui::MainWindow ui;
    QMainWindow * myMainWindow= new QMainWindow();
    ui.setupUi(myMainWindow);
    myMainWindow->show();
    return app.exec();
}

пс: Класс Ui :: MainWindow содержит функцию-член setupUi () , которая настраивает для вас GUI.
Убедитесь, что , что у вас есть точное имя класса, потому что c ++ является регистромчувствительны.Удачи.

1 голос
/ 10 июля 2014

Вы должны очистить ваш исходный каталог. Возможно, у вас есть два файла ui_mainwindow.h в разных каталогах. Один файл из вашей сборки из командной строки, другой файл из вашей сборки от Qt Creator. Это случилось со мной, и после очистки все работает хорошо.

...