• 7743阅读
  • 11回复

QDialog的初始化问题 [复制链接]

上一主题 下一主题
离线pear_2268
 

只看楼主 倒序阅读 楼主  发表于: 2010-01-06
在QDialog中放置一个QCheckBox,想保存上次的check值,定义了一个bool m_bCheck变量,在QDialog构造函数中m_bCheck = true,然后setChecked(m_bCheck),但是不能保存上次check的结果,有没有像MFC中的OnInitDialog的函数啊?急急!谢谢!
离线dbzhang800

只看该作者 1楼 发表于: 2010-01-06
QSettings
离线pear_2268

只看该作者 2楼 发表于: 2010-01-06
To:dbzhang800
能否详细点,QSettings?类吗?我用的qt4
离线pear_2268

只看该作者 3楼 发表于: 2010-01-06
QSettings是读取ini文件,你的意思是把操作的值保存到文件,然后从文件中再把上次的值读取出来?
离线jorneyr

只看该作者 4楼 发表于: 2010-01-06
汗,从根本上来说,数据的保存方式就那几种,最终也只有两种:
1. 永久存储:要想数据可以重复使用,你得用这个。那就得保存到文件中。
2. 放在内存中:程序一关就没了,因为他管理的内存区域被系统回收了,当然你也可以做到直到段电才没有,但反正是放不长。
离线jorneyr

只看该作者 5楼 发表于: 2010-01-06
QSettings可以方便的操作文件中的数据,不过是一种方式而已,不喜欢使用QSettings你可以自己去操作文件。
离线pear_2268

只看该作者 6楼 发表于: 2010-01-06
我只是在程序运行中,多次调用对话框时保存数据,程序关闭后第一次调用对话框时,执行构造函数里的初始值即可,所以我觉得用不着QSettings吧,要不重载open函数?
离线午小夜

只看该作者 7楼 发表于: 2010-01-06
引用第6楼pear_2268于2010-01-06 16:48发表的  :
我只是在程序运行中,多次调用对话框时保存数据,程序关闭后第一次调用对话框时,执行构造函数里的初始值即可,所以我觉得用不着QSettings吧,要不重载open函数?


在父窗口中保存。
[操作系统版本]  Windows XP;Linux Ubuntu;Linux Fedora;
[Qt SDK版本]    4.7.0
[SDK 发布日期]  2010.05
[IDE(集成开发环境)] QtCreator
个人网页:http://hi.baidu.com/午小夜
學歷:Royal Jalidon
离线pear_2268

只看该作者 8楼 发表于: 2010-01-07
引用第7楼午小夜于2010-01-06 17:07发表的  :
在父窗口中保存。

是在父窗口中保存了
CSettingDlg dlg(this);
if(dlg.exec()== QDialog::Accepted)
{
m_bCheck = dlg.m_bCheck ;
}
关闭对话框后,再次调用对话框的时候,把父窗口中的m_bCheck 传过去,怎么让对话框上的check部件显示m_bCheck 这个值啊?
我这么试了一下
CSettingDlg dlg(this);
dlg.m_bCheck = m_bCheck ;//加上了这么一句
if(dlg.exec()== QDialog::Accepted)
{
m_bCheck = dlg.m_bCheck ;
}
还是不行
离线pear_2268

只看该作者 9楼 发表于: 2010-01-07
原因找到了,我上面的写法是正确的,在执行dlg.exec()之前setChecked(bool)
离线yangfanxing
只看该作者 10楼 发表于: 2010-01-08
引用第9楼pear_2268于2010-01-07 10:23发表的  :
原因找到了,我上面的写法是正确的,在执行dlg.exec()之前setChecked(bool)

恭喜你了~~~
PHPWind好恶心。。。不想看这种界面。。。
离线2nd090215
只看该作者 11楼 发表于: 2010-01-10
关注,
快速回复
限100 字节
 
上一个 下一个