• qt学习001之运行对话框


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

        

    1、摆放控件

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

               

    2、实现功能

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

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

       

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

           

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

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

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

          3)浏览操作

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

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

     3、完善界面

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

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

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

    1 void Widget::on_lineEdit_textChanged(const QString &arg1)
    2 {
    3     if(ui->lineEdit->text()!="")
    4         ui->OkButton->setEnabled(true);
    5     else
    6         ui->OkButton->setEnabled(false);
    7 }

            至此即完成。

        

  • 相关阅读:
    Azkaban的使用
    Azkaban安装
    Kafka 启动失败,报错Corrupt index found以及org.apache.kafka.common.protocol.types.SchemaException: Error reading field 'version': java.nio.BufferUnderflowException
    Kafka 消费者设置分区策略及原理
    Kafka利用Java API自定义生产者,消费者,拦截器,分区器等组件
    zookeeper群起总是有那么几个节点起不来的问题解决
    flume 启动agent报No appenders could be found for logger的解决
    Flume 的监控方式
    Flume 自定义 组件
    Source r1 has been removed due to an error during configuration java.lang.IllegalArgumentException: Required parameter bind must exist and may not be null & 端口无法连接
  • 原文地址:https://www.cnblogs.com/tobybain/p/10654493.html
Copyright © 2020-2023  润新知