QT信号与槽-启动系统程序以及相关控件介绍

1.1 创建一个继承至QWidget的项目。
1.2 设计界面,分析界面采用的布局方式。
在这里插入图片描述

  • 首先,每行控件采用水平布局方式,第三行为了使控件靠右,前面添加一个占位控件。
  • 三行采用垂直平局;
  • 选中控件,通过右键可以控件的布局方式

1.3 为按钮添加响应函数,即槽,选中“确定”按钮,右键转到槽,即可添加槽。
启动进程,需要通过QProcess来创建进程,然后启动系统中某程序。

void Widget::on_SubmitBtn_clicked()
{QProcess *process=new QProcess;QString st=ui->lineEdit->text();//获取编辑框中输入的程序名称st.trimmed();//删除名称后面的空格,保证名称正确process->start(st);//启动进程;ui->lineEdit->clear();//清空编辑框;this->close();//退出程序
}

1.4 当按下Enter键是,满足相同的功能,启动程序,可以在Widget的构造函数中,通过connect来实现。
connect用来连接两个对象,一个对象发出信号,另一个对象处理该信号。

Widget::Widget(QWidget *parent) :QWidget(parent),ui(new Ui::Widget)
{ui->setupUi(this);this->setMaximumSize(400,250);this->setMinimumSize(400,250);//为保证界面的美观,固定窗口的大小,设置最大窗口值,最小窗口值相等。//将信号和槽函数进行绑定,QObject::connect(ui->lineEdit,SIGNAL(returnPressed()),this,SLOT(on_SubmitBtn_clicked()));
}

通过查看QLineEdit控件的信号,可知当按下Enter键后会触发returnPressed()信号,则可以将该信号与控件的槽函数进行绑定,则可以实现相同功能。

1.5 相关知识介绍
(1) explicit关键字,只能用于修饰只有一个参数的类构造函数, 表明该构造函数是显示的, 而关键字implicit, 意思是隐藏的,类构造函数默认情况下即声明为implicit(隐式)。 当多参数的构造函数除第一个参数外,其他参数都有默认值,explicit关键字也可以生效。

//若使用explicit关键字修饰构造函数,则只有第二句代码正确,若没有explicit关键字,则第一句也正确,应为它启动了隐式转换将10转换为一个Student对象。
Student s=10;
Student s(10);

(2) private slots:表示定义一个槽函数。SLOT和SIGNAL分别表示槽和信号。

(3) Q_OBJECT:
信号和槽是Qt应用开发的基础,它可是将两个毫无关系的对象连接在一起,槽和普通的C++函数是一样的,只是当它和信号连接在一起后,当发送信号的时候,槽会自动被调用,只有加入了Q_OBJECT,你才能使用QT中的signal和slot机制。

(4) Ui::Widget *ui;
ui就是界面对象,通过构造函数中的ui->setupUi(this);来进行实例化。

1.6 List Widget组件是从List View继承而来,其他的类似,一般我们直接使用List Widget控件。
在这里插入图片描述
1.7 主要控件介绍

  • 布局控件:包括水平、垂直布局,网格布局,Form布局等;
    在这里插入图片描述

  • 按钮:都是从QAbstractButton继承而来;
    在这里插入图片描述

  • 视图控件:列表视图,树视图,列视图;
    在这里插入图片描述

  • 容器控件:主要用来容纳其他控件,如GroupBox,Scroll Area(可滚动的区域),ToolBox(页面的展开与收缩),TabWidget(标签选项卡控件),Stacked Widget(具有切换页面的小三角功能),MdiWidget(在同一窗口可以显示多个),Dock Widget(停靠窗口);
    在这里插入图片描述

  • 输入控件:Combo Box(下拉列表框),Font Combo Box(字体选择框),Text Edit(多文本编辑器,可设置字体的颜色等),Plain Text Edit(纯文本编辑器,不能改变字体颜色等),Dial(圆盘调节控件)
    在这里插入图片描述

  • 显示控件:文本浏览器,进度条,网页浏览器(QWebView)等
    在这里插入图片描述

1.8 Qt Creator相关功能介绍
在这里插入图片描述
通过上面的按钮,可是切换控件编辑模式和信号与槽编辑模式,可以直接编辑控件之间信号与槽的对应关系;

通过Qt Creator的帮助文档,可以查看相应类包含的函数,信号等,以及使用示例可以帮助我们快速的开发,一个信号可以指向多个槽函数,一个槽函数可以被多个信号相应;

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/484055.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

科技部向全社会征集颠覆性技术研发方向

来源:人民网据科技部网站消息,为提升我国重大科技创新方向前瞻布局能力,加快推动颠覆性技术创新,科技部办公厅拟面向各有关单位和广大科研人员,开展颠覆性技术研发方向建议征集工作,对于符合条件的建议&…

springboot前后端分离项目MultipartFile获取前端传的file为null问题

【问题描述】 springbootvue 前后端分离项目,在对接上传文件功能时,一直显示文件为空。 【分析】 查找了很多博客,解决方法五花八门,但原因应该还是 springboot自带的org.springframework.web.multipart.MultipartFile和Multi…

计算机网络( 二十二)-数据链路层(补充)

1.链路link:结点------>相邻结点的物理线路。 2.数据链路:物理线路通信协议,通信协议(通信规程)用来控制数据的传输。 3.最常用网络适配器(硬件、软件)来实现协议。适配器包括了数据链路层和物理层两层的功能。 4.数据链路层的协议数据单元PDU------帧…

《科学之路》| 图灵奖得主杨立昆人工智能十问:AI会统治人类吗?

来源:《科学之路》作者:杨立昆封面:Yukai Du即便是最先进的人工智能系统也存在局限性,它们还不如一只猫聪明。人工智能常常被认为是一项将要颠覆世界的技术,从这一概念诞生至今的65年中,无数电影与小说塑造…

计算机网络(二十三)-网络层-概述与数据交换方式

一.网络层的功能 主要任务是把分组从源端传送到目的端,为分组交换网上的不同主机提供通信服务。 网络层传输单位是数据报。功能 路由选择与分组转发,最佳路径。异构网络互联;拥塞控制; 若所有结点都来不及接收分组,网…

数字大脑学术沙龙:“城市大脑与应急管理专题研讨会”成功召开

来源:城市大脑全球标准研究组2021年以来城市大脑的建设与研究获得了长足发展,数百个城市开展了城市大脑的建设与规划,取得了诸多成果。于此同时,伴随着疫情、水灾、交通事故、环境事故的不断出现,城市大脑如何应对应急…

Java 注解:@PostConstruct和@PreConstruct

从Java EE5规范开始,Servlet增加了两个影响Servlet生命周期的注解(Annotation):PostConstruct和PreConstruct。这两个注解被用来修饰一个非静态的void()方法.而且这个方法不能有抛出异常声明。 使用方式,例如&#xff…

计算机网络(二十四)-路由算法及路由协议

1.1 路由算法 将最优的路径填入路由转发表。 1.2 路由算法分类 静态路由算法(非自适应路由算法):管理员手动配置路由信息。 简便、可靠,在负载稳定、拓扑变化不大的网络中运行效果很好,广泛用于高度安全性的军事网络和较小的商业网络。 动…

研究速递:老年人的心智能力不一定在衰减,抗干扰的能力会更强

来源: 混沌巡洋舰长期以来,人们一直认为,衰老会导致我们的心智能力大幅下降。现在,乔治城大学医学中心的新研究,反驳这一观点,研究结果发表在2021年8月19日的《自然---- 人类行为》杂志上,由于世…

计算机网络(二十五)-IP数据报格式

1.1 TCP/IP协议栈 1.2 IP数据报格式 IP数据报如果过大,就会对它进行分片,每个分片为一个分组。 版本指的是IPv4或IPv6;首部长度:单位是4B(4字节),最小为5;区分服务:指示期望获得哪种类型的服…

NLP≠NLU,机器学习无法理解人类语言

来源:图灵人工智能 编译:吴彤校对:暮编辑:琰琰长期以来,我们一直在与机器沟通:编写代码--创建程序--执行任务。然而,这些程序并非是用人类“自然语言“编写的,像Java、Python、C和C …

CentOS 7 安装并启动Nginx

一、安装必要的库 1、安装gcc gcc-c yum install -y gcc gcc-c 2、gzip模块需要 zlib 库 cd /usr/local wget http://zlib.net/zlib-1.2.11.tar.gz tar -zxvf zlib-1.2.11.tar.gz cd zlib-1.2.11 ./config make && make install3、重写模块需要pcre库 cd /usr/loc…

计算机网络(二十六)-IP数据报分片

一.最大传输单元MTU 1.1 数据链路层数据帧可封装数据的上限。以太网的MTU是1500字节; 1.2 当数据报超过了MTU,则进行分片; 1.3 分片-IP数据报格式 标识:同一数据报的分片使用同一标识;标志:只有两位有意…

论文速递:智能作为信息处理系统

来源:混沌巡洋舰圣塔菲研究院4月就智能的本质(不管其是人类的,还是机器的)举行的研讨会,旨在通过跨学科的整合来促进人工智能的发展。研讨会期间,来自不同学科的大牛聚集在一起,讨论如何将智力分…

Nginx启动后无法访问页面

同个人网站 https://www.serendipper-x.cn/,欢迎访问 ! 【问题描述】 Nginx启动后浏览器输入IP地址无法访问页面 一、检查Nginx是否成功启动 ./sbin/nginx -t 二、检查80端口是否开放 三、打开防火墙80端口,重启防火墙 firewall-cmd -…

计算机网络(二十七)-IPv4

一.IP地址 1.1 分类的IP地址 IP地址::{<网络号>,<主机号>} 32位&#xff1a;前八位为网络号&#xff0c;后面的为主机号------>点分十进制表示 路由器也有多个IP地址&#xff1b; 中间的三个组成一个无编号网络(无名网)&#xff1b;整个网络具有6个逻辑上的…

北京“十四五”高精尖产业规划:到2025年集成电路产业实现营业收入3千亿元...

来源&#xff1a;北京物联网智能技术应用协会近日&#xff0c;《北京市“十四五”时期高精尖产业发展规划》&#xff08;以下简称《规划》&#xff09;印发。2020年&#xff0c;北京建设国内规模最大的12英寸集成电路生产线、8英寸集成电路国产装备应用示范线。国家级专精特新“…

FTP协议、电子邮件系统、Telnet远程控制

一、FTP协议 FTP定义 文件传输协议&#xff08;File Transfer Protocol&#xff09;用于因特网文件传输&#xff08;RFC 959&#xff09; FTP特性 使用客户端/服务器模式使用TCP提供可靠的传输FTP属于维护状态的协议FTP使用两条TCP连接完成数据传输 FTP的两条连接 数据连…

游戏的「隐藏身份」:AI与现实世界的「王牌训练师」

来源&#xff1a;雷锋网虚拟游戏对人工智能的物理性优势已经开始显现。「注&#xff1a;文章来自国际电信联盟&#xff08;ITU&#xff09;」当谈到新兴技术在改善世界各地人们生活的潜力时&#xff0c;你首先想到的可能不是电子游戏。然而&#xff0c;虚拟游戏可以在训练人工智…

Hadoop的组成

一、Hadoop 1.x 和 2.x 的区别 二、HDFS架构 1&#xff09;NameNode&#xff08;nn&#xff09;&#xff1a;存储文件的元数据&#xff0c;如文件名&#xff0c;文件目录结构&#xff0c;文件属性&#xff08;生成时间、副本数、文件权限&#xff09;&#xff0c;以及每个文件…