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

把界面中所有控件中的数据另存为到文件,再从文件载入

8
回复
7259
查看
[复制链接]

尚未签到

来源: 2014-6-6 15:51:00 显示全部楼层 |阅读模式
1Qter豆
把界面中所有控件中的数据另存为到文件,再从文件中将数据全部载入到控件中?怎么实现??着急,谢谢!

最佳答案

查看完整内容

最全能的方法就是数据库。。 似乎我见人都说数据库,哈哈 最简单的方法是QSettings,请参考文档
回复

使用道具 举报

尚未签到

2014-6-6 15:51:01 显示全部楼层
最全能的方法就是数据库。。 似乎我见人都说数据库,哈哈

最简单的方法是QSettings,请参考文档
回复

使用道具 举报

尚未签到

2014-6-6 16:47:11 显示全部楼层
Joey_Chan 发表于 2014-6-6 16:31
最全能的方法就是数据库。。 似乎我见人都说数据库,哈哈

最简单的方法是QSettings,请参考文档 ...

QSettings怎么跟FileDialog 结合在一起用啊?
回复

使用道具 举报

累计签到:894 天
连续签到:1 天
2014-6-6 21:40:27 显示全部楼层
我用过xml的方法实现,不过前提是对每一个对象设置objectname
回复

使用道具 举报

尚未签到

2014-6-6 22:17:52 显示全部楼层
Syylc120317 发表于 2014-6-6 21:40
我用过xml的方法实现,不过前提是对每一个对象设置objectname

同上,需要objectname
回复

使用道具 举报

尚未签到

2014-6-7 10:31:28 显示全部楼层
我现在在文件名中只输入后缀时,按下另存为对话框的保存按钮时,提示他文件名不能为空,不保存。可是实现不了
回复

使用道具 举报

累计签到:894 天
连续签到:1 天
2014-6-7 11:10:50 显示全部楼层
涅槃 发表于 2014-6-7 10:31
我现在在文件名中只输入后缀时,按下另存为对话框的保存按钮时,提示他文件名不能为空,不保存。可是实现不 ...
  1.    
  2. QString name = MdiArea->activeSubWindow()->objectName();
  3.     MyWidget *widget = static_cast<MyWidget *>(MdiArea->activeSubWindow()->widget());

  4.     QDomDocument doc;
  5.     doc.appendChild(doc.createProcessingInstruction("xml","version="1.0" encoding="UTF-8""));
  6.     QDomElement root = doc.createElement(name);
  7.     doc.appendChild(root);
  8.     //QComboBox
  9.     QList<QComboBox *> allcombobox = widget->findChildren<QComboBox *>();
  10.     if(allcombobox.size() != 0){
  11.         QDomElement typecom = doc.createElement("QComboBox");
  12.         root.appendChild(typecom);
  13.         foreach (QComboBox *box, allcombobox) {
  14.             QDomElement child = doc.createElement(box->objectName());
  15.             child.setAttribute("Text",box->currentText());
  16.             child.setAttribute("Index",box->currentIndex());
  17.             typecom.appendChild(child);
  18.         }
  19.     }
复制代码
以上是从我的项目里截取的一部分代码,你可以参考一下,希望对你有帮助。

回复

使用道具 举报

累计签到:256 天
连续签到:1 天
2015-5-6 16:05:14 显示全部楼层
Syylc120317 发表于 2014-6-7 11:10
以上是从我的项目里截取的一部分代码,你可以参考一下,希望对你有帮助。

...

问题1:
比如 这个combobox装了100 1000 10000 110 1100 11000
我给它一个110
使它初始显示110
要怎么做 前提是我只能给它装的值 不能给他是第一个
问题2:
如果不是数字 是装COM1 COM2 COM2
这样的要怎么做
回复

使用道具 举报

累计签到:894 天
连续签到:1 天
2015-5-6 17:15:39 显示全部楼层
z55716368 发表于 2015-5-6 16:05
问题1:
比如 这个combobox装了100 1000 10000 110 1100 11000
我给它一个110

保存的时候,保存box->currentIndex(i).
然后打开的时候设置box->setCurrentIndex(i)。
回复

使用道具 举报

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

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