QT基础入门
文章平均质量分 87
主要是qt的基本界面设计和qt的绘图,
这一部分是基础知识,学完能够绘制基本图形
进阶看QT进阶专栏
Half-up
【Keep Reading , Keep Writing , Keep Coding.】
展开
-
QT—3D绘图
使用OpenGL绘制图形介绍着色器例子QOpenGLWidget中使用OpenGL绘制图形绘制多边形使用顶点数组使用缓存绘制彩色3D图形1为图形设置顶点颜色2.实现3D效果纹理贴图原创 2022-08-29 10:10:26 · 10818 阅读 · 4 评论 -
QT—状态机框架
QT-状态机框架概念创建状态机在状态机中使用动画1默认动画2.检测状态中的所有属性都已经被设置3动画结束前退出状态会发生什么状态机的其他特性1.为状态分组来共享切换2.使用历史状态来保存或者恢复当前状态3.使用并行状态来避免组合爆炸4.检测复合状态的结束信号5.无目标切换6.事件、切换和守护7.使用恢复策略自动恢复属性...原创 2022-08-07 00:02:32 · 3080 阅读 · 1 评论 -
QT—动画框架
QT-动画概念、数值类型实现属性动画使用缓和曲线((关键帧动画)动画组图形视图框架中使用动画原创 2022-07-24 11:36:45 · 1339 阅读 · 2 评论 -
QT—图形视图
图形视图框架的结构场景视图图形项图形视图框架的坐标系统和事件处理坐标系统1.图形项坐标2.场景坐标3.视图坐标4.坐标映射例子场景背景图片会随着图形项的不同而改变位置? (场..事件处理和传播例子(放大和缩小视图,旋转视图)例子2 (添加事件,-一些按键函数)形视图框架的其他特性(效果)图形效果例子按键判断实现效果动画、碰撞检测和图形项组1.动画2.碰撞检测3.图形项组打印和使用OpenGL进行渲染1.打印2.使用OpenGL进行渲染窗口部件、布局和内嵌部原创 2022-07-21 10:50:20 · 2312 阅读 · 3 评论 -
QT—绘制其他问题
前面讲到的所有绘制操作都是在重绘事件处理函数 paintEvent()中完成的,它是QWidget类中定义的函数。一个重绘事件用来重绘一个部件的全部或者部分区域。下面几个原因中的任意一个都会发生重绘事件:大部分部件可以简单地重绘它们的全部界面,但是一些绘制比较慢的部件需要进行优化而只绘制需要的区域(可以使用来获取该区域),这种速度上的优化不会影响结果。Qt也会通过合并多个重绘事件为一个事件来加快绘制,当函数被调用多次,或者时,那么Qt就会合并这些事件成为一个事件,而这个事件拥有最大的需要重绘的区域。不会立原创 2022-07-04 09:32:16 · 542 阅读 · 0 评论 -
QT—双缓冲绘图
双缓冲(double-buffers)绘图,就是在进行绘制时,先将所有内容都绘制到一个绘图设备(如 QPixmap)上,然后再将整个图像绘制到部件上显示出来。使用双缓冲绘图可以避免显示时的闪烁现象。原创 2022-07-03 23:55:22 · 2023 阅读 · 1 评论 -
Qt—绘制其他东西
前面我们不是学过了绘制图形Qt—2D绘图—1基本图型绘制与填充现在我们学习下绘制其他2D东西1 绘制文字除了绘制图形以外,还可以使用QPainter::darwText()函数来绘制文字,也可以使用QPainter::setFont()设置文字所使用的字体,使用QPainter::fontInfo()函数可以获取字体的信息,它返回QFontInfo类对象。绘制文字时会默认使用抗锯齿。新建Qt Widgets应用,项目名称为mydrawing2,基类选择QWidget,类名为 Widget。建立完成原创 2022-07-03 09:18:26 · 849 阅读 · 0 评论 -
Qt—坐标系统
Qt—坐标系统坐标系统抗锯齿渲染1 逻辑表示2 抗锯齿绘画坐标系统Qt的坐标系统是由QPainter类控制的,而 QPainter是在绘图设备上进行绘制的。一个绘图设备的默认坐标系统中,原点(0,0)在其左上角,x坐标向右增长,y坐标向下增长。在基于像素的设备上,默认的单位是一个像素,而在打印机上默认的单位是一个点(1/72英寸)。QPainter的逻辑坐标与绘图设备的物理坐标之间的映射由QPainter的变换矩阵、视口和窗口处理。逻辑坐标和物理坐标默认是一致的。QPainter也支持坐标变换原创 2022-04-24 19:47:12 · 2852 阅读 · 0 评论 -
Qt—2D绘图—1基本图型绘制与填充
Qt中提供了强大的2D绘图系统,可以使用相同的API在屏幕和绘图设备上进行绘制,主要基于QPainter , QPaintDevice和 QPaintEngine这3个类。其中,QPainter用来执行绘图操作。QPaintDevice提供绘图设备,是一个二维空间的抽象,可以使用QPainter在其上进行绘制;是所有可以进行绘制的对象的基类,它的子类主要有QWidget ,QPixmap, QPicture,QImage,QPrinter和 QOpenGLPaintDevice等。QPaintEngine原创 2022-04-19 15:28:39 · 6755 阅读 · 0 评论 -
Qt-插件创建
跟前面的章节一样,了解一下,会使用qt的插件Qt插件(Qt Plugin)就是一个共享库(dll文件),可以使用它进行功能的扩展。Qt中提供了两种API来创建插件:用来扩展Qt本身的高级API,如自定义数据库驱动,图片格式、文本编码和自定义风格等;用来扩展Qt应用程序的低级API。如果要写一个插件来扩展Qt本身,那么可以子类化合适的插件基类,然后重写一些函数并添加一个宏。可以通过在帮助中查看How to Create Qt Plugins关键字来了解本节的内容,这里还可以查看Qt提供的插件基原创 2022-04-16 10:17:09 · 2512 阅读 · 1 评论 -
Qt—帮助系统
一个完善的应用程序应该提供尽可能丰富的帮助信息。Qt中可以使用工具提示、状态提示以及“What’s This”等简单的帮助提示,也可以使用Qt Assistant来提供强大的在线帮助。简单的帮助提示已经讲到了工具提示和状态提示,这里简单介绍“What’s This”帮助提示运行一个对话框窗口时会看到,在标题栏中有一个“?”图标,按下它就会进入“WhatThis”模式,这时如果哪个部件设置了“What’s This”帮助提示,那么当鼠标移动到它面时就会弹出一个悬浮的文本框显示相应的帮助提示。下面来看一个具原创 2022-04-13 21:38:04 · 2462 阅读 · 0 评论 -
Qt-国际化(语言切换)
在Qt中,所有的输入部件和文本绘制方式对Qt支持的所有语言都提供了内置的支持。Qt内置的字体引擎可以在同一时间正确而且精细地绘制不同的文本,这些文本可以包含来自众多不同书写系统的字符。如果想了解更多的相关知识,可以在帮助中通过Overview of the Translation Process关键字查看。Qt对把应用程序翻译为本地语言提供了很好的支持,可以使用Qt Linguist工具完成应用程序的翻译工作,这个工具在第1章就已经介绍过了,这里将进一步介绍。使用Qt Linguist翻译工具这一小节原创 2022-04-11 08:36:08 · 1631 阅读 · 0 评论 -
Qt—特殊效果窗体
特殊窗体不规则窗体使用样式表可以实现矩形、圆形等规则形状的部件,不过,有时想设计一个不规则形状的部件或者窗口,使得应用程序的外观更加个性化。Qt中提供了部件遮罩( mask)来实现不规则窗体。新建Qt Widgets应用,项目名称为mymask,基类选择QWidget,类名保持Widget不变。完成后向项目目录中放一张背景透明的PNG图片(笔者这里是yafeilinux.png),然后再向项目中添加一个Qt资源文件,建立好后先添加前缀“/image”,然后再将图片添加进来并保存更改。然后到设计模式,向原创 2022-04-01 10:49:47 · 2748 阅读 · 0 评论 -
QT-样式表
Qt样式表是一个可以自定义部件外观的十分强大的机制﹐除了那些能够通过子类化QStyle更改的外观,其余的都可以使用Qt样式表来美化。Qt样式表的概念,术语和语法都受到了HTML的层叠样式表(Cascading Style Sheets, CSS)的启发,不过与CSS不同的是,Qt样式表应用于部件。Qt样式表介绍样式表可以使用QApplication: : setStyleSheet()函数将其设置到整个应用程序上,也可以使用QWidget::setStyleSheet()函数将其设置到一个指定的部件(还原创 2022-03-31 11:42:20 · 14008 阅读 · 2 评论 -
Qt-风格化
Qt中的各种风格是一组继承自QStyle的类。QStyle类是一个抽象基类,封装了一个GUI的外观,Qt的内建(built-in)部件使用它来执行几乎所有的绘制工作,以确保它们看起来像各个平台上的本地部件一样。QStyleFactory类可以创建一个 QStyle对象,首先通过keys()函数获取可用的风格,然后使用create()函数创建一个QStyle对象。一般 windows风格和fusion风格是默认可用的,而有些风格只在特定的平台上才有效,如 windowsxp风格,windowsvista风格、原创 2022-03-28 17:34:51 · 1502 阅读 · 0 评论 -
Qt—正则表达式
正则表达式正则表达式介绍正则表达式组成元素.文本捕获新的QRegularExpression类原创 2022-03-28 15:59:21 · 7902 阅读 · 0 评论 -
Qt—容器类
▲7.2 容器类U7.2.1 Qt的容器类介绍7.2.2遍历容器..7.2.3通用算法7.2.4 QString7.2.5 QByteArray ftIQVariant原创 2022-03-27 23:27:27 · 2725 阅读 · 0 评论 -
Qt—元对象系统
Qt中的元对象系统(Meta-bject System)提供了对象间通信的信号和槽机制、运行时类型信息和动态属性系统。元对象系统是基于以下3个条件的:该类必须继承自QObject类;必须在类的私有声明区声明Q_OBJECT宏(在类定义时,如果没有指定public或者private,则默认为private);元对象编译器Meta-Object Compiler( moc)为QObject的子类实现元对象特性提供必要的代码。其中, moc工具读取一个C++源文件,如果它发现一个或者多个类的原创 2022-03-26 09:30:53 · 500 阅读 · 0 评论 -
Qt—对象树与拥有权
Qt中使用对象树(objecttree)来组织和管理所有的QObject类及其子类的对象。当创建一个QObject时,如果使用了其他的对象作为其父对象(parent),那么这个QObject就会被添加到父对象的children()列表中;当父对象被销毁时,这个QObject也会被销毁。实践表明,这个机制非常适合于管理GUI对象。例如,一个QShortcut(键盘快捷键)对象是相应窗口的-一个子对象,当用户关闭这个窗口时,快捷键对象也会被销毁。...原创 2022-03-25 22:56:48 · 326 阅读 · 0 评论 -
Qt-属性系统
Qt提供了强大的基于元对象系统的属性系统,可以在运行Qt的平台上支持标准C++编译器。要在一个类中声明属性,该类必须继承自QObject类,而且还要在声明前使用Q_PROPERTY()宏:Q_PROPERTY(type name(READ getFunction [WRITE setFunction] | MEMBER memberName [(READ getFunction| WRITE setFunction)])[RESET resetFunction][NOTIFY notifySign原创 2022-03-24 22:09:05 · 621 阅读 · 0 评论 -
Qt—对象模型
对象模型信号与槽原创 2022-03-23 21:46:06 · 544 阅读 · 0 评论 -
Qt—事件过滤器与事件的发送
Qt中提供了事件过滤器来实现在一个部件中监控其他多个部件的事件。事件过滤器与其他部件不同,它不是一个类,只是由两个函数组成的一种操作,用来完成一个部件对其他部件的事件的监视。这两个函数分别是installEventFilter()和 eventFilter(),都是QObject类中的函数。下面通过具体的例子来进行讲解。本节采用的项目源码路径:src\06\6 - 8\myeventfilter。新建Qt Widgets应用,将项目名称更改为myeventfilter,基类选择QWidget,类名保持 W原创 2022-03-22 18:23:34 · 1230 阅读 · 0 评论 -
Qt—定时器事件与随机数
QTimerEvent类用来描述一个定时器事件。对于一个QObject的子类,只需要使用int QObject : : startTimer ( int interval )函数就可以开启一个定时器,这个函数需要输人一个以毫秒为单位的整数作为参数来表明设定的时间,函数返回一个整型编号来代表这个定时器。当定时器溢出时可以在timerEvent()函数中进行需要的操作。其实编程中更多的是使用QTimer类来实现一个定时器,它提供了更高层次的编程接口﹐比如可以使用信号和槽,还可以设置只运行一次的定时器。所以在以原创 2022-03-21 21:45:19 · 1312 阅读 · 0 评论 -
Qt—键盘事件
使用QKeyEvent类用来描述一个键盘事件。当键盘按键被按下或者释放时候,键盘事件便会被发送给拥有键盘输入焦点的部件。QKeyEvent的key函数可以获取具体的按键,对于Qt中给定的所有按键,可以在帮助中通过Qt::Key关键字查看。需要特别说明的是,回车键在这里是Qt::Key_Return;键盘上的一些修饰键,比如Ctrl和 Shift等,这里需要使用QKeyEvent的modifiers()函数来获取,可以在帮助中使用Qt: : Keyboard-Modifier关键字来查看所有的修饰键。下面通原创 2022-03-21 08:48:45 · 11874 阅读 · 0 评论 -
Qt——鼠标事件与滚轮事件
QMouseEvent类用来表示一个鼠标事件,在窗口部件中按下鼠标或者移动鼠标指针时,都会产生鼠标事件。利用QMouseEvent可以获知鼠标是哪个键按下了、鼠标指针的当前位置等信息。通常是重定义部件的鼠标事件处理函数来进行一些自定义的操作。QWheelEvent类用来表示鼠标滚轮事件,主要用来获取滚轮移动的方向和距离。下面来看一个实际的例子,这个例子要实现的效果是:可以在界面上按着鼠标左键来拖动窗口,双击鼠标左键来使其全屏,按着鼠标右键则使指针变为一个自定义的图片,使用滚轮可以放大或者缩小编辑器原创 2022-03-20 11:05:58 · 7645 阅读 · 1 评论 -
Qt—事件的处理
一个事件由一个特定的QEvent子 类来表示,但是有时一个事件又包含多个事件类型,比如鼠标事件又可以分为鼠标按下,双击和移动等多种操作。这些事件类型都由QEvent类的枚举型QEvent : : Type来表示,其中包含了一百多种事件类型,可以在QEvent类的帮助文档中进行查看。虽然QEvent的子类可以表示一个事件,但是却不能用来处理事件,那么应该怎样来处理一个事件呢?QCoreApplication类的notify()函数的帮助文档给出了5种处理事件的方法方法一:重新实现部件的paintEven原创 2022-03-19 17:41:28 · 1191 阅读 · 0 评论 -
Qt--打印文档
Qt Print Support模块提供了对打印的支持。最简单的,只需使用一个QPrinter类和一个打印对话框QPrintDialog类就可以完成文档的打印操作本节简单介绍打印文档,打印预览和生产pdf文档新建Qt Widget项目,项目名myprint ,类名和基类保持MainWindow和QMainWindow不变,完成后,在myprint.pro文件,添加如下一行代码:QT += printsupport然后到设计模式向界面上拖入一个Text Edit。再到mainwindow.h文件中先原创 2022-03-18 17:10:32 · 4696 阅读 · 0 评论 -
Qt--拖放操作
5.3拖放操作.5.3.1使用拖放打开文件5.3.2自定义拖放操作.原创 2022-03-18 15:22:06 · 2981 阅读 · 0 评论 -
QT--富文本处理
富文本处理富文本文档结构文本块表格、列表与图片.查找功能语法高亮与HTML原创 2022-03-18 08:09:14 · 4521 阅读 · 2 评论 -
QT----自定义菜单
这个例子中设计了自己的信号和槽,整个过程是这样的:在行编辑器中输入文本,然后按下回车键,这时行编辑就会发射returnPressed()信号,而这时就调用了我们的sendText()槽,在 sendText()槽中又发射了getText()信号,信号中包含了行编辑器中的文本,接着又会调用setText()槽,在setText()槽中将getText()信号发来的文本输人到文本编辑器中。这样就完成了按下回车键将行编辑器中的文本输入到中心部件的文本编辑器中的操作。原创 2022-01-11 23:27:11 · 1258 阅读 · 0 评论 -
Qt---应用程序主窗口
日常见到的应用程序,许多就是基于主窗口的,包括菜单栏,工具栏,等主要介绍QMainWindow类为核心的主窗口框架1 主窗口框架主窗口为建立应用程序用户界面提供了一个框架,Qt提供了QMainWindow和其他一些相关的类共同完成主窗口的管理。QMainWindow类拥有自己的布局(见图),包含以下组件:①菜单栏(QMenuBar)。菜单栏包含了一个下拉菜单项的列表,这些菜单项由QAction动作类实现。菜单栏位于主窗口的顶部,一个主窗口只能有一个菜单栏。②工具栏(QToolBar)。工具栏一般原创 2021-12-20 19:54:33 · 3663 阅读 · 0 评论 -
QT布局管理
布局管理系统1.布局管理器1.基本布局管理器(QBoxLayout)2.概格布局管理器(QGridLavout)3.窗体布局管理器(QFommLayout)4.综合使用布局管理器2.设置部件大小3.可扩展窗口4.分裂器(QSplitter)设置伙伴设置Tab键顺序定位器总结-一个良好的布局是必须的原创 2021-12-16 23:29:03 · 2737 阅读 · 0 评论 -
Qt—常用窗口部件
Qt—常用窗口部件QFrame类族QFrame基本属性概述QFrame类是带有边框的部件的基类。它的子类有我们最为常用的标签部件QLabel,另外还有QLCDNumber、QSplitter、 QStackedWidget、QToo1Box和QAbstractScrollArea类。QAbstractScrollArea类是所有带有滚动区域的部件类的抽象基类。QAbstractScrollArea的子类中有最常用的QTextEdit类和各种项目视图类QT中凡是带有Abstract字样的原创 2021-12-13 15:24:44 · 2594 阅读 · 0 评论 -
QT--信号与槽(3) 标准对话框
QT-信号与槽(3)标准对话框1颜色对话框QColorDialog2文件对话框QFileDialog3.字体对话框QFontDialog4.输入对话框QInputDialog5.消息对话框QMessageBox6.进度对话框QProgressDialog7.错误信息对话框QErrorMessage8.向导对话框QWizard原创 2021-12-05 18:22:45 · 1093 阅读 · 1 评论 -
QT---窗口类型(改变窗口样式)
首先代码:一般窗口都有边框和标题栏,其实这也不是必需的Qwidget的构造函数有二个参数:QWidget * parent = 0 和 Qt::WindowFlags f =0 ,前面的parent指父窗口部件,默认值为0,表明没有父窗口;而后面的f参数是Qt::WindowFlags类型的,是Qt::WindowType枚举类型值或组合用来为部件指定各种窗口系统属性,比如f=0表明窗口类型的值为Qt::Widget这是Qt::Widget的默认类型,这种类型的部件如果有父窗口,那么他就是子部原创 2021-11-29 18:25:54 · 1895 阅读 · 0 评论 -
QT--信号与槽(2) 自定义对话框
在前面的项目中修改项目:https://wwa.lanzoui.com/i5sCDwu30pa添加一个对话框,添加qt设计ui–》dialog without buttons ,类名改为 MyDialog。然后在ui中添加二个push Button 并且改名“进入主界面“和”退出程序“。第二步:设计信号与槽先实现“退出程序“ 的信号与槽进入信号与槽的编辑模式在退出程序按钮上按住鼠标左键,然后拖动到窗口上配置连接要想取消就按下槽,然后delete...原创 2021-11-24 14:43:30 · 562 阅读 · 0 评论 -
QT--信号与槽(1) 添加槽
QT--信号与槽(1)添加槽1.手动关联:mywidget.h定义slots,在mywidget.cpp中定义槽,在mywidget的构造函数中实现connect函数2.自动关联:设计器-转到槽-实现功能原创 2021-11-23 22:21:28 · 1094 阅读 · 0 评论 -
QT -- 模态与非模态对话框
新建一个myWidget项目在mywidget.cpp中写入dialog即:#include "mywidget.h"#include "ui_mywidget.h"#include <QDialog>mywidget::mywidget(QWidget *parent) : QWidget(parent) , ui(new Ui::mywidget){ ui->setupUi(this); //定义了个dialog 在this之中原创 2021-11-22 15:09:07 · 569 阅读 · 2 评论 -
QT--利用设计ui文件设计 一个cmd命令框
主要是为了学习ui文件的可视化处理——文本样式&颜色改变学习使用html语言改变文本的样式原创 2021-11-17 11:05:14 · 480 阅读 · 2 评论 -
2 QT—资料文件管理 动作使用设置快捷键
本节学习关于QT资料文件管理 动作使用设置快捷键学会使用资源管理器使用资源二种方法使用,一种ui界面管理器,一种纯代码实现原创 2021-11-15 21:00:29 · 1297 阅读 · 0 评论