自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(322)
  • 资源 (2)
  • 收藏
  • 关注

原创 SpringBoot集成支付宝,看这一篇就够了。

在开发环境中,我们可以采用内网穿透的方式,将我们本机的端口暴露在某个公网地址上,这里推荐 https://natapp.cn/ ,可以免费注册使用。最后如果一切就绪,我们就可以把APP提交上线了,上线成功之后,我们需要把下面SpringBoot中的properties替换为线上APP的信息,然后就可以在生产环境调用支付宝的接口进行支付了。在开始集成支付宝支付之前,我们需要准备一个支付宝商家账户,如果是个人开发者,可以通过注册公司或者让有公司资质的单位进行授权,后续在集成相关API的时候需要提供这些信息。

2023-12-31 13:00:44 1832

原创 SpringBoot 如何进行全局异常处理

在下面的例子中,我们继承了ResponseEntityExceptionHandler并使用@RestControllerAdvice注解了这个类,接着结合@ExceptionHandler针对不同的异常类型,来定义不同的异常处理方法。这里可以看到我处理的异常是自定义异常,后续我会展开介绍。ResponseEntityExceptionHandler中包装了各种SpringMVC在处理请求时可能抛出的异常的处理,处理结果都是封装成一个ResponseEntity对象。

2023-12-17 11:04:52 2143

原创 Spring Boot 优雅地处理重复请求

上面的问题其实已经是一个很不错的解决方案了,但是实际投入使用的时候可能发现有些问题:某些请求用户短时间内重复的点击了(例如1000毫秒发送了三次请求),但绕过了上面的去重判断(不同的KEY值)。原因是这些请求参数的字段里面,是带时间字段的,这个字段标记用户请求的时间,服务端可以借此丢弃掉一些老的请求(例如5秒前)。对于一些用户请求,在某些情况下是可能重复发送的,如果是查询类操作并无大碍,但其中有些是涉及写入操作的,一旦重复了,可能会导致很严重的后果,例如交易的接口如果重复请求可能会重复下单。

2023-12-09 17:31:54 4213 1

原创 高并发场景下的httpClient使用优化技巧

关于keep-alive,本文不展开说明,只提一点,是否使用keep-alive要根据业务情况来定,它并不是灵丹妙药。还有一点,keep-alive和time_wait/close_wait之间也有不少故事。在本业务场景里,我们相当于有少数固定客户端,长时间极高频次的访问服务器,启用keep-alive非常合适再多提一嘴,http的keep-alive 和tcp的KEEPALIVE不是一个东西。//如果没有约定,则默认定义时长为60s。

2023-12-08 23:01:06 1751

原创 MySQL查询优化

一个好的web应用,最重要的一点是有着优秀的访问性能。数据库MySQL是web应用的组成部分,也是决定其性能的重要部分。所以提升MySQL的性能至关重要。MySQL性能的提升可分为三部分,包括硬件、网络、软件。其中硬件、网络取决于公司的财力,需要白哗哗的银两,这里就不说啦。软件又细分为很多种,在这里我们通过MySQL的查询优化从而达到性能的提升。最近看了一些关于查询优化的书籍,同时也在网上看一些前辈们写的文章。

2023-11-29 23:42:19 1212

原创 如何合理估算 Java 线程池大小

这是根据大量的案例总结的Java线程池大小确定的公式,但在实操中所考虑的侧重点可能有不同,那么需要根据实际场景来微调,本文提供一种确定最优的思路,希望对你开发中确定线程池大小有所帮助!对于 CPU 密集型任务,我们希望最大限度地提高 CPU 利用率,但又不会因为过多的线程而压垮系统,否则会导致过多的上下文切换。我们的目标是确定有效处理这些请求的最佳线程池大小。IO密集型任务是那些与存储设备交互的设备(例如,读/写文件)、网络套接字(例如,进行 API 调用),或用户输入(例如,图形用户界面中的用户交互)。

2023-11-17 22:13:40 1034

原创 订单 延后自动关闭,五种方案优雅搞定!

这样可以看出定时轮由个3个重要的属性参数,ticksPerWheel(一轮的tick数),tickDuration(一个tick的持续时间)以及 timeUnit(时间单位),例如当ticksPerWheel=60,tickDuration=1,timeUnit=秒,这就和现实中的始终的秒针走动完全类似了。该方案是利用JDK自带的DelayQueue来实现,这是一个无界阻塞队列,该队列只有在延迟期满的时候才能从中获取元素,放入DelayQueue中的对象,是必须实现Delayed接口的。

2023-10-22 00:23:21 1176

原创 C++ 运算符重载

这些指针是行为与正常指针相似的对象,唯一不同的是,当您通过指针访问对象时,它们会执行其他的任务。当重载()时,您不是创造了一种新的调用函数的方式,相反地,这是创建一个可以传递任意数目参数的运算符函数。同样地,下面的实例演示了如何重载类成员访问运算符->。下面的实例演示了如何重载加运算符(+),减运算符(-)和乘运算符(*)。我们平常使用的加运算符(+)、减运算符(-)、乘运算符(*)和除运算符(/)都属于二元运算符。就像其他运算符一样,您可以重载赋值运算符(=),用于创建一个对象,比如拷贝构造函数。

2023-10-05 22:49:38 695

原创 C++ 内存空间总结

因为结构体有时候需要字节对齐。一般而言,struct 的 sizeof 是所有成员字节对齐后长度相加,而 union 的 sizeof 是取最大的成员长度。在默认情况下,编译器为每一个变量或数据单元按其自然对界条件分配空间。一般地,可以通过下面的方法来改变默认的对界条件:(1) 使用伪指令#pragma pack(n),C编译器将按照n个字节对齐。(2) 使用伪指令#pragma pack(),取消自定义字节对齐方式。

2023-10-04 18:44:30 954

原创 C++中的四种强制类型转换符详解

C++ 既支持 C 风格的类型转换,又有自己风格的类型转换。reinterpret 的英文含义有重新转换的含义,就相当于 C 语言中不相关类型的转换,强转。下面程序中,参数 pb 指向的是 B 类对象,pd1 的值不为0,而 pd2 的值为 0。C++ 风格完美的解决了上面两个问题。

2023-10-03 22:45:55 787

原创 c++三大概念要分清--重载,隐藏(重定义),覆盖(重写)

如果派生类的函数与基类的函数同名,并且参数也相同,但是基类函数没有 virtual 关键字,此时基类的函数才被隐藏。如果派生类的函数与基类的函数同名,但是参数不同,则不论有无 virtual 关键字, 基类的函数都将被隐藏。在调用一个类的成员函数时,编译器会沿着类的继承链逐级地向上查找函数的定义,如果找到了就停止查找了。

2023-10-02 22:43:12 1726

原创 禁用adb install 安装app功能

在android 的产品开发只中,在进行一些定制开发中,对于一些apo需要通过属性来控制禁上安装,adb nstl也不分许安装,所以就典熟悉adb install的安装流程,然后来禁用adb install安装功能,接下来分析下adb 下的安装流程。

2023-10-02 22:05:57 989

原创 解决recovery页面反转的问题

在android 10.0的系统rom定制化开发工作中,在系统中recoverv的页面也是相关重要的一部分,在系统recovery ta升级等功能,都是需要recoverv功能的,在某些产品定制化中在recovery的时候,发现居然旋转了180度,接下来分析下recovery关于屏幕显示方向的相关源码,来修改这个功能。

2023-10-02 21:55:30 658

原创 优雅的写Controller 层代码这样写才可以

但是你要是这样返回给前端,前端妹妹就提刀过来了,当年约定好的状态码,你个负心人说忘就忘?为了跟前端妹妹打好关系,我们通常需要对后端返回的数据进行包装一下,增加一下状态码,状态信息,这样前端妹妹接收到数据就可以根据不同的状态码,判断响应数据状态,是否成功是否异常进行不同的显示。每个系统都会有自己的业务异常,比如库存不能小于0子类的,这种异常并非程序异常,而是业务操作引发的异常,我们也需要进行规范的编排业务异常状态码,并且写一个专门处理的异常类,最后通过刚刚学习过的异常拦截统一进行处理,以及打日志。

2023-10-02 10:47:23 266

原创 Redis BitMap+SpringBoot 实现签到与统计功能

在各个项目中,我们都可能需要用到签到和 统计功能。签到后会给用户一些礼品以此来吸引用户持续在该平台进行活跃。签到功能,使用 Redis 中的 BitMap 功能来实现,就是一个非常不错的选择。

2023-10-01 21:23:37 439

原创 [C++基础] 变量、关键字、运算符、位操作篇

定义(definition)为变量分配存储空间,还可以为变量指定初始值。而声明(declaration)是指向程序表明变量的类型和名字。定义也是声明,定义变量的同时也声明了它的类型和名字。一般为了叙述方便,把建立存储空间的声明称定义,而不把建立存储空间的声明称为声明。

2023-09-16 23:38:28 395

原创 在Qt5中SQLite3的使用

SQLite是一个进程内的库,实现了自给自足的、无服务器的、零配置的、事务性的 SQL 数据库引擎。它是一个零配置的数据库,这意味着与其他数据库不一样,您不需要在系统中配置。就像其他数据库,SQLite 引擎不是一个独立的进程,可以按应用程序需求进行静态或动态连接。SQLite 直接访问其存储文件。

2023-09-10 00:36:10 1259

原创 Java 项目防止 SQL 注入的四种方案

SQL注入即是指web应用程序对用户输入数据的合法性没有判断或过滤不严,攻击者可以在web应用程序中事先定义好的查询语句的结尾上添加额外的SQL语句,在管理员不知情的情况下实现非法操作,以此来实现欺骗数据库服务器执行非授权的任意查询,从而进一步得到相应的数据信息。SQL案列这个id从请求参数中获取,若参数被拼接为:此时,数据库的数据都会被清空掉,后果非常严重。

2023-09-07 23:34:12 865

原创 QT项目使用Qss的总结

QSS称为Qt Style Sheets也就是Qt样式表,它是Qt提供的一种用来自定义控件外观的机制。QSS大量参考了CSS的内容,只不过QSS的功能比CSS要弱很多,体现在选择器要少,可以使用的QSS属性也要少很多,并且并不是所有的属性都可以用在Qt的所有控件上。

2023-08-27 23:21:34 2704 1

原创 基于 Nginx 实现一个灰度上线系统

软件开发一般不会上来就是最终版本,而是会一个版本一个版本的迭代。新版本上线前都会经过测试,但就算这样,也不能保证上线了不出问题。所以,在公司里上线新版本代码一般都是通过灰度系统。灰度系统可以把流量划分成多份,一份走新版本代码,一份走老版本代码。而且灰度系统支持设置流量的比例,比如可以把走新版本代码的流量设置为 5%,没啥问题再放到 10%,50%,最后放到 100% 全量。这样可以把出现问题的影响降到最低。不然一上来就全量,万一出了线上问题,那就是大事故。

2023-08-25 23:35:59 264

原创 使用 EasyExcel 实现 百万级数据导入导出

在项目开发中往往需要使用到数据的导入和导出,导入就是从Excel中导入到DB中,而导出就是从DB中查询数据然后使用POI写到Excel上。大数据的导入和导出,相信大家在日常的开发、面试中都会遇到。很多问题只要这一次解决了,总给复盘记录,后期遇到同样的问题就好解决了。好啦,废话不多说开始正文!1.如此大批量数据的导出和导入操作,会占用大量的内存实际开发中还应限制操作人数。2.在做大批量的数据导入时,可以使用jdbc手动开启事务,批量提交。

2023-08-19 16:06:59 2080

原创 Qt 项目架构之----MVC架构

MVC 模式代表 Model-View-Controller(模型-视图-控制器) 模式。这种模式用于应用程序的分层开发。

2023-07-16 01:27:59 1639 1

原创 Qt 常用全局宏定义

用于函数中未使用的变量,告诉编译器这个变量不需要告警。使用 Q_DECL_OVERRIDE 宏后,如果重载的虚函数没有进行任何重载操作,编译器将会报错。用于将一个虚函数定义为最终级别,不能再被重载,或者定义一个类不能再被继承。不需要 signals 关键字就可以将一个函数指定为 singal 函数。不需要 slots 关键字就可以将一个函数指定为 slot 函数。在 pro 文件添加如下代码,软件中所有 QDebug 将失效。表示系统内存中数据使用的字节序;函数所属类和参数信息。

2023-07-09 15:56:19 1551

原创 SpringBoot 实现 PDF 添加水印方案

PDF(Portable Document Format,便携式文档格式)是一种流行的文件格式,它可以在多个操作系统和应用程序中进行查看和打印。在某些情况下,我们需要对 PDF 文件添加水印,以使其更具有辨识度或者保护其版权。本文将介绍如何使用 Spring Boot 来实现 PDF 添加水印的方式。

2023-07-05 09:21:45 5058

原创 CMake 使用教程 (四)

int a = 10;# ifdef DEBUG printf("我是一个程序猿, 我不会爬树...\n");i < NUMBER;++ i) {!!\n");} return 0;# ifdef DEBUG printf("我是一个程序猿, 我不会爬树...\n");i < NUMBER;++ i) {!!\n");} return 0;

2023-07-03 23:10:35 5111

原创 CMake 使用教程 (三)

由于在 Linux 下生成的静态库默认不具有可执行权限,所以在指定静态库生成的路径的时候就不能使用 EXECUTABLE_OUTPUT_PATH 宏了,而应该使用 LIBRARY_OUTPUT_PATH,这个宏对应静态库文件和动态库文件都适用。在程序编写过程中,除了在项目中引入静态库,好多时候也会使用一些标准的或者第三方提供的一些动态库,关于动态库的制作、使用以及在内存中的加载方式和静态库都是不同的,在此不再过多赘述,如有疑惑请参考。对于生成的库文件来说和可执行程序一样都可以指定输出路径。

2023-06-30 23:58:24 5482

原创 CMake 使用教程 (二)

在上面的例子中一共提供了 5 个源文件,假设这五个源文件需要反复被使用,每次都直接将它们的名字写出来确实是很麻烦,此时我们就需要定义一个变量,将文件名对应的字符串存储起来,在 cmake 里定义变量需要使用 set。# SET 指令的语法是: # [ ] 中的参数为可选项 , 如不需要可以不写 SET(VAR [ VALUE ] [ CACHE TYPE DOCSTRING [ FORCE ] ])**VAR:**变量名**VALUE:**变量值。

2023-06-30 16:58:18 5503

原创 CMake 使用教程 (一)

CMake 是一个项目构建工具,并且是跨平台的。关于项目构建我们所熟知的还有 Makefile(通过 make 命令进行项目的构建),大多是 IDE 软件都集成了 make,比如:VS 的 nmake、linux 下的 GNU make、Qt 的 qmake 等,如果自己动手写 makefile,会发现,makefile 通常依赖于当前的编译平台,而且编写 makefile 的工作量比较大,解决依赖关系时也容易出错。

2023-06-30 00:03:59 6203 1

原创 QT多线程之QtConcurrent::run()

调用run()之后,函数不一定会被立即执行,如果有多个run()被调用,函数的调用顺序不一定是run()的调用顺序,这些都和线程的调度有关系。run(function) 实际上等价于run(QThreadPool::globalInstance(),function)如果只是简单的想在其他线程中调用某个函数,不需要复杂的数据同步,那么QtConcurrent::run()相比其他实现多线程的方式绝对是不二之选。

2023-06-29 00:08:41 7039

原创 Qt 中线程池的使用

在 Qt 中使用线程池需要先创建任务,添加到线程池中的每一个任务都需要是一个 QRunnable 类型,因此在程序中需要创建子类继承 QRunnable 这个类,然后重写 run() 方法,在这个函数中编写要在线程池中执行的任务,并将这个子类对象传递给线程池,这样任务就可以被线程池中的某个工作的线程处理掉了。得到线程池对象之后,调用 start() 方法就可以将一个任务添加到线程池中,这个任务就可以被线程池内部的线程池处理掉了,使用线程池比自己创建线程的这种多种多线程方式更加简单和易于维护。

2023-06-28 18:26:08 8179

原创 Qt中多线程的使用

在进行桌面应用程序开发的时候, 假设应用程序在某些情况下需要处理比较复杂的逻辑, 如果只有一个线程去处理,就会导致窗口卡顿,无法处理用户的相关操作。这种情况下就需要使用多线程,其中一个线程处理窗口事件,其他线程进行逻辑运算,多个线程各司其职,不仅可以提高用户体验还可以提升程序的执行效率。默认的线程在Qt中称之为窗口线程,也叫主线程,负责窗口事件处理或者窗口控件数据的更新子线程负责后台的业务逻辑处理,子线程中不能对窗口对象做任何操作,这些事情需要交给窗口线程处理。

2023-06-26 23:59:24 8025

原创 Qt 在Windows下设置Wifi连接和有线连接

【代码】Qt 在Windows下设置Wifi连接和有线连接。

2023-06-23 23:30:51 8966

原创 Qt 发送带结构体数据的信号

因为跨线程时,当发送方信号发出时,此时接受对象所在的线程未取得控制权,所以需要发送方需要将信号放在信号队列中储存发送的参数,QT就会去构造对象,而我们定义的是自定义类型,所以需要使用qRegisterMetaType()来注册,告诉QT怎么去构造对象.

2023-06-23 18:51:22 8097

原创 Qt 实现应用程序单实例

但有一个致命缺陷:共享内存(QSharedMemory)实现的单程序运行,当运行环境是UNIX时,并且程序不幸崩溃,会导致共享内存无法释放,从而无法重新运行程序!使用共享内存,当第二个进程启动时,判断内存区数据是否建立,如有,则退出;这种方式有弊端,在程序发生崩溃时,未及时清除共享区数据,导致程序不能正常启动。在程序运行的时候就在目录下创建一个文件,当程序运行时就判断这个文件是否存在,如果存在说明程序已经在运行。使Qt应用程序能够单实例运行的典型实现方法是使用共享内存实现。该方法实现简单,代码简洁。

2023-06-23 17:05:40 8762

原创 Qt 信号和槽

信号槽是 Qt 框架引以为豪的机制之一。所谓信号槽,实际就是观察者模式。当某个事件发生之后,比如,按钮检测到自己被点击了一下,它就会发出一个信号(signal)。这种发出是没有目的的,类似广播。如果有对象对这个信号感兴趣,它就会使用连接(connect)函数,意思是,将想要处理的信号和自己的一个函数(称为槽(slot))绑定来处理这个信号。也就是说,当信号发出时,被连接的槽函数会自动被回调。槽的本质是类的成员函数,其参数可以是任意类型的。和普通C++成员函数几乎没有区别,它可以是虚函数;也可以被重载;

2023-06-22 22:35:42 10416

原创 Qt键盘事件

QKeyEvent 类用来描述一个键盘事件。当键盘按键被按下或者被释放时,键盘事件便会被发送给拥有键盘输人焦点的部件。QKeyEvent 的 key() 函数可以获取具体的按键,对于 Qt 中给定的所有按键,可以在帮助中查看 Qt: :Key 关键字。需要特别说明的是,回车键在这里是 Qt::Key_Return;

2023-06-19 23:19:19 11126

原创 Qt 定时器与定时事件

对于一个 QObject 的子类,只需要使用 int QObject::startTimer ( int interval) 函数来开启一个定时器,这个函数需要输人一个以毫秒为单位的整数作为参数来表明设定的时间,它返回一个整型编号来代表这个定时器。这里在构造函数中开启了一个 1 秒的定时器,当它溢出时就会发射 timeout() 信号,这时就会执行我们的定时器溢出处理函数。使用 QTimerEvent 的 timerId() 函数来获取定时器的编号,然后判断是哪一个定时器并分别进行不同的操作。

2023-06-18 00:53:37 11148

原创 Qt下存储读写应用程序设置的三种方法

List item用户对应用程序经常有这样的要求:要求它能记住它的settings,比如窗口大小、位置和密码等等。使用注册表;使用配置文件(.ini);使用自定义文件(例如.txt)。/*****************将设置的锁屏时间数值写入文本中*****************/ //读取文本 QFile file(config . txt);while(!

2023-06-18 00:30:29 10515

原创 Qt 多语言实现

Qt Linguist 提供了一套加速应用程序翻译和国际化的工具。Qt 使用单一的源码树和单一的应用程序二进制包就可同时支持多个语言和书写系统。使用 QTranslator 来加载生成的 qm 文件,就可以让程序显示指定的语言。// 国际化翻译 QString language = "CH";// 默认为中文,后期可以使用ini方式保存语言选项 QTranslator translator;对用户可见的文本信息全部使用 tr() 进行封装提供用户可以用来切换语言的一种方法。

2023-06-14 23:00:01 11995

原创 QT实现 WebsocketServer端与WebsocketClient 端通信

1、该示例代码简单实现了webSocketServer的创建。但是并没有用到多线程的技术,所以对并发处理不不适合。2、本示例对数据处理,和错误事件并没有很好的解析,这需要后续实现。

2023-06-03 21:46:03 21311 2

20个常见的项目经理面试问题与答案详细分析

当你准备项目经理职位面试时,深入了解并准备应对可能出现的问题至关重要。项目经理的角色对于任何组织都至关重要,因此用人单位通常会进行严格的面试来确保他们选择了最合适的候选人。在本文中,我们将详细分析20个常见的项目经理面试问题与答案,以帮助你在面试中脱颖而出。

2024-03-01

使用C++实现 QT实现颜色选择器

QT是一个跨平台的C++图形用户界面应用程序开发框架,可以用于创建各种类型的应用程序,包括颜色选择器。 要实现一个颜色选择器,可以使用QT中提供的QColorDialog类。该类提供了一个对话框,允许用户选择颜色。可以通过调用其静态函数getColor()来打开颜色选择对话框并获取所选的颜色。

2023-12-13

Mysql 3.7 在linux centos 下的安装

在CentOS上安装MySQL可以按照以下步骤进行: 更新系统软件包列表: sudo yum update 安装MySQL的存储库,您可以使用官方的MySQL Yum Repository或Remi存储库。 官方的MySQL Yum Repository: sudo yum localinstall https://dev.mysql.com/get/mysql80-community-release-el7-3.noarch.rpm Remi存储库: sudo yum localinstall https://rpms.remirepo.net/enterprise/remi-release-7.rpm 安装MySQL服务器: sudo yum install mysql-server 启动MySQL服务: sudo systemctl start mysqld 配置MySQL服务开机启动: sudo systemctl enable mysqld 运行MySQL安全性脚本以提高安全性: sudo mysql_secure_installation 在运行脚本期间,您将被提示设置M

2023-12-12

Spring Boot 微服务开发基础框架

包含的服务如下: Euraka注册中心集群 Zuul网关集群 各模块微服务集群 Nginx实现负载均衡 Spring Cloud Config 统一配置中心 Monitor微服务监控

2023-12-11

工作5-10年简历模板请大家借鉴

拥有7年JAVA开发经验的专业人士,熟悉JAVA技术栈和开发工具。我具备良好的编程能力和解决问题的能力,并且能够快速适应新的项目和团队。我在过去的项目中,负责开发和维护JAVA应用程序,并且参与了系统设计和数据库优化等工作。我有很好的团队合作能力和沟通能力,能够与不同的团队成员高效协作。我对新技术和新领域有强烈的兴趣,积极学习和探索,不断提升自己的技术水平。我期待能够在您的团队中发挥我的技术专长,并为项目的成功做出贡献

2023-12-11

三年工作经验优秀Java 服务端简历模板

熟练掌握JAVA编程语言和相关技术栈,能够独立完成项目开发和维护工作。具备良好的团队合作能力和沟通能力,能够快速适应不同的工作环境和项目需求。我对技术的热情和追求使我能够不断学习和提升自己,希望能够为贵公司的发展贡献自己的力量

2023-12-11

QPushButtonDemo.zip

QPushButton 是实际开发中最常使用的一种按钮,本示例主要实现设置按钮菜单和鼠标悬浮弹出

2023-03-20

QTableViewDemo1.zip

表格视图控件 QTableView,需要和 QStandardItemModel 配套使用,这套框架是基于 MVC 设计模式设计的,M(Model) 是 QStandardItemModel 数据模型不能单独显示出来。V(view) 是指 QTableView 视图,要来显示数据模型,C(controllor) 控制在 Qt 中被弱化,与 View 合并到一起。 使用时需要包含#include <QTableView>和#include <QStandardItemModel>,创建一个QTableView对象和QStandardItemModel并使用QTableView的setModel()函数将视图和模型对象进行绑定。

2023-03-08

ListwidgetDeno.zip

Qt 中用于项(Item)处理的组件有两类,一类是 Item Views,包括 QListView、QTreeView、 QTableView、QColumnView 等;另一类是 Item Widgets,包括 QListWidget、QTreeWidget 和 QTable Widget。QListWidget其实是QListView的遍历类,QListView 是基于模型/视图(Model/View)结构,视图(View)与模型数据(Model Data)关联实现数据的显示和编辑;而QListWidget 可直接对每一项直接操作,所以对于一些简单的界面显示,可采用QListWidget ,如果对于一些复杂的显示,实现数据和界面显示分离,可采用QListView 。

2023-03-06

TabWidget.zip

QTabWidget 为选项卡小部件,提供一个选项卡栏(参见 QTabBar)和一个“页面区域”,用于显示与每个选项卡相关的页面,demo

2023-03-02

SwitchWidget.zip

在我们开发场景应用中会经常遇到,要求能够动态分屏,从一分屏到二分屏、三分屏、四分屏、五分屏、六分屏,可能会更多。

2023-03-01

RightMenu.zip

有时我们希望在窗口中右键弹出菜单,这里来介绍一下QT中怎么实现.

2023-03-01

QT 栅格布局使用demo

QT 栅格布局使用demo,介绍了栅格布局的基本方法和基本函数等。

2023-02-28

Qt 垂直布局 (QVBoxLayout)

Qt 垂直布局 (QVBoxLayout),通过不同的方式来演示,方法的使用,欢迎各位下载。

2023-02-27

QT 界面水平布局demo

QT 界面水平布局demo,只是从最基础水平布局实现,是通过纯代码实现,没有使用拖拽实现。

2023-02-27

2019省市区街道4级MySQL数据.zip

2019年比较全的中国 省、市、区街道的资源,希望对你有用。

2020-07-30

空空如也

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

TA关注的人

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