QT
GoKu~
学无止境.
展开
-
lib库接口设计的注意事项
综上所述,设计一个优秀的库需要综合考虑功能性、性能、安全性、可靠性和用户友好性等多个方面,以确保库能够满足用户的需求并具备良好的使用体验。- 良好的文档:提供详细的文档,包括函数用途、参数、返回值和示例,以便用户能快速上手和理解库的功能。- 平台无关性:考虑库在不同操作系统和硬件平台上的可移植性,避免使用平台特定的功能和API。- 健壮性:处理可能的错误和异常情况,提供良好的错误消息和反馈,以便用户能够诊断和解决问题。- 版本控制:采用适当的版本控制策略,管理库的更新和发布,确保向后兼容性和升级路径清晰。原创 2024-07-11 15:49:33 · 209 阅读 · 0 评论 -
QT XML操作实例
QT XML操作实例原创 2022-06-04 17:14:39 · 555 阅读 · 0 评论 -
QT 文件读写及信息打印
QT 文件读写及信息打印原创 2022-06-03 16:48:34 · 676 阅读 · 0 评论 -
QT 简单操作数据库实例
描述:通过编写界面窗口,对数据库进行增删改查一系列操作。#ifndef WIDGET_H#define WIDGET_H#include <QWidget>#include <QSqlTableModel>QT_BEGIN_NAMESPACEnamespace Ui { class Widget; }QT_END_NAMESPACEclass Widget : public QWidget{ Q_OBJECTpublic: Widget原创 2022-05-02 18:20:32 · 1305 阅读 · 0 评论 -
QT C++ model 的使用实例
描述:在QML中,当需要少量数据时,QML中直接定义模型时非常方便。当数据较为复杂或者想在c++里操纵数据时,可以在C++中自定义自己的Model并在qml中展示数据,这样会更加稳定可靠而且避免卡顿现象。main.cpp#include <QGuiApplication>#include <QQmlApplicationEngine>#include "MyListModel.h"#include <QQmlContext>int main(in原创 2022-04-29 21:39:50 · 1178 阅读 · 0 评论 -
QT qml中的Canvas画布使用例子
描述:实现按钮点击自动填充整个进度条或者随时间逐步填充,填充过程中不会出现超出的问题,类似于手机的亮度调节。import QtQuick 2.12import QtQuick.Window 2.2import QtQml 2.12import QtQuick.Controls 2.12Window { id:_widget visible: true width: 1280 height: 720 property int num: 50原创 2022-04-26 21:41:22 · 878 阅读 · 0 评论 -
QT多线程应用实例二(方法3)
描述:使用qt自带线程池方法处理任务,提高资源利用率。1,修改继承的父类,将线程放到线程池中,去处理到来的任务。界面:#ifndef WIDGET_H#define WIDGET_H#include <QWidget>QT_BEGIN_NAMESPACEnamespace Ui { class Widget; }QT_END_NAMESPACEclass Widget : public QWidget{ Q_OBJECTpublic: W..原创 2022-04-22 22:12:04 · 425 阅读 · 0 评论 -
QT多线程应用实例二(方法 2)
在创建派生类对象,构造函数的执行顺序()正确答案: AA 基类构造函数,派生类对象成员构造函数,派生类本身的构造函数B 派生类本身的构造函数,基类构造函数,对象成员构造函数C 基类构造函数,派生类本身的构造函数,派生类对象成员构造函数D 对象成员构造函数,基类构造函数,派生类本身的构造函数对象创建时代码的加载顺序为:静态代码 --> 非静态代码 --> 构造方法。若继承了父类,则加载顺序为:父类的静态的代码 --> 子类的静态的代码 --> 父类内部非静态代原创 2022-04-22 21:09:18 · 470 阅读 · 0 评论 -
Qt 多线程应用实例二(方法 1)
描述:创建三个线程,一个产生随机数,一个调用冒泡算法对随机数进行排序,一个调用快速排序算法排序并输出结果及打印三个线程处理任务的各自耗时时间。Widget(h/cpp):#ifndef WIDGET_H#define WIDGET_H#include <QWidget>QT_BEGIN_NAMESPACEnamespace Ui { class Widget; }QT_END_NAMESPACEclass Widget : public QWidget{ Q原创 2022-04-22 16:32:35 · 1126 阅读 · 0 评论 -
QT 多线程使用简单实例
操作:创建多个线程对数据进行排序处理,重写Run方法界面:(h/cpp)#ifndef THREADDLG_H#define THREADDLG_H#include <QDialog>#include <QPushButton>#include "workthread.h"#define MAXSIZE 5 //MAXSIZE宏定义了线程的数目class ThreadDlg : public QDialog{ Q_OBJECTp.原创 2022-04-22 10:18:04 · 1474 阅读 · 1 评论 -
QT 事件过滤器实例
作用:主要可以拦截事件,过滤掉多个相同事件响应,避免处理冗余。事件过滤器的操作: 首先给需要添加事件过滤器的部件注册监听对象;对象名->installEventFilter(true); 重写eventFilter(QObject *obj, QEvent *event)函数进行处理。 头文件:#ifndef EVENTFILTER_H#define EVENTFILTER_H#include <QDialog>#include <QLabe原创 2022-04-21 17:08:06 · 847 阅读 · 0 评论 -
QT布局管理复习
头文件:#ifndef WIDGET_H#define WIDGET_H#include <QWidget>#include <QLayout>#include <QLineEdit>#include <QPushButton>#include <QCheckBox>#include <QLabel>#include <QVBoxLayout>#include <QHBoxLayout>.原创 2022-04-20 17:31:14 · 388 阅读 · 0 评论 -
QT AxObject库的简单操作
头文件#ifndef DOOFFICE_H#define DOOFFICE_H#include <QMainWindow>#include <QAxObject>#include <QMessageBox>QT_BEGIN_NAMESPACEnamespace Ui { class doOffice; }QT_END_NAMESPACEclass doOffice : public QMainWindow{ Q_OBJECTpu.原创 2022-04-18 18:27:02 · 1124 阅读 · 0 评论 -
QTabelWidget实例
1 什么是回调软件模块之间总是存在着一定的接口,从调用方式上,可以把他们分为三类:同步调用、回调和异步调用。同步调用是一种阻塞式调用,调用方要等待对方执行完毕才返回,它是一种单向调用;回调是一种双向调用模式,也就是说,被调用方在接口被调用时也会调用对方的接口;异步调用是一种类似消息或事件的机制,不过它的调用方向刚好相反,接口的服务在收到某种讯息或发生某种事件时,会主动通知客户方(即调用客户方的接口)。回调和异步调用的关系非常紧密,通常我们使用回调来实现异步消息的注册,通过异步调用来实现消息的通知。同步.原创 2022-04-17 21:37:46 · 388 阅读 · 0 评论 -
第 3 章 语言运行期的强化
3.1 Lambda 表达式Lambda 表达式是现代 C++ 中最重要的特性之一,而 Lambda 表达式,实际上就是提供了一个类似匿名函数的特性, 而匿名函数则是在需要一个函数,但是又不想费力去命名一个函数的情况下去使用的。这样的场景其实有很多很多, 所以匿名函数几乎是现代编程语言的标配。基础Lambda 表达式的基本语法如下: [捕获列表](参数列表) mutable(可选) 异常属性 -> 返回类型 {// 函数体} 上面的语法规则除了[捕获列表...原创 2022-02-21 18:16:06 · 81 阅读 · 0 评论 -
c++11 noexcept
9.2 noexcept 的修饰和操作C++ 相比于 C 的一大优势就在于 C++ 本身就定义了一套完整的异常处理机制。 然而在 C++11 之前,几乎没有人去使用在函数名后书写异常声明表达式, 从 C++11 开始,这套机制被弃用,所以我们不去讨论也不去介绍以前这套机制是如何工作如何使用, 你更不应该主动去了解它。C++11 将异常的声明简化为以下两种情况:函数可能抛出任何异常 函数不能抛出任何异常并使用noexcept对这两种行为进行限制,例如: void may_thr..原创 2022-02-19 13:37:49 · 244 阅读 · 0 评论 -
QML---槽函数(添加 js文件)
import QtQuick 2.9import QtQuick.Window 2.2import QtQuick.Controls 2.2import './myJs.js' as Js //导入js文件Window { visible: true width: 640 height: 480 title: qsTr("myJs") Button{ text: "click" onClicked: { .原创 2021-12-12 11:16:22 · 369 阅读 · 0 评论 -
QT QML学习---槽函数
import QtQuick 2.9import QtQuick.Window 2.2import QtQuick.Controls 2.2Window { visible: true width: 640 height: 480 title: qsTr("Hello World") Button{ text: "click" function add(a, b){ return a+b; .原创 2021-12-12 10:18:49 · 329 阅读 · 0 评论 -
qml的focus问题
这是应用中令人头痛的焦点问题。如果没有焦点项,键事件就不能被处理,它就不能在一个屏幕中做任何事情——应用程序会挂起!! 基本上,qml中的基本元素是“item”。item有两个属性,焦点和活动焦点。activeFocus是只读的,当将焦点设置为一个项目或不设置焦点时,可以使用focus属性。注意,当将当前元素的属性焦点设置为false时,系统不能将焦点设置为其他项(哈哈,现在应用程序有机会挂起了!!)。通常我们只调用element。专注= true。此外,有一个有用的方法可以直接设置...原创 2021-11-30 17:05:44 · 5567 阅读 · 0 评论 -
QPointer简介
使用qt 很久,只知道QPointer,但是在项目中很少用到,说到底还是没有对于QPointer了解不够透彻,所以在使用过程中才没有去使用,好吧,就是那种,不懂就不用,反正其他的方式能够满足需求,但是这不是我们想要的,它的出现必然有它的原因,肯定有很多我所不了解的优点,今天来重新学习一下,let's go! QPointer类是一个模板类,是为了QObject提供的一种监视指针。先来看一下普通C++与QPointer指针声明方式有什么不同。 普通C++指针声明方式: T* p1;.转载 2021-09-20 23:11:19 · 2896 阅读 · 1 评论 -
QT内存泄露问题
原文链接:Qt浅谈之一:内存泄露(总结)_乌托邦-CSDN博客_qt内存管理机制关于堆栈不清楚的可以参考这篇文章:内存分配及堆与栈的区别_Keep Moving~-CSDN博客在自己项目中,发现很多按键参数new之后并没有进行delete,之前问了同事关于此问题,回答是我们硬件内存足够大,不用担心内存泄露问题,看了博主这一篇文章,终于大彻大悟。一、简介Qt内存管理机制:Qt 在内部能够维护对象的层次结构。对于可视元素,这种层次结构就是子组件与父组件的关系;对于非可视元素,则是一个对象与另一转载 2021-09-20 15:42:53 · 2442 阅读 · 2 评论 -
Qwidgets、QMainWindow、QDialog有什么区别?
文章目录前言特点分述QMainWindowQWidgeQDialog区别总结选用原则参考和引用前言熟悉Qt的同学都知道,QMainWindow、QWidget、QDialog是Qt中常用的窗口,我们在新建Qt Widgets项目进行类信息选择时会碰到它们,那么他们之间到底有什么区别和联系呢?QWidget继承于QObject和QPaintDevice,QDialog和QMainWindow则继承于QWidget,QDialog、QMainWindow两者之间没有直接关系。本文主要整理转载 2021-09-13 23:07:42 · 298 阅读 · 0 评论