qt-12工具盒(ToolBox)

news2024/9/21 18:36:16

工具盒--ToolBox

  • drawer.h
  • drawer.cpp
  • main.cpp
  • 运行图

drawer.h

#ifndef DRAWER_H
#define DRAWER_H
#include <QWidget>
#include <QToolBox>
#include <QToolButton>
#include <QGroupBox>
#include <QVBoxLayout>

class Drawer : public QToolBox
{
    Q_OBJECT
public:
    Drawer(QWidget* parent = nullptr,Qt::WindowFlags f = Qt::WindowFlags());

private:
    QToolButton* ToolBtn1_1;
    QToolButton* ToolBtn1_2;
    QToolButton* ToolBtn1_3;
    QToolButton* ToolBtn2_1;
    QToolButton* ToolBtn2_2;
    QToolButton* ToolBtn2_3;
};

#endif // DRAWER_H

drawer.cpp

#include "drawer.h"

Drawer::Drawer(QWidget* parent,Qt::WindowFlags f)
    :QToolBox(parent,f)
{
    setWindowTitle(tr("Test QQ"));
    ToolBtn1_1 = new QToolButton;
    ToolBtn1_1->setText(tr("张1"));
    ToolBtn1_1->setIcon(QPixmap("312.ico"));
    ToolBtn1_1->setIconSize(QPixmap("312.ico").size());
    ToolBtn1_1->setAutoRaise(true);
    ToolBtn1_1->setToolButtonStyle(Qt::ToolButtonTextBesideIcon);

    ToolBtn1_2 = new QToolButton;
    ToolBtn1_2->setText(tr("张2"));
    ToolBtn1_2->setIcon(QPixmap("312.png"));
    ToolBtn1_2->setIconSize(QPixmap("312.png").size());
    ToolBtn1_2->setAutoRaise(true);
    ToolBtn1_2->setToolButtonStyle(Qt::ToolButtonTextBesideIcon);

    ToolBtn1_3 = new QToolButton;
    ToolBtn1_3->setText(tr("张3"));
    ToolBtn1_3->setIcon(QPixmap("312.png"));
    ToolBtn1_3->setIconSize(QPixmap("312.png").size());
    ToolBtn1_3->setAutoRaise(true);
    ToolBtn1_3->setToolButtonStyle(Qt::ToolButtonTextBesideIcon);

    QGroupBox* GroupBox1 = new QGroupBox;
    QVBoxLayout* Layout1 = new QVBoxLayout(GroupBox1);
    Layout1->setMargin(2);
    Layout1->setAlignment(Qt::AlignLeft);

    Layout1->addWidget(ToolBtn1_1);
    Layout1->addWidget(ToolBtn1_2);
    Layout1->addWidget(ToolBtn1_3);
    //插入一个占位符
    Layout1->addStretch();

    ToolBtn2_1 = new QToolButton;
    ToolBtn2_1->setText(tr("张6"));
    ToolBtn2_1->setIcon(QPixmap("312.png"));
    ToolBtn2_1->setIconSize(QPixmap("312.png").size());
    ToolBtn2_1->setAutoRaise(true);
    ToolBtn2_1->setToolButtonStyle(Qt::ToolButtonTextBesideIcon);

    ToolBtn2_2 = new QToolButton;
    ToolBtn2_2->setText(tr("张7"));
    ToolBtn2_2->setIcon(QPixmap("312.png"));
    ToolBtn2_2->setIconSize(QPixmap("312.png").size());
    ToolBtn2_2->setAutoRaise(true);
    ToolBtn2_2->setToolButtonStyle(Qt::ToolButtonTextBesideIcon);

    ToolBtn2_3 = new QToolButton;
    ToolBtn2_3->setText(tr("张8"));
    ToolBtn2_3->setIcon(QPixmap("312.png"));
    ToolBtn2_3->setIconSize(QPixmap("312.png").size());
    ToolBtn2_3->setAutoRaise(true);
    ToolBtn2_3->setToolButtonStyle(Qt::ToolButtonTextBesideIcon);

    QGroupBox* GroupBox2 = new QGroupBox;
    QVBoxLayout* Layout2 = new QVBoxLayout(GroupBox2);
    Layout2->setMargin(2);
    Layout2->setAlignment(Qt::AlignHCenter);

    Layout2->addWidget(ToolBtn2_1);
    Layout2->addWidget(ToolBtn2_2);
    Layout2->addWidget(ToolBtn2_3);

    this->addItem((QWidget*)GroupBox1,tr("测试1"));
    this->addItem((QWidget*)GroupBox2,tr("    测试2"));

    this->setItemIcon(0,QPixmap("312.ico"));




}

main.cpp

#include "myqqexample.h"
#include "drawer.h"
#include <QApplication>

int main(int argc, char *argv[])
{
    QApplication a(argc, argv);
   // MyQQExample w;
   // w.show();
    Drawer drawer;
    drawer.show();
    return a.exec();
}

运行图

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2048798.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

机械学习—零基础学习日志(如何理解线性代数5)

零基础为了学人工智能&#xff0c;正在快乐学习&#xff0c;每天都长脑子 特征向量和特征值 我们知道&#xff0c;线性映射&#xff0c;也就是矩阵&#xff0c;其实就是平面的一种变换。 但是在矩阵变换过程中&#xff0c;我们会发现有一个方向上&#xff0c;变化方向会与x的…

Python 函数式编程 内置高阶函数及周边【进阶篇 3】推荐

前面我们已经总结并实践了用python获取到了数据。也介绍了python中http网络请求的几种方式&#xff0c;正在学习python开发语言或者对python3知识点生疏需要回顾的请点这里 &#xff0c;本章主要总结了函数式编程及特点 和 python中内置的高阶函数及周边知识&#xff0c;方便自…

Scout Suite:开源云安全审计工具

Scout Suite 是一个开源、多云安全审计工具&#xff0c;旨在评估云环境的安全态势。 Scout Suite 利用云供应商提供的 API 来收集和整理配置数据&#xff0c;从而更轻松地识别潜在风险。 Scout Suite 无需手动筛选云 Web 控制台上的大量页面&#xff0c;而是会自动生成全面清…

ObjectUtils.nullSafeEquals你真的用对了吗?

目录 引言排查思考 引言 在写代码时&#xff0c;我们通常喜欢使用org.springframework.util.ObjectUtils#nullSafeEquals来比较两个对象是否相等&#xff0c;从而避免使用equals方法在对象为空时导致空指针异常。 最近在写代码时&#xff0c;我试图使用stream流的filter&#…

1.Linux_常识

UNIX、Linux、GNU 1、UNIX UNIX是一个分时操作系统&#xff0c;特点是多用户、多任务 实时操作系统&#xff1a;来了请求就去解决请求 分时操作系统&#xff1a;来了请求先存着&#xff0c;通过调度轮到执行时执行 2、Linux Linux是一个操作系统内核 发行版本&#xff1…

Linux - 常用基础指令和命令

文章目录 1、ifconfig指令2、ssh指令3、ls指令4、pwd命令5、cd 指令6、stat命令7、 touch指令8、mkdir指令9、rmdir指令10、rm指令11、man指令12、cp指令13、mv指令14、cat指令15、more指令16、less指令17、head指令18、tail指令19、时间相关的指令20、cal指令21、find指令22、…

指向派生类的基类指针、强转为 void* 再转为基类指针、此时调用虚函数会发生什么?

指向派生类的基类指针、强转为 void* 再转为基类指针、此时调用虚函数会发生什么&#xff1f; 1、无论指针类型怎么转&#xff0c;类对象内存没有发生任何变化&#xff0c;还是vfptr指向虚函数表&#xff0c;下面是成员变量&#xff0c;这在编译阶段就已经确定好了&#xff1b…

校园失物招领系统pf

TOC springboot337校园失物招领系统pf 绪论 1.1研究背景与意义 信息化管理模式是将行业中的工作流程由人工服务&#xff0c;逐渐转换为使用计算机技术的信息化管理服务。这种管理模式发展迅速&#xff0c;使用起来非常简单容易&#xff0c;用户甚至不用掌握相关的专业知识&…

自动驾驶-机器人-slam-定位面经和面试知识系列09之C++STL面试题(04)

这个博客系列会分为C STL-面经、常考公式推导和SLAM面经面试题等三个系列进行更新&#xff0c;基本涵盖了自己秋招历程被问过的面试内容&#xff08;除了实习和学校项目相关的具体细节&#xff09;。在知乎和牛客&#xff08;某些文章上会附上内推码&#xff09;也会同步更新&a…

鸿蒙(API 12 Beta3版)【HDR Vivid视频录制】 音视频编码

开发者可以调用本模块的Native API接口&#xff0c;实现在视频录制中支持HDR Vivid标准。 视频录制的主要流程是“相机采集 > 编码 > 封装成mp4文件”。 HDR Vivid视频编码 应用创建H265编码器&#xff0c;配置profile(main 10)相机底层包含HDR Vivid的surfacebuffer内…

Airtest 的使用

Airtest 介绍 Airtest Project 是网易游戏推出的一款自动化测试框架&#xff0c;其项目由以下几个部分构成 Airtest : 一个跨平台的&#xff0c;基于图像识别的 UI 自动化测试框架&#xff0c;适用于游戏和 App &#xff0c; 支持 Windows, Android 和 iOS 平台&#xff0c…

蛋白质基础

氨基酸:必需氨基酸 条件必需氨基酸和非必需氨基酸 必需氨基酸:机体需要但自身不能合成&#xff0c;必须从食物中获取的氨基酸。共有八种&#xff0c;对婴儿&#xff0c;组氨酸也是必需氨基酸。 条件必需氨基酸:半胱氨酸和酪氨酸在体内分别由蛋氨酸和苯丙氨酸转变而来。若膳食中…

HTML 列表和容器元素——WEB开发系列10

HTML 提供了多种方式来组织和展示内容&#xff0c;其中包括无序列表、有序列表、分区元素 ​​<div>​​ 和内联元素 ​​<span>​​、以及如何使用 ​​<div>​​​ 进行布局和表格布局。 一、HTML 列表 1. 无序列表 (​​<ul>​​) 无序列表用于展…

Java流程控制06:for循环详解

教学视频链接&#xff1a;https://www.bilibili.com/video/BV12J41137hu?p41&vd_sourceb5775c3a4ea16a5306db9c7c1c1486b5https://www.bilibili.com/video/BV12J41137hu?p41&vd_sourceb5775c3a4ea16a5306db9c7c1c1486b5 Java中的‌for循环结构‌是一种基础…

Python与DIAdem联合开发

Python可以通过COM接口与NI的DIAdem软件集成&#xff0c;允许用户以编程方式自动生成和定制报告。这种方式使得报告生成更加灵活且可定制&#xff0c;尤其适用于需要定期生成大量报告或对报告内容有特定要求的场景。 1. 工作原理 Python与DIAdem的集成主要依赖于COM&#xff0…

二叉树的判断

二叉树的判断 判断一颗二叉树是不是搜索二叉树 &#xff08;左边的比根小&#xff0c;右边的比根大&#xff09; 中序遍历一下&#xff0c;如果是的话就一定是升序的 如何判断一颗二叉树是否是完全二叉树 1.遍历任意的节点时候&#xff0c;如果返回右孩子没有左孩子&#x…

【Linux学习】权限

&#x1f525;个人主页&#xff1a; Forcible Bug Maker &#x1f525;专栏&#xff1a;Linux学习 目录 &#x1f308;前言&#x1f525;Linux权限的概念&#x1f525;Linux权限管理01.文件访问者的分类02.文件类型和访问权限&#xff08;文件属性&#xff09;03.文件权限值得…

线程同步-条件变量

文章目录 引言条件变量初始化条件变量&#xff1a;pthread_cond_init销毁条件变量&#xff1a;pthread_cond_destroy条件等待&#xff1a;pthread_cond_wait唤醒等待&#xff1a;pthread_cond_signal、pthread_cond_broadcast认识条件变量接口使用 引言 有一个非常好的VIP自习…

树莓派3B运行rasa init和rasa shell遇到的tensorflow报错总结

终于在我的树莓派上安装rasa-1.4.0版本成功&#xff08;见《树莓派智能语音助手之聊天机器人-RASA》&#xff09;。不过&#xff0c;在初始化rasa的时候还是遇到了很多报错&#xff0c;在此总结&#xff0c;供朋友们参考。 1. ModuleNotFoundError: No module named ‘tensorf…

合肥网站制作服务

合肥网站制作服务&#xff1a;为您的企业搭建数字化桥梁 随着互联网的迅猛发展&#xff0c;越来越多的企业意识到拥有一个专业的网站对于提升品牌形象和扩大市场影响力的重要性。合肥作为安徽省的省会&#xff0c;经济发展迅速&#xff0c;许多企业渴望通过优质的网站制作服务&…