• 7330阅读
  • 6回复

[提问]QSettings  QFileDialog [复制链接]

上一主题 下一主题
 

只看楼主 倒序阅读 楼主  发表于: 2014-06-07
页面有保存、载入两个按钮,按下【保存】,弹出另存为对话框,把页面上所有控件中的值保存到文件中;按下【载入】按钮,再弹出打开文件对话框,把文件里的控件中数据全部载入到页面。
保存时,文件名只有后缀的话,给出提示信息。
怎么实现??急等!!!
离线dbzhang800

只看该作者 1楼 发表于: 2014-06-07
按你自己描述的,直接实现有什么困难么?具体哪一步有困难?

只看该作者 2楼 发表于: 2014-06-07
回 dbzhang800 的帖子
dbzhang800:按你自己描述的,直接实现有什么困难么?具体哪一步有困难? (2014-06-07 11:27) 

保存的时候,”文件名只有后缀的话,给出提示信息“这部分写在哪儿,写了,按了保存之后,不保存直接关闭,按取消倒是给个提示
离线dbzhang800

只看该作者 3楼 发表于: 2014-06-07
取消返回的是空字符串吧?保存返回的是一个非空字符串吧?

你对字符串的判断部分怎么写的?

只看该作者 4楼 发表于: 2014-06-07
回 dbzhang800 的帖子
dbzhang800:取消返回的是空字符串吧?保存返回的是一个非空字符串吧?
你对字符串的判断部分怎么写的? (2014-06-07 11:39) 

QString name = "";
    int length = fileName.size();
    for (int i = length - 1; i > 0; i--) {
        if (fileName.at(i) == '/')
            return;
            name += fileName.at(i);
    }
    if (name.remove("." + a).size() == 0) {
        QMessageBox::information(0, "Error", "FileName connot be empty!");
        return;
    }
离线dbzhang800

只看该作者 5楼 发表于: 2014-06-07
两点建议:

1. 学会调试程序,你这个问题估计就在QString::remove() 哪一行,比如大小写问题等。

2. 多看看Qt Manual,你需要的东西在Qt中都有现成的东西可以直接用,一行代码可能就够了,比如 QFileInfo(fielName).baseName()。另外,自己写的话,QString::lastIndexOf()也会比自己写循环简单和高效

只看该作者 6楼 发表于: 2014-06-07
回 dbzhang800 的帖子
dbzhang800:两点建议:
1. 学会调试程序,你这个问题估计就在QString::remove() 哪一行,比如大小写问题等。
2. 多看看Qt Manual,你需要的东西在Qt中都有现成的东西可以直接用,一行代码可能就够了,比如 QFileInfo(fielName).baseName()。另外,自己写的话,QString::lastIndexOf()也会比 .. (2014-06-07 12:26) 

谢谢啦,就是那段代码的问题,换了baseName之后,就可以判断了,就是按下【保存】按钮之后,先关闭了另存为对话框,然后弹出提示信息
快速回复
限100 字节
 
上一个 下一个