【QT】如何使用savestate()和restoreState()来保存和恢复工具条,状态栏,其它视图等的页面布局

本文介绍如何在基于QMainWindow的QTWidgets应用中,利用savestate()和restoreState()方法保存和恢复工具条、状态栏等页面布局。通过在程序入口和出口分别执行布局保存与导入操作,确保下次打开时能保持用户自定义的布局效果。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

如何使用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);
}
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值