QT使用saveState()和restoreState()函数保存和恢复界面布局

简介:每次当我们自己写的程序运行起来时,我们把界面调整到我们所喜欢的布局。但是当我们把程序关闭了,下次重启程序时,我们之前调整的界面布局没有了,恢复到了QT自默认的界面的界面布局。这对于有我们操作非常不方便,还好QT提供了保存界面布局和恢复界面布局的接口,我们只需要调用一下接口就可以保存程序最新的界面布局,下次重新启动时再调用对用的接口恢复一下界面布局就可了。

第一步:保存界面布局到文件(Layout.ini),使用QT接口函数saveState(),使用方法如下所示。

1.1、在程序退出是调用一下 下面接口,保存一下界面不到到Layout.ini文件即可。

 //保存界面布局到Layout.ini
    QFile file("/home/mark/Desktop/.Layout.ini"); 
    if (file.open(QIODevice::WriteOnly))
    {
        QDataStream out(&file);
        out << this->saveState();
        file.close();
    }

1.2、注意:Layout.ini文件前面加一个. 即 .Layout.ini,表示这是一个隐藏文件,在linux系统中创建文件时,如果在文件前面加一个.则系统就会自动隐藏这个文件,如果想查看到这个文件,可以去到文件所在的目录使用快捷键Ctrl+H就可以查看隐藏文件,再次按Ctrl+H就会重新隐藏文件。

第二步:恢复界面布局,从文件Layout.ini读取最新的界面布局状态,使用QT接口函数restoreState(),使用方法如下所示。

2.1、在程序启动时调用一下 下面的接口,就可以恢复最新的界面布局。

 //从Layout.ini恢复界面布局
    QFile file("/home/mark/Desktop/.Layout.ini");
    if (file.open(QIODevice::ReadOnly))
    {
        QByteArray ba;
        QDataStream in(&file);
        in >> ba;
        file.close();
        this->restoreState(ba);
    }

猜你喜欢

转载自blog.csdn.net/cwj066/article/details/82768211