def set_data(self, object_icons, object_class_names, object_names, object_names_dict): for i, object_class_name in enumerate(object_class_names): combo = QComboBox(self) model = QStandardItemModel() icon = object_icons[i] qitem = QStandardItem(icon, object_class_name) qitem.setFlags(~Qt.ItemIsSelectable) model.appendRow(qitem) all_object_names = object_names_dict[object_class_name] for object_name in all_object_names: qitem = QStandardItem(object_name) model.appendRow(qitem) combo.setModel(model) combo.insertSeparator(1) combo.activated.connect( lambda index, i=i: self.remove_missing_dimension(i)) self.layout().addWidget(combo) self.combos.append(combo) try: object_name = object_names[i] except IndexError: self.missing_dimensions.add(i) continue if object_name: combo.setCurrentText(object_name) else: self.missing_dimensions.add(i)
def generateDataTypesField(dataType=None): """ @rtype: QComboBox """ dataTypes = QComboBox() dataTypes.addItems( ['TINYINT', 'SMALLINT', 'MEDIUMINT', 'INT', 'BIGINT', 'BIT']) dataTypes.insertSeparator(dataTypes.count()) dataTypes.addItems(['FLOAT', 'DOUBLE', 'DECIMAL']) dataTypes.insertSeparator(dataTypes.count()) dataTypes.addItems( ['CHAR', 'VARCHAR', 'TINYTEXT', 'TEXT', 'MEDIUMTEXT', 'LONGTEXT']) dataTypes.insertSeparator(dataTypes.count()) dataTypes.addItems([ 'BINARY', 'VARBINARY', 'TINYBLOB', 'BLOB', 'MEDIUMBLOB', 'LONGBLOB' ]) dataTypes.insertSeparator(dataTypes.count()) dataTypes.addItems(['DATE', 'TIME', 'YEAR', 'DATETIME', 'TIMESTAMP']) dataTypes.insertSeparator(dataTypes.count()) dataTypes.addItems([ 'POINT', 'LINESTRING', 'POLYGON', 'GEOMETRY', 'MULTIPOINT', 'MULTILINESTRING', 'MULTIPOLYGON', 'GEOMETRYCOLLECTION' ]) dataTypes.insertSeparator(dataTypes.count()) dataTypes.addItems(['ENUM', 'SET']) if dataType is not None: dataTypes.setCurrentIndex(dataTypes.findText(dataType.upper())) return dataTypes