Изучаю Qt, наткнулся на такую проблему. Мне требуется быстро менять ui файлы по ходу выполнения программы. В python это реализовано так:
uic.loadUi("filename.ui")
В документации я откопал QUiLoader, но не совсем понимаю, как с ним работать. У меня имеется абсолютно стандартная программа, основанная на QMainWindow (которую создает Qt Creator изначально). Дело в том, что большинство примеров идет на QWidget и мне не понятно, как переделать их под QMainWindow.
Вот пример из моей программки (ui файл в данном случае в ресурсах):
QUiLoader loader;
QFile file(":/Dialogs/QcMoreDlg.ui");
file.open(QFile::ReadOnly);
moreDlg = static_cast<QDialog *>(loader.load(&file, this));
file.close();
moreDlg->findChild<QLineEdit *>("excellent")->setText(QString().number(waste_block.excellent, 'f', 2));
moreDlg->findChild<QLineEdit *>("good" )->setText(QString().number(waste_block.good, 'f', 2));
moreDlg->findChild<QLineEdit *>("waste" )->setText(QString().number(waste_block.waste, 'f', 2));
if(!waste_block.plotCurves)
moreDlg->findChild<QRadioButton *>("allButton")->setChecked(true);
else
moreDlg->findChild<QRadioButton *>("signButton")->setChecked(true);
Видимо, вам нужно сделать вот это:
void MainWindow::centralWidgetFromUi(QString path)
{
// Окрываем файл *.UI для чтения
QFile f(path);
f.open(QFile::ReadOnly);
// грузим виджет из UI
QWidget* newWidget = loader.load( f, this );
// Удаление старого центрального виджета
delete centralWidget();
// Устанавлиаем новый виджет в качестве центрально
setCentralWidget( newWidget );
}
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
Перевод документов на английский язык: Важность и ключевые аспекты
Ввод данных точно также как в рюкзаке, только суммарный вес должен быть таким, что при добавлении любого другого объекта в оптимальное множество,...
Как в c++ рекурсивно напечатать названия всех файлов в директории, переданной параметром программе? Например, для следующей структуры
Сегодня я узнал о существовании функции atexitЧитая мануалы б ней, не могу понять, насколько практически необходимо использовать эту функцию,...