【发布时间】: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