我尝试为已经创建的C程序创建GUI(一个图像刮刀)。图像刮刀的工作,但我试图实现的GUI,允许用户输入一个网站,以刮取图像从到一个行编辑框(行编辑),然后点击按钮(按钮)它从行编辑框中获取输入文本,并将其用作在后台运行C程序的参数。上面提到的。“
下面是我的代码,头文件和主文件没有被更改,任何更改都是通过GUI设计器完成的,而不是手动更改。
#include "mainwindow.h"
#include "ui_mainwindow.h"
char *arguments;
MainWindow::MainWindow(QWidget *parent) :
QMainWindow(parent),
ui(new Ui::MainWindow)
{
ui->setupUi(this);
}
MainWindow::~MainWindow()
{
delete ui;
}
void MainWindow::on_pushButton_clicked()
{
QString program = "~/Desktop/IS";
QString arguments = QLineEdit::text(); //error on this line
QProcess *myProcess = newQProcess(parent);
myProcess->start(program, arguments);
}
字符串
2条答案
按热度按时间5cg8jx4n1#
所有错误都在
on_pushButton_clicked()
中。new
和QProcess
之间缺少空格。1.作用域中没有
parent
变量。当然,QObject
有一个parent()
成员。您可以简单地将进程父化到窗口本身。1.你不能在没有对象的情况下调用
QLineEdit::text
,就像错误所说的那样。只有 * 你 * 知道你需要什么对象。现在让我们假设对象是ui->myLineEdit
。1.波浪线扩展由shell完成。内核不知道波浪线是什么,
QProcess
也不知道。您需要提供可执行文件的完整路径。1.主目录也不总是可以从
HOME
环境变量中获得。它应该从可移植的QDir::homePath()
中获得。QProcess::start()
不接受两个字符串。它需要一个字符串列表作为第二个参数。由于您只打算提供一个参数,因此将其 Package 在字符串列表中是一件简单的事情。字符串
k4ymrczo2#
在你的主窗口窗体上创建一个名为“InputWebSite”的行编辑
然后替换
字符串
与
型