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;}");//不顯示下拉圖片
可以看到小三角不顯示了:
![](https://i.iter01.com/images/11b36e00ac42ad0f31519de639b4e88b8835846c930612cd7c29d08e4fc6ae8b.png)
如果需要動作點選後,有明顯的指示,也就是狀態,如下:
只需要設定QAction可以check就可以了:
m_addAction->setCheckable(true);//是否可以check
m_delAction->setCheckable(true);//是否可以check
最後,執行成功,點選對應的動作,可以看到控制檯輸出:
交流Q:1245178753
本文地址:http://blog.csdn.net/u011417605/article/details/51218493
相關文章
- HTML+CSS+JQuery實現下拉選單滑鼠懸浮顯示下拉選單,取消隱藏HTMLCSSjQuery
- vue下拉選單Vue
- HTML select 下拉選單HTML
- HTML select下拉選單HTML
- kendoUI 多選下拉選單 kendoMultiSelectUI
- CSS 二級下拉選單CSS
- jQuery 美化select下拉選單jQuery
- CSS二級下拉選單CSS
- 圓角select下拉選單
- 函式節流實現滑動下拉選單函式
- 模擬select下拉選單詳解
- 下拉選單框和滾動條
- css滑鼠懸浮下拉選單效果CSS
- CSS導航欄及下拉選單CSS
- jQuery與CSS二級下拉選單jQueryCSS
- JavaScript帶下拉選單的文字框JavaScript
- HTML+CSS實現下拉選單HTMLCSS
- 滑鼠經過顯示下拉選單
- JavaScript二級下拉選單詳解JavaScript
- JavaScript動態操作select下拉選單JavaScript
- JavaScript slide下拉導航選單效果JavaScriptIDE
- 選擇select下拉選單網頁跳轉網頁
- checkbox及css實現點選下拉選單CSS
- Selenium測試form表單之下拉選單ORM
- 012---表單、下拉選單和表單域
- 滑鼠移上去出現下拉選單
- 純css製作導航下拉選單CSS
- select下拉選單跳轉效果程式碼
- JavaScript滑鼠懸浮出現下拉選單效果JavaScript
- jQuery Validate對select下拉選單驗證jQuery
- Flutter基礎-042-DropDownButton下拉選單Flutter
- vue點選空白區域,下拉選單隱藏Vue
- antd design Menu選單下拉回撥以及下拉選單時只能顯示一個列表,其餘關閉
- jQuery 淡入淡出效果下拉導航選單jQuery
- CSS三級下拉導航選單詳解CSS
- JavaScript下拉摺疊導航選單講解JavaScript
- 手寫下拉選單,模糊查詢資料
- 滑鼠懸浮緩慢下拉導航選單
- 使用 Java 在Excel中建立下拉選單JavaExcel