qt-C++笔记之QToolButton和QPushButton的区别

devtools/2025/3/4 4:21:08/

qtCQToolButtonQPushButton_0">qt-C++笔记之QToolButton和QPushButton的区别

code review!

文章目录

  • qt-C++笔记之QToolButton和QPushButton的区别
    • 1.运行
    • 2.main.cpp
    • 3.main.pro

1.运行

在这里插入图片描述

  • QToolButton

    • 适用于工具栏或需要较紧凑、图标化显示的场合。
    • 通过 setAutoRaise(true)setToolButtonStyle(Qt::ToolButtonTextUnderIcon) 的设置,可以实现鼠标悬停时加亮、图标在上文字在下的效果。
  • QPushButton

    • 通常用于对话框或常规操作按钮。
    • 默认具有标准的按钮外观,图标与文字通常并列显示。

2.main.cpp

#include <QApplication>
#include <QWidget>
#include <QToolButton>
#include <QPushButton>
#include <QHBoxLayout>
#include <QVBoxLayout>
#include <QStyle>
#include <QIcon>
#include <QMessageBox>int main(int argc, char *argv[])
{QApplication app(argc, argv);// 创建主窗口QWidget window;window.setWindowTitle("QToolButton vs QPushButton 对比");// 设置主布局(垂直布局)QVBoxLayout *mainLayout = new QVBoxLayout(&window);// 创建一个水平布局,用来放置两个按钮QHBoxLayout *buttonLayout = new QHBoxLayout;// 使用标准图标来说明图标效果QIcon icon = window.style()->standardIcon(QStyle::SP_DesktopIcon);// -----------------------------// 创建 QToolButton// -----------------------------QToolButton *toolButton = new QToolButton;toolButton->setText("QToolButton");toolButton->setToolTip("这是 QToolButton,通常用于工具栏");// 设置自动抬起,鼠标悬停时会加亮(适合工具栏风格)toolButton->setAutoRaise(true);// 设置显示风格:图标在上, 文字在下(常用于工具栏按钮)toolButton->setToolButtonStyle(Qt::ToolButtonTextUnderIcon);toolButton->setIcon(icon);// -----------------------------// 创建 QPushButton// -----------------------------QPushButton *pushButton = new QPushButton("QPushButton");pushButton->setToolTip("这是 QPushButton,常用于常规操作");pushButton->setIcon(icon);// -----------------------------// 连接按钮的点击信号// -----------------------------QObject::connect(toolButton, &QToolButton::clicked, [](){QMessageBox::information(nullptr, "QToolButton", "你点击了 QToolButton");});QObject::connect(pushButton, &QPushButton::clicked, [](){QMessageBox::information(nullptr, "QPushButton", "你点击了 QPushButton");});// 将两个按钮添加到水平布局中buttonLayout->addWidget(toolButton);buttonLayout->addWidget(pushButton);// 将按钮布局添加到主布局mainLayout->addLayout(buttonLayout);// 显示主窗口window.show();return app.exec();
}

3.main.pro

QT       += widgetsCONFIG   += c++11 console
CONFIG   -= app_bundleSOURCES += main.cpp

http://www.ppmy.cn/devtools/164362.html

相关文章

【力扣】堆相关总结

priority_queue std::priority_queue 是 C 标准库中的一个容器适配器&#xff0c;提供了堆&#xff08;Heap&#xff09;数据结构的功能。它通常用于实现优先队列&#xff0c;允许你高效地插入元素和访问最大或最小元素。 头文件 #include <queue> 基本定义 std::pri…

创建一个简单的spring boot+vue前后端分离项目

一、环境准备 此次实验需要的环境&#xff1a; jdk、maven、nvm和node.js 开发工具&#xff1a;idea或者Spring Tool Suite 4&#xff0c;前端可使用HBuilder X&#xff0c;数据库Mysql 下面提供maven安装与配置步骤和nvm安装与配置步骤&#xff1a; 1、maven安装与配置 1…

python量化交易——金融数据管理最佳实践——使用qteasy管理本地数据源

文章目录 统一定义的金融历史数据表最重要的数据表数据表的定义交易日历表的定义&#xff1a;交易日历表: trade_calendar qteasy是一个功能全面且易用的量化交易策略框架&#xff0c; Github地址在这里。使用它&#xff0c;能轻松地获取历史数据&#xff0c;创建交易策略并完…

Ubuntu 下 nginx-1.24.0 源码分析 - ngx_conf_t

ngx_conf_t 定义在src/core/ngx_core.h typedef struct ngx_conf_s ngx_conf_t;ngx_conf_s 定义在 src/core/ngx_conf_file.h struct ngx_conf_s {char *name;ngx_array_t *args;ngx_cycle_t *cycle;ngx_pool_t *po…

有道云数据下载导出到本地结合Typora-v1.9.5 解锁版解压版构建本地笔记库

1、下载python 导出脚本 脚本下载&#xff1a;yodaonote-pull 2、安装python 依赖包 3、获取有道云cookies 通过有道云网页版登录获取cookies 方式一&#xff1a;浏览器F12 方式二&#xff1a;chrome 浏览器插件Cookie-copy 查看 4、配置导出路径 配置cookies.json {…

Linux——计算机网络

一.历史 网络产生 二战结束&#xff0c;世界迅速进入了美苏冷战对抗状态。1957年&#xff0c;苏联成功发射了第一颗人造卫星“sputnik”&#xff0c;震惊了整个西方世界&#xff0c;极大的刺激了美国。为了防止对美国不利的震惊技术再次出现&#xff0c;1958年&#xff0c;美…

ES如何打印DSL

看了一下官网版本已经来到了8.17 正常打印似乎不行&#xff0c;突破的地方则是 藏在JsonpDeserializable 这个注解上&#xff1b; JsonpDeserializable public class SearchRequest 因此只有反序列化出来之后才能打印&#xff0c;似乎就这么简单&#xff0c;看源码或许能更快…

【FL0091】基于SSM和微信小程序的社区二手物品交易小程序

&#x1f9d1;‍&#x1f4bb;博主介绍&#x1f9d1;‍&#x1f4bb; 全网粉丝10W,CSDN全栈领域优质创作者&#xff0c;博客之星、掘金/知乎/b站/华为云/阿里云等平台优质作者、专注于Java、小程序/APP、python、大数据等技术领域和毕业项目实战&#xff0c;以及程序定制化开发…