• QToolBar详解


    QToolBarQt 框架中用于创建工具栏的类,它提供了一种方便的方式来组织和展示工具按钮、工具部件等。工具栏通常用于提供对应用程序功能的快速访问。

    QToolBar 的基本用法:

    1. 创建工具栏:

      QToolBar *toolbar = new QToolBar("MyToolbar", this);
      
      • 1
    2. 添加工具按钮:

      QAction *actionOpen = toolbar->addAction(QIcon(":/images/open.png"), "Open");
      connect(actionOpen, &QAction::triggered, this, &MyClass::openFile);
      
      • 1
      • 2

      这里,open.png 是一个图标文件的路径,openFile 是一个槽函数,用于处理打开文件的操作。

    3. 添加分隔符:

      toolbar->addSeparator();
      
      • 1
    4. 设置工具栏属性:

      toolbar->setMovable(false);  // 设置工具栏不可移动
      toolbar->setIconSize(QSize(32, 32));  // 设置图标大小
      
      • 1
      • 2
    5. 添加部件:

      QWidget *customWidget = new QWidget;
      // 添加自定义部件到工具栏
      toolbar->addWidget(customWidget);
      
      • 1
      • 2
      • 3

    QToolBar接口说明

    QToolBar 是 Qt 框架中用于创建工具栏的类。它提供了一系列接口和功能,用于定制和管理工具栏的外观和行为。以下是一些常用的 QToolBar 接口:

    构造函数

    1. 构造函数:

      QToolBar(const QString &title, QWidget *parent = nullptr)
      
      • 1
      • 描述:构造一个具有给定标题的工具栏。
      • 参数:
        • title:工具栏的标题。
        • parent:父窗口指针。

    常用成员函数

    1. addAction

      QAction *addAction(const QIcon &icon, const QString &text = QString())
      
      • 1
      • 描述:添加一个带有图标和文本的动作按钮。
      • 参数:
        • icon:按钮的图标。
        • text:按钮的文本。
    2. addSeparator

      QWidget *addSeparator()
      
      • 1
      • 描述:在工具栏中添加一个分隔符。
    3. addWidget

      QWidget *addWidget(QWidget *widget)
      
      • 1
      • 描述:在工具栏中添加一个自定义部件。
      • 参数:
        • widget:要添加的部件。
    4. clear

      void clear()
      
      • 1
      • 描述:清除工具栏上的所有动作和部件。
    5. setMovable

      void setMovable(bool movable)
      
      • 1
      • 描述:设置工具栏是否可以移动。
    6. setIconSize

      void setIconSize(const QSize &iconSize)
      
      • 1
      • 描述:设置工具栏中图标的大小。
    7. setToolButtonStyle

      void setToolButtonStyle(Qt::ToolButtonStyle style)
      
      • 1
      • 描述:设置工具栏中工具按钮的样式。
    8. setOrientation

      void setOrientation(Qt::Orientation orientation)
      
      • 1
      • 描述:设置工具栏的方向。

    信号

    1. actionTriggered 信号:

      void actionTriggered(QAction *action)
      
      • 1
      • 描述:当工具栏上的动作按钮被触发时发出该信号。
      • 参数:
        • action:被触发的动作按钮。

    这个示例创建了一个简单的主窗口,其中包含一个工具栏,工具栏中有打开和保存按钮,以及一个自定义部件。点击按钮时会弹出消息框。

    QToolBar开发实例

    #include 
    #include 
    #include 
    #include 
    #include 
    #include 
    
    class MyClass : public QMainWindow {
        Q_OBJECT
    
    public:
        MyClass(QWidget *parent = nullptr) : QMainWindow(parent) {
            // 创建工具栏
            QToolBar *toolbar = new QToolBar("MyToolbar", this);
            toolbar->setIconSize(QSize(32, 32));  // 设置图标大小
    
            // 添加打开按钮
            QAction *actionOpen = toolbar->addAction(QIcon(":/images/open.png"), "Open");
            connect(actionOpen, &QAction::triggered, this, &MyClass::openFile);
    
            // 添加保存按钮
            QAction *actionSave = toolbar->addAction(QIcon(":/images/save.png"), "Save");
            connect(actionSave, &QAction::triggered, this, &MyClass::saveFile);
    
            // 添加分隔符
            toolbar->addSeparator();
    
            // 添加自定义部件
            QWidget *customWidget = new QWidget;
            customWidget->setFixedSize(100, 30);
            toolbar->addWidget(customWidget);
    
            // 将工具栏添加到主窗口
            addToolBar(toolbar);
        }
    
    private slots:
        void openFile() {
            QMessageBox::information(this, "Open", "Open file");
        }
    
        void saveFile() {
            QMessageBox::information(this, "Save", "Save file");
        }
    };
    
    int main(int argc, char *argv[]) {
        QApplication a(argc, argv);
    
        MyClass window;
        window.show();
    
        return a.exec();
    }
    
    #include "main.moc"
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35
    • 36
    • 37
    • 38
    • 39
    • 40
    • 41
    • 42
    • 43
    • 44
    • 45
    • 46
    • 47
    • 48
    • 49
    • 50
    • 51
    • 52
    • 53
    • 54
    • 55
    • 56

    这个示例创建了一个简单的主窗口,其中包含一个工具栏,工具栏中有打开和保存按钮,以及一个自定义部件。点击按钮时会弹出消息框。

  • 相关阅读:
    【华为上机真题 2022】字符串加密
    【优化选址】基于模拟退火粒子群算法配电网分布式能源选址定容问题附matlab代码
    【selenium】复用浏览器(debugger)
    基于网络爬虫技术的网络新闻分析
    GBase 8c 远程数据库连接
    quarkus依赖注入之十一:拦截器高级特性上篇(属性设置和重复使用)
    RabbitMQ的广播模式(fanout)在(基于xml配置)项目中使用
    python中json的使用
    带你一起玩转—Java 数组
    进程地址空间(Linux虚拟内存机制)
  • 原文地址:https://blog.csdn.net/arv002/article/details/134365252