QT
文章平均质量分 68
两只鱼丿
学无止境
展开
-
Qt 事件系统
事件系统在 Qt 中,事件是从抽象QEvent类派生的对象,它们表示在应用程序内发生的事情或作为应用程序需要了解的外部活动的结果。事件可以由QObject子类的任何实例接收和处理如何传递事件当一个事件发生时,Qt 通过构造一个合适的QEvent子类的实例来创建一个事件对象表示它,并通过调用它的event()函数将它传递给QObject 的一个特定实例(或其子类)。事件类型大多数事件类型都有特殊的类,例如:QResizeEvent :包含调整大小事件的事件参数QPaintEvent :包含绘原创 2021-10-08 10:50:29 · 266 阅读 · 0 评论 -
Qt连接MySQL驱动无效报错:MYSQL driver calid false,解决方法
我的mysql版本是8.0.18,Qt编译器用的msvc2019,都是64位的。如果把mysql的libmysql.dll文件复制到msvc2019的bin文件夹中没用的话,就重新编译驱动文件。反正我把文件复制过去是没用。接下来看怎么编译新的驱动。首先进入到QT安装目录中的mysql中。D:\QT5\5.15.1\Src\qtbase\src\plugins\sqldrivers\mysql如果没用Src文件夹说明你安装qt时没装源码,这里建议重装一下。然后用Qt打开mysql.pro,我这是原创 2021-01-16 12:03:59 · 255 阅读 · 0 评论 -
Qt线程基础知识
什么是线程?线程就是并行地做事情,就像进程一样。那么线程与进程有什么不同呢?当您在电子表格上进行计算时,可能还会有一个媒体播放器在同一台式机上运行,播放您最喜欢的歌曲。下面是两个并行工作进程的例子:一个运行电子表格程序;一个经营媒体播放器。多任务处理是一个众所周知的术语。仔细观察媒体播放器就会发现,在一个单一的过程中,也有一些事情是并行发生的。当媒体播放器将音乐发送到音频驱动程序时,用户界面的所有铃声和哨子都在不断更新。这就是线程的作用所在,单个进程中的并发性。那么并发性是如何实现的呢?在单核cpu上并原创 2021-01-07 18:12:07 · 674 阅读 · 0 评论 -
Qt代理模型
在模型/视图框架中,单个模型提供的数据项可以由多个视图共享,并且每个视图可能以完全不同的方式表示相同的信息。自定义视图和委托是提供相同数据完全不同的表示形式的有效方法。但是,应用程序通常需要在相同数据的处理版本上提供常规视图,例如在项列表中对不同排序的视图。尽管将排序和筛选操作作为视图的内部功能似乎合适,但此方法不允许多个视图共享此类潜在成本高昂的操作的结果。另一种方法(涉及在模型本身中排序)会导致类似的问题,即每个视图必须显示根据最近的处理操作组织的数据项。为了解决这个问题,模型/视图框架使用代理模型原创 2020-12-25 15:09:48 · 897 阅读 · 0 评论 -
使用项目视图的拖放
模型/视图框架完全支持 Qt 的拖放基础结构。列表、表和树中的项可以拖动到视图中,数据可以作为 MIME 编码的数据导入和导出。标准视图自动支持内部拖放,其中项目会移动以更改其显示顺序。默认情况下,不会为这些视图启用拖放,因为它们配置为最简单、最常见的用途。若要允许拖动项,需要启用视图的某些属性,并且项本身还必须允许拖动发生。对于只允许从视图导出项,而不允许将数据放入其中的模型,其需求比完全启用拖放模型的需求要少。使用方便的视图在默认情况下,QListWidget、QTableWidget和QTre原创 2020-12-25 11:32:22 · 250 阅读 · 0 评论 -
视图便利类和常用功能
基于项目的小部件具有反映其用途的名称:提供项目列表,显示多级树结构,并提供单元格项目表。每个类都继承了类的行为,该类实现了项目选择和头文件管理的通用行为:QListWidget, QTreeWidget ,QTableWidget,QAbstractItemViewList widgets:列表小部件项目的单级列表通常使用a和若干s来显示。列表小部件的构造方式与其他小部件相同:QListWidget,QListWidgetItemQListWidget *listWidget = new QListW原创 2020-12-25 10:31:59 · 181 阅读 · 0 评论 -
QT创建新模型
模型/视图组件之间的功能分离允许创建可以利用现有视图的模型。这种方法允许我们使用标准图形用户界面组件(如QListView、QTableView和QTreeView)显示来自各种源的数据。QAbstractIteModel类提供的接口足够灵活,足以支持在分层结构中排列信息的数据源,从而允许以某种方式插入、删除、修改或排序数据。它还支持拖放操作。QAbstractListModel和QAbstractTableModel类提供了对更简单的非层次数据结构的接口的支持,并且更容易作为简单列表和表模型的起点使用原创 2020-12-19 20:36:56 · 388 阅读 · 2 评论 -
QML中加载图片不显示,路径出错问题
首先如果相对路径不行就试一下绝对路径。相对路径如下:绝对路径如下:记得在路径前加上 file:\原创 2020-12-15 11:47:24 · 1609 阅读 · 0 评论 -
处理项目视图中的选择
概念项视图类中使用的选择模型提供基于模型/视图体系结构的工具的选择的一般描述。尽管用于操作选择的标准类足以满足所提供的项目视图,但选择模型允许您创建专门的选择模型,以满足您自己的项目模型和视图的要求。有关视图中所选项的信息存储在QItemSlectModel 类的实例中。这将维护单个模型中项的模型索引,并且独立于任何视图。由于模型上可以有许多视图,因此可以在视图之间共享选择,从而允许应用程序以一致的方式显示多个视图。选择由选择范围组成。通过只记录所选项目的每个范围的开始和结束模型索引,这些方法有效地维原创 2020-12-15 11:44:10 · 320 阅读 · 0 评论 -
Qt委托类Delegate使用,视图模型框架篇
委托类(Delegate)概念:与模型-视图-控制器模式不同,模型/视图设计不包含用于管理与用户交互的完全独立组件。通常,视图负责向用户显示模型数据,并负责处理用户输入。为了在获取此输入的方式上留出一些灵活性,由委托执行交互。这些组件提供输入功能,还负责在某些视图中呈现单个项目。控制委托的标准接口在QAbstractItemDelegate 类中定义。委托应该能够通过实现paint() 和 sizeHint() 函数来呈现其内容本身。基于小部件的简单委托可以子类QStyledItemDelegate原创 2020-12-14 10:37:02 · 472 阅读 · 0 评论 -
Qt/QML入门练手小项目
布局类:原创 2020-12-13 18:18:35 · 3894 阅读 · 0 评论 -
Qt中视图类View的使用
视图类 View概念:在模型/视图体系结构中,视图从模型中获取数据项并呈现给用户。数据呈现的方式与模型提供的数据表示方式不同,也可能与用于存储数据项的基础数据结构完全不同。内容和表示的分离是通过使用QAbstractItemModel提供的标准模型接口、QAbstractItemView提供的标准视图接口以及使用以一般方式表示数据项的模型索引实现的。视图通常管理从模型获取的数据的总体布局。它们可以呈现数据本身的单个项,或使用委托来处理渲染和编辑要素。除了显示数据,视图还处理项之间的导航以及项选择的原创 2020-12-10 10:28:15 · 1427 阅读 · 0 评论 -
QT如何使用视图模型索引检索数据
使用模型索引为了演示如何使用模型检索数据,使用模型索引,我们设置了一个没有视图的QFileSystemModelQFileSystemModel加载是异步的,以最大限度地减少系统资源使用。在处理这种模式时,我们必须考虑到这一点。示例:#include <qapplication.h>#include <QFileSystemModel> //为本地文件系统提供了一个数据模型#include <QTreeView> //树视图的默认模型#include <原创 2020-12-09 18:21:57 · 973 阅读 · 0 评论 -
QT模型/视图编程:Model/View Programming
模型/视图编程简介Qt包含一组项目视图类,这些类使用模型视图体系结构来管理数据之间的关系,以及向用户呈现数据的方式。模型/视图体系结构模型视图控制器 (MVC) 是一种源自 Smalltalk 的设计模式,在构建用户界面时通常使用。MVC 由三种对象组成。模型是应用程序对象,View 是它的屏幕表示,控制器定义用户界面对用户输入的反应方式。在 MVC 之前,用户界面设计倾向于将这些对象混为一谈。MVC 将它们分离,以提高灵活性和重用性。这种分离使得可以在几个不同的视图中显示相同的数据,并实现新的视原创 2020-12-09 11:29:33 · 554 阅读 · 0 评论 -
QT中Widget和QML程序的发布
Widget发布命令:windeployqt 应用程序名称.exeQML程序发布命令:windeployqt name.exe -qmldir D:\xm\name第一个路径为你要发布程序的位置第二个路径为你项目源码的位置原创 2020-12-08 18:30:43 · 199 阅读 · 0 评论 -
QML中的模型和视图,Views和Qt Quick
Qt Quick中的模型和视图简单的说,应用程序需要形成数据和显示数据。Qt Quick具有模型(models),视图(views)和委托(delegates)来显示数据的概念。它们将数据可视化、模块化。以便开发人员能控制数据的不同方面。开发人员可以使用网络视图交互列表视图,对数据几乎没用更改。同样,将数据示例封装在委托中允许开发人员指定如何呈现或处理数据。**模型(Model):**包含数据及其结构。有几种用于创建模型的QML类。**视图(View):**显示数据的容器。视图以网络或列表的形视显原创 2020-11-26 16:19:01 · 412 阅读 · 0 评论 -
QML中的property属性使用说明
property属性:property是对象的属性,可以为其分配静态值或绑定到动态表达式。属性的值可以被其他对象读取。通常,另一个对象也可以修改它,除非特定的QML类型明确地禁止对特定property进行这样的修改。定义property属性:在c++中,也就是写cpp文件时,可以通过注册类的Q_PROPERTY来为类型定义属性,然后将该类型注册到QML类型系统。自定义property属性可以用下面的语法在QML文档中声明定义:[default] [required] [readonly] prope原创 2020-11-21 14:41:28 · 3818 阅读 · 0 评论 -
Qt图形视图、动画和状态机框架_示例项目
所有项目地址:链接: https://pan.baidu.com/s/1lWUv7S6bK_5bBJzK37SsoA 提取码: jytn图形视图框架的坐标系统和事件处理,项目名 myitem功能:获取鼠标位置下的 视图坐标、场景坐标和图形项坐标。视图按键事件图形项边界框,重绘。键盘按下事件,鼠标事件,鼠标悬停事件,上下文菜单事件。...原创 2020-11-11 19:13:59 · 265 阅读 · 1 评论 -
Qt中tr( )函数的使用与注意事项
**tr( ) 函数一共有3个参数,**原型如下:[static] QString QObject::tr(const char *sourceText, const char *disambiguation = nullptr, int n = -1)第一个参数是要显示的字符串,会返回 sourceText 的译本。第二个参数是消除歧义,比如一个password,如果一个程序中要输入多个不同的密码,在没有上下文的情况下很难确定这个password到底指哪个密码。这个参数一般使用类名或部件名。第三个原创 2020-09-22 21:04:00 · 2107 阅读 · 0 评论 -
Qt中QString类的一些常用函数,编辑、查询和装换操作
代码记录:#include <QCoreApplication>#include <QDebug>#include <QStringList>//字符串函数测试int main(int argc, char *argv[]){ QCoreApplication a(argc, argv); //编辑字符串操作 qDebug()<<QObject::tr("以下是编辑字符串操作:")<<endl;原创 2020-09-15 11:28:55 · 342 阅读 · 1 评论 -
Qt中的一些通用算法
可以在任何提供了STL风格迭代器的容器类使用的一些通用算法。C++ STL也提供了很多通用算法,包含在头文件内。这部分算法对于Qt容器同样也是适用的#include <QCoreApplication>#include <QVector> //动态数组#include <QStringList> //字符串列表#include <QDebug>#include <algorithm> //返回密钥算法int main(int arg原创 2020-09-10 19:46:19 · 1028 阅读 · 0 评论 -
QT中Java与STL风格迭代器的一些区别,foreach关键字
Qlist 的 java风格迭代器,代码如下:#include <QMap>#include <QListIterator> //只读#include <QMutableListIterator> //读写#include <QDebug>//测试java风格的迭代器int main(int argc, char *argv[]){ QCoreApplication a(argc, argv); QList <QStri原创 2020-09-09 18:25:41 · 381 阅读 · 0 评论 -
QT命令行发布不可用,qtenv2.bat打不开
QT是拷贝而不是安装的,则在发布程序时会打不开 qtenv2.bat,导致不能用命令发布程序。这时只要创建两个 qtenv2.bat 快捷方式就行。步骤如下:新建一个快捷方式把路径写进去,这里的重点是 qtenv2.bat 路径前要加上: C:\Windows\System32\cmd.exe /A /Q /K完整路径为 C:\Windows\System32\cmd.exe /A /Q /K D:\qt\5.14.2\mingw73_64\bin\qtenv2.bat用哪个 qtenv2原创 2020-06-04 16:27:05 · 830 阅读 · 0 评论 -
QT窗口,滑块部件(QAbstractSlider)
可以将刻度表部件dial的slider Moved(int) 信号分别与其它各部件的 setValue(int)槽相连接。设置完成后用鼠标拖动dial时,其它部件都会跟着变化原创 2020-04-21 20:18:54 · 361 阅读 · 0 评论 -
QT窗口,日期时间、整数和浮点数部件
QDate TimeEdit 类提供编辑日期和时间的部件三个时间日期部件分别为:Time Edit 、 Date Edit 和 Date/Time Edit原创 2020-04-21 19:18:56 · 347 阅读 · 0 评论 -
QT5.9.9解决窗口中文乱码问题
在头文件头部加入:#pragma execution_character_set(“utf-8”) 解决。原创 2020-04-20 21:20:26 · 1025 阅读 · 0 评论