• 9966阅读
  • 13回复

[提问]如何设置QComboBox右边的drop-down背景为红色,三角形为白色 [复制链接]

上一主题 下一主题
离线weichanghe
 

只看楼主 倒序阅读 楼主  发表于: 2015-08-02
大家好,我是小白,请教一个问题
如何设置QComboBox右边的drop-down背景为红色,三角形为白色。
效果如下图所示。


麻烦提供下方法,先谢啦。


离线咬蚊嚼渍

只看该作者 1楼 发表于: 2015-08-02
使用qss来设置可以达到目的:
基本设置
QComboBox::down-arrow{
background:#AAA;//想要箭头,这个是需要换成使用图片的
}

QComboBox::drop-down {
background:yellow;
}
效果图如下:

----------------
更细分的效果设置如下:
QComboBox::down-arrow{
border: 2px solid #555;
width:5px;
height:5px;
background:#AAA;
}

QComboBox::drop-down {
subcontrol-origin: padding;
subcontrol-position: top right;
width: 24px;
border-left-width:1px;
border-left-color:#555;
border-left-style:solid;
border-top-right-radius: 3px;
border-bottom-right-radius: 3px;
background:yellow;
}
效果图:
离线weichanghe

只看该作者 2楼 发表于: 2015-08-02
先谢啦。

我下载了1个下拉三角形的图标(16像素),图片查看器如下:


用画图程序打开如下:


代码如下:
  1. op_combo = new QComboBox();
  2.      op_combo->setStyleSheet(
  3.         "QComboBox{border:1px solid rgb(0, 255, 0);}"                
  4.         "QComboBox QAbstractItemView::item{height:30px;}"            
  5.         "QComboBox::down-arrow{image:url(:/images/arrow_24.645161290323px_1167914_easyicon.net.png);width:8px; height:8px; background:white ;  }"    
  6.         "QComboBox::drop-down{width:10px; border-left:3px solid rgb(0, 0, 255); background: red;}"    
  7.     );


设置后,三角形后多了一个白色的正方形,效果如下:


三角形后多了一个白色的正方形,这个是什么原因呢?
怎样去掉白色的正方形,只保留红色背景和白色三角形?






离线tylan

只看该作者 3楼 发表于: 2015-08-04
将三角图片的背景设置为透明。
离线weichanghe

只看该作者 4楼 发表于: 2015-08-04
回 tylan 的帖子
tylan:将三角图片的背景设置为透明。 (2015-08-04 12:54) 

你好,能够详细说下怎么弄吗?
谢谢啦。
真的是新手。
离线weichanghe

只看该作者 5楼 发表于: 2015-08-04
参考了 http://bbs.csdn.net/topics/390585251
我把里面的 comboBoxTwo 换成了我自己需要更改的那个 combobox如 mycombobox。
但是qss设置后,仍然没有变化。

当我把 #mycombobox  删掉后,用qss设置,会把我界面里面的所有 combobox更改。
但是我实际上只想更改  这个 mycombobox 。
该如何做到呢?
离线tylan

只看该作者 6楼 发表于: 2015-08-07
回 weichanghe 的帖子
weichanghe:你好,能够详细说下怎么弄吗?
谢谢啦。
真的是新手。 (2015-08-04 21:49) 

你得保证你得图片的背景是透明的。
离线咬蚊嚼渍

只看该作者 7楼 发表于: 2015-08-07
图片的背景必须透明才行
离线tylan

只看该作者 8楼 发表于: 2015-08-07
离线tylan

只看该作者 9楼 发表于: 2015-08-07
离线weichanghe

只看该作者 10楼 发表于: 2015-08-07
回 tylan 的帖子
tylan:[图片] (2015-08-07 19:04) 

哇哇,好厉害哦,你真的做到了哦。
看来必须得先用Photoshop软件把图片背景弄完透明才行。

可惜从来没有用过Photoshop软件,先学习下这个软件先。
再把图片背景处理为透明。
离线咬蚊嚼渍

只看该作者 11楼 发表于: 2015-08-07
图片的话,不需要一定用ps来做的,你到一些免费的icon网站去寻找
比如:
http://www.iconpng.com/
http://www.easyicon.net/


离线z55716368

只看该作者 12楼 发表于: 2015-08-08
    
每一个问题 都是一次进步
离线weichanghe

只看该作者 13楼 发表于: 2015-08-11
回 咬蚊嚼渍 的帖子
咬蚊嚼渍:图片的话,不需要一定用ps来做的,你到一些免费的icon网站去寻找
比如:
http://www.iconpng.com/
http://www.easyicon.net/
....... (2015-08-07 22:14) 

非常感谢,呵呵,我的那个三角形图片是在 easyicon里面下载的。
可惜背景色是透明的,不是白色的。
找了10多页,只找到了那一张 顶点向下的三角形图片。

不过仍然多谢你哈。
快速回复
限100 字节
 
上一个 下一个