找回密码
 立即注册
收起左侧

《qt及qt quick开发实战》多文档编辑器 保存窗口位置问题

3
回复
8157
查看
[复制链接]
累计签到:5 天
连续签到:1 天
来源: 2013-12-8 09:46:35 显示全部楼层 |阅读模式
1Qter豆
《qt及qt quick 开发实战》 第一章的多文档编辑器有个小问题------就是我最大化窗口后,然后关闭,再次运行程序时,窗口最大化按钮状态为最大化图标,不能还原为上次窗口大小,还请指教  ,一般我们的浏览器最大化关闭后,下次打开时中间那个图标是处于还原图标状态,可是我的文当编辑器中间按钮是处于最大化图标状态,望指教
如下图


附件: 您需要 登录 才可以下载或查看,没有帐号?立即注册

最佳答案

查看完整内容

settings.setValue("pos", pos()); // 写入位置信息 settings.setValue("size", size()); // 写入大小信息 这里已经保存了位置和大小信息,如果想保存是否最大化信息,可以使用isMaximized()来获取,按照这两条再写一条即可,而重新打开窗口后,如果检测到关闭时是最大化的,就调用下showMaximized()即可。 试试吧,应该不难的,按照自己的想法改改。 ...
回复

使用道具 举报

累计签到:1572 天
连续签到:1 天
2013-12-8 09:46:36 显示全部楼层
wangxieliang007 发表于 2013-12-9 19:04
那有什么办法可以达到浏览器保存窗口位置的效果吗?

  settings.setValue("pos", pos());   // 写入位置信息
    settings.setValue("size", size()); // 写入大小信息

这里已经保存了位置和大小信息,如果想保存是否最大化信息,可以使用isMaximized()来获取,按照这两条再写一条即可,而重新打开窗口后,如果检测到关闭时是最大化的,就调用下showMaximized()即可。

试试吧,应该不难的,按照自己的想法改改。
回复

使用道具 举报

累计签到:1572 天
连续签到:1 天
2013-12-9 14:00:37 显示全部楼层
这个是由于下面两个函数造成的:


void MainWindow::writeSettings() // 写入窗口设置
{
    QSettings settings("yafeilinux", "myMdi");
    settings.setValue("pos", pos());   // 写入位置信息
    settings.setValue("size", size()); // 写入大小信息
}

void MainWindow::readSettings() // 读取窗口设置
{
    QSettings settings("yafeilinux", "myMdi");
    QPoint pos = settings.value("pos", QPoint(200, 200)).toPoint();
    QSize size = settings.value("size", QSize(400, 400)).toSize();
    move(pos);
    resize(size);
}

当关闭程序前,如果程序窗口最大化了,那么关闭时执行:

void MainWindow::closeEvent(QCloseEvent *event) // 关闭事件
{
    ui->mdiArea->closeAllSubWindows(); // 先执行多文档区域的关闭操作
    if (ui->mdiArea->currentSubWindow()) {
        event->ignore(); // 如果还有窗口没有关闭,则忽略该事件
    } else {
        writeSettings(); // 在关闭前写入窗口设置
        event->accept();
    }
}

这里调用了 writeSettings();将最大化后的窗口大小信息保存起来了,当程序启动调用了   
readSettings(); // 初始窗口时读取窗口设置信息
读取保存的信息,所以出现了这个情况。
回复

使用道具 举报

累计签到:5 天
连续签到:1 天
2013-12-9 19:04:48 显示全部楼层
yafeilinux 发表于 2013-12-9 14:00
这个是由于下面两个函数造成的:

那有什么办法可以达到浏览器保存窗口位置的效果吗?
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

公告
可以关注我们的微信公众号yafeilinux_friends获取最新动态,或者加入QQ会员群进行交流:190741849、186601429(已满) 我知道了