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;要么补充…

CAP 理论 —— 最通俗的解释

原文链接&#xff1a;https://blog.csdn.net/lihao21/article/details/81051631 CAP 理论是分布式系统的一个基础理论&#xff0c;它描述了任何一个分布式系统最多只能满足以下三个特性中的两个&#xff1a; 一致性&#xff08;Consistency&#xff09;可用性&#xff08;Avail…

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

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

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…

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

来源&#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------帧…

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…