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