PyQt5 ComboBox – Different border size when it is in ON state
Last Updated :
06 May, 2020
In this article we will see how we can set different border width to the combo box when combo box is in the on state, when we set border to the combo box it is of same width for all the sides although we can change width of each sides respectively, border with different width will only appear when combo box is on state else it will show normal border. On state refer to when item view is open.
In order to do so we have to change the style sheet associated with the combo box below is the stylesheet code
Code 1
QComboBox::on
{
border : solid black;
border-width-top : 1px;
border-width-right : 5px;
border-width-bottom : 2px;
border-width-left : 10px;
}
Code 2
QComboBox::on
{
border : solid black;
border-width : 1px 5px 2px 10px;
}
Both code perform similar task just code 1 is extended version of code 2
Below is the implementation
from PyQt5.QtWidgets import *
from PyQt5 import QtCore, QtGui
from PyQt5.QtGui import *
from PyQt5.QtCore import *
import sys
class Window(QMainWindow):
def __init__( self ):
super ().__init__()
self .setWindowTitle( "Python " )
self .setGeometry( 100 , 100 , 600 , 400 )
self .UiComponents()
self .show()
def UiComponents( self ):
self .combo_box = QComboBox( self )
self .combo_box.setGeometry( 200 , 150 , 150 , 80 )
geek_list = [ "Sayian" , "Super Sayian" , "Super Sayian 2" , "Super Sayian B" ]
self .combo_box.addItems(geek_list)
self .combo_box.setStyleSheet( "QComboBox"
"{"
"border : 5px solid black;"
"}"
"QComboBox::on"
"{"
"border : solid black;"
"border-width : 1px 5px 2px 10px;;"
"}" )
App = QApplication(sys.argv)
window = Window()
window.show()
sys.exit(App. exec ())
|
Output :
When item view is opened
Like Article
Suggest improvement
Share your thoughts in the comments
Please Login to comment...