//创建button

QPushbutton * button = new QPushbutton;

//连接button点击信号,在点击的时候弹出menu

connect(button,SIGNAL(clicked(bool)),this,SLOT(onButtonClicked(bool)));

//onButtonClicked函数实现。(menu的追加也可以在函数外,在函数外需要追加为全局变量)

void onButtonClicked(bool tt) {//新建menuQMenu *menu = new QMenu(this);//新建actionQAction* act1 = new QAction("选择全局类型",this);QAction* act2 = new QAction("选择工程类型",this);QAction* act3 = new QAction("新建工程类型",this);QAction* act4 = new QAction("移除类型",this);//把action追加到menumenu->addAction(act1);menu->addAction(act1);menu->addAction(act1);menu->addAction(act1);//把menu加载到buttonbutton->setMenu(menu);//设置button文字button->setText("下拉列表");//打开menumenu->exec(QPoint(QCursor::pos().x(),QCursor::pos().y()));}

效果:

进阶:

1、如果点击列表的某项需要做事情,可以追加响应的信号连接来响应事件

connect(act1,SIGNAL(triggered()),this,SLOT(onAct1Clicked()));void onAct1Clicked() {//在这里做自己想要的事情。
}

2、如果不喜欢那个按钮右侧的下拉图标,可以设置取消显示:

button->setStyleSheet("QPushButton::menu-indicator{image:none}");

效果如图:

3、如果不想显示文字,只显示下拉图标(或者其他图标),可以设置如下:

内置图标参考:(20条消息) Qt的内置图标库_爱上876的博客-CSDN博客_qt图标库

//设置QT内置图标-(下拉图标)
button->setIcon(QApplication::style()->standardICon(QStyle::SP_TitleBarUnshadeButton);
//一般这样设置图标比较小,如果要放大可以如下设置
QIcon icon = QApplication::style()->standardICon(QStyle::SP_TitleBarUnshadeButton);
QPixmap map = icon.pixmap(QSize(20,20));
button->setIcon(QIcon(map.scaled(QSize(100,100))));//使用其他图片可以如下设置
button->setIcon(QIcon(QPixmap("./按钮/sound.png").scaled(QSize(100,100))));

使用QT自大内置图标效果图:

4、如果列表左边要放icon,就直接设置就可以,不要icon觉得左边太宽,可以如下设置

在上面的函数中追加如下
void onButtonClicked(bool tt) {//新建menuQMenu *menu = new QMenu(this);//追加QString menu_style = “QMenu::item{padding-left:2px};”;menu->setStyleSheet(menu_style);...
}

效果如下:(是不是顺眼多了)

喜欢就点个赞吧!

转载请注明出处 (20条消息) QT QPushbutton制作下拉列表_luo_bin2010的博客-CSDN博客https://blog.csdn.net/luo_bin2010/article/details/124167421

QT QPushbutton制作下拉列表相关推荐

  1. Qt Creator制作动画

    Qt Creator制作动画 制作动画 创建时间表 将动画绑定到状态 管理关键帧 浏览时间轴 设置关键帧值 观看动画 编辑缓和曲线 将缓和曲线附加到关键帧 自定义缓和曲线 编辑动画曲线 旋转项目 制作 ...

  2. 使用Qt Designer制作软件的图形界面

    介绍 Qt Designer是一款设计和构建图形用户界面的Qt工具,本文介绍如何使用Qt Manager制作软件的图形界面. 安装 使用Qt Manager时,首先在python的环境中安装pyqt, ...

  3. 使用Qt绘图制作一个钟表

    使用Qt绘图制作一个钟表 实际效果如下: 一.钟表实现的大概思路 设置定时器,定时器每隔一秒调用repaint()函数,paintEvent()函数随即被调用,利用paintEvent()函数重绘钟表 ...

  4. 树莓派3B qt+mplayer制作音乐播放器(10)

    内容 树莓派3B qt+mplayer制作音乐播放器:播放.暂停.上一曲.下一曲,音量调节. 平台:树莓派+qt+mplayer 1.配置 qt安装见此: https://blog.csdn.net/ ...

  5. linux qt make文件或目录,rpm,linux_为Qt程序制作rpm包的spec文件里的路径问题,rpm,linux,qt,rpmbuild,spec - phpStudy...

    为Qt程序制作rpm包的spec文件里的路径问题 我对Qt和rpm都不怎么熟悉,所以在为Qt程序制作rpm包的时候被路径问题纠结到了. Qt的.pro文件的相关部分是这么写的,其中AppName是我的 ...

  6. qt中制作添加 .ts 翻译文件

    qt中制作添加 .ts 翻译文件 QT 中可以用其自身的工具对界面语言进行翻译,以实现支持语言的效果,这对于开发用户跨越语言区域的工具来说是一个特别实用的功能. 下面介绍怎么制作和使用qt的翻译文件: ...

  7. excel中制作下拉列表

    本文介绍如何在excel中制作下拉列表 选中需要显示下拉列表的区域,比如下表中的[优先级]整列(不包括标题栏),点击顶部菜单栏[数据]>[数据验证]>[数据验证-] 验证条件选择[序列], ...

  8. excel添加列下拉框票价_在Excel中制作下拉列表的三种方法

    下拉列表在Excel中的用途十分广泛.在Excel中制作下拉列表可以通过数据有效性.使用窗体控件和VBA控件工具箱中的组合框来制作.下面用一个具体的例子来进行说明(在文章结尾处可下载xls格式的示例文 ...

  9. Qt QPushButton按钮用法详解

    Qt QPushButton按钮用法详解 按钮是 GUI 开发中最常用到的一种控件,作为一款著名的 GUI 开发框架,Qt 提供了很多种按钮,比如 QPushButton(普通按钮).QRadioBu ...

最新文章

  1. 字符转换指令tr,col,expand
  2. 【转】清理Visual Studio打开的项目和文件、查找和最近引用组件痕迹
  3. 如何使用SAP Cloud for Customer的Key User Tool将Mashup添加到UI上
  4. 创建基于MailKit和MimeKit的.NET基础邮件服务
  5. 手把手教你写竞品分析
  6. Moto One Pro渲染图曝光:潮流“浴霸”四摄加持
  7. 华为鸿蒙系统腾讯,腾讯内容开放平台
  8. 人为什么总感觉莫名的心烦?
  9. 记录——《C Primer Plus (第五版)》第十章编程练习第四题
  10. Nginx 学习笔记(十)介绍HTTP / 2服务器推送(译)
  11. C++ 11 新特性
  12. Captaris WorkFlow的开发和部署
  13. 超级简单却不知道:html标签的嵌套规则
  14. jquery鼠标右键事件
  15. 用adb给华为mate10手机精简系统
  16. ArcGIS无插件加载(无偏移)天地图
  17. WDS服务--网络安装系统(自动部署装机Windows系统)
  18. 网络安全:六种常见的网络攻击手段
  19. android手机怎么拍月亮,苹果X手机怎样拍摄月亮 教你拍出最清晰的月亮
  20. 金蝶kis记账王新建套账的操作方法

热门文章

  1. 计算机三级网络技术(选择高频考点)
  2. idea 亮度 调整_AOC显示器亮度怎么调 冠捷亮度调整方法
  3. SSM框架学习(一)————SSM框架简介
  4. 低功耗电流波形分析仪mPower1203之Esight用户手册
  5. Unexpected exception parsing XML document from class path resource
  6. 了解iPhone OS框架
  7. Audio基本概念及处理流程
  8. 【Linux】Linux 下socket 编程
  9. css:css样式背景图片设置透明度,css如何设置背景图片的透明度
  10. 使用Axure RP8 模拟遮罩层显隐