2021-07-15

QMainWindow的saveState使用技巧

作用:记录dockWidget的关闭状态,以便下次打开时使用。

Saves the current state of this mainwindow’s toolbars and dockwidgets. This includes the corner settings which can be set with setCorner(). The version number is stored as part of the data.–官方文档123
注意:
1)需要给dockwidget->setObjectName(“dock”);
2)QMainWindow的closeEvent需要重写
restoreState()2
使用Qsetting声明变量,使用setvalue函数保存dock的size;
3)创建dockwidget的时候,使用value获得dock的size,如果size合法(value(MainWin/dock).toSize().isValid),dock使用setFixSize函数。

// An highlighted block
QDockWidget *dock1=new QDockWidget(this);
dock1->setObjectName("dock1");
QSize size=Setting::value("MainWin/dock1").toSize();
if(size.isValid){
	dock1->setFixSize(size);
}

MainWin::closeEvent(QCloseEvent *event){
	Setting::setValue("MainWin/windowState",saveState());
	Setting::setValue("MainWin/dock1",dock1->size());
}


  1. https://doc.qt.io/qt-5/qmainwindow.html ↩︎

  2. https://forum.qt.io/topic/10881/qdockwidget-and-savestate/7 ↩︎ ↩︎

  3. https://doc.qt.io/qt-5/qcombobox.html#currentIndexChanged ↩︎

上一篇:uDock Mac版一款快速而简单的Dock栏快速启动工具


下一篇:Mac下修改iOS模拟器大小