Fork me on GitHub
摘要: 项目说明 周末想起一个项目需要使用agg与8bits的BMP进行绘制,因agg不支持8bits BMP进行绘制,故自己实现了一个基于agg+rgb88进行绘制,绘制结果转为8bits的BMP. 从24位BMP图像到8位BMP图像的转换过程。转换后的图像文件将只使用256种颜色,但仍保留了原始图像的基 阅读全文
posted @ 2024-04-06 18:56 yzhu798 阅读(211) 评论(0) 推荐(0) 编辑

支持

  • 单选
  • ctrl多选
  • shift多选

import QtQuick 2.15
import QtQml.Models 2.15
import QtQuick.Window 2.15
import QtQuick.Layouts 1.15
import QtQuick.Controls 2.15
import QtQuick.Controls.Material 2.15


ApplicationWindow {
    id: root
    visible: true
    minimumWidth: 200
    minimumHeight: 200
    property int lastIndex: 0
    Item {
        width: 200; height: 200
        DelegateModel {
            id: visualModel

            model: ListModel {
                ListElement { name: "Apple" }
                ListElement { name: "Orange1" }
                ListElement { name: "Apple1" }
                ListElement { name: "Orange2" }
                ListElement { name: "Apple2" }
                ListElement { name: "Orange3" }
                ListElement { name: "Apple3" }
                ListElement { name: "Orange4" }
                ListElement { name: "Apple4" }
            }

            groups: [
                DelegateModelGroup {
                    id : delegateModelGroup
                    name: "mulitSelect"
                    function removeAll(){
                        var count = delegateModelGroup.count;
                        if(count !== 0){
                            delegateModelGroup.remove(0,count);
                        }
                    }
                }
            ]
            delegate: Rectangle {
                id: item
                height: 25
                width: 200
                color: item.DelegateModel.inMulitSelect ? 'red' : '#607D8B'
                Text {
                    text: name
                }
                MouseArea {
                    anchors.fill: parent
                    acceptedButtons: Qt.LeftButton | Qt.RightButton
                    onClicked:{
                        if(mouse.button === Qt.RightButton){
                            //copyPasteMenu.popup()
                            console.log("RightButton")
                        }
                        if(mouse.button === Qt.LeftButton){
                            switch(mouse.modifiers){
                            case Qt.ControlModifier :
                                item.DelegateModel.inMulitSelect = !item.DelegateModel.inMulitSelect
                                break;
                            case Qt.ShiftModifier :
                                delegateModelGroup.removeAll();
                                var start = lastIndex <= index? lastIndex: index;
                                var end = lastIndex >= index? lastIndex: index;
                                for(var i = start;i <= end;i++){
                                    visualModel.items.get(i).inMulitSelect = true
                                }
                                break;
                            default:
                                delegateModelGroup.removeAll();
                                item.DelegateModel.inMulitSelect = true
                                lastIndex = index
                                break;
                            }
                        }
                    }
                }
            }
        }
        ListView {
            anchors.fill: parent
            model: visualModel
        }
    }
}

posted @ 2022-01-05 18:04 yzhu798 阅读(383) 评论(0) 推荐(0) 编辑
摘要: 换sources vi /etc/apt/sources.list deb https://mirrors.aliyun.com/debian/ bullseye main non-free contrib deb-src https://mirrors.aliyun.com/debian/ bul 阅读全文
posted @ 2021-12-19 17:20 yzhu798 阅读(100) 评论(0) 推荐(0) 编辑
摘要: 线程管理 thread管理基础 thread_join_detach.cpp 线程启动后,销毁前要调用join或detach,否则std::thread的析构函数会调用std::terminate终止程序. 线程都有入口函数,入口main/foo 函数. 线程会在函数结束时完会退出. 使用join即 阅读全文
posted @ 2021-12-17 17:52 yzhu798 阅读(44) 评论(0) 推荐(0) 编辑
摘要: Dockerfile FROM gcc:latest MAINTAINER Pawel Szczur <public at pawelsz.eu> LABEL description="A linux C++ build environment." RUN apt-get update && apt 阅读全文
posted @ 2021-11-18 17:49 yzhu798 阅读(33) 评论(0) 推荐(0) 编辑
摘要: TODO: 有时间需要学下yocto这套嵌入式编译框架; 是到了新公司说,能够把多个已有的项目迁移到honeywell home这套开发架构和流程,自动编译发布出toolchain,sdk,用于全球多团队一起并发开发,自动化单元测试,自动sonarqube扫描漏洞,自动发布,差异最小ota 固件,j 阅读全文
posted @ 2020-12-06 16:16 yzhu798 阅读(85) 评论(0) 推荐(0) 编辑
摘要: 慎终如始 则无败事 多思考 沟通能力:结论对情况下,也要深刻体会,把技术步骤分解,提高沟通效率。 总结能力:对技术、架构、或者业务逻辑的清晰认识。 学习能力:责任不同,压力不同,影响不同,能力越大,影响越大,越需要学习。 长远目光:不要执着于底层的术,忙碌且蹉跎岁月。 领导能力:能力越大,影响越大, 阅读全文
posted @ 2020-12-06 14:52 yzhu798 阅读(244) 评论(0) 推荐(0) 编辑
摘要: 对象模型Object Model class和class之间的关系 十六、复合&继承关系下的构造和析构 (1)Inheritance下的构造和析构 ,从内存的角度去分析,子类包含父类的成分和特性,即变量和函数 (2)composition下的构造和析构 (3)Inheritance+composit 阅读全文
posted @ 2020-11-23 23:24 yzhu798 阅读(399) 评论(0) 推荐(0) 编辑
摘要: ref:漫画算法+ github/huihui 第1章、算法概述 1.1 算法复杂度 时间复杂度按照从低到高的顺序,包括O(1)、O(logn)、O(n)、O(nlogn)、O(n2)等。 空间复杂度按照从低到高的顺序,包括O(1)、O(n)、O(n2)等。其中递归算法的空间复杂度和递归深度成正比。 阅读全文
posted @ 2020-11-23 23:20 yzhu798 阅读(291) 评论(0) 推荐(0) 编辑
摘要: C++ 常用设计模式 背景 设计模式是来源于工业实践的重要开发经验,它实际上是面向对象的数据结构,掌握设计模式是掌握面向对象设计的根本要求。 原文:《C++ 常用设计模式》 (已经根据比较好的学习顺序进行了排序) 1、工厂模式(Factory) 在工厂模式中,我们在创建对象时不会对客户端暴露创建逻辑 阅读全文
posted @ 2020-11-04 22:01 yzhu798 阅读(334) 评论(0) 推荐(0) 编辑
点击右上角即可分享
微信分享提示