QT QComBox详细用法 自定义QComboBox控件

QT QComBox详细用法 自定义QComboBox控件样式表 QComboBox border 1pxsolid bebebe padding 1px18px1px3p font normalnormal MicrosoftYaH color background transparent QComboBox editable background

部分样式需要设置窗口属性才能生效

 ui->comboBox->setView(new QListView()); ui->comboBox->view()->window()->setWindowFlags(Qt::Popup|Qt::FramelessWindowHint|Qt::NoDropShadowWindowHint); ui->comboBox->view()->window()->setAttribute(Qt::WA_TranslucentBackground); 

样式表 

QComboBox { border: 1px solid #bebebe; padding: 1px 18px 1px 3px; font: normal normal 16px "Microsoft YaHei"; color: #; background: transparent; } QComboBox:editable{ background: transparent; } QComboBox:!editable, QComboBox::drop-down:editable{ background: transparent; } QComboBox:!editable:on, QComboBox::drop-down:editable:on{ background: transparent; } QComboBox:!on{ } QComboBox:on{ /* the popup opens */ color: #; border-color: #327cc0; background: transparent; } QComboBox::drop-down{ subcontrol-origin: padding; subcontrol-position: top right; width: 20px; border-left-width: 1px; border-left-color: darkgray; } QComboBox::down-arrow { image: url(:/common/combobox_arrow); } QComboBox::down-arrow:on { image: url(:/common/combobox_arrow_up); } QComboBox QAbstractItemView { outline: 0; border: 1px solid #327cc0; background-color: #F1F3F3; font: normal normal 14px "Microsoft YaHei"; } QComboBox QAbstractItemView::item { height: 32px; color: #; background-color: transparent; } QComboBox QAbstractItemView::item:hover { color: #FFFFFF; background-color: #327cc0; } QComboBox QAbstractItemView::item:selected { color: #FFFFFF; background-color: #327cc0; } QComboBox QAbstractScrollArea QScrollBar:vertical { background-color: #d0d2d4; } QComboBox QAbstractScrollArea QScrollBar::handle:vertical { background: rgb(160,160,160); } QComboBox QAbstractScrollArea QScrollBar::handle:vertical:hover { background: rgb(90, 91, 93); } 

效果一 

QT QComBox详细用法 自定义QComboBox控件

 QComboBox *ComBox=new QComboBox(this); ComBox->setGeometry(0,0,209,45); ComBox->addItem(tr("1小时")); ComBox->addItem(tr("2小时")); ComBox->addItem(tr("3小时")); ComBox->addItem(tr("4小时")); ComBox->setStyleSheet("QComboBox{"//基本样式 "border-image:url(:/Sys/output-box.png);" "font:黑体;" "font-size:20px;" "color:rgb(255,255,255);" "background-color:transparent;" "width:209px;" "height:45px;" "}" "QComboBox::down-arrow{"//下拉三角样式 "image:url(:/Sys/btn_pulldown.png);" "background-color:transparent;" "width:36px;" "height:22px;" "right:2px;" "}" "QComboBox QAbstractItemView {"//Box内条目 "outline:0px;" //去掉虚线 "}" "QComboBox::drop-down {" "subcontrol-origin: padding;" "subcontrol-position: top right;" "width: 36px;" "}" ); 

 效果二

 QT QComBox详细用法 自定义QComboBox控件

一个QLabel和QComboBox组成  设置边框颜色  ComboBox三角箭头

#ifndef PROCOMBOBOX_H #define PROCOMBOBOX_H #include 
  
    #include 
   
     #include 
    
      class ProComboBox :public QWidget { public: ProComboBox(QWidget *parent); void init(); void setLwCwAhsize(int LabelW,int ComboBoxW,int AllH); //Label width ComboBox width All heigth QLabel *m_Label; QComboBox *m_ComboBox; }; #endif // PROCOMBOBOX_H 
     
    
  

#include "ProComboBox.h" ProComboBox::ProComboBox(QWidget *parent = 0) { this->setParent(parent); init(); } void ProComboBox::init() { m_Label = new QLabel(this); m_Label->setStyleSheet("QLabel{" "background-color:transparent;" "color:rgb(0,190,255);" "border:1px solid #00beff;" "border-top-left-radius:5px;" "border-top-right-radius:0px;" "border-bottom-left-radius:5px;" "border-bottom-right-radius:0px;}" ); m_ComboBox = new QComboBox(this); m_ComboBox->setStyleSheet("QComboBox{" "background-color:transparent;" "color:rgb(255,255,255);" "border:1px solid #00beff;" "border-top-left-radius:0px;" "border-top-right-radius:5px;" "border-bottom-left-radius:0px;" "border-bottom-right-radius:5px;}" "QComboBox::drop-down{" "background-color:transparent;" "image:url(:/image/boxpull.png);" "width:26px;right:5px;}" ); setLwCwAhsize(50,50,34); } void ProComboBox::setLwCwAhsize(int LabelW, int ComboBoxW, int AllH) { m_Label->setGeometry(0,0,LabelW,AllH); m_ComboBox->setGeometry(LabelW,0,ComboBoxW,AllH); resize(LabelW + ComboBoxW,AllH); } 

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/201600.html原文链接:https://javaforall.net

(0)
上一篇 2026年3月20日 上午9:02
下一篇 2026年3月20日 上午9:02


相关推荐

  • python编程100例_python典型异常

    python编程100例_python典型异常异常模块下面介绍python常用的异常模块AttributeError异常AttributeError试图访问一个类中不存在的成员(包括:成员变量、属性和成员方法)而引发的异常Attribut

    2022年7月30日
    11
  • c语言全局钩子,如何编写一个全局钩子

    c语言全局钩子,如何编写一个全局钩子原标题 如何编写一个全局钩子钩子函数并不是什么高深的技术 在 Microsoft 的 Win32SDK 手册上就有记述 不过很可惜秉承 M 的一贯风格 要看懂可是不容易的事 而且它的例子是使用 SDK 写的 又不完整 这就让我们这些用只会 Delphi 的程序员更看不懂了 不过用钩子函数是很有用的 例如鼠标钩子可以拦截下所有的鼠标消息的 钩子函数一共有 12 种 这里就不列举出来了 不过说实话我多数钩子也没有用过

    2026年3月26日
    2
  • windows 2008文件服务器审计

    windows 2008文件服务器审计windows2008或者windows2008r2,系统做域内的文件服务器,能否做到谁删除某个共享出来的文件夹或者文件的操作审计?审计级别能做到怎么样一个程度?回答:依据您的问题您想知道Windows2008文件服务器的审计相关。依据我的经验,这个要分成两种情况:1.在远端访问,就是通过网络路径访问;2.在本地上本地访问共享文件,就是在创建的机器上访问;远端访问访问共享文件…

    2022年6月4日
    83
  • EAO-SLAM 使用指南[项目代码]

    EAO-SLAM 使用指南[项目代码]

    2026年3月13日
    2
  • pycharm断点调试教程_pycharm怎么debug

    pycharm断点调试教程_pycharm怎么debug前言如果你不会用IDE开发工具的debug,你在调试代码的时候可能会用print输出去调试,那样效率比较低。我们可以用Pycharm的debug来调试,当然如果你用的Jetbranis的其他产品,操作方法也是一样的。Pycharm的Debug(1)开启debug的方式:右键debug项目 工具栏的甲壳虫(2)常用按钮图解debugger栏:stepover(单步调试)程序代码越过子函数,但子函数会执行,且不进入。 stepinto(进入)在单步执行时,遇到子函数就进入.

    2022年8月26日
    9
  • 基于MATLAB GUI的串口通信

    基于MATLAB GUI的串口通信之前学过单片机对于串口通信比较了解最近在学习MATLAB发现它还可以控制串口于是通过MATLAB的GUI创建了一个串口通信的小软件效果如下如果没有单片机或者其他硬件的话我们可以直接用软件模拟串口本人选择了ConfigureVirtualSerialPortDriver这个软件软件网上就有下一个使用几天就行了 选…

    2022年6月12日
    51

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号