1. 程式人生 > >【QT】如何使用savestate()和restoreState()來儲存和恢復工具條,狀態列,其它檢視等的頁面佈局

【QT】如何使用savestate()和restoreState()來儲存和恢復工具條,狀態列,其它檢視等的頁面佈局

如何使用savestate()和restoreState()來儲存和恢復工具條,狀態列,其它檢視等的頁面佈局

運用場景:建立一個基於QMainWindow的QT Widgets Application,然後根據需要新增選單欄、工具欄、狀態列等等;這是工具欄有很多,好多都疊在一起,經過拖拽達到預期效果,但是下次重新開啟時,佈局又亂了。所以現在需要解決的是如何儲存拖拽後的佈局效果

  1. 在程式的出口處,增加儲存佈局的操作,具體如下:
QString strPath = "usr/test/Myproject/MenuLayout.ini";
QFile file(strPath);
if(file.open(QIODevice::WriteOnly))
{
	QDataStream outfile(&file);
	QByteArray ba = m_pMainFram->saveState();
	ba<<outfile;
	file.close();
}
  1. 在程式的入口處,增加匯入佈局的操作,具體如下
QString strPath = "usr/test/Myproject/MenuLayout.ini";
QFile file(strPath);
if(file.open(QIODevice::ReadOnly))
{
    QByteArray ba;
    QDataStream in(&file);
    in>>ba;
    file.close();
    m_pMainFrame->restoreState(ba);
}