我们从Python开源项目中,提取了以下31个代码示例,用于说明如何使用PyQt4.QtGui.QStandardItemModel()。
def __init__(self, *args, **kwargs): QtGui.QSplitter.__init__(self, *args, **kwargs) self.setOrientation(QtCore.Qt.Horizontal) self.setChildrenCollapsible(False) self.setSizePolicy(QtGui.QSizePolicy.Expanding, QtGui.QSizePolicy.MinimumExpanding) self.tree = QtGui.QTreeView() self.eater = False self.addWidget(self.tree) self.tree.setEditTriggers(QtGui.QTreeView.NoEditTriggers) self.tree.setExpandsOnDoubleClick(False) self.tree.setHeaderHidden(True) self.tree.setTextElideMode(QtCore.Qt.ElideNone) self.model = QtGui.QStandardItemModel() self.tree.setModel(self.model) self.tree.clicked.connect(self.param_select) self.tree.currentChanged = self.param_select self.param_widget = QtGui.QWidget() self.addWidget(self.param_widget) self.build_summary() self.tree.header().setResizeMode(QtGui.QHeaderView.ResizeToContents) self.tree.expandAll() self.tree.setMinimumWidth(self.tree.sizeHintForColumn(0)) self.tree.collapseAll()
def update_library(self): self.library = get_library() self.library_table.clear() self.library_table.setStyleSheet("selection-background-color: blue") # ??????? self.library_table.setRowCount(len(self.library['books'])) self.library_table.setColumnCount(5) # TODO: ??????? self.library_table.setHorizontalHeaderLabels(['Title', 'Authors', 'Tags', 'Date', 'Size(MB)']) self.library_table.setAlternatingRowColors(True) self.library_table.setEditTriggers(QTableWidget.NoEditTriggers) self.library_table.setSelectionBehavior(QTableWidget.SelectRows) self.library_table.setSelectionMode(QTableWidget.SingleSelection) self.model = QtGui.QStandardItemModel(self) for i, book in enumerate(self.library['books']): for j, cell in enumerate((book['title'], book['author'], book['tags'], book['date'], book['size'])): item = QTableWidgetItem(cell) item.setTextAlignment(Qt.AlignCenter) self.library_table.setItem(i, j, item) self.library_table.resizeColumnsToContents()
def __init__(self, parent): QtGui.QComboBox.__init__(self, parent) self.model = QtGui.QStandardItemModel() self.state_item = QtGui.QStandardItem('all') self.state_item.setEnabled(False) self.model.appendRow(self.state_item) all_item = QtGui.QStandardItem('select all') self.model.appendRow(all_item) none_item = QtGui.QStandardItem('select none') self.model.appendRow(none_item) self.bank_items = [] for i in range(8): item = QtGui.QStandardItem(uppercase[i]) item.setCheckable(True) item.setCheckState(2) item.setTristate(False) self.model.appendRow(item) self.bank_items.append(item) self.setModel(self.model) self.activated.connect(self.check) self.setCurrentIndex(0) self.installEventFilter(self)
def __init__(self, parent, item_list=None): QtGui.QListView.__init__(self, parent) self.main = parent self.setEditTriggers(QtGui.QListView.NoEditTriggers) self.setMouseTracking(True) if sys.platform == 'win32': self.setWindowFlags(QtCore.Qt.FramelessWindowHint|QtCore.Qt.Tool) else: self.setWindowFlags(QtCore.Qt.FramelessWindowHint|QtCore.Qt.Tool|QtCore.Qt.ToolTip) self.model = QtGui.QStandardItemModel() self.setModel(self.model) if item_list: self.add_items(item_list) self.adjust_size() self.clicked.connect(self.selected) self.activated.connect(self.selected) self.setSizePolicy(QtGui.QSizePolicy.Minimum, QtGui.QSizePolicy.Preferred)
def __init__(self, main, *args, **kwargs): QtGui.QDialog.__init__(self, main, *args, **kwargs) load_ui(self, 'dialogs/wavetable_undo.ui') self.main = main self.undo = self.main.undo self.undo_model = QtGui.QStandardItemModel() self.undo_list.setModel(self.undo_model) original = QtGui.QStandardItem('Initial state') setBoldItalic(original, True, False) self.undo_model.appendRow(original) self.undo.updated.connect(self.update) self.undo.indexChanged.connect(self.indexChanged) self.undo_list.doubleClicked.connect(self.do_action) self.undo_btn.clicked.connect(lambda: self.undo.setIndex(0)) self.redo_btn.clicked.connect(lambda: self.undo.setIndex(self.undo.count()))
def __init__(self, parent=None): QtGui.QComboBox.__init__(self, parent) self.setEditable(True) self.setInsertPolicy(QtGui.QComboBox.NoInsert) self.setMaximumWidth(100) self.p_model = QtGui.QStandardItemModel() self.name_model = QtGui.QStandardItemModel() self.setModel(self.p_model) metrics = QtGui.QFontMetrics(self.view().font()) ctrl_width = [] note_width = [] for i in range(128): ctrl = Controllers[i] ctrl_str = '{} - {}'.format(i, ctrl) ctrl_item = QtGui.QStandardItem(ctrl_str) ctrl_item.setData(i, IdRole) ctrl_item.setData(ctrl, NameRole) ctrl_width.append(metrics.width(ctrl_str)) ctrl_name_item = QtGui.QStandardItem(ctrl) ctrl_name_item.setData(i, IdRole) note = NoteNames[i].title() note_str = '{} - {}'.format(i, note) note_item = QtGui.QStandardItem(note_str) note_item.setData(i, IdRole) note_item.setData(note, NameRole) note_width.append(metrics.width(note_str)) note_name_item = QtGui.QStandardItem(note) note_name_item.setData(i, IdRole) self.p_model.appendRow([ctrl_item, note_item]) self.name_model.appendRow([ctrl_name_item, note_name_item]) self.ctrl_width = max(ctrl_width) self.note_width = max(note_width) self.ref_size = self.width() self.activated.connect(lambda i: self.lineEdit().setCursorPosition(0)) self.currentIndexChanged.connect(lambda i: self.lineEdit().setCursorPosition(0))
def create_event_types(self): self.trigger_model = QtGui.QStandardItemModel() self.record_model = QtGui.QStandardItemModel() self.ignore_model = QtGui.QStandardItemModel() self.trigger_list.setModel(self.trigger_model) self.record_list.setModel(self.record_model) self.ignore_list.setModel(self.ignore_model) all_types = list(trigger_defaults)+list(record_defaults) view_dict = {TRIGGER: self.trigger_model, RECORD: self.record_model, IGNORE: self.ignore_model} # defaults = {ev_type:dest for dest, t in dict({trigger_defaults: self.trigger_model, record_defaults: self.record_model, ignore_defaults: self.ignore_model}.items()) for ev_type in t} for ev_type in all_types: item = QtGui.QStandardItem(str(ev_type)) item.setData(ev_type, EventRole) # item.setData(defaults[ev_type], DefaultRole) item.setData(True if ev_type in trigger_allowed else False, TriggerRole) item.setData(True if ev_type in record_allowed else False, RecordRole) view_dict[self.event_filter[ev_type]].appendRow(item)
def setValue(self, value, undo=False): if not self._actualValue == value: if undo: self.emit(QtCore.SIGNAL("valueChanged"), copy.deepcopy( self._actualValue), copy.deepcopy(value)) self._actualValue = copy.deepcopy(value) rows = len(value) if (self._format == "2D") and (rows > 0): columns = len(value[0]) else: columns = 1 self._model = QtGui.QStandardItemModel(rows, columns) for row in range(rows): for column in range(columns): index = self._model.index(row, column, QtCore.QModelIndex()) if (self._format == "1D"): self._model.setData(index, QtCore.QVariant(value[row])) if (self._format == "2D"): self._model.setData( index, QtCore.QVariant(value[row][column])) self._tableView.setModel(self._model)
def __init__(self, parent=None): QtGui.QStandardItemModel.__init__(self, parent) #------------------------------------------------------------------------------------------------
def __init__(self, parent=None): QtGui.QTableView.__init__(self, parent) self.model = QtGui.QStandardItemModel(parent=self) self.model.setHorizontalHeaderLabels(['Source', 'Destination', 'Protoco', 'Info']) self.setModel(self.model) self.setColumnWidth(0, 120) self.setColumnWidth(1, 120) self.setColumnWidth(2, 100) self.setColumnWidth(3, 350) self.setAlternatingRowColors(True) self.setAutoScroll(True) self.setSelectionBehavior(QtGui.QAbstractItemView.SelectRows) #???? self.setEditTriggers(QtGui.QTableView.NoEditTriggers) #???? self.setSelectionMode(QtGui.QTableView.SingleSelection) #???? self.show()
def __init__(self, parent): QDialog.__init__(self, parent) Ui_TextItemEditor.__init__(self) self.setupUi(self) self.itemName = "Value" # Create an empty model for the list's data self._model = QStandardItemModel(self.list_view)
def sort(self, column, order): if column == 0: self._sort_order = order QtGui.QStandardItemModel.sort(self, column, order)
def update_files_list(self): self.tools = Tools() # initialize model for inserting to table model = QtGui.QStandardItemModel(1, 1) model.setHorizontalHeaderLabels(['File name', 'File size', 'Mimetype', 'File ID']) self.current_bucket_index = self.file_manager_ui.bucket_select_combo_box.currentIndex() self.current_selected_bucket_id = self.bucket_id_list[self.current_bucket_index] i = 0 try: for self.file_details in self.storj_engine.storj_client.bucket_files(str(self.current_selected_bucket_id)): item = QtGui.QStandardItem(str(self.file_details['filename'].replace('[DECRYPTED]', ""))) model.setItem(i, 0, item) # row, column, item (StandardItem) file_size_str = self.tools.human_size(int(self.file_details["size"])) # get human readable file size item = QtGui.QStandardItem(str(file_size_str)) model.setItem(i, 1, item) # row, column, item (QQtGui.StandardItem) item = QtGui.QStandardItem(str(self.file_details['mimetype'])) model.setItem(i, 2, item) # row, column, item (QStandardItem) item = QtGui.QStandardItem(str(self.file_details['id'])) model.setItem(i, 3, item) # row, column, item (QStandardItem) i = i + 1 self.__logger.info(self.file_details) except sjexc.StorjBridgeApiError as e: self.__logger.error(e) self.file_manager_ui.files_list_tableview.clearFocus() self.file_manager_ui.files_list_tableview.setModel(model) self.file_manager_ui.files_list_tableview.horizontalHeader().setResizeMode(QtGui.QHeaderView.Stretch)
def initialize_buckets_table(self): self.storj_engine = StorjEngine() # Init StorjEngine self.__logger.info('resolving buckets') # Initialize model for inserting to table model = QStandardItemModel(1, 1) model.setHorizontalHeaderLabels(['Name', 'Storage', 'Transfer', 'ID']) i = 0 try: for bucket in self.storj_engine.storj_client.bucket_list(): item = QStandardItem(bucket.name) model.setItem(i, 0, item) # row, column, item (QStandardItem) item = QStandardItem(str(bucket.storage)) model.setItem(i, 1, item) # row, column, item (QStandardItem) item = QStandardItem(str(bucket.transfer)) model.setItem(i, 2, item) # row, column, item (QStandardItem) item = QStandardItem(bucket.id) model.setItem(i, 3, item) # row, column, item (QStandardItem) i = i + 1 except sjexc.StorjBridgeApiError as e: QtGui.QMessageBox.about( self, 'Unhandled bucket resolving exception', 'Exception: %s' % e) # Set label of user buckets number self.bucket_manager_ui.total_buckets_label.setText(str(i)) self.bucket_manager_ui.bucket_list_tableview.setModel(model) self.bucket_manager_ui.bucket_list_tableview.horizontalHeader().\ setResizeMode(QtGui.QHeaderView.Stretch)
def createEditor(self, parent, option, index): self.proxy = index.model() self.index = self.proxy.mapToSource(index) combo = QtGui.QComboBox(parent) model = QtGui.QStandardItemModel() [model.appendRow(QtGui.QStandardItem(cat)) for cat in categories] combo.setModel(model) combo.setCurrentIndex(index.data(CatRole).toPyObject()) combo.activated.connect(lambda i: parent.setFocus()) return combo
def createEditor(self, parent, option, index): self.index = index combo = QtGui.QComboBox(parent) combo.addItems(['Unchanged'] + index.data(ValuesRole).toPyObject()) # model = QtGui.QStandardItemModel() # [model.appendRow(QtGui.QStandardItem(value)) for value in index.data(ValuesRole).toPyObject()] # combo.setModel(model) combo.setCurrentIndex(index.data(EditedRole).toPyObject() + 1) combo.activated.connect(lambda i: parent.setFocus()) return combo
def __init__(self, parent=None): QtGui.QStandardItemModel.__init__(self, 0, 7, parent) self.setHorizontalHeaderLabels(sound_headers)
def clear(self): QtGui.QStandardItemModel.clear(self) self.setHorizontalHeaderLabels(sound_headers) self.cleared.emit()
def showEvent(self, event): QtGui.QComboBox.showEvent(self, event) completer_model = self.lineEdit().completer().model() new_model = QtGui.QStandardItemModel(self) for r in range(self.p_model.rowCount()): new_model.appendRow([completer_model.item(r, 0).clone(), completer_model.item(r, 1).clone()]) new_model.appendRow([self.name_model.item(r, 0).clone(), self.name_model.item(r, 1).clone()]) self.lineEdit().completer().setModel(new_model) self.lineEdit().completer().setCompletionMode(QtGui.QCompleter.PopupCompletion) self.lineEdit().completer().activated['QModelIndex'].connect(self.completer_activated) self.lineEdit().completer().highlighted['QModelIndex'].connect(self.completer_activated) self.setModelColumn(self.modelColumn())
def __init__(self, main): QtGui.QDialog.__init__(self, parent=None) _load_ui(self, 'auto_connect_add.ui') self.main = main self.graph = main.main.graph self.graph_model = QtGui.QStandardItemModel() self.graph_model.setHorizontalHeaderLabels(['Name', 'Address']) self.input_table.setModel(self.graph_model) self.input_table.doubleClicked.connect(self.activate) self.input_table.setRowHidden(True, 2) self.buttonBox.button(QtGui.QDialogButtonBox.Ok).setEnabled(False) self.input_edit.textChanged.connect(self.text_update) self.build_graph()
def createEditor(self, parent, option, index): self.table = parent.parent() self.index = index combo = QtGui.QComboBox(parent) model = QtGui.QStandardItemModel() [model.appendRow(item.clone()) for item in event_model] combo.setModel(model) combo.setCurrentIndex(index.data(EventIdRole).toPyObject()) combo.activated.connect(lambda i: parent.setFocus()) return combo
def __init__(self, parent): QtGui.QDialog.__init__(self, parent) _load_ui(self, 'sourcefilter.ui') self.model = QtGui.QStandardItemModel() self.listview.setModel(self.model) self.buttonBox.button(QtGui.QDialogButtonBox.Ok).setEnabled(False) self.setter_edit.textChanged.connect(self.enable_ok)
def build_models(self): self.client_id_model = QtGui.QStandardItemModel() self.client_id_list.setModel(self.client_id_model) self.client_id_list.setItemDelegate(self.FilterDelegate(self, '[0-9]+')) self.port_id_model = QtGui.QStandardItemModel() self.port_id_list.setModel(self.port_id_model) self.port_id_list.setItemDelegate(self.FilterDelegate(self, '[0-9]+:[0-9]+')) self.port_name_model = QtGui.QStandardItemModel() self.port_name_list.setModel(self.port_name_model) self.port_name_list.setItemDelegate(self.FilterDelegate(self, '.+')) ref_data = namedtuple('ref_data', 'model list filter add_btn del_btn dialog') reference_list = ['client_id', 'port_id', 'port_name'] self.reference = {} for ref in reference_list: model = getattr(self, '{}_model'.format(ref)) list = getattr(self, '{}_list'.format(ref)) filter = getattr(self, '{}_filter'.format(ref)) add_btn = getattr(self, '{}_add_btn'.format(ref)) del_btn = getattr(self, '{}_del_btn'.format(ref)) dialog = getattr(SourceFilterDialog, '{}_dialog'.format(ref)) self.reference[ref] = ref_data(model, list, filter, add_btn, del_btn, dialog) for f in filter: item = QtGui.QStandardItem(str(f)) model.appendRow(item) add_btn.clicked.connect(lambda state, ref=ref: self.filter_dialog(ref)) del_btn.clicked.connect(lambda state, ref=ref: self.item_delete(ref)) model.rowsInserted.connect(lambda index, start, end, ref=ref: self.model_check(ref)) model.rowsRemoved.connect(lambda index, start, end, ref=ref: self.model_check(ref)) self.model_check(ref)
def headerData(self, section, orientation, role): # if orientation == QtCore.Qt.Vertical and role == QtCore.Qt.DisplayRole: # print section # return QtCore.QVariant('p') if orientation == QtCore.Qt.Vertical and role == QtCore.Qt.FontRole: font = QtGui.QFont(self.model.headerData(0, QtCore.Qt.Horizontal, role)) if section == self.start_item: font.setBold(True) else: font.setBold(False) return font return QtGui.QStandardItemModel.headerData(self.model, section, orientation, role)
def setValue(self, value): rows = len(value) columns = 2 self._model = QtGui.QStandardItemModel(rows, columns) for row in range(rows): for column in range(columns): index = self._model.index(row, column, QtCore.QModelIndex()) self._model.setData(index, QtCore.QVariant(value[row][column])) self._model.setHeaderData(0, Qt.Qt.Horizontal, Qt.QVariant("Name")) self._model.setHeaderData(1, Qt.Qt.Horizontal, Qt.QVariant("Axis")) self._tableView.setModel(self._model) self._tableView.horizontalHeader().setVisible(True) self._tableView.horizontalHeader().setStretchLastSection(True)
def __init__(self, iface): QDockWidget.__init__(self) self.setupUi(self) self.iface = iface self.canvas = self.iface.mapCanvas() self.geoCrs = QgsCoordinateReferenceSystem(4326) self.btnAddPhoto.setIcon(QIcon(':/icons/camera.svg')) self.txtPhotoComment.setPlaceholderText(self.tr('Comment')) self.cmbLayers.setFilters(QgsMapLayerProxyModel.VectorLayer) self.db = QSqlDatabase.addDatabase('QPSQL') self.landmarkId = None self.photoId = None self.highlight = None self.model = QStandardItemModel() self.lstPhotos.setModel(self.model) self.btnUpdateLandmark.clicked.connect(self.saveLandmark) self.btnDeleteLandmark.clicked.connect(self.deleteLandmark) self.btnAddPhoto.clicked.connect(self.addPhoto) self.btnUpdatePhoto.clicked.connect(self.savePhoto) self.btnDeletePhoto.clicked.connect(self.removePhoto) self.lstPhotos.selectionModel().selectionChanged.connect(self.photoSelected) self.lstPhotos.doubleClicked.connect(self.showPhoto) self._enableOrDisableButtons() self.ToggleToolbox()
def __init__(self): super(FieldChoiceWidget,self).__init__() self.setSizePolicy (QtGui.QSizePolicy.Expanding,QtGui.QSizePolicy.Expanding) # FIXME TODO debug only # p = self.palette() # p.setColor(self.backgroundRole(), QtCore.Qt.red) # self.setPalette(p) # self.setAutoFillBackground(True) # make submodels - they are filled when reset() is called self.availableFields = QtGui.QStandardItemModel() self.selectedFields = QtGui.QStandardItemModel() # make subwidgets self.availableFieldsDisplay = QtGui.QListView() self.availableFieldsDisplay.setModel(self.availableFields) self.availableFieldsDisplay.setSelectionMode(QtGui.QAbstractItemView.SingleSelection) self.availableFieldsDisplay.setSizePolicy(QtGui.QSizePolicy.Expanding,QtGui.QSizePolicy.Expanding) self.selectedFieldsDisplay = QtGui.QListView() self.selectedFieldsDisplay.setModel(self.selectedFields) self.selectedFieldsDisplay.setSelectionMode(QtGui.QAbstractItemView.SingleSelection) self.selectedFieldsDisplay.setSizePolicy(QtGui.QSizePolicy.Expanding,QtGui.QSizePolicy.Expanding) self.addButton = QtGui.QPushButton('+') self.addButton.setSizePolicy(QtGui.QSizePolicy.Preferred,QtGui.QSizePolicy.Expanding) self.removeButton = QtGui.QPushButton('-') self.removeButton.setSizePolicy(QtGui.QSizePolicy.Preferred,QtGui.QSizePolicy.Expanding) self.upButton = QtGui.QPushButton('UP') self.upButton.setSizePolicy(QtGui.QSizePolicy.Preferred,QtGui.QSizePolicy.Expanding) self.downButton = QtGui.QPushButton('DOWN') self.downButton.setSizePolicy(QtGui.QSizePolicy.Preferred,QtGui.QSizePolicy.Expanding) # connect self.addButton.clicked.connect(self.slotAddButtonClicked) self.removeButton.clicked.connect(self.slotRemoveButtonClicked) self.upButton.clicked.connect(self.slotUpButtonClicked) self.downButton.clicked.connect(self.slotDownButtonClicked) self.selectedFieldsDisplay.selectionModel().currentChanged.connect(self.slotUpdateButtonStatus) # make layout self.layout = QtGui.QGridLayout() self.layout.addWidget(self.availableFieldsDisplay,0,0,2,1) self.layout.addWidget(self.addButton,0,1,1,1) self.layout.addWidget(self.removeButton,1,1,1,1) self.layout.addWidget(self.selectedFieldsDisplay,0,2,2,1) self.layout.addWidget(self.upButton,0,3,1,1) self.layout.addWidget(self.downButton,1,3,1,1) self.setLayout(self.layout) # update button status (should disable everything) self.updateButtonStatus() # Called when a new data collection is displayed. The data is passed in as text
def fillTagModel(model,dcm,regex=None): '''Fill a QStandardItemModel object `model' with a tree derived from tags in `dcm', filtering by pattern `regex'.''' try: regex=re.compile(str(regex),re.DOTALL) except: regex='' # no regex or bad pattern def _datasetToItem(parent,d): '''Add every element in `d' to the QStandardItem object `parent', this will be recursive for list elements.''' for elem in d: value=_elemToValue(elem) tag='(%04x, %04x)'%(elem.tag.group,elem.tag.elem) parent1 = QtGui.QStandardItem(str(elem.name)) tagitem = QtGui.QStandardItem(tag) if isinstance(value,str): try: value=value.decode('ascii') if '\n' in value or '\r' in value: # multiline text data should be shown as repr value=repr(value) except: value=repr(value) if not regex or re.search(regex,str(elem.name)+tag+value) is not None: parent.appendRow([parent1,tagitem,QtGui.QStandardItem(value)]) elif value is not None and len(value)>0: parent.appendRow([parent1,tagitem]) for v in value: parent1.appendRow(v) def _elemToValue(elem): '''Return the value in `elem', which will be a string or a list of QStandardItem objects if elem.VR=='SQ'.''' value=None if elem.VR=='SQ': value=[] for i,item in enumerate(elem): parent1 = QtGui.QStandardItem('%s %i'%(elem.name,i)) _datasetToItem(parent1,item) if not regex or parent1.hasChildren(): # discard sequences whose children have been filtered out value.append(parent1) elif elem.name!='Pixel Data': value=str(elem.value) return value _datasetToItem(model,dcm)
def __init__(self,args,parent=None): QtGui.QMainWindow.__init__(self,parent) self.srclist=[] # list of source directories self.imageIndex=0 # index of selected image self.seriesMap=OrderedDict() # maps series table row tuples to DicomSeries object it was generated from self.seriesColumns=list(seriesListColumns) # keywords for columns self.selectedRow=-1 # selected series row self.lastDir='.' # last loaded directory root self.filterRegex='' # regular expression to filter tags by # create the directory queue and loading thread objects self.dirQueue=Queue() # queue of directories to load self.loadDirThread=threading.Thread(target=self._loadDirsThread) self.loadDirThread.daemon=True # clean shutdown possible with daemon threads self.loadDirThread.start() # start the thread now, it will wait until something is put on self.dirQueue # setup ui self.setupUi(self) # create UI elements based on the loaded .ui file self.setWindowTitle('DicomBrowser v%s (FOR RESEARCH ONLY)'%(__version__)) self.setStatus('') # connect signals self.importButton.clicked.connect(self._openDirDialog) self.statusSignal.connect(self.setStatus) self.updateSignal.connect(self._updateSeriesTable) self.filterLine.textChanged.connect(self._setFilterString) self.imageSlider.valueChanged.connect(self.setSeriesImage) self.seriesView.clicked.connect(self._seriesTableClicked) # setup the list and table models self.srcmodel=QStringListModel() self.seriesmodel=SeriesTableModel(self.seriesColumns) self.seriesmodel.layoutChanged.connect(self._seriesTableResize) self.tagmodel=QtGui.QStandardItemModel() # assign models to views self.sourceListView.setModel(self.srcmodel) self.seriesView.setModel(self.seriesmodel) self.tagView.setModel(self.tagmodel) # create the pyqtgraph object for viewing images self.imageview=pg.ImageView() layout=QtGui.QGridLayout(self.view2DGroup) layout.addWidget(self.imageview) # load the empty image placeholder into a ndarray qimg=QtGui.QImage(':/icons/noimage.png') bytedata=qimg.constBits().asstring(qimg.width()*qimg.height()) self.noimg=np.ndarray((qimg.width(),qimg.height()),dtype=np.ubyte,buffer=bytedata) # add the directories passed as arguments to the directory queue to start loading for i in args: if os.path.isdir(i): self.addSourceDir(i)
def __init__(self, main): QtGui.QDialog.__init__(self, parent=None) _load_ui(self, 'settings.ui') self.main = main self.settings = self.main.settings #load filter settings will go here self.event_type_filter = self.settings.gFilters.get_event_type(set(), False) self.client_id_filter = self.settings.gFilters.get_client_id(set(), False) self.port_id_filter = self.settings.gFilters.get_port_id(set(), False) self.port_name_filter = self.settings.gFilters.get_port_name(set(), False) self.stop_events = self.settings.gGeneral.get_stop_events(defaults['stop_events'], False) self.stop_events_model = QtGui.QStandardItemModel() self.stop_events_list.setModel(self.stop_events_model) self.stop_events_list.setItemDelegate(self.StopDelegate(self)) self.stop_events_model.setHorizontalHeaderLabels(['CTRL parameter', 'Value']) for param, value in self.stop_events: param_item = QtGui.QStandardItem('{} - {}'.format(param, Controllers[param])) param_item.setData(param, UserRole) value_item = QtGui.QStandardItem(str(value)) value_item.setData(value, UserRole) value_item.setData(QtCore.Qt.AlignHCenter, QtCore.Qt.TextAlignmentRole) self.stop_events_model.appendRow([param_item, value_item]) self.stop_events_list.resizeRowsToContents() self.stop_events_list.horizontalHeader().setResizeMode(0, QtGui.QHeaderView.Stretch) self.stop_events_list.resizeColumnToContents(1) self.stop_events_list.selectionChanged = self.stop_events_select self.stop_events_add_btn.clicked.connect(self.stop_events_add) self.stop_events_del_btn.clicked.connect(self.stop_events_del) self.max_rec_spin.setValue(self.settings.gGeneral.max_rec) self.minimum_time_spin.setValue(self.settings.gGeneral.minimum_time) self.last_event_limit_spin.setValue(self.settings.gGeneral.last_event_limit) self.autosave_chk.setChecked(self.settings.gGeneral.autosave) self.autosave_path_edit.setText(self.settings.gGeneral.get_autosave_path('')) self.tick_res_spin.setValue(self.settings.gGeneral.tick_res) self.autosave_chk.toggled.connect(self.autosave_set) self.autosave_path_btn.clicked.connect(self.autosave_path) self.allnotes_chk.clicked.connect(self.allnotes_click) self.noteon_chk.toggled.connect(self.note_toggled) self.noteon_chk.toggled.connect(lambda state: self.filter_event_set(NOTEON, state)) self.noteoff_chk.toggled.connect(self.note_toggled) self.noteoff_chk.toggled.connect(lambda state: self.filter_event_set(NOTEOFF, state)) self.ctrl_chk.toggled.connect(lambda state: self.filter_event_set(CTRL, state)) self.pitchbend_chk.toggled.connect(lambda state: self.filter_event_set(PITCHBEND, state)) self.aftertouch_chk.toggled.connect(lambda state: self.filter_event_set(AFTERTOUCH, state)) self.polyaftertouch_chk.toggled.connect(lambda state: self.filter_event_set(POLY_AFTERTOUCH, state)) self.program_chk.toggled.connect(lambda state: self.filter_event_set(PROGRAM, state)) self.sysex_chk.toggled.connect(lambda state: self.filter_event_set(SYSEX, state)) self.build_models() self.buttonBox.button(QtGui.QDialogButtonBox.RestoreDefaults).clicked.connect(self.defaults) self.buttonBox.button(QtGui.QDialogButtonBox.Apply).clicked.connect(self.check_changes) self.accepted.connect(self.check_changes)
def __init__(self, parent=None): QtGui.QDialog.__init__(self, parent) _load_ui(self, 'export.ui') self.main = parent self.seq = self.main.seq self.src_bpm = self.main.src_bpm_spin.value() self.dest_bpm = self.main.dest_bpm_spin.value() self.file_name = '' self.filter = {'event_type': set(), 'port': set()} self.filled = False self.event_widgets = { NOTEON: self.noteon_chk, NOTEOFF: self.noteoff_chk, CTRL: self.ctrl_chk, PITCHBEND: self.pitchbend_chk, AFTERTOUCH: self.aftertouch_chk, POLY_AFTERTOUCH: self.polyaftertouch_chk, PROGRAM: self.program_chk, SYSEX: self.sysex_chk, } self.src_model = QtGui.QStandardItemModel() self.src_listview.setModel(self.src_model) self.dest_model = QtGui.QStandardItemModel() self.dest_listview.setModel(self.dest_model) self.dest_listview.setItemDelegate(self.DestDelegate(self)) self.src_listview.mouseDoubleClickEvent = self.src_dblclick self.dest_listview.mouseDoubleClickEvent = self.dest_dblclick self.dest_model.rowsRemoved.connect(self.reset_links) self.dest_model.dataChanged.connect(self.dest_update) self.dest_listview.viewportEvent = self.dest_viewportEvent self.dest_listview.customContextMenuRequested.connect(self.dest_menu) self.buttonBox.button(QtGui.QDialogButtonBox.Save).clicked.disconnect() self.buttonBox.button(QtGui.QDialogButtonBox.Save).clicked.connect(self.export) self.buttonBox.button(QtGui.QDialogButtonBox.Save).setText('Export') self.main.src_bpm_spin.valueChanged.connect(self.main_tempo_change) self.main.dest_bpm_spin.valueChanged.connect(self.main_tempo_change) self.main.ratio_changed.connect(self.main_tempo_change) self.src_bpm_spin.valueChanged.connect(lambda value: setattr(self, 'src_bpm', value)) self.dest_bpm_spin.valueChanged.connect(lambda value: setattr(self, 'dest_bpm', value)) self.allnotes_chk.clicked.connect(self.allnotes_click) self.noteon_chk.toggled.connect(self.note_toggled) self.noteon_chk.toggled.connect(lambda state: self.filter_set(NOTEON, state)) self.noteoff_chk.toggled.connect(self.note_toggled) self.noteoff_chk.toggled.connect(lambda state: self.filter_set(NOTEOFF, state)) self.ctrl_chk.toggled.connect(lambda state: self.filter_set(CTRL, state)) self.pitchbend_chk.toggled.connect(lambda state: self.filter_set(PITCHBEND, state)) self.aftertouch_chk.toggled.connect(lambda state: self.filter_set(AFTERTOUCH, state)) self.polyaftertouch_chk.toggled.connect(lambda state: self.filter_set(POLY_AFTERTOUCH, state)) self.program_chk.toggled.connect(lambda state: self.filter_set(PROGRAM, state)) self.sysex_chk.toggled.connect(lambda state: self.filter_set(SYSEX, state)) self.main.filterChanged.connect(self.filter_update) self.main.filterReset.connect(self.filter_reset) self.close_chk = QtGui.QCheckBox('Close this window after export') self.close_chk.setChecked(True) self.buttonBox.layout().insertWidget(1, self.close_chk) for chk in self.event_widgets.values(): chk.toggled.connect(self.export_check)