def create_node(self, file_name: str, size, date: datetime.datetime, folder=False) -> tuple: if folder: icon = QtWidgets.QFileIconProvider().icon( QtWidgets.QFileIconProvider.Folder) else: file_info = QtCore.QFileInfo(file_name) icon = QtWidgets.QFileIconProvider().icon(file_info) item_name = QtGui.QStandardItem(icon, self.name(file_name)) item_date = QtGui.QStandardItem('{:%d.%m.%Y %H:%M:%S}'.format(date)) return item_name, item_date
def handleDirectoryChangedSlot( self, _s_directory ): self.ui.directoryListWidget.clear() self.s_currentDirectory = os.path.normpath( os.path.abspath( str(_s_directory) ) ) self.ui.urlLineEdit.setText( self.s_currentDirectory ) o_qdir = QtCore.QDir( self.s_currentDirectory ) # Mise a jour liste des repertoires #--------------------------------------------------------------- o_qdir.setFilter( QtCore.QDir.Dirs ) t_dirList = o_qdir.entryList() if len(t_dirList) > 0: self.ui.directoryListWidget.setEnabled(True) self.ui.directoryListWidget.addItems( t_dirList ) o_qFileIconProvider = QtWidgets.QFileIconProvider() for o_item in self.iterAllDirectories(): o_item.setIcon( o_qFileIconProvider.icon( QtCore.QFileInfo(o_qdir, o_item.text()) ) ) else: self.ui.directoryListWidget.setEnabled(False) # Mise a jour de la liste de tous les fichiers (hors filtre) contenu # dans le repertoire courant #--------------------------------------------------------------- o_qdir.setFilter( QtCore.QDir.Files | QtCore.QDir.NoDotAndDotDot ) self.t_allFilesInCurrentDirectory = o_qdir.entryList() self.updateFileListWidget()
def add_file(self, filename): """ Add a file or directory to this widget. """ if filename not in self.filenames: self.filenames.append(filename) fileinfo = QtCore.QFileInfo(filename) basename = os.path.basename(filename.rstrip('/')) ip = QtWidgets.QFileIconProvider() icon = ip.icon(fileinfo) if os.path.isfile(filename): size = helpers.human_readable_filesize(fileinfo.size()) else: size = helpers.human_readable_filesize( helpers.dir_size(filename)) item_name = '{0:s} ({1:s})'.format(basename, size) item = QtWidgets.QListWidgetItem(item_name) item.setToolTip(size) item.setIcon(icon) self.addItem(item) self.files_updated.emit()
def add_file(self, filename): """ Add a file or directory to this widget. """ if filename not in self.filenames: if not os.access(filename, os.R_OK): Alert(strings._("not_a_readable_file", True).format(filename)) return self.filenames.append(filename) fileinfo = QtCore.QFileInfo(filename) basename = os.path.basename(filename.rstrip('/')) ip = QtWidgets.QFileIconProvider() icon = ip.icon(fileinfo) if os.path.isfile(filename): size = common.human_readable_filesize(fileinfo.size()) else: size = common.human_readable_filesize( common.dir_size(filename)) item_name = '{0:s} ({1:s})'.format(basename, size) item = QtWidgets.QListWidgetItem(item_name) item.setToolTip(size) item.setIcon(icon) self.addItem(item) self.files_updated.emit()
def __init__(self, data_file, res, func_menu, baseimport=None, extended_selection=False, parent=None): super(HDF5Browser, self).__init__(parent) self.setWindowTitle("h5Xplorer") self.data_file = data_file self.res = res ip = QtWidgets.QFileIconProvider() fileinfo = QtCore.QFileInfo(data_file.name) icon = ip.icon(QFileIconProvider.Drive) # the tree widget if func_menu is None: def func_menu(a, b, c): return None self.treeWidget = HDF5TreeWidget(data_file, res=self.res, menu=func_menu, extended_selection=extended_selection, parent=self) self.selection_model = self.treeWidget.selectionModel() # push button to load data self.load_tree_button = QtWidgets.QPushButton( ) # Create a refresh button self.load_tree_button.setIcon(icon) self.load_tree_button.setIconSize(QtCore.QSize(24, 24)) self.load_tree_button.clicked.connect(self.load_new_data) # widget that contains the toolbar and the treeview self.treelayoutwidget = QtWidgets.QWidget() self.treelayoutwidget.setLayout(QtWidgets.QVBoxLayout()) self.treelayoutwidget.layout().addWidget(self.treeWidget) self.treelayoutwidget.layout().addWidget(self.load_tree_button) # the Ipython console self.ipyConsole = QIPythonWidget(baseimport=baseimport) # make the splitt window splitter = QtWidgets.QSplitter() # Add newly constructed widget (treeview and button) to the splitter splitter.addWidget(self.treelayoutwidget) splitter.addWidget(self.ipyConsole) self.setLayout(QtWidgets.QHBoxLayout()) self.layout().addWidget(splitter) # make the connection between the tree and the iPython console self.ipyConsole.import_value(self.treeWidget)
def __init__(self): super().__init__() self._fetch_request_count = 0 self.root_item = FileItem("", True) self.columnCount = 4 icon_provider = QtWidgets.QFileIconProvider() self.file_icon = QtGui.QIcon('gui/model_view_components/file.png') self.folder_icon = icon_provider.icon( QtWidgets.QFileIconProvider.Folder)
def setPath(self, path): self.path = path dir_tools = QtCore.QDir(path) self.setWindowTitle(dir_tools.absolutePath()) # print(dir_tools.path()) #设置行数 self.tableWidget.setRowCount(0) line_number = 0 files = [] #遍历目录 for i in range(dir_tools.count()): if (dir_tools[i] == "."): continue #获取文件信息 file_info = QtCore.QFileInfo(path + "/" + dir_tools[i]) icon_provider = QtWidgets.QFileIconProvider() icon = icon_provider.icon(file_info) file_size = file_info.size() / 1024 if (file_info.isDir()): self.tableWidget.insertRow(line_number) item = QtWidgets.QTableWidgetItem(dir_tools[i]) item.setIcon(icon) item.setData(QtCore.Qt.UserRole, dir_tools.absolutePath() + "\\" + dir_tools[i]) self.tableWidget.setItem(line_number, 0, item) line_number += 1 else: obj_file = {} obj_file['name'] = dir_tools[i] obj_file['path'] = dir_tools.absolutePath( ) + "/" + dir_tools[i] obj_file['icon'] = icon obj_file['file_size'] = file_size files.append(obj_file) for o in files: self.tableWidget.insertRow(line_number) item = QtWidgets.QTableWidgetItem(o['name']) item.setIcon(o['icon']) item.setData(QtCore.Qt.UserRole, o['path']) self.tableWidget.setItem(line_number, 0, item) item = QtWidgets.QTableWidgetItem("%.2f KB" % o['file_size']) self.tableWidget.setItem(line_number, 1, item) line_number += 1
def __init__(self, dirname): super().__init__() self._name = dirname self.setText(self._name) self.setToolTip(self._name) icon = QtWidgets.QFileIconProvider.Folder icon = QtWidgets.QFileIconProvider().icon(icon) self.setIcon(icon) self.setSelectable(True) self.setEditable(False) self.setEnabled(True)
def create_tool_bar(main_win): tool_bar = QtWidgets.QToolBar(main_win) tool_bar.setMovable(False) tool_bar.setFloatable(False) folder_act = QtWidgets.QAction( QtWidgets.QFileIconProvider().icon(QtWidgets.QFileIconProvider.Folder), 'Select Folder', main_win) folder_act.setStatusTip( 'Choose folder and copy path into clipboard ' 'to enable pasting path into an element parameter field') # noqa: E128 folder_act.triggered.connect(_perform_folder_action) tool_bar.addAction(folder_act) file_act = QtWidgets.QAction( QtWidgets.QFileIconProvider().icon(QtWidgets.QFileIconProvider.File), 'Select File', main_win) file_act.setStatusTip( 'Choose file and copy path into clipboard ' 'to enable pasting path into an element parameter field') # noqa: E128 file_act.triggered.connect(_perform_file_action) tool_bar.addAction(file_act) return tool_bar
def __init__(self, parent=None): super(MainWindow, self).__init__(parent) self.setWindowTitle('Visualizador de logs') self.setMinimumSize(1080, 720) fileinf = QtCore.QFileInfo( QtWidgets.QApplication.instance().arguments()[0]) self.setWindowIcon(QtWidgets.QFileIconProvider().icon(fileinf)) self.setWindowIcon(QtGui.QIcon(ICON_FILE)) self.tabPresenters = [] self.information = opt.loadConfigFile(CONFIG_FILE) menuBar = QtWidgets.QMenuBar(self) self.criaMenuArquivo(menuBar) self.criaMenuEditar(menuBar) self.criaMenuOpcoes(menuBar) self.setMenuBar(menuBar) self.main_widget = QtWidgets.QWidget(self) # Cria tab para configuração do plot self.widgetConfigPlot = configWidgets.WidgetConfig(None) self.widgetConfigPlot.setWindowFlags( QtCore.Qt.WindowTitleHint | QtCore.Qt.WindowMinimizeButtonHint | QtCore.Qt.WindowMaximizeButtonHint) self.tabWidgetPlots = TabWidget(self) # self.tabWidgetPlots.cl # Cria o layout layout = QtWidgets.QHBoxLayout() layout.addWidget(self.tabWidgetPlots) self.main_widget.setLayout(layout) self.setCentralWidget(self.main_widget) pg.setConfigOptions(antialias=True) pg.setConfigOption('background', '#FFF') # self.widgetConfigPlot.sigRemovePlot.connect(lambda: self.removerPlot(self.widgetConfigPlot.plotPresenter)) self.widgetConfigPlot.setEnabled(False) self.__firstFile__ = True
def create_information(self): self.information_widget = QtWidgets.QWidget() self.information_icon_lbl = QtWidgets.QLabel() self.information_icon_lbl.setPixmap(QtWidgets.QFileIconProvider().icon( QtCore.QFileInfo(self.path)).pixmap(80, 80)) self.information_icon_lbl.setAlignment(QtCore.Qt.AlignCenter) self.information_name_lbl = QtWidgets.QLabel() if len(self.file_name) < 25: name = '<b>{name}</b>'.format(name=self.file_name) else: name = '<b>{name:.5}...</b>'.format(name=self.file_name) self.information_name_lbl.setToolTip(self.file_name) self.information_name_lbl.setText(name) self.information_name_lbl.setAlignment(QtCore.Qt.AlignCenter) self.information_mimetype_lbl = QtWidgets.QLabel( mimetypes.guess_type(self.path)[0]) self.information_mimetype_lbl.setAlignment(QtCore.Qt.AlignCenter)
def __init__(self, key_obj): super().__init__() self._obj = key_obj self.setText(self.key) self.setToolTip(self.key) font = QtGui.QFontDatabase.FixedFont font = QtGui.QFontDatabase().systemFont(font) self.setFont(font) icon = QtWidgets.QFileIconProvider.File icon = QtWidgets.QFileIconProvider().icon(icon) self.setIcon(icon) self.setSelectable(True) self.setEditable(False) self.setEnabled(True) self.setFlags(self.flags() | Qt.Qt.ItemNeverHasChildren)
def paint(self, painter, option, index): filePath = self.model.filePath(index) fileName = self.model.fileName(index) r = option.rect img = QtGui.QPixmap(filePath) if img.isNull(): # If not image file, try to load icon with QFileIconProvider # according to file type (extension name). # Currently not work as intended. fileInfo = self.model.fileInfo(index) icon = QtWidgets.QFileIconProvider().icon(fileInfo) img = icon.pixmap(QtCore.QSize(32, 32)) # Scale to height, align center horizontally, align bottom vertically. if img.height() > self.thumbHeight: img = img.scaledToHeight(self.thumbHeight, Qt.SmoothTransformation) if img.width() > self.thumbHeight: img = img.scaledToWidth(self.thumbHeight, Qt.SmoothTransformation) imgLeft = (self.width - img.width()) / 2 imgTop = self.thumbHeight - img.height() painter.drawPixmap(r.left() + imgLeft, r.top() + imgTop, img) rect = QtCore.QRect(r.left(), r.top() + self.thumbHeight, self.width, self.nameHeight) flag = Qt.AlignHCenter | Qt.TextWrapAnywhere # get the bounding rectangle of the fileName bdRect = painter.boundingRect(rect, flag, fileName) if bdRect.height() < rect.height(): rect = bdRect if option.state & QtWidgets.QStyle.State_Selected: painter.setBrush(self.parent().palette().highlight()) painter.drawRoundedRect(rect, 5, 5) pen = QtGui.QPen(self.parent().palette().highlightedText(), 1, Qt.SolidLine) else: pen = QtGui.QPen(self.parent().palette().text(), 1, Qt.SolidLine) painter.setPen(pen) painter.drawText(rect, flag, fileName)
def updateFileListWidget( self ): self.ui.fileListWidget.clear() o_rx = QtCore.QRegExp( self.s_currentFilter ) o_rx.setPatternSyntax( QtCore.QRegExp.Wildcard ) # On filtre avec exactMatch (la fonction filter de QStringList n'applique pas un exact match) #t_filteredFileList = self.t_allFilesInCurrentDirectory.filter( o_rx ) t_filteredFileList = [ f for f in self.t_allFilesInCurrentDirectory if o_rx.exactMatch(f) ] if len(t_filteredFileList) > 0: self.ui.fileListWidget.setEnabled(True) self.ui.fileListWidget.addItems( t_filteredFileList ) o_qdir = QtCore.QDir( self.s_currentDirectory ) o_qFileIconProvider = QtWidgets.QFileIconProvider() for o_item in self.iterAllFiles(): o_item.setIcon( o_qFileIconProvider.icon( QtCore.QFileInfo(o_qdir, o_item.text()) ) ) else: self.ui.fileListWidget.setEnabled(False)
def __init__(self): self.provider = QtWidgets.QFileIconProvider()
def __init__(self, parent=None): super().__init__(parent) layout = QtWidgets.QHBoxLayout(self) self.file_ico_prov = QtWidgets.QFileIconProvider() self.fs_model = FilenameModel('dirs', icon_provider=self.get_icon, breadcrumbs=self) self.__paletteBase = None self.__paletteHighlighted = None self.updatePalette() self.__isHighlighted = False self.__hiddenPath = False self.__quickRef = None self.__iconSize = QtCore.QSize( 32, 32) # px, size of generated semi-transparent icons self.setPalette(self.__paletteBase) self.setFrameShape(self.NoFrame) self.layout().setContentsMargins(0, 0, 0, 0) self.layout().setSpacing(0) self.font = QFont() self.font.setPointSize(9) self.font.setFamily('DejaVu Sans Mono') # A label used to display view name (when view reference is used) self.viewName = QtWidgets.QLabel(self) self.viewName.setFont(self.font) self.viewName.hide() self.viewName.mousePressEvent = self.viewName_mousePressEvent # Edit presented path textually self.line_address = QtWidgets.QLineEdit(self) self.line_address.setFrame(False) self.line_address.keyPressEvent_super = self.line_address.keyPressEvent self.line_address.keyPressEvent = self.line_address_keyPressEvent self.line_address.focusOutEvent = self.line_address_focusOutEvent self.line_address.contextMenuEvent_super = self.line_address.contextMenuEvent self.line_address.contextMenuEvent = self.line_address_contextMenuEvent self.line_address.setFont(self.font) self.line_address.hide() layout.addWidget(self.viewName) layout.addWidget(self.line_address) # Add QCompleter to address line completer = self.init_completer(self.line_address, self.fs_model) completer.activated.connect(self.set_path) # Container for `btn_crumbs_hidden`, `crumbs_panel`, `switch_space` self.crumbs_container = QtWidgets.QWidget(self) crumbs_cont_layout = QtWidgets.QHBoxLayout(self.crumbs_container) crumbs_cont_layout.setContentsMargins(0, 0, 0, 0) crumbs_cont_layout.setSpacing(0) layout.addWidget(self.crumbs_container) # Hidden breadcrumbs menu button self.btn_crumbs_hidden = QtWidgets.QToolButton(self) self.btn_crumbs_hidden.setAutoRaise(True) self.btn_crumbs_hidden.setPopupMode(QtWidgets.QToolButton.InstantPopup) self.btn_crumbs_hidden.setArrowType(Qt.LeftArrow) self.btn_crumbs_hidden.setStyleSheet( "QToolButton::menu-indicator {image: none;}") self.btn_crumbs_hidden.setMinimumSize( self.btn_crumbs_hidden.minimumSizeHint()) self.btn_crumbs_hidden.hide() crumbs_cont_layout.addWidget(self.btn_crumbs_hidden) menu = QtWidgets.QMenu(self.btn_crumbs_hidden) # FIXME: menu.aboutToShow.connect(self._hidden_crumbs_menu_show) menu.setFont(self.font) self.btn_crumbs_hidden.setMenu(menu) # Container for breadcrumbs self.crumbs_panel = QtWidgets.QWidget(self) crumbs_layout = LeftHBoxLayout(self.crumbs_panel) crumbs_layout.widget_state_changed.connect(self.crumb_hide_show) crumbs_layout.setContentsMargins(0, 0, 0, 0) crumbs_layout.setSpacing(0) crumbs_cont_layout.addWidget(self.crumbs_panel) # Clicking on empty space to the right puts the bar into edit mode self.switch_space = QtWidgets.QWidget(self) # s_policy = self.switch_space.sizePolicy() # s_policy.setHorizontalStretch(1) # self.switch_space.setSizePolicy(s_policy) self.switch_space.mouseReleaseEvent = self.switch_space_mouse_up # crumbs_cont_layout.addWidget(self.switch_space) crumbs_layout.set_space_widget(self.switch_space) self.btn_browse = QtWidgets.QToolButton(self) self.btn_browse.setAutoRaise(True) self.btn_browse.setText("...") self.btn_browse.setToolTip("Browse for folder") self.btn_browse.clicked.connect(self._browse_for_folder) self.btn_browse.clicked.connect(self.__clicked) sp = self.btn_browse.sizePolicy() sp.setVerticalPolicy(sp.Minimum) self.btn_browse.setSizePolicy(sp) layout.addWidget(self.btn_browse) # Grum999: remove setMaximumHeight(), consider that sizePolicy of parent will define height #self.setMaximumHeight(self.line_address.height()) # FIXME: self.ignore_resize = False self.path_ = None self.set_path(Path())
def __init__(self, settings, parent, style=None): super(Workspace, self).__init__(parent) self._settings = settings self.header().close() self.padding_right = 32 # QStyle, such as QtWidgets.QStyleFactory.create('windows') self.qstyle = style # QT BUG, must keep reference or crash self.iconProvider = QtWidgets.QFileIconProvider() self.setExpandsOnDoubleClick(True) self.itemActivated.connect(self.onItemActivated) self.currentItemChanged.connect(self.onCurrentItemChanged) # popup menu g_action = GlobalAction() action = QtWidgets.QAction(self.tr('reStructuredText'), self) action.triggered.connect(partial(self.onNewFile, '.rst')) cmd = g_action.register('new_rst', action) cmd.setText(self.tr('reStructuredText')) cmd.setShortcut(QtGui.QKeySequence.New) cmd.setIcon(QtGui.QIcon.fromTheme('document-new')) action = QtWidgets.QAction(self.tr('Markdown'), self) action.triggered.connect(partial(self.onNewFile, '.md')) cmd = g_action.register('new_md', action) cmd.setText(self.tr('Markdown')) action = QtWidgets.QAction(self.tr('New &directory'), self) action.triggered.connect(self.onNewDirectory) cmd = g_action.register('new_dir', action) cmd.setText(self.tr('New Directory')) cmd.setIcon(QtGui.QIcon.fromTheme('folder-new')) action = QtWidgets.QAction(self.tr('&Rename...'), self) action.triggered.connect(self.onRename) cmd = g_action.register('rename', action) cmd.setText(self.tr('Rename...')) action = QtWidgets.QAction(self.tr('Delete'), self) action.triggered.connect(self.onDelete) cmd = g_action.register('delete', action) cmd.setText(self.tr('Delete')) action = QtWidgets.QAction(self.tr('Refresh'), self) action.triggered.connect(self.onRefresh) cmd = g_action.register('refresh', action) cmd.setText(self.tr('Refresh')) cmd.setIcon(QtGui.QIcon.fromTheme('view-refresh')) action = QtWidgets.QAction(self.tr('Windows Explorer'), self) action.triggered.connect(self.onWindowsExplorer) cmd = g_action.register('explorer', action) cmd.setText(self.tr('Windows Explorer')) action = QtWidgets.QAction(self.tr('Open Workspace'), self) action.triggered.connect(self.onOpenWorkspace) cmd = g_action.register('open_workspace', action) cmd.setText(self.tr('Open Workspace')) cmd.setIcon(QtGui.QIcon.fromTheme('folder-open')) self.popupMenu = QtWidgets.QMenu(self) submenu = self.popupMenu.addMenu(self.tr('New')) submenu.addAction(self.action('new_rst')) submenu.addAction(self.action('new_md')) self.popupMenu.addMenu(submenu) self.popupMenu.addAction(self.action('new_dir')) self.popupMenu.addSeparator() self.popupMenu.addAction(self.action('rename')) self.popupMenu.addAction(self.action('delete')) self.popupMenu.addSeparator() self.popupMenu.addAction(self.action('refresh')) self.popupMenu.addAction(self.action('explorer')) self.popupMenu.addSeparator() # drag & drop self.setDragEnabled(True) self.setDropIndicatorShown(True) self.setSelectionMode(QtWidgets.QAbstractItemView.SingleSelection) self.setDragDropMode(QtWidgets.QAbstractItemView.InternalMove) value = self._settings.value('workspace/workspace', type=str) for v in value.split(';'): if not v: continue path, _, expand = v.rpartition(':') self.appendRootPath(path, expand == 'True') # first root item is currrent item. if self.topLevelItemCount() > 0: root = self.topLevelItem(0) self.setCurrentItem(root)
# !/usr/bin/env python3 # -*- coding: utf-8 -*- """ Created on Wed Oct 31 16:23:13 2018 @author: samschott """ import sys import os import re import platform from PyQt5 import QtWidgets, QtCore, QtGui _root = getattr(sys, '_MEIPASS', os.path.dirname(os.path.abspath(__file__))) _icon_provider = QtWidgets.QFileIconProvider() APP_ICON_PATH = _root + "/Maestral.png" TRAY_ICON_PATH_SVG = _root + "/maestral-icon-{0}-{1}.svg" TRAY_ICON_PATH_PNG = _root + "/maestral-icon-{0}-{1}.png" FACEHOLDER_PATH = _root + "/faceholder.png" FOLDERS_DIALOG_PATH = _root + "/folders_dialog.ui" SETUP_DIALOG_PATH = _root + "/setup_dialog.ui" SETTINGS_WINDOW_PATH = _root + "/settings_window.ui" UNLINK_DIALOG_PATH = _root + "/unlink_dialog.ui" RELINK_DIALOG_PATH = _root + "/relink_dialog.ui" REBUILD_INDEX_DIALOG_PATH = _root + "/rebuild_index_dialog.ui" SYNC_ISSUES_WINDOW_PATH = _root + "/sync_issues_window.ui" SYNC_ISSUE_WIDGET_PATH = _root + "/sync_issue_widget.ui"
def add_file(self, filename): """ Add a file or directory to this widget. """ filenames = [] for index in range(self.count()): filenames.append(self.item(index).filename) if filename not in filenames: if not os.access(filename, os.R_OK): Alert(self.common, strings._("not_a_readable_file").format(filename)) return fileinfo = QtCore.QFileInfo(filename) ip = QtWidgets.QFileIconProvider() icon = ip.icon(fileinfo) if os.path.isfile(filename): size_bytes = fileinfo.size() size_readable = self.common.human_readable_filesize(size_bytes) else: size_bytes = self.common.dir_size(filename) size_readable = self.common.human_readable_filesize(size_bytes) # Create a new item item = QtWidgets.QListWidgetItem() item.setIcon(icon) item.size_bytes = size_bytes # Item's filename attribute and size labels item.filename = filename item_size = QtWidgets.QLabel(size_readable) item_size.setStyleSheet(self.common.gui.css["share_file_list_item_size"]) item.basename = os.path.basename(filename.rstrip("/")) # Use the basename as the method with which to sort the list metrics = QtGui.QFontMetrics(item.font()) elided = metrics.elidedText( item.basename, QtCore.Qt.ElideRight, self.sizeHint().width() ) item.setData(QtCore.Qt.DisplayRole, elided) # Item's delete button def delete_item(): itemrow = self.row(item) self.takeItem(itemrow) self.files_updated.emit() item.item_button = QtWidgets.QPushButton() item.item_button.setDefault(False) item.item_button.setFlat(True) item.item_button.setIcon( QtGui.QIcon(self.common.get_resource_path("images/file_delete.png")) ) item.item_button.clicked.connect(delete_item) item.item_button.setSizePolicy( QtWidgets.QSizePolicy.Fixed, QtWidgets.QSizePolicy.Fixed ) # Item info widget, with a white background item_info_layout = QtWidgets.QHBoxLayout() item_info_layout.setContentsMargins(0, 0, 0, 0) item_info_layout.addWidget(item_size) item_info_layout.addWidget(item.item_button) item_info = QtWidgets.QWidget() item_info.setObjectName("item-info") item_info.setLayout(item_info_layout) # Create the item's widget and layouts item_hlayout = QtWidgets.QHBoxLayout() item_hlayout.addStretch() item_hlayout.addWidget(item_info) widget = QtWidgets.QWidget() widget.setLayout(item_hlayout) item.setSizeHint(widget.sizeHint()) self.addItem(item) self.setItemWidget(item, widget) self.files_updated.emit()
def iconFromPath(path): fileInfo = QtCore.QFileInfo(path) iconProvider = QtWidgets.QFileIconProvider() icon = iconProvider.icon(fileInfo) return icon