qt-C++笔记之QToolButton和QPushButton的区别
- 其他
- 2025-09-16 13:00:02

qt-C++笔记之QToolButton和QPushButton的区别
code review!
文章目录 qt-C++笔记之QToolButton和QPushButton的区别1.运行2.main.cpp3.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 += widgets CONFIG += c++11 console CONFIG -= app_bundle SOURCES += main.cppqt-C++笔记之QToolButton和QPushButton的区别由讯客互联其他栏目发布,感谢您对讯客互联的认可,以及对我们原创作品以及文章的青睐,非常欢迎各位朋友分享到个人网站或者朋友圈,但转载请说明文章出处“qt-C++笔记之QToolButton和QPushButton的区别”
下一篇
图像分类项目2:鸟类图像分类