ToolButton控件(工具控件)继承于QButton类,它是一种用于命令或者选项的可以快速访问的按钮,通常用在ToolBar中,工具按钮和按钮不同,工具按钮通常显示的是图标,而不是文本标签,一般用于编辑工具栏中。另外,ToolButton支持自动浮起。在自动编辑模式中,按钮只有在鼠标指向它的时候才会绘制三维的框架。当按钮用在ToolBar里面的时候,Qt默认启用这种模式,也可以使用setAutoRaise()来改变它。关于具体的用法希望感兴趣的看官自己去百度或查看对应文档即可!
下面进行一个示例演示来看看它的用法吧!
首先建立一个Qui应用程序,把对应的menuBar和statusBar删除,另外在主界面添加一个TextEdit控件,设计界面如下所示:
在这里我们开始尝试着手动添加代码来自定义我们的槽函数和槽与信号的关联。示例代码如下所示:
mainwindow.h
- #ifndef MAINWINDOW_H
- #define MAINWINDOW_H
-
- #include <QMainWindow>
-
- namespace Ui {
- class MainWindow;
- }
-
- class MainWindow : public QMainWindow
- {
- Q_OBJECT
-
- public:
- explicit MainWindow(QWidget *parent = 0);
- ~MainWindow();
-
- private:
- Ui::MainWindow *ui;
-
- private slots:
- void slotNew();
- void slotOpen();
- void slotSave();
- };
-
- #endif // MAINWINDOW_H
mainwindow.cpp
- #include "mainwindow.h"
- #include "ui_mainwindow.h"
-
- #include <QToolButton>
-
- MainWindow::MainWindow(QWidget *parent) :
- QMainWindow(parent),
- ui(new Ui::MainWindow)
- {
- ui->setupUi(this);
-
- QToolButton *buttonNew = new QToolButton;
- buttonNew->setText(tr("New"));
- QToolButton *buttonOpen = new QToolButton;
- buttonOpen->setText(tr("Open"));
- QToolButton *buttonSave = new QToolButton;
- buttonSave->setText(tr("Save"));
-
- ui->mainToolBar->addWidget(buttonNew);
- ui->mainToolBar->addWidget(buttonOpen);
- ui->mainToolBar->addWidget(buttonSave);
-
- connect(buttonNew,SIGNAL(clicked()),this,SLOT(slotNew()));
- connect(buttonOpen,SIGNAL(clicked()),this,SLOT(slotOpen()));
- connect(buttonSave,SIGNAL(clicked()),this,SLOT(slotSave()));
- }
-
- MainWindow::~MainWindow()
- {
- delete ui;
- }
-
- void MainWindow::slotNew()
- {
- ui->textEdit->setText(tr("New"));
- }
-
- void MainWindow::slotOpen()
- {
- ui->textEdit->setText(tr("Open"));
- }
-
- void MainWindow::slotSave()
- {
- ui->textEdit->setText(tr("Save"));
- }
main.cpp
- #include "mainwindow.h"
- #include <QApplication>
-
- int main(int argc, char *argv[])
- {
- QApplication a(argc, argv);
- MainWindow w;
- w.show();
-
- return a.exec();
- }
好了,下面演示一个程序运行后的效果:
你可以尝试着点击不同的按钮,看看它们有什么反应。
在这里,笔者建议各位初学者好好掌握Qt中信号与槽的机制以及会自定义它们,这样的话对后面的学习是有很大帮助的!