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. 【转】在程序中设置android:gravity 和 android:layout_Gravity属性

    在进行UI布局的时候,可能经常会用到 android:gravity  和 android:layout_Gravity 这两个属性. 关于这两个属性的区别,网上已经有很多人进行了说明,这边再简单说一 ...

  2. python 3+djanjo 2.0.7简单学习(二)--创建数据库和模型

    我们紧接上次,这里将建立数据库,创建第一个模型提示:这里我们不需要去一直启动,django会在我们ctrl+s的时候自动刷新并启动服务,很方便吧  1.数据库配置 现在,打开 vote_mysite/ ...

  3. 2018.7.9 Android—显式Intent和隐式Intent的区别

    1:都是用来在一个activity中启动另外一个activity 2:显示Intent直接指明要启动activity的定义,即activity.class:隐式intent通过在androidmani ...

  4. (python)剑指Offer:数组中重复的数字

    问题描述 在长度为n的数组中,所有的元素都是0到n-1的范围内. 数组中的某些数字是重复的,但不知道有几个重复的数字,也不知道重复了几次,请找出任意重复的数字. 例如,输入长度为7的数组{2,3,1, ...

  5. 关于新项目上传远程库报错 non-fast-forward

    已有项目上传远程库会报错 non-fast-forward 首先使用命令行 git pull origin master --allow-unrelated-histories 之所以使用这个命令,是 ...

  6. C++ 编写的解码器小程序 map

    c++ prime 5 ex11_4 代码如下 // ex11_4_word_transform.cpp : 定义控制台应用程序的入口点. // #include "stdafx.h&quo ...

  7. Java分享笔记:Map集合(接口)的基本方法程序演示

    package pack02; import java.util.*; public class MapDemo { public static void main(String[] args) { ...

  8. Anaconda下安装 TensorFlow 和 keras 以及连接pycharm

    首先在官网下载Anaconda https://www.anaconda.com/download/ 安装时注意 勾选第一个,增加环境变量 安装好后再windows界面打开Anaconda Promp ...

  9. java 基础面试

    1. &和&&的区别 答: &是位运算符,表示按位与运算,&&是逻辑运算符,表示逻辑与(and) 2.int 和 Integer 有什么区别 答: Ja ...

  10. 云计算之KVM虚拟化实战

    1 基础环境规划 1.1 主机环境规划 系统版本 主机名 IP地址 内存 磁盘 CentOS6.9 kvm-node1 10.0.0.200 2G 20G CentOS6.9 kvm-node2 10 ...