Nvek
@Nvek
c++ чайник

Как запомнить настройки открытых докWidgets в приложении?

у меня приложение где используется DockWidget()
так вопрос как в вызове
void MainForm::closeEvent(QCloseEvent* event)
{
	writeSettigs();
	event->accept();
}

сохранить и затем восстановить настройки?

void MainForm::writeSettigs()
{
	QSettings settings(QCoreApplication::organizationName(), QCoreApplication::applicationName());
	settings.setValue("geometry", saveGeometry());
}


void MainForm::readSettings()
{
	QSettings settings(QCoreApplication::organizationName(), QCoreApplication::applicationName());
	const QByteArray geometry = settings.value("geometry", QByteArray()).toByteArray();
	QPoint pos = settings.value("pos", QPoint(100, 100)).toPoint();
	
	if (geometry.isEmpty()) {
		const QRect availableGeometry = QApplication::desktop()->availableGeometry(this);
		resize(1200, 700);
		move(200, 200);
	}
	else {
		restoreGeometry(geometry);
		
	}
}
  • Вопрос задан
  • 87 просмотров
Пригласить эксперта
Ответы на вопрос 1
Nvek
@Nvek Автор вопроса
c++ чайник
вот что я нагородил
void MainForm::readSettings()
{

	//restoreState();

	QSettings settings(QCoreApplication::organizationName(), QCoreApplication::applicationName());
	const QByteArray geometry = settings.value("geometry", QByteArray()).toByteArray();
	//const QByteArray dock = settings.value("dockwidget", QByteArray()).toByteArray();
	const QByteArray mainWin = settings.value("mainwindow", QByteArray()).toByteArray();
	QMainWindow::restoreState(mainWin);

	/*dockData*/
	/*statCompareView*/
	settings.beginGroup("dockWidget");
	
	/**/settings.beginGroup("comparableviewer");
	/**//**/statCompareView->setVisible(settings.value("visible", true).toBool());
	/**//**/statCompareView->restoreGeometry(settings.value("geometry", QByteArray()).toByteArray());
	/**/settings.endGroup();
	
	/**/settings.beginGroup("treeview");
	/**//**/dockData->setVisible(settings.value("visible", true).toBool());
	/**//**/dockData->restoreGeometry(settings.value("geometry", QByteArray()).toByteArray());
	/**/settings.endGroup();
	//
	settings.endGroup();





	QPoint pos = settings.value("pos", QPoint(100, 100)).toPoint();
	if (geometry.isEmpty()) {
		const QRect availableGeometry = QApplication::desktop()->availableGeometry(this);
		resize(1200, 700);
		move(200, 200);
	}
	else {
		restoreGeometry(geometry);
		
	}
}

void MainForm::writeSettigs()
{
	QSettings settings(QCoreApplication::organizationName(), QCoreApplication::applicationName());
	settings.setValue("geometry", saveGeometry());
	settings.setValue("mainwindow", QMainWindow::saveState());


	settings.beginGroup("dockWidget");
	
	/**/settings.beginGroup("comparableviewer");
	/**//**/settings.setValue("visible", statCompareView->isVisible());
	/**//**/settings.setValue("geometry", statCompareView->saveGeometry());
	/**/settings.endGroup();
	
	/**/settings.beginGroup("treeview");
	/**//**/settings.setValue("visible", dockData->isVisible());
	/**//**/settings.setValue("geometry", dockData->saveGeometry());
	/**/settings.endGroup();

	settings.endGroup();
}
Ответ написан
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы
28 июл. 2021, в 00:00
2000 руб./за проект
27 июл. 2021, в 22:00
25000 руб./за проект
27 июл. 2021, в 21:59
1500 руб./за проект