QT高级编程之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

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/TxyITxs/article/details/118558606

智能推荐

linux虚拟机安装过程中卡在mount: block device /dev/sr0 is write-protected, mounting read-only_vmware16 安装centos7 mount:/dev/sr0 is write-protect-程序员宅基地

文章浏览阅读1w次。安装linux虚拟机过程中卡在了mount: block device /dev/sr0 is write-protected, mounting read-only不继续执行;解决办法:在新建虚拟机的时候,选择稍后安装操作系统 安装完成后,再在编辑虚拟机设置中选择iso文件_vmware16 安装centos7 mount:/dev/sr0 is write-protected, mounting read-only

面试题:synchronized与Lock的区别_synchronized和lock锁的区别 面试-程序员宅基地

文章浏览阅读284次。面试题:synchronized与Lock的区别synchronized是关键字,而Lock是一个接口。synchronized会自动释放锁,而Lock必须手动释放锁。synchronized是不可中断的,Lock可以中断也可以不中断。通过Lock可以知道线程有没有拿到锁,而synchronized不能。synchronized能锁住方法和代码块,而Lock只能锁住代码块。Lock可以使用读锁提高多线程读效率。synchronized是非公平锁,ReentrantLock可以控制是否是公平锁_synchronized和lock锁的区别 面试

(超详细)python环境安装-程序员宅基地

文章浏览阅读5w次,点赞64次,收藏230次。面向于python学习路上的小白学习如何安装python环境_python环境安装

Java 诊断工具 Arthas 常见命令(超详细实战教程)-程序员宅基地

文章浏览阅读3.1k次。点击关注公众号,利用碎片时间学习基本概念云原生这么多微服务,当然需要一个诊断利器来排查问题。Arthas 是阿里开源的 Java 诊断工具,深受开发者喜爱。在线排查问题,无需重启;动态跟踪 Java 代码;实时监控 JVM 状态。Arthas 支持 JDK 6+,支持 Linux/Mac/Windows,采用命令行交互模式,同时提供丰富的 Tab 自动补全功能,进一步方便..._java -jar arthas-boot.jar

系统编程概念(文件系统mount等函数的使用)-程序员宅基地

文章浏览阅读152次。挂载文件系统#include<sys/mount.h>int mount(const char *source,const char *target,const char *fstype,unsigned long mountflags,const void *data)其中mountflags的值可为: MS_BIND 建立绑定挂载,会忽略fstype,..._ms_nodev

zkcli远程连接_如何启动hbase 自带了一个 zkcli?-程序员宅基地

文章浏览阅读176次。红颜莎娜常用到的HBase启动脚本有:1.$HBASE_HOME/bin/start-hbase.sh启动整个集群2.$HBASE_HOME/bin/stop-hbase.sh停止整个集群3.$HBASE_HOME/bin/hbase-daemons.sh启动或停止,所有的regionserver或zookeeper或backup-master4.$HBASE_HOME/bin/hbase-dae..._cli 链接 hbase

随便推点

teprunner测试平台10篇原创PDF教程发布-程序员宅基地

文章浏览阅读296次。001-pytest内核测试平台落地初体验本文介绍了我第一次做的测试平台的使用和原理,技术栈为Vue+Django+Django REST Framework+JWT+MySQL+pyte..._teprunner平台j介绍

王道之数据结构顺序表1.从顺序表中删除具有最小值的元素_王道从顺序表中删除具有最小值的元素(假设唯一)-程序员宅基地

文章浏览阅读3.7w次,点赞3次,收藏17次。题目要求:从顺序表中删除具有最小值的元素(假设唯一)并由函数返回被删除的元素的值。空出的位置由最后一个元素填补,若顺序表为空则显示错误信息并退出/*从顺序表中删除具有最小值的元素(假设唯一)并由函数返回被删除的元素的值。空出的位置由最后一个元素填补,若顺序表为空则显示错误信息并退出*/#include <iostream>#include <cstring>..._王道从顺序表中删除具有最小值的元素(假设唯一)

3.4 《数据库系统概论》之数据查询---SELECT(单表查询、连接查询、嵌套查询、集合查询、多表查询)_种单表查询、分组统计查询和连接查询、嵌套查询合和集 合查询-程序员宅基地

文章浏览阅读3w次,点赞206次,收藏369次。文章目录0.前言1.思维导图2.Student/SC/Course表数据及结构3.SELECT语句的一般格式4.单表查询(1)选择表中的若干列① 查询指定列② 查询全部列③ 查询经过计算的值❶ 算术表达式❷ 字符串常量及函数❸ 使用列别名改变查询结果的列标题(2)选择表中的若干元组(行)① 关键词DISTINCT去掉表中重复的行② 查询满足条件的元组(行)❶ 比较大小❷ 确定范围❸ 确定集合❹ 字..._种单表查询、分组统计查询和连接查询、嵌套查询合和集 合查询

ABAP创建修改物料主数据BAPI_MATERIAL_SAVEDATA报错计量单位******未定义 (请检查你的输入)_abap 物料修改bapi-程序员宅基地

文章浏览阅读445次,点赞13次,收藏8次。ABAP创建修改物料主数据BAPI_MATERIAL_SAVEDATA报错计量单位******未定义 (请检查你的输入)_abap 物料修改bapi

outlook2013升级_如何在Outlook 2013中创建和管理联系人-程序员宅基地

文章浏览阅读1.2k次。outlook2013升级Outlook isn’t much use if you don’t have contacts. Sure, you can enter email addresses as you go, but that’s time-consuming and error-prone. It’s better to have your contacts already in O..._outlook2013邮箱能使用本地通讯录地址

Pycharm下载与安装教程_pycharm 下载-程序员宅基地

文章浏览阅读5.6w次,点赞84次,收藏551次。PyCharm是一种Python IDE(Integrated Development Environment,集成开发环境)​ PyCharm拥有一般IDE具备的功能,比如, 调试、语法高亮、项目管理、代码跳转、智能提示、自动完成、单元测试、版本控制_pycharm 下载

推荐文章

热门文章

相关标签