小编Ote*_*Ote的帖子

编写和读取自定义类到QSettings

我需要通过QSettings在注册表中存储自定义类的实例.从Qt的文档中读取后,我认为我已经实现了所需的功能,但我没有设法保存任何东西.

这是我的自定义类:

class SRSDefinition{
public:
    SRSDefinition(QString name, QString definition) : qsName(name), qsDefinition(definition)
    {
        qRegisterMetaType<SRSDefinition>("SRSDefinition");
        qRegisterMetaTypeStreamOperators<SRSDefinition>("SRSDefinition");       
    }
    SRSDefinition(const SRSDefinition& original) : qsName(original.qsName), qsDefinition(original.qsDefinition) {}
    SRSDefinition() : qsName(""), qsDefinition(""){}
    ~SRSDefinition();
    QString qsName;
    QString qsDefinition;
private:
    friend QDataStream& operator << (QDataStream& out, const SRSDefinition& valeur) {out << valeur.qsName << valeur.qsDefinition; return out; }
    friend QDataStream& operator >> (QDataStream& in, SRSDefinition& valeur) {in >> valeur.qsName >> valeur.qsDefinition; return in;}
};
Q_DECLARE_METATYPE(SRSDefinition)
QDataStream& operator << (QDataStream& out, const SRSDefinition& Valeur);
QDataStream& operator >> (QDataStream& in, …
Run Code Online (Sandbox Code Playgroud)

c++ serialization qt qsettings

12
推荐指数
1
解决办法
5834
查看次数

在神秘的情况下,用户的参数是空的QCoreApplication

我试图创建一个控制台应用程序,Qt并在尝试检索参数时面临非常奇怪的行为.我的类派生自QCoreApplication哪个函数通常应该将所有args放在某些列表中strings.但在某些情况下,呼叫以分段错误结束.

这是代码:

main.cpp中

#include "Diagramm.h"

int main(int argc, char *argv[])
{
    Diagramm application(argc, argv);
    application.run();
    return EXIT_SUCCESS;
}
Run Code Online (Sandbox Code Playgroud)

Diagramm.h

#include <QCoreApplication>
#include <iostream>
#include <QStringList>
#include <QFile>
#include <QDebug>


class Diagramm : public QCoreApplication
{
    Q_OBJECT

    public:
        Diagramm(int argc, char *argv[]);
        void run();
    private:
        void testArguments();
    signals:
    public slots:
};
Run Code Online (Sandbox Code Playgroud)

Diagramm.cpp

#include "Diagramm.h"

Diagramm::Diagramm(int argc, char *argv[]) : QCoreApplication(argc, argv)
{
    //std::cout << "calling Diagramm constructor" << std::endl;
}

void Diagramm::run()
{
    testArguments();
} …
Run Code Online (Sandbox Code Playgroud)

c++ linux qt console-application segmentation-fault

9
推荐指数
1
解决办法
2552
查看次数