Qt

Qt开发图形界面软件,可以跨win、linux、mac平台、移动端,使用c++开发

Qt采用所见即所得的UI设计(UI设计和代码是联动的),GUI界面编辑信号和槽,由开发环境自动生成c++代码,来实现快速的图形界面开发。

入门教程,挺棒的,http://www.qter.org/portal.php?mod=view&aid=26

版    本:Qt4-Qt5.8

本机环境:Windows 7 + Qt 5.7.1(QtCreator 4.2.1)

构建(编译工具)环境:MSVC 2013 64bits

下载

https://download.qt.io/official_releases/qt/

说明:msvc2015, msvc2013, mingw是不同的编译器版本(不同的构建工具)

Qt Creator即为Qt官方集成开发环境,(Qt Creator 4.2.1 Community);

Qt提供的几个工具软件——Assistant是Qt助手,它已经集成到了QtCreator中,就是帮助模式;Designer是Qt设计师,它也集成到了QtCreator中,就是设计模式; Linguist是Qt语言家,用来对软件进行国际化翻译;Qt 5.8 for Desktop可以用来进行命令行操作,比如使用命令行来编译程序等

Get started

界面熟悉

QtCreator主界面分为了6个模式:欢迎模式、编辑模式、设计模式、Debug调试模式、项目模式和帮助模式,分别由左侧的6个图标进行切换

开发大致是从第一个模式走到第4-5个模式

快捷键

Ctrl+N快捷键 新建项目

ctrl+1-6 切换模式

ctrl+r 运行项目

ctrl+鼠标滚轮 放大缩小代码编辑器中的代码字号

设计模式上方的图标,或者按下F4,便进入了信号和槽编辑模式

Process

1 创建项目。

2 简单使用。UI设计,简单码农,信号和槽

3 编译生成、发布。

创建项目

Ctrl+N,Qt Widgets Application,注意名称和路径上都不要有中文

Desktop构建套件,用来编译桌面版程序的。构建套件即build tools,涉及一些编译工具,编译的过程:预编译、汇编、连接。

Desktop Qt 5.8.0MinGW 32bit可以看出,现在使用的是5.8.0版本的Qt库和32位的MinGW编译器编译的桌面版程序。

基类可选的有QMainWindow、QWidget和QDialog

默认勾选了创建界面,这样可以使用设计器来设计主界面

简单使用

进入编辑界面,建立相应的窗口类,会得到头文件,源文件(用来类外定义、重载成员函数),ui文件。ui文件是对应窗口类的ui,双击进入设计模式。

为区分机器自动生成和人工编写的代码,有颜色标示:

红色 未保存的修改代码

绿色 已保存后的修改部分

编译生成

同VS一样,编译时默认是debug版本,所以在左侧按钮调整debug or release。

在文件系统中可以找到相应版本的目录,发布exe,还需要dll依赖。

D:\Program\qtdown\5.7\msvc2013_64\bin

release版本跟debug版本的所需的DLL后缀,带D后缀的是debug所需dll。

Exe+dll,打包即可发布。

Qt API阅读

类分成了多个板块

QDialog

Qt Widgets>QDialog

int QDialog::exec()

application modal、window modal

Qt(1)的更多相关文章

  1. QT内省机制、自定义Model、数据库

    本文将介绍自定义Model过程中数据库数据源的获取方法,我使用过以下三种方式获取数据库数据源: 创建 存储对应数据库所有字段的 结构体,将结构体置于容器中返回,然后根据索引值(QModelIndex) ...

  2. Ubuntu 下安装QT

    Ubuntu 下安装QT 本文使用的环境 QT Library: qt-everywhere-opensource-src-4.7.4.tar.gz QT Creator: qt-creator-li ...

  3. Qt安装配置

    Qt Creator: 下载: Qt 5.5.1 for Windows 32-bit(MinGW 4.9.2, 1.0 GB):http://download.qt.io/official_rele ...

  4. Qt信号与槽自动关联机制

    参考链接1:http://blog.csdn.net/skyhawk452/article/details/6121407 参考链接2:http://blog.csdn.net/memory_exce ...

  5. 保持Qt GUI响应的几种方法

    最开始使用Qt时就遇到过QT Gui失去响应的问题,我是用多线程的方式解决的,然而通常来说,多线程是会降低程序的运行速度. 之后,在使用QSqlQuery::execBatch()函数时,Qt Gui ...

  6. Qt 中使用Singleton模式需小心

    在qt中,使用Singleton模式时一定要小心.因为Singleton模式中使用的是静态对象,静态对象是直到程序结束才被释放的,然而,一旦把该静态对象纳入了Qt的父子对象体系,就会导致不明确的行为. ...

  7. Qt——组件位置随窗口变化

    当我们用Qt Designer设计界面时,有时会面临这样一个问题:需要在窗口指定位置放置组件,并且当窗口位置大小改变时,该组件相对其父对象的位置是不变的,如下面两幅图所示 ,首先看上面这幅图,注意bu ...

  8. (转) Qt 出现“undefined reference to `vtable for”原因总结

    由于Qt本身实现的机制所限,我们在使用Qt制作某些软件程序的时候,会遇到各种各样这样那样的问题,而且很多是很难,或者根本找不到原因的,即使解决了问题,如果有人问你为什么,你只能回答--不知道. 今天我 ...

  9. qt中ui的 使用介绍

    1.什么是ui?ui通常是用Qt 设计师设计出来的界面文件的后缀.通常情况下ui是一个指向这个界面类的指针.ui-> 一般就是用来访问这个界面类里面的控件.例如你的ui文件里有一个叫okButt ...

  10. Qt 开启鼠标跟踪,自动激活mouseMoveEvent的问题

    最近在Qt上实现一个功能,鼠标在图片上移动,触发mouseMoveEvent事件,进而生成一个小的半透明窗口,放大显示以鼠标为中心的一个区域的图像并随鼠标移动.但是,必须鼠标摁下,才触发mouseMo ...

随机推荐

  1. 使用正则表达式验证IP地址

    实现效果: 知识运用: 实现代码: public bool validate(string str_IP) { string regex = @"(25[0-5]|2[0-4]\d|[0-1 ...

  2. 2018.8.18 servlet使用的会话跟踪除session外还有哪些方式

    解释HTTP HTTP是一种无连接的协议,如果一个客户端只是单纯地请求一个文件(HTML或GIF),服务器端可以响应给客户端,并不需要知道一连串的请求是否来自于相同的客户端,而且也不需要担心客户端是否 ...

  3. 2018.7.26 进程和线程的区别 &&你对 Java平台的理解

    进程和线程的区别 1.定义 进程:具有一定独立功能的程序关于某个数据集合上的一次运行活动,进程是系统进行资源分配和调度的一个独立单位. 线程:进程的一个实体,是CPU调度和分派的基本单位,它是比进程更 ...

  4. (jdbc和cmd)sqlite数据迁入mysql(导入导出)

    从sqlite进行导出数据 进行cmd命令 第一步:sqlite3->.open [文件路径](打开连接)->.tables(这个是查看表是否有没有)->.cd [切换的盘符](这里 ...

  5. print_Matrix(Python实现)

    num = int(input("Please input a number:")) #矩阵最外层的值 n = num*2 Matrix = [([0] * n)for i in ...

  6. 微信小程序开发:禁止输入表情的控制,验证方法,光标控制

    <input class="weui-input" name="receiptMan" maxlength="10" bindinpu ...

  7. ios xmppFramework框架的导入步骤和介绍

    一个将要开发xmpp的项目,建议在项目刚创建就导入框架,这样可以避免一些自己操作失误造成不必要的损失. xmpp中最常用的框架就是 xmppFrameWork 第一种方法直接拖 1> 拖入文件夹 ...

  8. 谈谈两种标准库类型---string和vector

    两种最重要的标准库---string和vector string和vector是两种最重要的标准库类型,string表示可变长的字符序列,vector存放的是某种给定类型对象的可变长序列. 一.标准库 ...

  9. 1816: [Cqoi2010]扑克牌

    Time Limit: 10 Sec  Memory Limit: 64 MBSubmit: 2737  Solved: 1082[Submit][Status][Discuss] Descripti ...

  10. org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'transactionManager' defined in class path resource [spring/applicationContext-service.xml]: Cannot resolve refer

    <!-- aop --> <aop:config> <aop:pointcut expression="execution(* com.zsn.Service. ...