对于日常见到的应用程序而言,许多都是基于主窗口的,主窗口中包含了菜单栏.工具栏.状态栏和中心区域等.这一章会详细介绍主窗口的每一个部分,还会涉及资源管理.富文本处理.拖放操作和文档打印等相关内容.重点是讲解知识点,而相关的综合应用实例放到了<Qt及Qt Quick开发实战精解>一书中. Qt中提供了以QMainWindow类为核心的主窗口框架,包含了众多相关的类,它们的继承关系如下图所示,本章会讲解到图中每一个类的基本应用. 一.主窗口框架 主窗口为建立应用程序用户界面提供了一个框架,Qt提供…
一.编写 Hello World Gui程序 Hello World程序就是让应用程序显示"Hello World"字符串.这是最简单的应用,但却包含了一个应用程序的基本要素,所以一般使用它来演示程序的创建过程.本节要讲的就是在Qt Creator中创建一个图形用户界面的项目,来生成一个可以显示"Hello World"字符串的程序. 1.1 新建 Qt Gui 应用 (1)运行 QtCreator,打开"文件一新建文件或项目"菜单项(也可以直接…
Qt Creator 是一个跨平台的.完整的 Qt 集成开发环境,其中包括了高级C++代码编辑器.项目和生成管理工具.集成的上下文相关的帮助系统.图形化调试器.代码管理和浏览工具等.这一章先对 Qt Creator 的下载安装和界面环境进行简单介绍,然后打开并运行一个 Qt 示例程序来让读者了解 Qt Creator 的基本使用方法,其中会重点介绍帮助模式的使用.Qt Creator 其他功能可以参考 Qter 开源社区书籍页面相应的网络教程. 一.Qt Creator 的下载与安装 这里的主要…
一.国际化 国际化的英文表述为Internationalization,通常简写为I18N(首尾字母加中间的字符数),一个应用程序的国际化就是使该应用程序可以让其他国家的用户使用的过程. Qt支持现在使用的大多数语言,特别是: 所有东亚语言(汉语.日语和朝鲜语): 所有西方语言(使用拉丁字母): 阿拉伯语: 西里尔语言(俄语和乌克兰语等): 希腊语: 希伯来语: 泰语和老挝语: 所有在Unicode5. 1中不需要特殊处理的脚本. 在Qt中,所有的输入部件和文本绘制方式对Qt所支持的所有语言都提…
一个完善的应用程序不仅应该有实用的功能,还要有一个漂亮的外观,这样才能使应用程序更加友好,更加吸引用户.作为一个跨平台的UI开发框架,Qt提供了强大而灵活的界面外观设计机制.这一章将学习在Qt中设计应用程序外观的相关知识,会对Qt风格QStyle和调色板QPalette进行简单介绍,以及介绍不规则窗体和透明窗体的实现方法. 一.Qt风格 Qt中的各种风格是一组继承自QStyle的类.QStyle类是一个抽象基类,封装了 一个GUI的外观,Qt的内建(built-in)部件使用它来执行几乎所有的绘…
从这一章开始正式接触Qt的窗口部件.在第2章曾看到 Qt Creator 提供的默认基类只有 QMainWindow.QWidget 和 QDialog 这3种.QMainWindow 是带有菜单栏和工具栏的主窗口类,QDialog 是各种对话框的基类,而它们全部继承自 QWidget.不仅如此,其实所有的窗口部件都继承自 QWidget,如下图所示.这一章会讲解 QWidge.QDialog 和其他一些常用部件类, 而 QMainWindow 将在第5章讲解. 一.基础窗口部件 QWidget…
第3章讲述了一些窗口部件,当时往界面上拖放部件时都是随意放置的,这对于学习部件的使用没有太大的影响,但是,对于一个完善的软件,布局管理却是必不可少的. 无论是想要界面中部件有一个很整齐的排列,还是想要界面能适应窗口的大小变化,都 要进行布局管理.Qt中主要提供了 QLayout 类及其子类来作为布局管理器,它们可以实现常用的布局管理功能,QLayout及其子类的关系如下图所示. 一.布局管理系统 Qt的布局管理系统提供了简单而强大的机制来自动排列一个窗口中的部件,确保它们有效地使用空间.Qt包含…
Qt官方信息 Qt官网:http://qt.digia.com/ Qt开源官网:http://qt-project.org/ Qt最新版本下载:http://qt-project.org/downloads Qt所有版本下载:ftp://ftp.qt-project.org/qt/source/ Qt Creator所有版本下载:ftp://ftp.qt-project.org/qtcreator/ 一.Qt与Qt Creator简介 Qt是一个跨平台应用程序和 UI 开发框架.使用 Qt 您只…
一 Qt简介 Qt 是一个跨平台的C++应用程序框架,支持Windows.Linux.Mac OS X.Android.iOS.Windows Phone.嵌入式系统等.也就是说,Qt 可以同时支持桌面应用程序开发.嵌入式开发和移动开发,覆盖了现有的所有主流平台.你只需要编写一次代码,发布到不同平台前重新编译即可. Qt 不仅仅是一个GUI库,它除了可以创建漂亮的界面,还有很多其他组件,例如,你不再需要研究STL,不再需要C++的<string>头文件,不再需要去找解析XML.连接数据库.So…
一 窗口部件 基础窗口部件QWidget类是所有用户界面对象的基类,窗口和控件都是直接或间接继承自 QWidget,下面我们来看一个很简单的例子: 窗口部件(Widget)简称部件,是QT中建立界面的主要元素,QT中把没有嵌入到其他部件部件成为窗口,一般的窗口都有边框,标题栏,窗口是指程序的整体界面,可以包含标题栏.菜单栏.工具栏.关闭按钮.最小化按钮.最大化按钮等:控件是指按钮.复选框.文本框.表格.进度条等这些组成程序的基本元素.一个程序可以有多个窗口,一个窗口也可以有多个控件.(但其实控件…
ui中的类,这样使用无法通过调试: Ui::Dialog ui(&w); w.show(); 而需要改成: Ui::Dialog ui; ui.setupUi(&w); w.show(); Dialog包含ui类为私有成员,在Dialog的构造函数中添加了一些操作,在main函数使用下面的代码,调试时构造函数中的操作并没有执行,难道还需要一些启动命令?? Dialog ui(&w); w.show(); 使用at()比[]下标要快,因为它不会引起深拷贝. QT的字符串格式化输出:…
一   信号和槽 GUI 程序除了要绘制控件,还要响应系统和用户事件,例如重绘.绘制完成.点击鼠标.敲击键盘等.当事件发生时,UI 会产生相应的变化,让用户直观地看到. 大部分编程(例如Win SDK.Web前端)中使用回调函数来响应事件,而 Qt 却独创了信号和槽机制.所谓回调函数,就是程序员提前定义一个函数,当事件发生时就调用该函数. 信号和槽是Qt的核心,它让两个互不相干的对象连接起来,当一个对象的状态改变时,可以通知另一个对象. 我们先通过例子来演示一下信号和槽: 具体的代码: #inc…
Qt-4.6动画Animation快速入门三字决 Qt-4.6新增了Animation Framework(动画框架),让我们能够方便的写一些生动的程序.不必像以前的版本一样,所有的控件都枯燥的呆在伟大光荣的QLayout里,也许它们可以唱个歌,跳个舞.    所谓动画就是在一个时间段内的不同时间点有不同的状态,只要定义好这样状态,实现动画就是水到渠成的事情.当然做这件事情,最好用的就是状态机,没错Qt-4.6.0提供了QStateMachine类,不过今天我要讲的三字决要简单一些. 第一决:Q…
第一章 初识程序 导读:计算机程序无时不刻的影响着人类的生活,现代社会已经离不开程序,程序的作用如此巨大,那么程序到底是什么呢?本章主要讨论程序的概念,唤起读者对程序的兴趣,同时对C语言程序与其它语言程序进行比较,说明作为一个C语言程序员需要具备的基本理论知识,本章末端简单的描述windows中一个计算器程序是如何工作的. 1.1 什么是计算机程序 从字面上理解,程序就是完成一件事所需要进行的步骤,举个生活的例子,买酱油!需要哪些步骤: 第一种做法:首先要准备好100块钱,然后出门要穿好衣服鞋袜…
一.拖放操作 对于一个实用的应用程序,不仅希望能从文件菜单中打开一个文件,更希望可以通过拖动直接将桌面上的文件拖入程序界面上来打开,就像可以将.pro文件拖入Creator中来打开整个项目一样.Qt中提供了强大的拖放机制,可以在帮助中查看 Drag and Drop 关键字来了解.拖放操作分为拖动(Drag)和放下(Drop)两种操作. 数据拖动时会被存储为 MIME(Multipurpose Internet Mail Extensions) 类型,在 Qt 使用QMimeData类来表示MI…
首先必须明确的是,Qt中的线程使用是相对复杂的,并不像C#中那么随意,特别是结合串口.网络编程等,使用时稍有不慎就会出问题,然后Qt里面经常出了问题就直接崩溃(这个真是谁用谁知道),所以如果在功能上用异步方式能做到其实就没必要自己去开线程,当然如果自己写的函数比较耗时(比如不断地循环做操作之类的)就无法避免使用线程了. Qt中一般将耗时操作单独放在一个类中实现,在主线程中创建类对象,然后将这个对象移到子线程中,主线程与子线程间的通信主要通过信号和槽实现.另外对象是在主线程中创建的,对象中的成员都…
信号和槽主要用于组件之间的通信,类似于.net和java中的委托. 使用QObject::connect方法将信号与槽关联起来,然后信号的发起者发出信号,接受者中的槽函数就会执行. 比如connect(this,SIGNAL(start()),worker,SLOT(Start())),将当前类中start信号关联到worker对象的Start函数,当我们调用emit this->start()时就发出信号,槽函数就会收到这个信号. connect函数还有第五个参数,这个参数决定信号何时传给槽,…
C++中使用qml对象,直接使用findChild获取qml对象,然后调用setProperty方法设置属性,当然必须在加载qml之后才能使用,不然findChild找不到对象,用法如下. engine.load(QUrl(QStringLiteral("qrc:/main.qml"))); QObject * text_Msg = engine.rootObjects()[]->findChild<QObject*>("text_Msg"); t…
Qml里面布局主要有两种,锚点布局.Grid布局. 锚点布局使用anchors附件属性将一个元素的边定位到另一个元素的边,从而确定元素的位置和大小.下面是示例 import QtQuick 2.3 import QtQuick.Window 2.0 Window { id:anchorLayoutWindow; ; ; title: "AnchorLayout"; Rectangle{ id:rect1; width: parent.width; ; color:"blue&…
Servlet是整个JavaWeb开发的核心,同时也是一套规范,即公共接口.用于处理客户端发来的请求并作出响应.通常情况下我们会发送不同的请求并交由不同的处理程序来处理,例如处理用户信息和处理订单信息的程序是不同的.而这些处理程序则必须实现这套规范才能接收请求并作出响应.这套规范本身并不由Java提供,需要引入额外的Jar包,这些包存在于Tomcat中,编写的Servlet程序也需要承载在Tomcat上才可以运行. 一个Servlet程序 通过IDEA创建一个Web Application 填写…
这里使用的 4.8.5 QTE 环境,之前尝试过远程使用 GDB 来调试板子上的 QT 程序,但是没成功.没有调试手段比较痛苦,今天又花了点时间,居然搞定了.粗做记录. 工具版本: 1. QtCreator: 2.4.1 based on Qt4.8.0, 32bit 2. arm-linux-gcc: 4.5.1, 从友善之臂的开发光盘上拿来的 3. GDB: gdb-7.6 4. QTE 4.8.5-32bit: 从友善之臂的光盘上抠来的 5. mint13 (操作可参考 ubuntu12.…
一.环境配置 Java环境:1.8版本 开发工具:IntelliJ IDEA 二.简单应用 1.创建项目 选择创建的项目类型为Spring Initializr,Project SDK选择1.8版本的java: 选择java版本为8,作为一个入门的简单应用,暂时无需配置其他的项,直接Next即可: 勾选Web中的Spring Web选项,点击Next: 填写项目名称和项目存放路径,点击Finish: 进入项目界面如下: 2.熟悉的HelloWorld: 先在com.example.demo下新建…
提示:本系列文章适合对Go有持续冲动的读者 阅前须知:在程序结构这章,更多会关注golang中特有结构,与其他语言如C.python中相似结构(命名.声明.赋值.作用域等)不再赘述. 一.golang类型别名 在go1.9中引入类型别名的特性,其中两个内置类型byte. rune是uint8和int32的别名.类型别名即字面意思换个名字,两者是相同类型. 类型声明语句一般出现在包一级,因此如果新创建的类型名字的首字符大写,则在包外部也可以使用. 解决问题:大规模重构期间启用渐进式代码修复,特别是…
1.空白WPF项目的创建: 1)新建项目:在VS2010中,文件-新建-项目-visual c#-windows-空项目: 2)添加引用:PresentationFramework,PresentationCore,WindowsBase,System,System.Xaml,共5个.书中是4个,这是因为早期WindowsBase中的一些类后来放到了System.Xaml里. 3)添加文件:在项目中添加“新建项”,选择“代码文件". 2.SayHello程序 using System; usin…
本文基于Qter开源社区论坛版主yafeilinux编写的<Qt快速入门系列教程目录>,网址:http://bbs.qter.org/forum.php?mod=viewthread&tid=193.参考书为基于该系列教程<Qt Creator快速入门>和<Qt及Qt Quick开发实战精解> 1.关联Qt库.如果是分别安装的Qt Creator和Qt库,而不是安装集成Qt Creator和Qt库的SDK,则需要手动关联Qt库.打开工具→选项菜单,然后选择“构建…
Qt Creator快速入门(第3版) [霍亚飞著] 完整pdf扫描版[92MB] 附随书源码,资源收集于网络,供参考 https://pan.baidu.com/s/1pLQdIUR kjaf http://www.jisoupan.com/share/2040847.html QT初级到高级编程视频教程--丁林松.rarhttp://www.jisoupan.com/share/2040847.html https://pan.baidu.com/s/1pKwnk3D————————————…
小北师兄作品 首发于微信公众号 小北师兄 微信 ID: ncuneupa 由于排版原因,文章可能读起来不太清晰,如果想看更好的排版,可以来我的公众号:小北师兄 大家好,我是你们的小北师兄,由于工作原因,最近师兄在自学 Qt 相关知识,说起来师兄在校期间是研究算法的,一般都是纯 C++ 来实现 当时电脑环境以 Linux 发行版 Ubuntu 为主,到了工作中就转向了 Windows,刚开始确实有一些不太习惯,在 Windows 上配置环境一般比较繁琐,而且有些问题网上还不容易找到 下面进入正题,…
ROS开发环境之Qt Creator(http://my.phirobot.com/blog/2013-12-ros_ide_qtcreator.html) Created at: 2013-12-29T00:00:00 Yuanbo She ROS turtlebot, ros, qt, 可以用于ROS开发的IDE很多(可以参考 http://wiki.ros.org/IDEs ),ROS的调试依赖环境变量,与外部程序有通讯,因此要求启动IDE的时候加载ROS环境参数,其他方面并无太多限制.最…
目录 Creating Plugins Creating Plugins Qt Creator的核心是一个插件加载程序,加载并运行一组插件,实际上是这些插件提供了您从Qt Creator IDE中了解的功能.甚至应用程序主窗口和菜单都由插件提供的.插件使用不同的方式,供其他插件访问本插件的功能,并允许它们扩展应用程序的某些方面. 例如,Core插件是Qt Creator完全运行所必须具备的非常基本的插件,它提供了主窗口,以及相关API,用于添加菜单项,模式,编辑器类型,导航面板和许多其他内容.…
1.Qt中的主窗口 主窗口为建立应用程序用户界面提供了一个框架 Qt开发平台中直接支持主窗口的概念 QMainWindow是Qt中主窗口的基类 QMainWindow继承于QWidget是一种容器类型的组件 QMainWindow只能作为顶层组件 2.QMainWindow的优势--QMainWindow类拥有自己的布局 3. 主窗口中的菜单 (1)Qt提供与菜单相关的类组件 (2)QMenuBar类.QMenu类和QAction类 ①QMenuBar:QMenuBar类提供了一个水平的菜单栏,…