【问题标题】:A Simple QProcess一个简单的 QProcess
【发布时间】:2014-01-07 00:40:15
【问题描述】:

您好,我正在尝试运行一个简单的 QProcess,这是我非常基本的代码。

QDir("/home/brett/sweetback");
        QProcess process;
        process.start("mysqldump -uroot -ppass sweetassurfwear > sweetassurfwear.sql");
        process.waitForFinished(-1);

这有什么问题? 我已经把代码改成了这个

QString program = "/usr/bin/mysqldump";
QStringList arguments;
arguments << "-uroot";
arguments << "-ppass";
arguments << "--routines";
arguments << "sweetassurfwear > sweetassurfwear.sql";
//All the other arguments

QProcess *myProcess = new QProcess(parent);
myProcess->start(program, arguments);

我现在收到错误

sweetgui2.cpp: In member function ‘void SweetGuiForm::on_buttonBox_accepted()’:
sweetgui2.cpp:88: error: no matching function for call to ‘QProcess::QProcess(<unresolved overloaded function type>)’
/usr/include/QtCore/qprocess.h:219: note: candidates are: QProcess::QProcess(const QProcess&)
/usr/include/QtCore/qprocess.h:129: note:                 QProcess::QProcess(QObject*)
make: *** [sweetgui2.o] Error 1

我换行了

QProcess *myProcess = new QProcess(parent);
to
QProcess *myProcess = new QProcess(this);

它现在可以编译,但我仍然没有得到转储文件

【问题讨论】:

  • parent 是每个基于 QObject 的类中的函数。所以要么你必须调用parent(),如果你想QProcess成为当前对象父级的孩子,或者this,如果你想让QProcess成为当前QObject的孩子

标签: c++ qt qt4 qprocess qtcore


【解决方案1】:

更改以下行:

arguments << "sweetassurfwear > sweetassurfwear.sql";

到:

arguments << "sweetassurfwear" << ">" << "sweetassurfwear.sql";

您需要将不同的字符串作为单独的参数处理。

【讨论】:

    【解决方案2】:

    根据 Qt 文档,您应该执行以下操作:

    QString program = "PathTo/mysqldump";
    QStringList arguments;
    arguments << "-uroot";
    arguments << "-ppass";
    //All the other arguments
    
    QProcess *myProcess = new QProcess(parent);
    myProcess->start(program, arguments);
    

    注意你应该为你的 mysqldump 应用程序提供命令行参数的方式。

    【讨论】:

    • 太棒了,但我得到这些错误我不知道为什么错误:没有匹配的函数调用'QProcess::QProcess()'/usr/include/QtCore/qprocess。 h:219: 注意: 候选者是: QProcess::QProcess(const QProcess&) /usr/include/QtCore/qprocess.h:129: 注意: QProcess::QProcess(QObject*)
    • 这个答案似乎没有解决问题中的问题。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-10-02
    • 1970-01-01
    • 2014-11-18
    • 2011-05-26
    • 2014-08-20
    • 2014-08-13
    相关资源
    最近更新 更多