- 博客(62)
- 收藏
- 关注
原创 【QML COOK】- 014-自定义Button方式二
上一篇介绍了用Qt Quick的基本元素自定义Button,本篇介绍第二种方式。Qt Quick提供了很多现成的控件,在包Qt.Quick.Controls中,我们可以直接利用这些控件进行自定义而不用重复造轮子。下面以RadioButton为例,同在一个父类的RadioButton只有一个可以被选中,当然这个功能我们自己也能实现,但直接使用Qt.Quick.Controls定义好的RadioButton显然更为方便。
2024-02-28 21:37:15 519
原创 【QML COOK】- 012-在QML中使用OpenGL渲染
三、在openglitem中链接QQuickWindow::beforeSynchronizing信号,注意连接方式为Qt::DirectConnection。一、首先在main函数中,调用QQuickWindow::setGraphicsApi(QSGRendererInterface::OpenGL);四、在QQuickWindow::beforeSynchronizing信号的槽函数sync中将窗口的宽高值传给OpenGL渲染类。五、定义openglrenderer类,该类是OpenGL的渲染类。
2024-01-23 21:48:41 1006
原创 【QML COOK】- 011-动画插值设置
代码中创建了5个Rectangle,给x属性设置了不同的easing.type,运行后可以观察不同插值的效果。QML中内置了一些动画插值类型。不同的插值类型可以通过Animation的easing属性设置。1. 创建工程在Main.qml,中编写如下代码。
2024-01-23 21:15:32 426
原创 【QML COOK】- 010-动态创建组件
上节介绍了Component的概念,本节介绍一下如何使用javascript动态创建对象。1. 创建工程,新建一个MyComponent.qml的qml。连续点击鼠标红框会出现和消失。2. 编辑main.qml。它很简单就是一个红色框。
2024-01-17 04:50:11 492
原创 【QML COOK】- 008-自定义属性
前面介绍了用C++定义QML类型,通常在使用Qt Quick开发项目时,C++定义后端数据类型,前端则完全使用QML实现。而QML类型或Qt Quick中的类型时不免需要为对象增加一些属性,本篇就来介绍如何自定义属性。在窗口中点击鼠标便可以在Qt Creator中看到如下Log了。1. 创建项目,并编辑Main.qml。
2024-01-11 20:52:13 1038
原创 【QML COOK】- 004-添加动画
NumberAnimation是animation的一种,专门处理值类型是实数类型的属性。rotation的值就是实数,所以可用为它添加一个NumberAnimation对象。它的作用是在指定的属性上添加animation,并且在指定属性值改变时执行这个animation。NumberAnimation的duration值指定了动画执行的时间,单位是ms。在QML中直接跟{}的都可以看作是一个对象,比如以上代码的Image、MouseArea、Behavior。1. 编辑main.qml。
2024-01-09 04:46:09 348
原创 【QML COOK】- 001-添加资源文件
在“Images.qrc”上右键点击->Open in Editor。我放在【Resources/Images】下,你随意。出现名为“Images.qrc”的qrc类型文件。选择 Qt->Qt Resource File。我填“Images”你随意。点击添加文件,选择放置好的资源文件。2. 将资源文件放置在工程目录中。文件->New File...1. 下图为要添加的资源文件。填写前缀我使用“/”你随意。3. 添加qrc类型文件。
2024-01-08 21:38:50 504
原创 DaoWiki(基于Django)开发笔记 20231114-阿里云mysql外部访问
打开后【database】->【connect】填写参数后链接。Default Schema填数据名。在阿里云安全组配置允许【3306】端口访问。【3306】是mysql服务端口。
2023-11-14 03:59:22 779
原创 003-编译、加载、卸载
KERNELPATH ?= /lib/modules/5.8.0-63-generic/buildhellokernel-objs := HelloKernelModule.oobj-m := hellokernel.oall: ${MAKE} -C ${KERNELPATH} M=${PWD} modules;clean: ${MAKE} -C ${KERNELPATH} M=${PWD} clean; rm -f *.koeniac@eniac-ThinkPad-E480:~/T
2021-10-25 09:44:57 151
原创 002-第一个内核模块的代码
什么是内核模块内核模块可以简单理解为运行在内核空间的程序。与用户空间的应用程序一样其也有固定的模式。第一个内核模块先来看一个标准的应用程序HelloWorld.c#include "stdio.h"int main(int argc, char** argv){ printf("Hello World!");}以上代码大家一定不会陌生。还记得第一次学习这个程序时的心情么,大多数人可能都不理解它为什么要这么写,只是记住了它的格式而已。那么对于内核模块也是一样的,最开始我们不需要理解那
2021-10-23 18:16:41 187
原创 001-从LINUX系统开发转为内核开发的思想转变
前言应用程序开发者(系统开发)和内核开发者对于程序的理解会稍微有些不同,因此在转变的过程中需要先从思想上作一些转变。首先应该先了解一下两者各自的特点,以便理解两者的不同。工作思路上的差异系统开发:理解业务抽象业务逻辑和对象设计程序流程和算法编码:基本上业务逻辑代码需要从0开始构建内核驱动开发理解硬件原理图(硬件的数量和连接方式)必要时需要了解芯片手册和各种bus协议(如USB协议,I2C协议)编码:基本上都有可以参照的代码,基本上都是通过移植和修改来构建两者在工作思路
2021-10-07 11:17:03 170
原创 000-初步认知嵌入式计算机体系架构
硬件结构从本质上讲,目前无论是PC还是嵌入式开发板,所有计算机无外乎是两种硬件架构。一种是冯诺依曼架构体系、一种是哈佛架构体系。这两种架构体系对于仅仅从事驱动开发的嵌入式开发者是透明无感的,因此不需要掌握它俩的区别,感兴趣的话可以自行在网上搜索相关内容。但如论是那种架构体系计算机都是由以下基本硬件构成的:cpu、memory、storage、bus、peripheral。 它们之间的关系如下图:...
2021-10-07 09:55:09 498
原创 简单理解二极管
目的网上介绍二极管的资料很多,但在我看来过于复杂,让人难以理解。今天介绍一个不太准确但是简单的方法理解二极管。进而为理解三极管作准备。正题思路由自由电子考虑导通性。导电的必要条件导电的必要条件是要有自由移动的电子。导电方向电流从正极移动到负极,自由电子是从负极流向正极。二极管二极管有两个极,P极(positive),N极(negative)。不管P极和N极使用什么材料作的,只需要记住P极提供正电荷,即不容易失去自由电子;N极提供负电荷,即容易失去自由电子。电路图导电:自由电子
2021-09-29 12:53:12 1421
原创 Docker随笔
目录1. 什么是docker2. docker主要概念2.1 docker虚拟技术相关概念2.1.1 Container2.1.2 Image2.1.3 Docker register2.2 docker软件相关概念2.2.1 Docker daemon2.2.2 Docker Client3. 下载安装1. 什么是dockerdocker是一种虚拟技术或软件,但相对于其他虚拟技术更加轻量化。2. docker主要概念2.1 docker虚拟技术相关概念2.1.1 Container可以理解为是
2021-06-16 15:27:38 135
原创 跟着做的C++20教程-实例33-Lambda的捕获子句(Capture Clause)
目录实例概要实例代码实例结果实例解释实例扩展实例概要介绍lambda表达式中的捕获子句。[](){}是Lambda表达式三个主要部分,其中[]为捕获子句(本实例要介绍的内容);()是参数列表;{}函数体。实例代码int main(int argc, char** argv){ int a = 0; int b = 0; auto capturedByReferennce = [&]() {a = 3; b = 4; }; capturedByReferennce(); st
2021-03-27 21:51:06 778 2
原创 跟着做的C++20教程-实例32-module
目录实例概要实例代码实例解释Visual Studio的设置实例概要介绍C++20模块概念实例代码MyModule.ixxmodule;#include "iostream"export module MyModule;export void MyFunc(){ std::cout << "This is my function" << std::endl;}mian.cppimport MyModule;int main(int argc, cha
2021-03-23 10:53:00 2420 1
原创 跟着做的C++20教程-实例31-explicit
目录实例概要实例代码运行结果实例解释实例概要介绍关键字explicit的作用实例代码#include <iostream>#include <string>class Person{public: /*explicit*/ Person(int age) { m_age = age; } int getAge() { return m_age; }private: int m
2021-03-02 16:40:42 418
原创 跟着做的C++20教程-实例30-public 继承
目录实例概要实例代码运行结果实例解释实例概要介绍public继承时,父类public、private、protected成员的不同表现。实例代码#include <iostream>#include <string>class Person{public: int m_weight { 1 };protected: int m_height{ 2 };private: int m_age{ 3 };public: int g
2021-03-01 16:48:12 206
原创 跟着做的C++20教程-实例29-继承
目录实例概要实例代码运行结果实例解释实例概要继承实例代码#include <iostream>#include <string>class Person{public: std::string m_name; int m_age;};class Employee :public Person{public: std::string m_department;};int main(int argc, char** arg
2021-02-28 07:21:07 313
原创 跟着做的C++20教程-实例28-异常
目录实例概要实例代码运行结果实例解释实例概要异常实例代码#include <iostream>#include <string>void throwException(){ std::cout << "抛出异常前" << std::endl; throw "出现了异常"; std::cout << "抛出异常后" << std::endl;}int main(int argc, ch
2021-02-26 16:46:41 166
原创 跟着做的C++20教程-实例27-移动拷贝构造函数
目录实例概要实例代码运行结果实例解释实例概要介绍移动拷贝构造函数实例代码#include <iostream>#include <string>class MoveCopy{public: char* info = nullptr; MoveCopy(){}; MoveCopy(MoveCopy&& src) noexcept //移动拷贝构造函数 { info = src.info;
2021-02-25 16:32:06 226
原创 跟着做的C++20教程-实例26-深拷贝和浅拷贝
目录实例概要实例代码实例解释实例概要对比浅拷贝和深拷贝实例代码#include <iostream>#include <string>class ShallowCopy{public: char* info = nullptr; size_t infoLength = 0; ShallowCopy(){}; ShallowCopy(const ShallowCopy& src) { infoLeng
2021-02-24 15:43:59 248
原创 Fedora虚拟机分辨率
原因vmware-tool的原因创建vmware-tools配置文件cp -v /etc/vmware-tools/tools.conf.example /etc/vmware-tools/tools.conf修改配置文件内容,去除[resolutionKMS]下#enable=true前的#重启vmware-tool服务systemctl restart vmtoolsd...
2021-02-24 08:27:56 461
原创 跟着做的C++20教程-实例24-引用、变量与对象
实例概要对象概念引用与变量的关系,及使用方式实例代码#include <iostream>class Person{public: int m_age; double m_weight; Person(int age, double weight) :m_age{ age }, m_weight{weight} { std::cout << "执行了两个参数的构造函数" << std::endl;
2021-02-22 09:11:57 197
原创 跟着做的C++20教程-实例23-构造函数
目录实例概要实例代码实例解释实例概要构造函数概念实例代码#include <iostream>class Person{public: int m_age; double m_weight; Person():m_age(30),m_weight(75.3) { std::cout << "执行了无参数构造函数" << std::endl; } Person(int age, doub
2021-02-21 06:13:33 281
原创 跟着做的C++20教程-实例22-private
目录实例概要实例代码实例解释实例概要private关键字类方法实例代码#include <iostream>class Myself{public: int age = 32; double weight = 80.00;private: double salary = 0;public: double getSalary() //在声明中定义 { if (salary < 1000.0) { return 1000.0; } e
2021-02-19 05:33:14 516 2
原创 跟着做的C++20教程-实例21-最简单的函数模板
目录实例概要实例代码实例解释实例概要介绍模板概念实例代码#include <iostream>#include <string>template<typename T> void printT(T p1);int main(int argc, char** argv){ int i = 0; double d = 1.3; std::string c = "I am a string"; printT(i); printT(d); p
2021-02-18 05:02:01 272 1
原创 跟着做的C++20教程-实例20-最简单的lambda
目录实例概要实例代码实例解释实例概要最简单的lambda表达式实例代码#include <iostream>#include <string>int main(int argc, char** argv){ auto lambda = [] {std::cout << "I am a lambda" << std::endl; }; lambda(); return 0;}运行结果I am a lambda实例解释
2021-02-17 04:33:40 430
原创 跟着做的C++20教程-实例19-函数指针
目录实例概要实例代码实例解释实例概要函数指针的定义和使用实例代码实例中定义两个函数,一个将所有信息显示在一行,一个将信息显示在多行。对象可以根据自己的需要选择使用哪个函数,实现方式就是函数指针。#include <iostream>#include <string>void printMyInfoInSingleLine(int , double, std::string&);void printMyInfoInMultipleLine(int, doubl
2021-02-16 07:06:20 220
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人