最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Qt控件之QToolButton的使用及示例

 更新時(shí)間:2023年10月17日 08:36:17   作者:FreeLikeTheWind.  
QToolButton類(lèi)提供了一個(gè)快速訪問(wèn)命令或選項(xiàng)的按鈕,通常在QToolBar內(nèi)部使用,本文主要介紹了Qt控件之QToolButton的使用及示例,感興趣的可以了解一下

簡(jiǎn)介

QToolButton 類(lèi)提供了一個(gè)快速訪問(wèn)命令或選項(xiàng)的按鈕,通常在 QToolBar 內(nèi)部使用。

工具按鈕是一種特殊的按鈕,用于快速訪問(wèn)特定的命令或選項(xiàng)。與普通的命令按鈕相反,工具按鈕通常不顯示文本標(biāo)簽,而是顯示一個(gè)圖標(biāo)。

通常情況下,工具按鈕是通過(guò)使用 QToolBar::addAction() 創(chuàng)建新的 QAction 實(shí)例或?qū)F(xiàn)有的操作添加到工具欄的方式來(lái)創(chuàng)建的。還可以像創(chuàng)建任何其他小部件一樣構(gòu)造工具按鈕,并將它們與其他小部件一起布局排列。

工具按鈕的一個(gè)經(jīng)典用途是選擇工具;例如,繪圖程序中的 “畫(huà)筆” 工具。這可以通過(guò)使用 QToolButton 作為切換按鈕(參見(jiàn) setToggleButton())來(lái)實(shí)現(xiàn)。

QToolButton 支持自動(dòng)凸起。在自動(dòng)凸起模式下,只有當(dāng)鼠標(biāo)指向按鈕時(shí),按鈕才會(huì)繪制 3D 邊框。當(dāng)按鈕在 QToolBar 內(nèi)部使用時(shí),該功能會(huì)自動(dòng)開(kāi)啟。可以使用 setAutoRaise() 方法進(jìn)行更改。

工具按鈕的圖標(biāo)是使用 QIcon 設(shè)置的。這樣可以為禁用狀態(tài)和活動(dòng)狀態(tài)指定不同的像素圖。禁用的像素圖在按鈕的功能不可用時(shí)使用。當(dāng)鼠標(biāo)懸停在按鈕上時(shí),活動(dòng)的像素圖將顯示出來(lái),因?yàn)榘粹o會(huì)自動(dòng)凸起。

可以使用 setToolButtonStyle() 和 setIconSize() 調(diào)整按鈕的外觀和尺寸。當(dāng)在 QMainWindow 中的 QToolBar 中使用時(shí),按鈕會(huì)自動(dòng)調(diào)整為 QMainWindow 的設(shè)置(參見(jiàn) QMainWindow::setToolButtonStyle() 和 QMainWindow::setIconSize())。工具按鈕還可以顯示一個(gè)箭頭符號(hào),可以使用 arrowType 指定。

工具按鈕可以在彈出菜單中提供額外的選擇??梢允褂?nbsp;setMenu() 設(shè)置彈出菜單。使用 setPopupMode() 來(lái)配置具有菜單設(shè)置的工具按鈕的不同模式。默認(rèn)模式是 DelayedPopupMode,該模式通常與 Web瀏覽器中的 “返回” 按鈕一起使用。按住按鈕一段時(shí)間后,會(huì)彈出一個(gè)菜單,顯示要跳轉(zhuǎn)到的可能頁(yè)面列表。默認(rèn)的延遲時(shí)間是 600 毫秒,可以使用 setPopupDelay() 進(jìn)行調(diào)整。
在這里插入圖片描述

常用函數(shù)

QToolButton 是 Qt 框架提供的一個(gè)工具按鈕控件,用于在用戶(hù)界面中提供快捷訪問(wèn)命令或選項(xiàng)的按鈕。
以下是關(guān)于 QToolButton 的構(gòu)造函數(shù)、枚舉、常用函數(shù)、信號(hào)和槽的介紹:

  • 構(gòu)造函數(shù)

    • QToolButton(QWidget *parent = nullptr):使用指定的父窗口創(chuàng)建一個(gè)默認(rèn)的 QToolButton 實(shí)例。
    • QToolButton(const QString &text, QWidget *parent = nullptr):使用指定的文本和父窗口創(chuàng)建一個(gè) QToolButton 實(shí)例。
  • 枚舉

    • ToolButtonPopupMode:枚舉類(lèi)型,定義了工具按鈕的彈出菜單模式:
      • QToolButton::DelayedPopup:默認(rèn)模式,長(zhǎng)按按鈕后延遲彈出菜單。
      • QToolButton::MenuButtonPopup:點(diǎn)擊按鈕箭頭圖標(biāo)后立即彈出菜單。
      • QToolButton::InstantPopup:點(diǎn)擊按鈕后立即彈出菜單。
  • 常用函數(shù)

    • void setIcon(const QIcon &icon):設(shè)置工具按鈕的圖標(biāo)。
    • QIcon icon() const:獲取工具按鈕的圖標(biāo)。
    • void setText(const QString &text):設(shè)置工具按鈕的文本。
    • QString text() const:獲取工具按鈕的文本。
    • void setAutoRaise(bool enable):設(shè)置是否在鼠標(biāo)指向按鈕時(shí)自動(dòng)凸起。
    • bool autoRaise() const:檢查按鈕是否在鼠標(biāo)指向時(shí)自動(dòng)凸起。
    • void setPopupMode(QToolButton::ToolButtonPopupMode mode):設(shè)置工具按鈕的彈出菜單模式。
    • QToolButton::ToolButtonPopupMode popupMode() const:獲取工具按鈕的彈出菜單模式。
  • 信號(hào)和槽

    • void clicked(bool checked = false):點(diǎn)擊工具按鈕時(shí)觸發(fā)的信號(hào)。參數(shù) checked 表示按鈕的選中狀態(tài)。
    • void triggered(QAction *action):當(dāng)有菜單項(xiàng)被觸發(fā)時(shí),發(fā)送該信號(hào)??梢允褂?action 參數(shù)來(lái)獲取觸發(fā)的菜單項(xiàng)。

使用信號(hào)和槽機(jī)制,可以通過(guò)連接 QToolButton 的 clicked 信號(hào)和自定義的槽函數(shù)來(lái)響應(yīng)按鈕的點(diǎn)擊事件。例如:

QObject::connect(toolButton, &QToolButton::clicked, [&]() {
    // 工具按鈕點(diǎn)擊事件的邏輯處理
});

通過(guò)連接 clicked() 信號(hào),可以在工具按鈕被點(diǎn)擊時(shí)執(zhí)行相關(guān)的操作或邏輯處理。

QToolButton 提供了許多其他的函數(shù)和屬性,用于設(shè)置按鈕的圖標(biāo)、文本、樣式和彈出菜單等,以滿(mǎn)足在用戶(hù)界面中提供快捷訪問(wèn)命令或選項(xiàng)的需求。根據(jù)具體需求,可以使用這些函數(shù)和屬性對(duì) QToolButton 進(jìn)行定制和擴(kuò)展。

示例

以下是一個(gè)簡(jiǎn)單的 QToolButton 的示例代碼,展示了如何創(chuàng)建一個(gè)工具按鈕并處理其點(diǎn)擊事件:

#include <QApplication>
#include <QMainWindow>
#include <QToolButton>
#include <QMessageBox>

int main(int argc, char *argv[])
{
    QApplication app(argc, argv);

    QMainWindow window;
    window.setWindowTitle("toolBtn");

    // 創(chuàng)建一個(gè)工具按鈕
    QToolButton *toolButton = new QToolButton(&window);
    toolButton->setText("Click me"); // 設(shè)置按鈕顯示的文本

    // 連接按鈕的 clicked 信號(hào)和槽函數(shù)
    QObject::connect(toolButton, &QToolButton::clicked, [&]() {
        QMessageBox::information(&window, "Clicked", "Button has been clicked!");
    });

    // 將具按鈕添加到主窗口的工具欄
    QToolBar *pBar = window.addToolBar("bar");
    pBar->addWidget(toolButton);

    window.show();
    return app.exec();
}

效果

在這個(gè)示例中,創(chuàng)建了一個(gè)簡(jiǎn)單的 QMainWindow 窗口,并在窗口上添加了一個(gè)帶有文本 “Click me” 的工具按鈕。
然后,通過(guò)連接工具按鈕的 clicked 信號(hào)和一個(gè) lambda 函數(shù),當(dāng)按鈕被點(diǎn)擊時(shí),會(huì)彈出一個(gè)消息框顯示"Button has been clicked!"的信息。

到此這篇關(guān)于Qt控件之QToolButton的使用及示例的文章就介紹到這了,更多相關(guān)Qt QToolButton內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • C語(yǔ)言之直接插入排序算法的方法

    C語(yǔ)言之直接插入排序算法的方法

    這篇文章主要為大家介紹了C語(yǔ)言直接插入排序算法的方法,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下,希望能夠給你帶來(lái)幫助
    2021-12-12
  • 解決 c++ 調(diào)用 c 函數(shù)報(bào)錯(cuò): undefined reference to ‘xxx‘ 的問(wèn)題

    解決 c++ 調(diào)用 c 函數(shù)報(bào)錯(cuò): undefined re

    本文主要討論了C++與C混合編程時(shí)遇到的問(wèn)題及解決方案,由于默認(rèn)編規(guī)則不同,.cpp文件調(diào)用.c文件函數(shù)時(shí)會(huì)出現(xiàn)錯(cuò)誤,下面就來(lái)詳細(xì)的介紹一下解決方法,感興趣的可以了解一下
    2026-05-05
  • EasyC++靜態(tài)持續(xù)變量

    EasyC++靜態(tài)持續(xù)變量

    這篇文章主要介紹了EasyC++靜態(tài)持續(xù)變量,除了自動(dòng)存儲(chǔ)變量之后,C++當(dāng)中還有靜態(tài)持續(xù)變量。關(guān)于靜態(tài)持續(xù)變量的定義C++和C語(yǔ)言是一樣的,它擁有三種鏈接性,即外部鏈接性、內(nèi)部連接性和無(wú)鏈接性,下面一起進(jìn)入文章了解更具體內(nèi)容吧
    2021-12-12
  • C++ 智能指針使用不當(dāng)導(dǎo)致內(nèi)存泄漏問(wèn)題解析

    C++ 智能指針使用不當(dāng)導(dǎo)致內(nèi)存泄漏問(wèn)題解析

    這篇文章主要介紹了C++ 智能指針使用不當(dāng)導(dǎo)致內(nèi)存泄漏問(wèn)題解析,本文通過(guò)代碼示例給大家介紹的非常詳細(xì),感興趣的朋友跟隨小編一起看看吧
    2024-07-07
  • C++中強(qiáng)類(lèi)型枚舉(scoped enumeration)的實(shí)現(xiàn)

    C++中強(qiáng)類(lèi)型枚舉(scoped enumeration)的實(shí)現(xiàn)

    C++11引入的強(qiáng)類(lèi)型枚舉解決了傳統(tǒng)枚舉的三大缺陷:作用域污染、隱式類(lèi)型轉(zhuǎn)換和底層類(lèi)型不確定,本文就來(lái)詳細(xì)的介紹一下強(qiáng)類(lèi)型枚舉的使用,感興趣的可以了解一下
    2025-11-11
  • C++類(lèi)型轉(zhuǎn)換和IO流操作處理教程

    C++類(lèi)型轉(zhuǎn)換和IO流操作處理教程

    這篇文章主要給大家介紹了關(guān)于C++類(lèi)型轉(zhuǎn)換和IO流操作處理的相關(guān)資料,標(biāo)準(zhǔn)C++為了加強(qiáng)類(lèi)型轉(zhuǎn)換的可視性,引入了四種命名的強(qiáng)制類(lèi)型轉(zhuǎn)換操作符,文中給出了詳細(xì)的代碼示例,需要的朋友可以參考下
    2023-08-08
  • C++的get()函數(shù)與getline()函數(shù)使用詳解

    C++的get()函數(shù)與getline()函數(shù)使用詳解

    這篇文章主要介紹了C++的get()函數(shù)與getline()函數(shù)使用詳解,是C++入門(mén)學(xué)習(xí)中的基礎(chǔ)知識(shí),需要的朋友可以參考下
    2015-09-09
  • C++ const引用、臨時(shí)變量 引用參數(shù)詳解

    C++ const引用、臨時(shí)變量 引用參數(shù)詳解

    下面小編就為大家?guī)?lái)一篇C++ const引用、臨時(shí)變量 引用參數(shù)詳解。小編覺(jué)得挺不錯(cuò)的現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2017-01-01
  • VS2019中CMake項(xiàng)目的簡(jiǎn)單使用方法

    VS2019中CMake項(xiàng)目的簡(jiǎn)單使用方法

    這篇文章主要介紹了VS2019中CMake項(xiàng)目的簡(jiǎn)單使用方法,需要的朋友可以參考下
    2020-02-02
  • C++ 實(shí)現(xiàn)LRU 與 LFU 的緩存算法

    C++ 實(shí)現(xiàn)LRU 與 LFU 的緩存算法

    設(shè)計(jì)和實(shí)現(xiàn)一個(gè)LRU 緩存機(jī)制。其支持獲取數(shù)據(jù) get 和 寫(xiě)入數(shù)據(jù) put,設(shè)計(jì)并實(shí)現(xiàn)最少訪問(wèn)頻率(LFU)緩存的數(shù)據(jù)結(jié)構(gòu)。LFU的每個(gè)數(shù)據(jù)塊都有一個(gè)引用計(jì)數(shù),所有數(shù)據(jù)塊按照引用計(jì)數(shù)排序,具有相同引用計(jì)數(shù)的數(shù)據(jù)塊則按照時(shí)間進(jìn)行排序。其支持get 和 put,具體了解請(qǐng)看下文
    2021-09-09

最新評(píng)論

淳化县| 永嘉县| 阿拉善右旗| 凌云县| 双辽市| 曲水县| 永春县| 米易县| 多伦县| 汝阳县| 卓尼县| 万荣县| 湖北省| 峨边| 盱眙县| 邵阳市| 平安县| 都昌县| 建湖县| 南康市| 宁武县| 祁连县| 岳阳县| 东辽县| 南部县| 贵定县| 措勤县| 都江堰市| 临夏县| 南昌县| 定南县| 花莲县| 景谷| 库车县| 白朗县| 封开县| 禹城市| 南靖县| 武定县| 花垣县| 吉水县|