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

    

1、摆放控件

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

           

2、实现功能

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

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

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

在头文件中包含<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之运行对话框的更多相关文章

  1. Qt 学习之路 2(17):文件对话框

    Home / Qt 学习之路 2 / Qt 学习之路 2(17):文件对话框 Qt 学习之路 2(17):文件对话框  豆子  2012年9月24日  Qt 学习之路 2  85条评论 在前面的章节中 ...

  2. Qt 学习之路 2(15):标准对话框 QMessageBox

    Qt 学习之路 2(15):标准对话框 QMessageBox  豆子  2012年9月18日  Qt 学习之路 2  40条评论 所谓标准对话框,是 Qt 内置的一系列对话框,用于简化开发.事实上, ...

  3. QT学习之路--创建一个对话框

    Q_OBJECT:这是一个宏,凡是定义信号槽的类都必须声明这个宏. 函数tr()全名是QObject::tr(),被他处理过的字符串可以使用工具提取出来翻译成其他语言,也就是做国际化使用. 对于QT学 ...

  4. QT学习 之 对话框 (四) 字体对话框、消息对话框、文件对话框、进程对话框(超详细中文注释)

    QMessageBox类: 含有Question消息框.Information消息框.Warning消息框和Critical消息框等 通常有两种方式可以来创建标准消息对话框: 一种是采用“基于属性”的 ...

  5. Qt 学习之路 2(14):对话框数据传递

    Home / Qt 学习之路 2 / Qt 学习之路 2(14):对话框数据传递 Qt 学习之路 2(14):对话框数据传递  豆子  2012年9月15日  Qt 学习之路 2  53条评论 对话框 ...

  6. Qt 学习之路 2(13):对话框简介

    Qt 学习之路 2(13):对话框简介  豆子  2012年9月14日  Qt 学习之路 2  53条评论 对话框是 GUI 程序中不可或缺的组成部分.很多不能或者不适合放入主窗口的功能组件都必须放在 ...

  7. QT学习之第一个程序

    QT学习之第一个程序 目录 手动创建主窗口 居中显示 添加窗口图标 显示提示文本 Message Box的应用 手动连接信号与槽 手动创建主窗口 窗口类型 QMainWindow: 可以包含菜单栏.工 ...

  8. Qt学习之信号与槽(一)

    Qt学习之信号与槽(一) 目录 QT的信号与槽机制 在窗口的UI设计中操作添加信号和槽     QT的信号与槽机制   QT的两种机制 在Qt和PyQt中有两种通信机制: 低级事件处理机制(low-l ...

  9. Qt 学习之路 2(44):QFileSystemModel

    Home / Qt 学习之路 2 / Qt 学习之路 2(44):QFileSystemModel Qt 学习之路 2(44):QFileSystemModel  豆子  2013年2月21日  Qt ...

随机推荐

  1. win10刻录光盘失败,一直显示有准备好写入到光盘中的文件

    这是因为前面刻录留下的缓存导致的 解决方法是,删除系统刻录缓存文件 刻录缓存路径大概在以下位置(其中ase那个地方需要修改,改成自己的登录用户账号名即可) C:\Users\ase\AppData\L ...

  2. 运维wiki

    意识 1.责任心 要有 owner 意识.运维是线上产品的首要负责人,出现故障都默认是运维的故障,要推动改进. 2.细心 要有敏感的风险意识,稳定和安全是运维的最高责任 3.上进心 要善于学习,不断反 ...

  3. Java面试题之Forward和Redirect的区别

    redirect:请求重定向:客户端行为,本质上为2次请求,地址栏改变,前一次请求对象消失.举例:你去银行办事(forward.jsp),结果告诉你少带了东西,你得先去公安局办(index.html) ...

  4. QQ群成员发言次数统计(词云制作)

    所用数据来自于之前的一篇博客: <QQ群成员发言次数统计(正则表达式版)> 链接:http://www.cnblogs.com/liyongzhao/p/3324026.html 1.首先 ...

  5. mpt2sas0: log_info(0x31120100): originator(PL), code(0x12), sub_code(0x0100)及同类问题的追踪

    做存储或者磁盘阵列的经常会遇到linux kernel打印如下信息或者类似的信息,这是什么原因导致的呢? mpt2sas0: log_info(0x31120100): originator(PL), ...

  6. vue 深拷贝

    Vue.set(row,'isEdit',true); let newRow = JSON.parse(JSON.stringify(row)); this.totalData.push(newRow ...

  7. Hadoop 管理工具HUE配置-HBase配置

    1 前言 首先要陪只好HBase,可以参见http://www.cnblogs.com/liuchangchun/p/4096891.html,完全分布式类似 2 HBase配置 2.1 HUE 配置 ...

  8. 剖析ElasticSearch核心概念,NRT,索引,分片,副本等

    ElasticSearch 的核心概念 Near RealTime(NRT) 近实时 近实时有两种意思,一种是从写入数据到可以被搜索到有一个小延迟(大概一秒),还有一种就是基于ElasticSearc ...

  9. The usage of docker image wurstmeister/kafka

    The docker image wurstmeister/kafka is the most stared image for kafka in hub.docker.com, but the us ...

  10. WordPress版微信小程序3.0版发布

    距离WordPress版微信小程序上一个版本的发布过去了一个月了.在此间,我的工作有些变化,加上正在开发新版本,目前开源版的完善和升级稍稍有些滞后. 虽然这个版本是3.0版,期间有个过渡的2.8版,不 ...