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,一经查实,立即删除!

相关文章

LeetCode 566 Reshape the Matrix 解题报告

题目要求 In MATLAB, there is a very useful function called reshape, which can reshape a matrix into a new one with different size but keep its original data. Youre given a matrix represented by a two-dimensional array, and two positive integers r and crepr…

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

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

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

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

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

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

CF1129D Isolation(分块+DP)

一个很显然的DP方程式&#xff1a;f[i]Σf[j]&#xff0c;其中j<i且在[j1,i]中出现1次的数不超过k个 乍一看挺神仙的&#xff0c;只会O(n^2)&#xff0c;就是对于每个位置从后向前扫一遍&#xff0c;边扫边统计出现1次的数的个数。不难发现&#xff0c;同一个数第一次出现时…

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

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

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

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

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

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

SpringBoot集成MyBatis的分页插件PageHelper

【写在前面】 项目的后台管理系统需要展示所有资源信息&#xff0c;select * 虽然方便但数据量过于庞大会严重降低查找效率&#xff0c;页面加载慢&#xff0c;用户体验差。分页自然是必要选择&#xff0c;但原生的方法过于繁杂。MyBatis的分页插件PageHelper和SpringBoot的集…

Java 注解:@PostConstruct和@PreConstruct

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

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

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

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

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

mysql 字段唯一性问题

ALTER TABLE tb ADD unique (name); 转载于:https://www.cnblogs.com/mlh1421/p/10478527.html

Java 的发展(历史)轨迹和历史变迁

Java的标准划分 Java 的版本演进到Java 2&#xff0c;根据不同层面的应用进行了细化&#xff0c;Java 2平台被分为三种版本&#xff0c;版本及其说明见 版本描述其它J2EE—企业版&#xff0c;适用于服务器&#xff0c;目前已成为企业运算、电子商务等领域的热门技术Enterprise…

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

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

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

来源&#xff1a;图灵人工智能 编译&#xff1a;吴彤校对&#xff1a;暮编辑&#xff1a;琰琰长期以来&#xff0c;我们一直在与机器沟通&#xff1a;编写代码--创建程序--执行任务。然而&#xff0c;这些程序并非是用人类“自然语言“编写的&#xff0c;像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字节&#xff1b; 1.2 当数据报超过了MTU&#xff0c;则进行分片&#xff1b; 1.3 分片-IP数据报格式 标识&#xff1a;同一数据报的分片使用同一标识&#xff1b;标志&#xff1a;只有两位有意…

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

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

Nginx启动后无法访问页面

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