【QT】如何使用savestate()和restoreState()來儲存和恢復工具條,狀態列,其它檢視等的頁面佈局
阿新 • • 發佈:2019-01-07
如何使用savestate()和restoreState()來儲存和恢復工具條,狀態列,其它檢視等的頁面佈局
運用場景:建立一個基於QMainWindow的QT Widgets Application,然後根據需要新增選單欄、工具欄、狀態列等等;這是工具欄有很多,好多都疊在一起,經過拖拽達到預期效果,但是下次重新開啟時,佈局又亂了。所以現在需要解決的是如何儲存拖拽後的佈局效果
- 在程式的出口處,增加儲存佈局的操作,具體如下:
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(); }
- 在程式的入口處,增加匯入佈局的操作,具體如下
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);
}