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

Qt4+VS2005,

8
回复
6678
查看
[复制链接]
累计签到:2 天
连续签到:1 天
来源: 2018-10-10 13:05:54 显示全部楼层 |阅读模式
1Qter豆
调试软件时,软件界面的大小会在程序结束后自动保存注册表中,在下一次打开时程序界面就会显示为上一次关闭时的大小!

有的时候我们不想要这种效果!要求程序界面每次打开时都是以程序中初始化的要求位置呈现。有人告诉我要删除调试产生的注册表,不知道怎么删除

最佳答案

查看完整内容

这3行代码负责从系统注册表中获取数据并设置到界面,第二行是设置窗体位置、尺寸。 第三行设置窗体的布局。 其实,跟着3句话配套的还有保存注册表的代码,应该也有3行,也是用的QSettings settings("GONA", PRODUCT_NAME);。
回复

使用道具 举报

累计签到:41 天
连续签到:1 天
2018-10-12 15:38:51 显示全部楼层
yangyang 发表于 2018-10-12 07:56
谢谢你,还想请教:保存注册码的代码应该是什么?还有QSettings settings("GONA", PRODUCT_NAME);。这个set ...

QSettings settings(QString::fromLocal8Bit("xxx公司"), QString::fromLocal8Bit("xxx应用程序"));
settings.beginGroup("mainWindow");
settings.setValue("pos", pos());
settings.setValue("size", size());
settings.setValue("state", saveState());
settings.endGroup();
回复

使用道具 举报

累计签到:2 天
连续签到:1 天
2018-10-12 07:56:53 显示全部楼层
谢谢你,还想请教:保存注册码的代码应该是什么?还有QSettings settings("GONA", PRODUCT_NAME);。这个setting调用格式是什么样,我不懂“GONA”和“PRODUCT_NAME”应该代表什么

点评

QSettings settings(QString::fromLocal8Bit("xxx公司"), QString::fromLocal8Bit("xxx应用程序")); settings.beginGroup("mainWindow"); settings.setValue("pos", pos()); settings.setValue("size", size()); set  详情 回复 发表于 2018-10-12 15:38
回复

使用道具 举报

累计签到:2 天
连续签到:1 天
2018-10-11 10:25:18 显示全部楼层
yangyang 发表于 2018-10-11 08:58
真的起作用了,每次调试后显示的软件界面就是我程序中想要的样子,拖动移动小窗口的位置后,软件界面也没 ...

还想问一下,这三句话是什么作用

点评

这3行代码负责从系统注册表中获取数据并设置到界面,第二行是设置窗体位置、尺寸。 第三行设置窗体的布局。 其实,跟着3句话配套的还有保存注册表的代码,应该也有3行,也是用的QSettings settings("GONA", PRODUCT_  详情 回复 发表于 2018-10-11 10:31
回复

使用道具 举报

累计签到:2 天
连续签到:1 天
2018-10-11 08:58:23 显示全部楼层
baizy77 发表于 2018-10-10 17:36
把这3行封掉即可。您可以试一下。

真的起作用了,每次调试后显示的软件界面就是我程序中想要的样子,拖动移动小窗口的位置后,软件界面也没有记忆功能了
回复

使用道具 举报

累计签到:41 天
连续签到:1 天
2018-10-10 17:36:01 显示全部楼层
yangyang 发表于 2018-10-10 14:01
只查到有一段这样的代码
QSettings settings("GONA", PRODUCT_NAME);
        restoreGeometry(settings.value(" ...

把这3行封掉即可。您可以试一下。
回复

使用道具 举报

累计签到:2 天
连续签到:1 天
2018-10-10 14:01:18 显示全部楼层
baizy77 发表于 2018-10-10 13:48
可以看一下代码中是否有readSettings()接口,或者是否有如下代码,封掉即可:
QSettings settings("xxxxxx" ...

只查到有一段这样的代码
QSettings settings("GONA", PRODUCT_NAME);
        restoreGeometry(settings.value("layout/geometry").toByteArray());
        restoreState(settings.value("layout/windowState").toByteArray());

点评

把这3行封掉即可。您可以试一下。  详情 回复 发表于 2018-10-10 17:36
回复

使用道具 举报

累计签到:41 天
连续签到:1 天
2018-10-10 13:48:49 显示全部楼层
可以看一下代码中是否有readSettings()接口,或者是否有如下代码,封掉即可:
QSettings settings("xxxxxx", QString::fromLocal8Bit("yyyyyy"));
settings.beginGroup("mainWindow");
resize(settings.value("size").toSize());
restoreState(settings.value("state").toByteArray());
settings.endGroup();
回复

使用道具 举报

累计签到:41 天
连续签到:1 天
2018-10-10 13:05:55 显示全部楼层
yangyang 发表于 2018-10-11 10:25
还想问一下,这三句话是什么作用

这3行代码负责从系统注册表中获取数据并设置到界面,第二行是设置窗体位置、尺寸。
第三行设置窗体的布局。
其实,跟着3句话配套的还有保存注册表的代码,应该也有3行,也是用的QSettings settings("GONA", PRODUCT_NAME);。
回复

使用道具 举报

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

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