zoukankan      html  css  js  c++  java
  • qt学习001之运行对话框

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

        

    1、摆放控件

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

               

    2、实现功能

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

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

       

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

           

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

     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 }

            至此即完成。

        

  • 相关阅读:
    java与C#区别1
    简单解决Linq多条件组合问题<转>
    散列表(哈希表)工作原理<转>
    在Eclipse中设置中文JavaDOC<转>
    Cucumber入门之_argument
    Cucumber入门之Gherkin
    网上常用免费WebServices集合
    watir学习baidu搜索示例
    使用Cucumber的15个建议
    Cucumber入门之_World
  • 原文地址:https://www.cnblogs.com/maxonzou/p/10654493.html
Copyright © 2011-2022 走看看