QT高级编程之QT基本概览

QT高级编程

主要从以下几个方面来介绍QT高级编程,并介绍QT相关的概念。

1、 QT部件Widget;
2、 QT信号与槽机制;
3、 对象树关系;
4、 布局管理;
5、标准对话框以及自定义对话框;
6、文件与目录;
7、数据库编程;
8、级联样式表;
9、事件与绘画;
10、二维图形;
11、网络;
12、Webkit Web 开发;
13、进程与线程;
14、跨平台;
15、模型与视图;
16、音频与多媒体;
17、其他


一.介绍

  1. Qt是一个跨平台的C++图形用户界面应用程序开发框架。
  2. Qt类结构框架图,掌握主要的类的使用,QTabWidget、QLabel、QTextEdit(多行)、QLineEdit、QBushiButton、QGroupBox、QTableWidget(表格)、QCheckBox(复选框)、QRadioButton(单选按钮)。QHBoxLayout(水平布局),QVBoxLayout(垂直布局);
  3. 通过Qt Creator中的帮助可以查看开发文档,通过设置索引、目录等可以搜索查看相关类的使用。
  4. 在通过Qt Creator创建工程时,注意工程路径为全英文路径,避免中文路径。

二、案例
1.通过Qt编程实现如下窗口。
在这里插入图片描述
2.源代码及其编译运行

#include <QApplication>
#include<QLineEdit>
#include<QPushButton>
#include<QLabel>
#include<QWidget>
#include<QHBoxLayout>
#include<QVBoxLayout>
int main(int argc,char**argv)
{QApplication app(argc,argv);//创建组件QLabel *value = new QLabel;value->setText("Window will open the corresponding program, folder, document or\n""Internet resource for you according to the name you entered.");QLabel *cmd = new QLabel;cmd->setText("Open(O):");QLineEdit *lineEdit = new QLineEdit;lineEdit->clear();QPushButton *submit = new QPushButton;submit->setText("Ok");QPushButton *cancel = new QPushButton;cancel->setText("Cancel");QPushButton *browser = new QPushButton;browser->setText("Browser");QHBoxLayout *cmdLayout = new QHBoxLayout;cmdLayout->addWidget(cmd);cmdLayout->addWidget(lineEdit);//创建布局,添加组件QHBoxLayout *buttonLayout = new QHBoxLayout;buttonLayout->addWidget(submit);buttonLayout->addWidget(cancel);buttonLayout->addWidget(browser);QVBoxLayout *mainLayout = new QVBoxLayout;mainLayout->addWidget(value);mainLayout->addLayout(cmdLayout);mainLayout->addLayout(buttonLayout);//创建主窗口并添加布局QWidget *window = new QWidget;window->setLayout(mainLayout);window->setWindowTitle("Run");window->show();return app.exec();
}

打开Qt Creator中的MinGW命令窗口,并进入到源码所在目录,通过如下命令生成.pro文件。

qmake -projec

执行qmake生成makefile文件。

qmake

通过如下命令编译连接生成可执行文件。

mingw32-make

3.可能遇到的问题:
QApplication: No such file or directory:由于Qt5将大部分桌面部件移到了Qt Widgets模块中,即QApplication已经从原来的<QtGui/QApplication>移动到<QtWidgets/QApplication>;

//解决办法:在.pro文件中添加如下语句
greaterThan(QT_MAJOR_VERSION, 4): QT += widgets

问题解决:https://blog.csdn.net/friendbkf/article/details/45440175

4.运行结果:如下是通过Qt Creator打开.pro工程,执行的结果。
在这里插入图片描述
5.qmake使用
https://www.cnblogs.com/xiangtingshen/p/12095924.html

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

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

相关文章

计算机视觉中的自注意力

来源&#xff1a;机器学习研究组订阅自从引入网络以来&#xff0c;深度学习中的注意力机制在机器翻译和 社区中广受欢迎。然而&#xff0c;在计算机视觉中&#xff0c;卷积神经网络 (CNN) 仍然是常态&#xff0c;自注意力才刚刚开始慢慢渗透到研究的主体中&#xff0c;要么补充…

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

1.1 创建一个继承至QWidget的项目。 1.2 设计界面,分析界面采用的布局方式。 首先&#xff0c;每行控件采用水平布局方式&#xff0c;第三行为了使控件靠右&#xff0c;前面添加一个占位控件。三行采用垂直平局&#xff1b;选中控件&#xff0c;通过右键可以控件的布局方式&a…

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

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

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

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

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

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

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

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

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

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

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

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

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;由于世…

计算机网络(二十五)-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 -…

计算机网络(二十七)-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的两条连接 数据连…