def updateThumbnailSize(self): """ Update the thumbnail button to the size of the widget. :rtype: None """ if hasattr(self.ui, "thumbnailButton"): width = self.width() - 10 if width > 250: width = 250 size = QtCore.QSize(width, width) self.ui.thumbnailButton.setIconSize(size) self.ui.thumbnailButton.setMaximumSize(size) self.ui.thumbnailFrame.setMaximumSize(size)
def updateToolBar(self): """Update the tool bar size depending on the number of actions.""" self._toolBar.setIconSize(QtCore.QSize(16, 16)) count = (len(self.actions())) - 3 width = (26 * count) self._toolBar.setGeometry(0, 0, width, 25) x = self.rect().center().x() - (self._toolBar.width() / 2) y = self.height() - self._toolBar.height() - 12 width = self._toolBar.width() self._toolBar.setGeometry(x, y, width, self._toolBar.height())
def pixmap(self, column): """ Return the pixmap for the given column. :type column: int :rtype: QtWidgets.QPixmap """ if not self._pixmap.get(column): icon = self.icon(column) if icon: size = QtCore.QSize(self.MAX_ICON_SIZE, self.MAX_ICON_SIZE) iconSize = icon.actualSize(size) self._pixmap[column] = icon.pixmap(iconSize) return self._pixmap.get(column)
def setColor(self, color, size = None): """ :type color: QtGui.QColor :rtype: None """ icon = self size = size or icon.actualSize(QtCore.QSize(256, 256)) pixmap = icon.pixmap(size) rect = QtCore.QRect(0, 0, size.width(), size.height()) if not self.isNull(): painter = QtGui.QPainter(pixmap) painter.setCompositionMode(QtGui.QPainter.CompositionMode_SourceIn) painter.setBrush(color) painter.setPen(color) painter.drawRect(pixmap.rect()) painter.end() icon = QtGui.QIcon(pixmap) self.swap(icon)
def setIconSize(self, size): """ Set the icon size for the views. :type size: QtCore.QSize :rtype: None """ self._iconSize = size if self.isItemTextVisible(): w = size.width() h = size.width() + self.itemTextHeight() self._itemSizeHint = QtCore.QSize(w, h) else: self._itemSizeHint = size self._listView.setIconSize(size) self._treeWidget.setIconSize(size)
def resizeEvent(self, event): """ Reimplemented so the icon maintains the same height as the widget. :type event: QtWidgets.QResizeEvent :rtype: None """ QtWidgets.QLineEdit.resizeEvent(self, event) self.setTextMargins(self.height(), 0, 0, 0) size = QtCore.QSize(self.height(), self.height()) self._iconButton.setIconSize(size) self._iconButton.setFixedSize(size) self._clearButton.setIconSize(size) x = self.width() - self.height() self._clearButton.setGeometry(x, 0, self.height(), self.height())
def setZoomAmount(self, value): """ Set the zoom amount for the widget. :type value: int :rtype: None """ if value < self.DEFAULT_MIN_LIST_SIZE: value = self.DEFAULT_MIN_LIST_SIZE self._zoomAmount = value size = QtCore.QSize(value * self.dpi(), value * self.dpi()) self.setIconSize(size) if value >= self.DEFAULT_MIN_ICON_SIZE: self.setViewMode('icon') else: self.setViewMode('table') self._treeWidget.setIndentation(0) self._treeWidget.setColumnWidth(0, value * self.dpi() + self.itemTextHeight()) self.scrollToSelectedItem() msg = 'Size: {0}%'.format(value) self.setToast(msg)
def __init__(self, *args): QtWidgets.QWidget.__init__(self, *args) self._dpi = 1 self._padding = self.DEFAULT_PADDING w, h = self.DEFAULT_ZOOM_AMOUNT, self.DEFAULT_ZOOM_AMOUNT self._iconSize = QtCore.QSize(w, h) self._zoomAmount = self.DEFAULT_ZOOM_AMOUNT self._isItemTextVisible = True self._treeWidget = CombinedTreeWidget(self) self._listView = CombinedListView(self) self._listView.setTreeWidget(self._treeWidget) self._delegate = CombinedItemDelegate() self._delegate.setCombinedWidget(self) self._listView.setItemDelegate(self._delegate) self._treeWidget.setItemDelegate(self._delegate) self._toastWidget = studioqt.ToastWidget(self) self._toastWidget.hide() self._toastEnabled = True self._textColor = QtGui.QColor(255, 255, 255) self._textSelectedColor = QtGui.QColor(255, 255, 255) self._backgroundColor = QtGui.QColor(255, 255, 255, 30) self._backgroundHoverColor = QtGui.QColor(255, 255, 255, 35) self._backgroundSelectedColor = QtGui.QColor(30, 150, 255) layout = QtWidgets.QHBoxLayout(self) layout.setContentsMargins(0, 0, 0, 0) layout.addWidget(self._treeWidget) layout.addWidget(self._listView) header = self.treeWidget().header() header.sortIndicatorChanged.connect(self._sortIndicatorChanged) self.setLayout(layout) self.listView().itemClicked.connect(self._itemClicked) self.listView().itemDoubleClicked.connect(self._itemDoubleClicked) self.treeWidget().itemClicked.connect(self._itemClicked) self.treeWidget().itemDoubleClicked.connect(self._itemDoubleClicked) self.itemMoved = self._listView.itemMoved self.itemDropped = self._listView.itemDropped self.itemSelectionChanged = self._treeWidget.itemSelectionChanged
def setDpi(self, dpi): size = 24 * dpi self.setIndentation(15 * dpi) self.setMinimumWidth(35 * dpi) self.setIconSize(QtCore.QSize(size, size)) self.setStyleSheet("height: {size}".format(size=size))