qt学习001之运行对话框

时间:2023-03-09 21:33:17
qt学习001之运行对话框

使用QT实现Window下运行对话框

    qt学习001之运行对话框

1、摆放控件

首先设置并摆放相应的对话框控件,并更改相应名称;

    qt学习001之运行对话框       qt学习001之运行对话框

2、实现功能

1)在文本框中输入信息后,点击确定或回车可以运行系统中相应的程序;

点击回车运行指定文本内容,可以设置文本框的信号与确定槽函数的关联,直接按F4进行选择信号与槽,选择如下所示。

qt学习001之运行对话框

实现确定按钮,右击选择转到槽,选择clicked(),此时QT已经增加了on_OkButton_clicked()函数,要运行程序,则需要创建一个进程。

qt学习001之运行对话框

在头文件中包含<QProcess>,在函数体中创建实例指针对象,读取文本框信息,启动start即可。此时已经可以完成进本的运行功能了(可以输入motepad\mspaint试验)。

     QProcess *proc=new QProcess();
QString program=ui->lineEdit->text().trimmed();
proc->start(program);  //使用QDesktopServices::openUrl(QUrl(program));也可 if(!proc->waitForStarted()) //设置给出提示
{
QMessageBox::warning(this,program,"Windows找不到文件'v',请确定文件名后再试");
return ;
}
ui->lineEdit->clear();

2)取消操作,右击进入槽,选择clicked,输入this->close()即可

3)浏览操作

浏览操作需获取指定的文件路径,采用getopenfilename即可获取指定文件的绝对路径,将值传回文本框中即可。

 void Widget::on_BrowserButton_clicked()
{
QString fileName=QFileDialog::getOpenFileName(this,"打开文件",QDir::currentPath(),tr("程序 (*.exe *.pif *.com *.bat *.cmd)"));
if(fileName.isEmpty())
{
QMessageBox::warning(this,fileName,"Windows找不到文件,请确定文件名后再试");
return;
}
  else
ui->lineEdit->setText(fileName);
}

3、完善界面

设置登陆界面的属性。在构造函数中设置Ok按钮不可用(ui->OkButton->setEnabled(false);)并设置程序界面大小和启动界面位置。

     this->setFixedSize(,);
this->setWindowTitle("运行");
this->move(,);
ui->OkButton->setEnabled(false); QObject::connect(ui->lineEdit,SIGNAL(textEdited(QString)),ui->OkButton,SLOT(setDisabled(TRUE))); //设置信号与槽实际上是调用此语句进行关联

设置没有任何输入时确定按钮不可用。在ui中选中文本框右击进入槽中,选择textchanged(),完善该函数。

 void Widget::on_lineEdit_textChanged(const QString &arg1)
{
if(ui->lineEdit->text()!="")
ui->OkButton->setEnabled(true);
else
ui->OkButton->setEnabled(false);
}

至此即完成。

qt学习001之运行对话框