QPushButton下拉式選單(是否取消下拉三角,是否check)
給QPushButton新增選單的示例,前面已經有了三種方式:
Qt學習之給QPushButton新增選單ActionsContextMenu方法
Qt學習之給QPushButton新增選單CustomContextMenu方法
Qt學習之給QPushButton新增選單DefaultContextMenu方法
今天再提供一種方式,就是給QPushButton新增下拉式選單。類似於Combobox一樣。前面三種方式實現的都是游標在哪個位置,選單就在哪裡顯示。而下拉式選單隻在按鈕的下方顯示,同時會顯示下拉三角,效果如下:
要實現下拉選單,首先需要建立選單,動作以及按鈕本身,為了便於顯示效果,另外新增了兩個成員函式,用來對應當動作被觸發時,顯示不同的資訊:
m_menu = new QMenu(this);
m_addAction = new QAction(m_menu);
m_delAction = new QAction(m_menu);
m_addAction->setText(QObject::tr("新增"));
m_delAction->setText(QObject::tr("刪除"));
m_menu->addAction(m_addAction);
m_menu->addAction(m_delAction);
connect(m_addAction, &QAction::triggered, this, &ButtonMenu::addFunc);
connect(m_delAction, &QAction::triggered, this, &ButtonMenu::delFunc);
m_pushButton = new QPushButton(this);
m_pushButton->setText(QObject::tr("測試按鈕選單"));
m_pushButton->setMenu(m_menu);//設定選單
void ButtonMenu::addFunc()
{
qDebug() << "addFunc";
}
void ButtonMenu::delFunc()
{
qDebug() << "delFunc";
}
編譯執行,出現了一個問題,漢字亂碼。
因為我是VS2013+Qt,所以解決亂碼問題在標頭檔案中新增一句話。
#pragma execution_character_set("utf-8")
對於按鈕上的下拉三角圖示,如果不需要的話,可以通過QSS來取消:m_pushButton->setStyleSheet("QPushButton::menu-indicator{image:none;}");//不顯示下拉圖片
可以看到小三角不顯示了:
如果需要動作點選後,有明顯的指示,也就是狀態,如下:
只需要設定QAction可以check就可以了:
m_addAction->setCheckable(true);//是否可以check
m_delAction->setCheckable(true);//是否可以check
最後,執行成功,點選對應的動作,可以看到控制檯輸出:
交流Q:1245178753
本文地址:http://blog.csdn.net/u011417605/article/details/51218493
相關文章
- DIV下拉式選單(轉)
- HTML+CSS+JQuery實現下拉選單滑鼠懸浮顯示下拉選單,取消隱藏HTMLCSSjQuery
- 下拉選單
- vue下拉選單Vue
- html - 下拉選單HTML
- Spinner下拉選單
- Bootstrap下拉選單disabledboot
- Vue.js自定義下拉選單,如何實現在下拉選單區域外點選即可關閉下拉選單的功能Vue.js
- Bootstrap3系列:按鈕式下拉選單boot
- CSS 二級下拉選單CSS
- HTML select下拉選單HTML
- HTML select 下拉選單HTML
- CSS二級下拉選單CSS
- jQuery 二級下拉選單jQuery
- kendoUI 多選下拉選單 kendoMultiSelectUI
- 函式節流實現滑動下拉選單函式
- jQuery 美化select下拉選單jQuery
- 圓角select下拉選單
- Bootstrap3系列:下拉選單boot
- select下拉選單 change事件事件
- bootstrap36-Bootstrap下拉選單boot
- 滑鼠滑過,展示下拉選單
- AngularJS教程十—— 下拉選單AngularJS
- 選中select下拉選單項提交表單
- css滑鼠懸浮下拉選單效果CSS
- JavaScript二級下拉選單詳解JavaScript
- 下拉選單框和滾動條
- CSS導航欄及下拉選單CSS
- HTML+CSS實現下拉選單HTMLCSS
- JavaScript帶下拉選單的文字框JavaScript
- jQuery與CSS二級下拉選單jQueryCSS
- 可以輸入select下拉選單
- 滑鼠經過顯示下拉選單
- jquery如何操作select下拉選單jQuery
- bootstrap39-Bootstrap下拉選單dropdownboot
- BIEE header欄新增下拉選單Header
- 自定義下拉選單控制元件控制元件
- JS實現級聯下拉選單JS