国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

QT實(shí)現(xiàn)鼠標(biāo)點(diǎn)擊鼠標(biāo)右鍵創(chuàng)建菜單(帶圖標(biāo))

這篇具有很好參考價(jià)值的文章主要介紹了QT實(shí)現(xiàn)鼠標(biāo)點(diǎn)擊鼠標(biāo)右鍵創(chuàng)建菜單(帶圖標(biāo))。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問。

最近在開發(fā)項(xiàng)目時(shí)用到鼠標(biāo)右鍵創(chuàng)建菜單的功能,在此做一些記錄。

功能描述:QT實(shí)現(xiàn)點(diǎn)擊鼠標(biāo)右鍵創(chuàng)建菜單,菜單帶圖標(biāo),并且可以點(diǎn)擊菜單欄選項(xiàng),出現(xiàn)相應(yīng)的界面。效果如下圖所示:

qt鼠標(biāo)右鍵菜單,QT,c++,qt,開發(fā)語言,前端,Powered by 金山文檔

實(shí)現(xiàn)原理:要實(shí)現(xiàn)上圖效果,我用到QMenu,創(chuàng)建菜單項(xiàng),將菜單項(xiàng)加入菜單,然后關(guān)聯(lián)菜單項(xiàng)按鈕和相應(yīng)的槽函數(shù)。

代碼:

1.實(shí)現(xiàn)菜單

? ? QMenu *pMenu = new QMenu(this);? ? //菜單初始化
    pMenu->setStyleSheet("background-color:#1a1a1a;color:#fff;");? ? //設(shè)置菜單樣式背景顏色

? ? //設(shè)置菜單項(xiàng)
    QAction *pSettask = new QAction(tr("任務(wù)設(shè)置"),this);
    QAction *pEquipdebug = new QAction(tr("設(shè)備調(diào)試"),this);
    QAction *pCommucontrol = new QAction(tr("通信控制"),this);
    QAction *pClustercontrol = new QAction(tr("集群控制"),this);

? ? //將菜單項(xiàng)加入菜單
? ? pMenu->addAction(pSettask);
    pSettask->setIcon(QIcon(":/new/prefix1/icon/205設(shè)置.png"));? ? //設(shè)置菜單圖標(biāo)
    pSettask->setIconVisibleInMenu(true);? ? ?? //圖標(biāo)設(shè)置為可見
    pMenu->addSeparator();? //設(shè)置菜單項(xiàng)之間的分隔線

? ? //其余項(xiàng)設(shè)置方法相同
    pMenu->addAction(pEquipdebug);
    pEquipdebug->setIcon(QIcon(":/new/prefix1/icon/調(diào)試.png"));
    pEquipdebug->setIconVisibleInMenu(true);
    pMenu->addSeparator();
    pMenu->addAction(pCommucontrol);
    pCommucontrol->setIcon(QIcon(":/new/prefix1/icon/通訊錄.png"));
    pCommucontrol->setIconVisibleInMenu(true);
    pMenu->addSeparator();
    pMenu->addAction(pClustercontrol);
    pClustercontrol->setIcon(QIcon(":/new/prefix1/icon/集群.png"));
    pClustercontrol->setIconVisibleInMenu(true);

? ? //菜單項(xiàng)按鈕關(guān)聯(lián)槽函數(shù)
? ? console *con = new console;? ? //初始化要連接到的模塊
    connect(pSettask,&QAction::triggered,con,&console::on_stackedWidget_3_currentChanged);
    connect(pEquipdebug,&QAction::triggered,con,&console::on_stackedWidget_3_currentChanged);
    connect(pCommucontrol,&QAction::triggered,con,&console::on_stackedWidget_3_currentChanged);
    connect(pClustercontrol,&QAction::triggered,con,&console::on_stackedWidget_3_currentChanged);

    //在鼠標(biāo)右鍵點(diǎn)擊的地方顯示菜單
    pMenu->exec(cursor().pos());

2.菜單關(guān)聯(lián)的槽函數(shù)

void console::on_stackedWidget_3_currentChanged(int arg1)
{
    QAction *pEven = qobject_cast<QAction*>(this->sender());? ? //獲取是由哪個菜單項(xiàng)按鈕發(fā)出的信號

    if(pEven->text().contains("任務(wù)設(shè)置"))
    {
        ui->stackedWidget_3->setCurrentWidget(ui->page_5);
    }
    if(pEven->text().contains("設(shè)備調(diào)試"))
    {
        ui->stackedWidget_3->setCurrentWidget(ui->page_7);
    }
    if(pEven->text().contains("通信控制"))
    {
        ui->stackedWidget_3->setCurrentWidget(ui->page_9);
    }
    else if(pEven->text().contains("集群控制"))
    {
        ui->stackedWidget_3->setCurrentWidget(ui->page_10);
    }
    show();

}

總結(jié):

  1. 菜單的創(chuàng)建函數(shù)從Ui文件中的widget控件中,右鍵轉(zhuǎn)到槽函數(shù)得來。

  1. 項(xiàng)目中的右鍵菜單效果我用的照片,所以分隔線的效果不是特別明顯,四個菜單項(xiàng)需要三條分隔線。

  1. 圖標(biāo)素材需要添加到資源庫。文章來源地址http://www.zghlxwxcb.cn/news/detail-557064.html

到了這里,關(guān)于QT實(shí)現(xiàn)鼠標(biāo)點(diǎn)擊鼠標(biāo)右鍵創(chuàng)建菜單(帶圖標(biāo))的文章就介紹完了。如果您還想了解更多內(nèi)容,請?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • QT`實(shí)現(xiàn)鼠標(biāo)超時(shí)未點(diǎn)擊,窗口自動關(guān)閉

    QT 實(shí)現(xiàn)鼠標(biāo)超時(shí)未點(diǎn)擊,窗口自動關(guān)閉 前言 有的時(shí)候我們需要某些窗口實(shí)現(xiàn)超時(shí)自動關(guān)閉,但是Qt窗口一般是多部件堆疊而成,如果常規(guī)處理,對每一個部件進(jìn)行鼠標(biāo)點(diǎn)擊事件處理顯然不太合理,我個人參考了網(wǎng)上前輩的處理方法,通過直接重新實(shí)現(xiàn) QApplication::notify 函數(shù)來

    2024年02月10日
    瀏覽(25)
  • QT5 QCustomPlot實(shí)現(xiàn)動態(tài)曲線繪制,可以左鍵放大、右鍵拖拽、跟隨鼠標(biāo)顯示坐標(biāo)

    下載文件,官網(wǎng):https://www.qcustomplot.com/ 按照官網(wǎng)教程,qt添加幫助文件。 git或github下載:XCustomPlot 打開項(xiàng)目,將1下載的文件解壓,添加qcustomplot.cpp/p。 在pro文件中添加QT += widgets printsupport、添加CONFIG += c++11. 引入頭文件 #include “qcustomplot.h” 在ui中添加Widgeet,提升為QCustomP

    2024年02月10日
    瀏覽(25)
  • 【Qt圖形視圖框架】自定義QGraphicsItem和QGraphicsView,實(shí)現(xiàn)鼠標(biāo)(移動、縮放)及鍵盤事件、右鍵事件

    說明 在使用Qt的圖形視圖框架實(shí)現(xiàn)功能時(shí),一般會在其基礎(chǔ)上進(jìn)行自定義功能實(shí)現(xiàn)。 如:滾輪對場景的縮放,鼠標(biāo)拖動場景中的項(xiàng),以及可以在場景中進(jìn)行右鍵操作等。 示例 myitem 為自定義QGraphicsItem,實(shí)現(xiàn)了邊框、重繪事件、鼠標(biāo)懸停、按鍵、右鍵菜單等功能。 myitem.h myi

    2024年02月04日
    瀏覽(32)
  • vue實(shí)現(xiàn)點(diǎn)擊右鍵出現(xiàn)自定義操作菜單

    vue實(shí)現(xiàn)點(diǎn)擊右鍵出現(xiàn)自定義操作菜單

    實(shí)現(xiàn)像微信一樣的點(diǎn)擊右鍵后出現(xiàn)操作菜單,對選中的數(shù)據(jù)項(xiàng)進(jìn)行相應(yīng)的操作,接下來介紹使用原生vue實(shí)現(xiàn)右鍵菜單的方法。 @contextmenu.prevent.stop 為阻止瀏覽器的右鍵點(diǎn)擊菜單事件 isShowMenu: 來控制菜單的顯示 同時(shí)我們要為其出現(xiàn)的地方進(jìn)行調(diào)整 menuTop,menuLeft,在展示 menu 的

    2024年02月15日
    瀏覽(21)
  • javascript實(shí)現(xiàn)自定義右鍵菜單(綁定鼠標(biāo)左右鍵)

    思路: 1.綁定右鍵函數(shù)。 2.獲取鼠標(biāo)右鍵按下位置的x坐標(biāo)(到左面的距離),y坐標(biāo)(到上面的距離)。 3.獲取滾動條向下滾動距離,獲取滾動條向左滾動距離 4.最后+‘px’,補(bǔ)全單位,添加到元素style屬性,將元素移動到鼠標(biāo)右鍵位置 1綁定右鍵函數(shù) 2.獲取鼠標(biāo)右鍵按下位置的

    2024年02月09日
    瀏覽(28)
  • Qt鼠標(biāo)點(diǎn)擊事件處理:顯示鼠標(biāo)點(diǎn)擊位置(完整示例)

    Qt鼠標(biāo)點(diǎn)擊事件處理:顯示鼠標(biāo)點(diǎn)擊位置(完整示例)

    Qt 入門實(shí)戰(zhàn)教程(目錄) 前驅(qū)文章: Qt Creator 創(chuàng)建 Qt 默認(rèn)窗口程序(推薦) 事件是對各種應(yīng)用程序需要知道的由應(yīng)用程序內(nèi)部或者外部產(chǎn)生的事情或者動作的通稱。 例如點(diǎn)擊鼠標(biāo),按下按鍵。 在Qt中使用一個對象來表示一個事件,它繼承自QEvent類。 如鼠標(biāo)事件(例如點(diǎn)擊

    2024年02月10日
    瀏覽(24)
  • qt 禁止點(diǎn)擊 屏蔽鼠標(biāo)事件

    我開了一個線程上傳文件夾,用一個進(jìn)度條顯示進(jìn)度 測試 就在界面隨便點(diǎn)擊 ,也沒有出泵任何控件,沒有引發(fā)槽函數(shù),直接就崩了! 不知道為什么崩了,所以直接禁止點(diǎn)擊,蔽鼠標(biāo)事件! 主界面 進(jìn)度條 Qt::WidgetAttribute::WA_TransparentForMouseEvents 該屬性的含義是“透明掉鼠標(biāo)事

    2024年02月15日
    瀏覽(23)
  • Qt+opencv 鼠標(biāo)畫線實(shí)現(xiàn)幾何圖形識別并動態(tài)創(chuàng)建

    Qt+opencv 鼠標(biāo)畫線實(shí)現(xiàn)幾何圖形識別并動態(tài)創(chuàng)建

    使用Qt + OpenCV實(shí)現(xiàn),通過鼠標(biāo)畫線繪制幾何圖形,然后通過opencv進(jìn)行圖形輪廓識別,返回圖形頂點(diǎn),然后創(chuàng)建對應(yīng)的幾何圖形添加到場景中。繪制使用QGraphics體系完成。 看效果圖: 本文demo在這里 點(diǎn)擊下載 環(huán)境: Qt5.15.2 + vs2019 64bit 支持圖形:直線、圓、橢圓、矩形、三角形。

    2024年02月10日
    瀏覽(158)
  • 【Qt】Qt無邊框窗口(鼠標(biāo)點(diǎn)擊自定義標(biāo)題欄)可拖動

    【Qt】Qt無邊框窗口(鼠標(biāo)點(diǎn)擊自定義標(biāo)題欄)可拖動

    隱藏掉標(biāo)題欄后,默認(rèn)情況下窗口無法被鼠標(biāo)拖動的,需要自己處理鼠標(biāo)事件,移動窗口達(dá)到拖動效果,但是又不想要鼠標(biāo)點(diǎn)擊整個窗口都可以拖動,只需要鼠標(biāo)點(diǎn)擊自定義的標(biāo)題欄時(shí)可拖動 具體步驟如下: 類外初始化 通過鼠標(biāo)點(diǎn)擊事件,判斷鼠標(biāo)是否在標(biāo)題欄,如果是,

    2024年02月12日
    瀏覽(22)
  • C++ Qt開發(fā):Tab與Tree組件實(shí)現(xiàn)分頁菜單

    C++ Qt開發(fā):Tab與Tree組件實(shí)現(xiàn)分頁菜單

    Qt 是一個跨平臺C++圖形界面開發(fā)庫,利用Qt可以快速開發(fā)跨平臺窗體應(yīng)用程序,在Qt中我們可以通過拖拽的方式將不同組件放到指定的位置,實(shí)現(xiàn)圖形化開發(fā)極大的方便了開發(fā)效率,本章將重點(diǎn)介紹 tabWidget 選擇夾組件與 TreeWidget 樹形選擇組件,的常用方法及靈活運(yùn)用。 QTabW

    2024年02月04日
    瀏覽(17)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包