qt学习001之运行对话框
使用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之运行对话框的更多相关文章
- Qt 学习之路 2(17):文件对话框
Home / Qt 学习之路 2 / Qt 学习之路 2(17):文件对话框 Qt 学习之路 2(17):文件对话框 豆子 2012年9月24日 Qt 学习之路 2 85条评论 在前面的章节中 ...
- Qt 学习之路 2(15):标准对话框 QMessageBox
Qt 学习之路 2(15):标准对话框 QMessageBox 豆子 2012年9月18日 Qt 学习之路 2 40条评论 所谓标准对话框,是 Qt 内置的一系列对话框,用于简化开发.事实上, ...
- QT学习之路--创建一个对话框
Q_OBJECT:这是一个宏,凡是定义信号槽的类都必须声明这个宏. 函数tr()全名是QObject::tr(),被他处理过的字符串可以使用工具提取出来翻译成其他语言,也就是做国际化使用. 对于QT学 ...
- QT学习 之 对话框 (四) 字体对话框、消息对话框、文件对话框、进程对话框(超详细中文注释)
QMessageBox类: 含有Question消息框.Information消息框.Warning消息框和Critical消息框等 通常有两种方式可以来创建标准消息对话框: 一种是采用“基于属性”的 ...
- Qt 学习之路 2(14):对话框数据传递
Home / Qt 学习之路 2 / Qt 学习之路 2(14):对话框数据传递 Qt 学习之路 2(14):对话框数据传递 豆子 2012年9月15日 Qt 学习之路 2 53条评论 对话框 ...
- Qt 学习之路 2(13):对话框简介
Qt 学习之路 2(13):对话框简介 豆子 2012年9月14日 Qt 学习之路 2 53条评论 对话框是 GUI 程序中不可或缺的组成部分.很多不能或者不适合放入主窗口的功能组件都必须放在 ...
- QT学习之第一个程序
QT学习之第一个程序 目录 手动创建主窗口 居中显示 添加窗口图标 显示提示文本 Message Box的应用 手动连接信号与槽 手动创建主窗口 窗口类型 QMainWindow: 可以包含菜单栏.工 ...
- Qt学习之信号与槽(一)
Qt学习之信号与槽(一) 目录 QT的信号与槽机制 在窗口的UI设计中操作添加信号和槽 QT的信号与槽机制 QT的两种机制 在Qt和PyQt中有两种通信机制: 低级事件处理机制(low-l ...
- Qt 学习之路 2(44):QFileSystemModel
Home / Qt 学习之路 2 / Qt 学习之路 2(44):QFileSystemModel Qt 学习之路 2(44):QFileSystemModel 豆子 2013年2月21日 Qt ...
随机推荐
- 实例:vue中点击空白区域关闭某个div图层
<template> <div class="search" ref="searchMain"> <el-input v-mode ...
- ie 9.10 兼容性问题 遇到的坑
1.ie9 中ajax 跨域调用时 error报错信息为”No Transport” 原因是 ajax跨域 本人用的是 cors解决方案 但是ie9一下版本 对cors默认是不允许的所以需要我们自 ...
- Win10系统提示对于目标文件系统过大
Win10系统提示对于目标文件系统过大 今天在复制MAC系统文件时,系统弹出窗口提示“对于目标文件系统,文件XXX过大”.出现这种情况的原因是FAT32的文件系统不支持复制大于4g的单个文件,而NTF ...
- cocos CCLayer glDrawArrays(GL_TRIANGLE_STRIP, 0, 4);ios11闪退 spine动画
搜索一下方法,找到后替换不同内容: void PolygonBatch::flush () { if (!_verticesCount) return; GL::bindTexture2D(_text ...
- cok-filter
小工具 # -*- coding: utf-8 -*- import pandas as pd def filterExcel(cokpath, keywords): df = pd.read_exc ...
- debian shell脚本关联
懒得命令行一个个的输 设置,MIME类型编辑,搜索x-shellscript,默认的改成/bin/bash即可
- vue 中 相同的路由不会跳转,更改路由的办法
vue 开发的项目,路由跳转的时候,是相同的路由是不会跳转,页面也不会有更新的 有时候 必须要跳转怎么办, 更改一个参数,num,一直在改变.就可以进入了. this.$router.push({ p ...
- ssh登录原理及免密登录配置
ssh登录原理参考: https://www.cnblogs.com/hukey/p/6248468.html ssh登录有两种方式: 1):用户名密码登录 2):基于秘钥的登录 ssh免密登录指的就 ...
- Ubuntu16.04修改IP及时生效
1.Network Connetions 窗口管理器中修改IP 2.ifconfig查看网卡名字 3.刷新IP sudo ip addr flush enp2s0 4.sudo service net ...
- Group(), Groups(),& Groupdict() 用法
group() 返回一个或多个匹配的字串.如果只有一个参数,结果只有单个字符串:如果有多个参数,结果是一个元组,元组里每一项对应一个参数.没有参数,group1默认是0(整个匹配串被返回).如果gro ...