from
PyQt5.QtWidgets
import
*
from
PyQt5
import
QtCore, QtGui
from
PyQt5.QtGui
import
*
from
PyQt5.QtCore
import
*
import
sys
class
CheckableComboBox(QComboBox):
def
__init__(
self
, parent
=
None
):
super
(CheckableComboBox,
self
).__init__(parent)
self
.view().pressed.connect(
self
.handleItemPressed)
self
.setModel(QStandardItemModel(
self
))
count
=
0
def
do_action(
self
):
window.label.setText(
"Checked number : "
+
str
(
self
.count))
def
handleItemPressed(
self
, index):
item
=
self
.model().itemFromIndex(index)
if
item.checkState()
=
=
Qt.Checked:
item.setCheckState(Qt.Unchecked)
else
:
item.setCheckState(Qt.Checked)
self
.count
+
=
1
self
.do_action()
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
=
CheckableComboBox(
self
)
self
.combo_box.setGeometry(
200
,
150
,
150
,
30
)
geek_list
=
[
"Sayian"
,
"Super Sayian"
,
"Super Sayian 2"
,
"Super Sayian B"
]
self
.combo_box.addItems(geek_list)
self
.label
=
QLabel(
"Not checked"
,
self
)
self
.label.setGeometry(
200
,
100
,
200
,
30
)
App
=
QApplication(sys.argv)
window
=
Window()
window.show()
sys.exit(App.
exec
())