Pyqt 自定义combobox

版权声明:zhaojanc https://blog.csdn.net/qq_38641985/article/details/83413113
from PyQt4 import QtGui, QtCore
import sys, os

class Check_ComboBox(QtGui.QComboBox):
    def __init__(self):
        super(Check_ComboBox, self).__init__()
        self.view().pressed.connect(self.handleItemPressed)
        self.setModel(QtGui.QStandardItemModel(self))

    def handleItemPressed(self, index):
        item = self.model().itemFromIndex(index)
        if item.checkState() == QtCore.Qt.Checked:
            item.setCheckState(QtCore.Qt.Unchecked)
        else:
            item.setCheckState(QtCore.Qt.Checked)

class myWindow(QtGui.QMainWindow):
    def __init__(self):
        super(QtGui.QMainWindow,self).__init__()
        self.setWindowTitle("custom_combobox")
        myQWidget = QtGui.QWidget()
        myBoxLayout = QtGui.QVBoxLayout()
        myQWidget.setLayout(myBoxLayout)
        self.setCentralWidget(myQWidget)
        self.ComboBox = Check_ComboBox()
        for i in range(10):
            self.ComboBox.addItem("Class studnet " + str(i))
            item = self.ComboBox.model().item(i, 0)
            item.setCheckState(QtCore.Qt.Unchecked)
        self.toolbutton = QtGui.QToolButton(self)
        self.toolbutton.setText('age information')
        self.toolmenu = QtGui.QMenu(self)
        for i in range(5):
            action = self.toolmenu.addAction("2" + str(i))
            action.setCheckable(True)
        self.toolbutton.setMenu(self.toolmenu)
        self.toolbutton.setPopupMode(QtGui.QToolButton.InstantPopup)
        myBoxLayout.addWidget(self.toolbutton)
        myBoxLayout.addWidget(self.ComboBox)
        self.resize(260,120)

if __name__ == '__main__':
    app = QtGui.QApplication(sys.argv)
    ap = myWindow()
    ap.show()
    sys.exit(app.exec_())

在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/qq_38641985/article/details/83413113