自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(40)
  • 收藏
  • 关注

原创 (三十八)通用模型与QVariant

QStandardItemModelQt中通用的模型类QStandardItemModel1、  QStandardItemModel继承自QAbstractItemModel2、  以数据项QStandardItem为基本单位来组织数据3、  QStandardItemModel能够以任意的方式组织数据(线性、非线性)4、  每一个数据项能够存储多个具体数据(通过附加数据角色

2017-02-28 08:59:27 1595

原创 (三十七)模型视图设计模型

模型视图设计模式模型视图设计模式的核心思想1、模型(数据)与视图(显示)相分离2、模型对外提供标准接口存取数据(不关心数据如何显示)3、视图自定义数据的显示方式(不关系数据如何组织、存储) 注:模型里面并不真正存储数据(数据少的话也可以直接存储在模型里),模型只是负责从诸如磁盘文件、数据库、网络通讯等获得源数据,并提供给视图,视图对数据进行修改,然后再通过模型更新源数据。

2017-02-28 00:01:58 881

翻译 (三十六)Model/View Programming (二)

四、Delegate类1、Delegate类简介    不同于MVC模式,模型/视图设计并不包含用于处理与用户交互的完全独立的组件。 通常,视图负责把模型数据显示给用户,以及处理用户的输入。为了让这种输入有灵活性,这种交互由Delegates来完成。这些组件在视图中提供输入功能,同时负责传递视图中的单个项。控制Delegates的标准接口在 QAbstractItemDelegate类中定

2017-02-25 23:58:32 1155

翻译 (三十五)Model/View Programming

Qt官方文档Model/View Programming一、Model/View架构简介    Qt4推出了一套新的项视图类,它使用Model/View架构来管理数据与表示层的关系。Model/View架构带来的功能上的分离给了开发人员更大的弹性来定制数据项的表示,并且他还提供一个标准的model接口,使得更多的数据源可以被项视图类使用。本文简要介绍了Model/View架构,对涉及的概念

2017-02-25 08:45:33 1482 2

原创 (三十四)自定义菜单

QWidget查帮助文档可知,QWidget类存在一个名叫contextMenuPolicy的成员,这是跟右键菜单有关的成员。由于继承,QWidget及其子类都能拥有右键菜单。contextMenuPolicy的可取值如下,这些值定义了组件何时显示右键菜单:Qt::NoContextMenu没有右键菜单,右键事件被组件的父组件处理Qt::

2017-02-24 00:14:33 302

原创 (三十三)容器组件

容器组件(Containers Widgets)Qt中有9种容器组件:QGroupBox组合框、QFrame框架、QScrollArea滚动区、QToolBar工具箱、QTabWidget切换卡、QStackedWidget栈式组件、QWidget、QMdiArea MDI窗口显示组件、QDockWidget停靠窗体 QGroupBox简介1、QGroupBox为构建分组框提供

2017-02-23 00:50:15 841

转载 (三十三)QToolButton

作者:前行中的小猪!地址:http://blog.csdn.net/goforwardtostep/article/details/52127507QtDesigner中Qt助手中以上是QToolButton主要的四个属性,下面分别简述这四个属性的作用。一、arrowType属性在Qt助手中可以看到arrowType属性有5个值,下面

2017-02-21 08:41:48 642

原创 (三十二)多页面切换组件

Qt中多页面切换组件QTabWdgetQTabWdget:1、  能够在同一窗口中自由切换不同的页面的内容2、  是一个容器类型组件3、  提供了友好的页面切换方式 使用方式:1、  创建QTabWidget对象2、  使用成员函数intaddTab ( QWidget * page, const QString & label )

2017-02-21 00:21:13 994

原创 (三十一)Qt中的调色板QPalette

Qt中的调色板QPaleQPalette类:1、  QPalette类是Qt窗口中组件的调色板,管理着Qt组件的所有颜色信息,控制着组件的颜色(QPalette是Qt中标志颜色信息的数据结构)2、  每个窗口组件都拥有一个QPalette对象(QPalette对象为QWidget类的成员)3、  窗口组件外观所使用的颜色都定义于调色板中4、  重新设置窗口组件调色板的值能够改变

2017-02-20 18:08:52 1903

转载 (十补)自定义布局管理器

作者:一去丶二三里 博客地址:http://blog.csdn.net/liang19890820简述手动布局另一种方法是通过继承QLayout类编写自己的布局管理器。下面我们详细来举一个例子-QCardLayout。它由同名的Java布局管理器启发而来。也被称之为卡片布局,每个项目偏移QLayout::spacing()。简述定义实现

2017-02-18 19:52:29 301

原创 (三十)自定义事件

自主发送事件:1、  阻塞型事件发送:事件发送后需要等待事件处理完成bool QCoreApplication::sendEvent ( QObject * receiver, QEvent * event ) [static] 2、非阻塞型事件发送:         事件发送后立即返回         事件被发送到事件队列中等待处理         voidQCo

2017-02-18 08:15:12 354

原创 (二十九)QMimeData类与拖放事件

QMimeData 类QMimeData类为记录自身MIME信息的数据提供了一个容器 #include  继承自QObject 详细描述QMimeData类为记录自身MIME信息的数据提供了一个容器QMimeData通常用于描述可以被存储在剪贴板、可以被通过拖拽机制传输的信息。QMimeData对象将他们持有的数据与相应的MIME类型相关联,以确保信息可以在两个

2017-02-17 22:04:07 2601

原创 (二十八)Qt中的事件处理

Qt事件1、  在Qt中,Qt是一个QEvent对象2、  Qt事件用于描述程序内部或外部发生的动作3、  任意的QObject对象都具备事件处理的能力(想要接受并处理事件的对象必须继承自QObject) QEvent是所有事件对象的抽象基类 事件来源1、Spontaneous events(自发事件)由系统消息(鼠标按键、键盘按键灯)转化而来2、Pos

2017-02-16 02:37:19 866

原创 (二十七)Qt容器之关联容器

Qt中关联容器(容器存储的是对)有:QMap(skip-list-based字典)、QMultiMap、QHash(哈希表)、QMultiHash、QSet 关联容器的引入:首先,我们看看数组的概念。数组可以看成是一种形式的键-值对,它的Key只能是int,而值的类型是Object,也就是任意类型(注意,这里我们只是说数组可以是任意类型,这个Object并不必须是一个对象)。现在我们扩

2017-02-15 00:13:42 722

原创 (二十六)Qt容器之顺序容器

顺序容器(容器中的数据线性存储)有:QList(数组列表)、QLinkedList(链表)、QVector(向量)、QStack(栈)、QQueue(队列) QVector(向量):1、  QVector是一个类似数组的容器,它将数据存储在连续的内存空间中2、  QVector知道自己的长度,并且可以改变其大小3、  QVector支持随机访问4、  在QVector尾部添

2017-02-14 00:38:54 2471

转载 (二十五)Qt : 隐式数据共享(copy on write)

转自:http://www.cnblogs.com/chengkeke/p/5417385.html作者:永不停息;copy on write 意思当内容有变动的时候,才对容器中的数据结构进行复制。否则仅作共享。QT许多类中使用了隐式数据共享技术,来最大化资源利用率和最小化拷贝时的资源消耗。 在数据传递时,其实只传递了数据的指针,而只有函数发生需要写入的情况时,数据

2017-02-13 07:27:12 311

原创 (二十四)容器的遍历、隐式共享

Qt中迭代分为两类1、  只读迭代器:不能改写对待器指向的数据2、  读写迭代器:可以更改迭代器指向的数据 Qt中Java风格的迭代器:1、只读迭代器类:Q + “容器名” + Iterator,如QVectorIterator为只读向量迭代器,其中QVectorIterator是模板类,并不是类型,需要指定信息说明实例化为什么类型QVectorIterator2、读写迭代

2017-02-13 06:58:22 326

原创 (二十三)Qt中的容器类简介

Qt中也提供了一组通用的基于模板的容器类(containerclasses)。与STL中的容器类相比:1、  Qt中的容器类更轻量、更安全、更容易使用2、  Qt容器类在所有平台上运行时表现一致,而不仅仅是接口接口一致3、  Qt容器类都是隐式数据共享的,这使得我们在使用时可以pass-by-value而不用担心由此带来的性能问题(在没有隐式共享的情况下,如果操作类对象时使用pas

2017-02-12 10:21:05 524

转载 (二十二)QAction系列详解

转自:http://blog.csdn.net/chenlong12580/article/details/8872035作者:chenlong12580 QAction系列详解一、QAction类详解【详细描述】        QAction类提供了抽象的用户界面action,这些action可以被放置在窗口部件中。        应用程序可以通过菜单,工具栏按钮

2017-02-11 23:19:31 3478

原创 (二十一)缓冲区操作与目录操作

Qt中缓冲区的概念1、缓冲区的本质是一段连续的存储空间2、QBuffer是Qt中缓冲区相关的类3、在Qt中可以将缓冲区看作一种特殊的I/O设备4、文件流辅助类可以直接用于缓冲区操作 QBuffer类:1、QBuffer类为QByteArray提供了一个QIODevice接口,它允许使用QIODevice接口来访问QByteArray2、QByteArray被QBuf

2017-02-11 22:13:05 667

原创 (二十)文本流与数据流

Qt中将文件类型分为2大类:1、文本文件:文件的内容是可读的文本字符2、数据文件:文件内容是直接的二进制数据 QFile类直接支持文本文件和数据文件的读写(通过继承自QIODevice的成员函数)qint64read ( char * data, qint64 maxSize )QByteArrayread ( qin

2017-02-11 00:16:50 1842

原创 (十九)Qt中的文件操作

Qt中的I/O操作1、Qt通过统一的接口简化了文件与外部设备的操作方式2、Qt中的文件被看作一种特殊的外部设备3、Qt中的文件操作与外部操作相同(Qt通过统一的方式读写文件和外部设备)4、QIODevice类是所有输入输出IO类的基类,为IO类提供了统一的调用接口 I/O操作中的关键函数接口(I/O操作的本质:连续存储空间的数据读写)1、打开设备:

2017-02-10 07:53:18 712

原创 (十八)Qt中的输入组件

Qt中的输入组件一共有十三种,分别是下拉列表框QComboBox、字体组合框QFontComboBox、行编辑框QLineEdit、多行富文本编辑框QTextEdit、多行文本编辑框QPlainTextEdit、整数旋转框QSpinBox、小数旋转框QDoubleSpinBox、时间编辑框QTimeEdit、日期编辑框QDateEdit、日期时间编辑框QDateTimeEdit、表盘QDial、滚

2017-02-10 00:04:09 2310 1

转载 (十七)QDockWidget详解

转自:http://blog.csdn.net/chenlong12580/article/details/9051847作者:chenlong12580 QDockWidget类详解【详细描述】QDockWidget类提供了一个特殊的窗口部件,它可以是被锁在QMainWindow窗口内部或者是作为顶级窗口悬浮在桌面上。QDockWidget类提供了dock widget的

2017-02-09 00:25:11 12361 1

原创 (十六)主窗口中的状态栏

状态栏的概念与意义:1、状态栏是程序中输出简要信息的区域2、状态栏一般位于主窗口最底部3、状态栏的元素可以是各种窗口组件(即可以放置任意QWidget组件)4、状态栏是程序中输出简要信息的区域,其中信息分为:         1)、临时信息,如一般的提示信息         2)、常规信息,如显示页数和行号         3)、永久信息,如显示版本号或者日期

2017-02-08 23:16:06 969

原创 (十五)主窗口中的工具栏

工具栏的概念与意义:1、工具栏是程序中集成各种功能以实现快捷使用的区域2、工具栏不是程序中必须存在的组件3、工具栏中的元素可以是各种窗口组件(即可以放置任意QWidget组件)4、工具栏中的元素通常以图标的方式存在 Qt中与工具栏相关的类 主窗口中创建工具栏:(1)、添加工具栏:         1)、直接使用成员函数QToolBar *QMainW

2017-02-08 21:34:04 587

原创 (十四)应用程序中的主窗口

程序中主窗口:1、与用户长时间交互的顶层窗口2、程序绝大多数功能直接由主窗口提供3、主窗口通常是应用程序启动后显示的第一个窗口4、整个程序由一个主窗口与多个对话框组成 Qt中的主窗口:1、Qt中直接支持主窗口的概念2、QMainWindow是Qt中主窗口的基类3、QMainWindow继承于QWidget,QMainWindow是一种容器类型的组件

2017-02-08 18:54:07 575

转载 (十三)QListWidget、QListWidgetItem、堆栈窗体QStackedWidget

先看一篇博客:QListWidget和QListWidgetItem的简单使用转自: http://blog.csdn.net/fjb2080/article/details/4922490QListWidget可以显示一个清单,清单中的每个项目是QListWidgetItem的一个实例,每个项目可以通过QListWidgetItem来操作。可以通过QListWidge

2017-02-07 07:54:32 907

原创 (十二)分割窗口

QSplitter类:1、QSplitter继承自QFrame,因此QSplitter也属于容器组件2、QSplitter将加入其中或将以其为父组件的子窗口组件通过分隔条分割3、QSplitter中的子窗口部件会按照加入或创建的顺序排放(从左到右/从上到下)3、用户可以拖动分隔条来改变子窗口组件的大小 一般直接将QSplitter对象作为顶级组件(窗口)使用QSplit

2017-02-07 07:41:47 316

原创 (十一)布局管理器综合实例

开发一个向导用户界面:1、在同一界面上展现不同的向导页2、通过上/下一步按钮切换页面3、不同页面上的元素组件和组件排布都不相同4、页面中的组件通过布局管理器进行排布  界面设计:通过嵌套管理布局 通栈式布局管理器管理不同向导页 通过子组件生产不同页 代码:#include "Widget.h"#include #inclu

2017-02-06 21:37:41 399

原创 (十)布局管理器

绝对定位(直接在像素级指定各组件的位置与大小)有一些缺点:1、对于某些平台,窗口部件的大小可能并不合适(无法自适应父窗口的变化)2、位置与大小需要人工计算,难以维护 布局管理器提供相关类对界面组件进行布局管理使用布局管理器:1、任意容器类的组件都可以指定布局管理器2、能够自动排列窗口中的界面组件3、窗口变化后自动更新界面组件的大小此处组件1与组件

2017-02-06 21:36:50 881

原创 (五)Qt中的字符串类

Qt是一种C++GUI程序开发框架,因此可以使用C++提供的字符串(1、C风格字符串:以”\0”结尾的字符数组2、字符串类String)也可以使用Qt自己的字符串类QString 使用QString类的好处:采用16位Unicode值使用隐式共享技术来节省内存和避免不必要的数据拷贝跨平台兼容性隐式共享:http://blog.csdn.net/seanyxie/articl

2017-02-06 21:35:56 1178

原创 (九)标准对话框

Qt为开发者提供了一些可复用的对话框类型Qt提供的可复用对话框全局继承自QDialog类使用方法:Qt中所有标准对话框遵循相同的使用方式定义对话框对象->设置对话框属性->获取对话框数据(与用户交互后)->处理对话框数据 消息对话框(QMessageBox):作用:1、为用户提示重要信息2、强制用户进行操作选择 使用:         /

2017-02-06 21:35:14 392

原创 (八)对话框

对话框:与用户进行短暂交互的顶层窗口(应该只为对话框设计单一功能)QDialog 是Qt中所有对话框窗口类的基类:QDialog继承于QWidget,也是一种容器容器类型组件QDialog类及其子类不能作为子部件嵌入其他容器中QDialog是定制了窗口样式的特殊的QWidget 对话框分类:模态对话框( 调用成员函数exec()显示的对话框)显示后用户无法与其他

2017-02-06 21:34:11 257

原创 (七)计算器实例

开发一个支持四则运算且能识别错误计算式的计算器 计算器示例界面设计:以QWidget对象作为窗口,子组件为QLineEdit对象与QPushButton对象组件间间隔10px,按钮宽40px、高40px,文本框组件宽5 * 40px + 4 *10px、高30px去除窗口的最小、大化按钮固定窗口大小禁止文本框直接输入界面元素架构设计:使用面向对象的继

2017-02-06 21:31:48 1001

原创 (六)Qt内存管理

父子关系:所有指定了父对象的Qt对象(继承自QObject类的实例)与其父对象间存在父子关系:每个Qt对象都保存有指向其所有子对象的指针每个Qt对象都有一个指向其父对象的指针当指定(通过构造函数指定,或通过setParent函数)Qt对象的父对象时:其父对象会在子对象链表中加入指向该对象的指针该对象会保存指向其父对象的指针 当Qt对象被销毁时该对象会

2017-02-06 21:30:04 402

原创 (四)初探信号与槽

Qt中封装了具体操作系统的消息机制、遵循经典的GUI消息驱动事件模型(程序中将具体消息映射到指定的函数,当消息触发时,指定函数被调用) 信号与槽(Qt中的核心机制)概念:信号:由操作系统产生的消息槽:程序中的消息处理函数连接:将系统消息绑定到消息处理函数 Qt消息处理机制模型:信号到槽的连接必须发生在两个Qt类对象之间,用于对象之间的通信 con

2017-02-06 21:29:20 356

原创 (三)窗口与坐标

窗口组件:Qt中的组件分为:容器类(父组件):用于包含其他的界面组件功能类(子组件):用于实现特定的交互功能 窗口与子组件:Qt中没有父组件的顶级组价叫做窗口Qt中嵌入在窗口(拥有父组件)中的组价叫做子组件 QWidget:QWidget类是Qt中所有窗口组件类的父类(superclass),Qt中每个窗口组件都是一个QWidgetQWidget类继承自

2017-02-06 21:28:12 601

原创 (二)命令行与QtCreator

Qt的编译方式之命令行编译条件:Qt源代码文件步骤:启动Qt命令行Command prompt进入源代码文件所在目录输入命令         (1)qmake–project   根据源码生成工程文件(.pro)         (2)qmake                 根据工程文件生成makefile文件         (3)make

2017-02-06 21:27:16 1364

原创 (一)GUI程序原理分析

命令行应用程序:主要基于顺序执行结构、以得到执行结果为目的、在执行过程中不需要与用户进行任何形式的交互、的应用程序,程序本身有着固定的开始固定的结束,程序一旦编译完成其运行结果几乎得以确定命令行程序运行模式:从函数入口开始,执行完主函数结束 使用范围:单任务场合无交互或简单交互场合服务器应用场合(将计算机资源尽可能的用于提供实际的服务)要求效率场合

2017-02-06 21:26:42 7854

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除