摘要:1、模型、视图、委托 MVC包含模型(Model表示数据)、视图(View用户界面)、控制器(Controller界面对用户输入的反应方式)三部分,Qt中还引入了委托(Delegate,又称代理)来对用户输入进行灵活处理,使用它可以定制数据的渲染和编辑方式。 QAbstractItemModel是模
阅读全文
摘要:1、QIODevice QIODevice是QFile、QBuffer、QTcpSocket等I/O设备的基类,可以使用open()打开设备(打开模式如下)、read()/write()进行文件读写、close()关闭设备。 QTcpSocket、QUdpSocket、QProcess等属于顺序存储
阅读全文
摘要:1、使用QSound播放WAV音频 使用静态方法QApplication::beep()可以播放系统调整音量时候的声音,使用QSound可以在windows或linux下异步播放WAV文件、在mac下播放NSSound支持的音频文件,使用需要包含头文件<QSound>。 可以调用静态方法QSound
阅读全文
摘要:OpenGL是一套跨平台的用来渲染3D图形的API。OpenGL自身是一个巨大的状态机:一系列的变量描述OpenGL此刻应当如何运行,OpenGL的状态通常被称为OpenGL上下文(Context)。我们通常使用如下途径去更改OpenGL状态:设置选项,操作缓冲,最后,我们使用当前OpenGL上下文
阅读全文
摘要:一、动画框架 Qt中的动画框架可以在帮助中查看The Animation Framework关键字,主要的类如下图所示,基类QAbstractAnimation中定义了动画开始、暂停、停止等方法,它也可以接收时间变化的通知,通过集成它可以创建自定义的动画类。QPropertyAnimation类用来
阅读全文
摘要:一、图形视图框架结构 图形视图框架由场景QGraphicsScene、视图QGraphicsView、图形项QGraphicsItem组成,它提供了一套基于图形项模型视图编程方法。图形视图框架可以管理数量庞大的自定义2D图形项,比如要绘制上万个图形并对这些图形进行拖动、检测位置等操作的话使用图形视图
阅读全文
摘要:1、绘制文字 使用QPainter::drawText()来绘制文字: void Widget::paintEvent(QPaintEvent *event) { QPainter painter(this); QRectF rect(10.0, 10.0, 580.0, 280.0); paint
阅读全文
摘要:1、抗锯齿渲染 由于历史原因,QRect::right()和QRect::bottom()的返回值会偏离矩形真实的右下角,推荐使用QRectF来代替QRect,或者使用x() + width()和y() + height()来确定QRect的右下角。 默认情况下,绘制会产生锯齿,可以使用QPaint
阅读全文
摘要:1、QPainter 使用QPainter来进行绘制操作,常用的有: QPainter::drawPoint:绘制点 QPainter::drawLine:绘制线 QPainter::drawRect:绘制矩形 QPainter::drawRoundedRect:绘制圆角矩形 QPainter::d
阅读全文
摘要:1、国际化 Qt国际化需要在代码中对显示的字符串调用tr()方法,完成代码编写后再进行相关的翻译工作。 2、帮助文档 对话框标题栏上有一个"?"帮助图标,按下它就会进入"What's this"模式,我们可以在UI设计模式下右键对话框窗口选择“改变‘这是什么’”来对帮助对话框进行设计。我们还可以使用
阅读全文
摘要:1、Qt风格 在设计模式下选择“工具-Form Editor(界面编辑器)-Preview in(预览于)”可以选择Windows风格、Fusion风格等。Qt中的风格是继承自抽象基类QStyle的类,比如QWindowsStyle微软风格、QMotifStyle为Motif风格、QMacStyle
阅读全文
摘要:1、属性 QObject的setProperty()/property()方法用来设置和获得属性(动态属性)值,如下所示: class Foo: public QObject { public: explicit Foo(QObject* parent = nullptr): QObject(par
阅读全文
摘要:1、QEvent和事件处理 QEvent为事件对象,其派生类有QMouseEvent、QKeyEvent、QPaintEvent、QCloseEvent、QTimterEvent等,事件可以有多种类型,如鼠标事件有鼠标按下、释放、移动等。在事件处理方法中会发出相应的信号,如下面的鼠标释放事件中会发出
阅读全文
摘要:1、菜单栏 添加菜单: QMainWindow中的菜单栏是一个QMenuBar对象,可以通过设计模式下来给菜单栏添加菜单,菜单项也可以设置加速键,通过在给菜单文本添加(&加速键),而且子菜单上如果设置的加速键其实就快捷键,不用再使用alt键,直接输入对应键即为点击对应的菜单项。如下所示的文件菜单项的
阅读全文
摘要:QLayout是布局管理器基类,我们一般使用其派生类QBoxLayout(基本布局管理器)、QGridLayout(栅格布局管理器)、QFormLayout(表单布局管理器)、QStackedLayout(栈布局管理器)。 1、QBoxLayout(基本布局管理器)下又有垂直布局管理器QVBoxLa
阅读全文
摘要:1、QDialog派生对话框 除了QDialog外,Qt中还提供了一些从QDialog派生的Dialog,如: ①、颜色对话框QColorDialog用来显示和获取用户选择的颜色,QColor为颜色类。 //QColorDialog::getColor显示一个模态颜色对话框并获得用户选择的颜色 QC
阅读全文
摘要:1、QWidget QWidget类是所有界面对象的基类,它是基础窗口部件,如下所示: QWidget类的构造函数:QWidget(QWidget * parent = 0, Qt::WindowFlags f = 0); 其中parent指定父窗口(默认为0,QWidget为一个窗口,非0的话QW
阅读全文
摘要:1、 新建一个Qt GUI应用,并且使Qt自动为我们实现这个GUI应用:菜单栏->新建文件或项目->应用程序->Qt Gui应用->输入项目名称和所在路径->选择默认构建套件->设置主界面类名及其基类(可以从三种基类之一继承:QMainWindow,QWidget,QDialog)->设置项目管理和
阅读全文