def extendCompleter(self, sel_layer): '''extend the completer with layers''' layer_extended = sel_layer thisCompleter = QtWidgets.QCompleter(layer_extended) thisCompleter.setCompletionMode(QtWidgets.QCompleter.InlineCompletion) self.st_expr.setCompleter(thisCompleter)
def __init__(self, context_model=None, parent=None, family_only=False, read_only=False): super(PackageLineEdit, self).__init__(parent) ContextViewMixin.__init__(self, context_model) self.read_only = read_only self.family_only = family_only self.default_style = None pal = self.palette() self.normal_font = self.font() self.placeholder_font = self.font() self.placeholder_font.setItalic(True) self.normal_text_color = pal.color(QtGui.QPalette.Text) self.placeholder_text_color = pal.color(QtGui.QPalette.Disabled, QtGui.QPalette.Text) if not self.read_only: self.setPlaceholderText("enter package") self._update_font() self.completer = QtWidgets.QCompleter(self) self.completer.setCompletionMode(QtWidgets.QCompleter.PopupCompletion) self.completions = QtCore.QStringListModel(self.completer) self.completer.setModel(self.completions) self.setCompleter(self.completer) self.textEdited.connect(self._textEdited) self.textChanged.connect(self._textChanged)
def __init__(self, pivot_widget, pivot_position=None, words=None, initial_word=None, close_on_find=True, parent=None): super(FindPopup, self).__init__(parent) self.setFrameStyle(QtWidgets.QFrame.Panel | QtWidgets.QFrame.Raised) self.setWindowFlags(QtCore.Qt.Popup) self.close_on_find = close_on_find self.edit = QtWidgets.QLineEdit() self.btn = QtWidgets.QPushButton("Find") create_pane([self.edit, self.btn], True, compact=True, compact_spacing=0, parent_widget=self) self.edit.setFocus() if initial_word: self.edit.setText(initial_word) self.edit.selectAll() self.completer = None if words: self.completer = QtWidgets.QCompleter(self) self.completer.setCompletionMode(QtWidgets.QCompleter.PopupCompletion) self.completions = QtCore.QStringListModel(words, self.completer) self.completer.setModel(self.completions) self.edit.setCompleter(self.completer) pt = getattr(pivot_widget.rect(), pivot_position)() global_pt = pivot_widget.mapToGlobal(pt) self.move(global_pt) self.btn.clicked.connect(self._find) self.edit.returnPressed.connect(self._find) find_shortcut = QtWidgets.QShortcut(QtGui.QKeySequence("Ctrl+F"), self) find_shortcut.activated.connect(self._find_again)
def set_funcCompleter(self, ls_func): '''sets the function completer @ls_func: list of functions to set completer with (list) ''' _thisCompleter = QtWidgets.QCompleter(ls_func) self.func.setCompleter(_thisCompleter) self.func.setToolTip("list of suggested functions:\n\n- "+'\n- '.join(ls_func))
def autocompletables(self, items): self._autocompletables = items completer = QtWidgets.QCompleter(self._autocompletables, self) completer.setCaseSensitivity(QtCore.Qt.CaseInsensitive) self._editor.setCompleter(completer) self._editor.clear() self._editor.addItems(items) self._editor.setCurrentIndex(-1)
def __init__(self, parent, node_paths=()): super(FinderLineEdit, self).__init__(parent) completer = QtWidgets.QCompleter(node_paths, parent=self) completer.activated.connect(self.focus_node.emit) completer.setCaseSensitivity(QtCore.Qt.CaseInsensitive) completer.popup().setStyleSheet(parent.parent().stylesheet) self.returnPressed.connect(partial(self.focus_node.emit, None)) self.setCompleter(completer) self.setFocusPolicy(QtCore.Qt.FocusPolicy.StrongFocus)
def setBlockList(self, blockList): comp = QtWidgets.QCompleter( filter(lambda x: x not in self.__exclude, blockList)) comp.popup().setStyleSheet( "QListView { font-size : 13px; border: 1px solid #8B8B8B; color: #EDEDED; background-color: #222222; }" ) comp.setCaseSensitivity(QtCore.Qt.CaseInsensitive) comp.setModelSorting(QtWidgets.QCompleter.CaseInsensitivelySortedModel) self.setCompleter(comp)
def __init__(self): super(Core_ExprPrompt, self).__init__() # set self.ls_layers = ['rgb', 'rgba', 'alpha', 'max(r,g,b)', 'a>0'] # define widgets self.title = QtWidgets.QLabel("<b>ExprPrompt</b>") self.st_expr = QtWidgets.QLineEdit() self.st_expr.setPlaceholderText('_l: layer (Id06), _ch: channel (red)') self.st_expr.returnPressed.connect(self.onPressed) self.st_expr.setCompleter(QtWidgets.QCompleter(self.ls_layers)) #self.st_expr.keyPressEvent(self, event) self.st_expr.textChanged.connect(self.onTextChanged) self.mu_layers = QtWidgets.QComboBox() self.mu_layers.setEnabled(False) self.ck_ch_r = QtWidgets.QCheckBox('r') self.ck_ch_g = QtWidgets.QCheckBox('g') self.ck_ch_b = QtWidgets.QCheckBox('b') self.ck_ch_a = QtWidgets.QCheckBox('alpha') self.bt_ch_all = QtWidgets.QPushButton('all') self.bt_ch_all.clicked.connect(self.setAllChannel) self.ck_clamp = QtWidgets.QCheckBox('clamp') self.ck_invert = QtWidgets.QCheckBox('invert') self.bt_set = QtWidgets.QPushButton('Set!') self.bt_set.clicked.connect(self.onPressed) self.ls_ch_layer = [self.ck_ch_r, self.ck_ch_g, self.ck_ch_b, self.ck_ch_a] self.ls_wrapper = [self.ck_clamp, self.ck_invert] # define layouts self.layout_master = QtWidgets.QVBoxLayout() self.layout_main = QtWidgets.QHBoxLayout() self.layout_channels = QtWidgets.QHBoxLayout() self.layout_wrappers = QtWidgets.QHBoxLayout() self.layout_wrappers.setAlignment(QtCore.Qt.AlignLeft) # add widgets and set layouts self.setMaximumWidth(200) self.mu_layers.setMaximumWidth(70) for m in [self.st_expr, self.mu_layers]: self.layout_main.addWidget(m) for c in [self.ck_ch_r, self.ck_ch_g, self.ck_ch_b,self.ck_ch_a, self.bt_ch_all]: self.layout_channels.addWidget(c) for w in [self.ck_clamp, self.ck_invert]: self.layout_wrappers.addWidget(w) self.layout_master.addWidget(self.title) self.layout_master.addLayout(self.layout_main) self.layout_master.addLayout(self.layout_channels) self.layout_master.addLayout(self.layout_wrappers) self.layout_master.addWidget(self.bt_set) self.setLayout(self.layout_master) #self.resize(400,240) self.setWindowTitle("ExprPrompte") self.setWindowFlags(QtCore.Qt.FramelessWindowHint | QtCore.Qt.WindowStaysOnTopHint | QtCore.Qt.Popup) self.setDefault()
def __init__(self): super(Core_SequenceLoader, self).__init__() # lgtPath self.lgtPath_label = QtWidgets.QLabel('lighting dir: ') self.lgtPath = QtWidgets.QLineEdit() self.lgtPath.setMinimumWidth(500) self.lgtPath.editingFinished.connect(self.getVersions) # lgtPath_btn self.lgtPath_btn = QtWidgets.QPushButton('Browse') self.lgtPath_btn.clicked.connect(self.browse) # renderVersion self.renderVersion_label = QtWidgets.QLabel("lighting ver: ") self.renderVersion_mu = QtWidgets.QComboBox() self.renderVersion_mu.setMinimumWidth(250) self.renderVersion_mu.setToolTip( "look for dir with version number in name") # renderVersion_Filter self.renderVersion_filter_label = QtWidgets.QLabel("Filter: ") self.renderVersion_filter = QtWidgets.QLineEdit() _tip = "i.e. lgt, lookdev, anim. Seperated by commas" self.renderVersion_filter.setPlaceholderText(_tip) self.renderVersion_filter.setToolTip(_tip) self.renderVersion_filter.setMinimumWidth(150) self.renderVersion_filter.editingFinished.connect(self.getVersions) _completer = QtWidgets.QCompleter(['lgt', 'lookdev', 'anim']) self.renderVersion_filter.setCompleter(_completer) # load_btn self.load_btn = QtWidgets.QPushButton("Load Sequence") self.load_btn.clicked.connect(self.SequenceLoader) self.file_layout = QtWidgets.QHBoxLayout() self.master_layout = QtWidgets.QVBoxLayout() self.combobox_layout = QtWidgets.QHBoxLayout() self.file_layout.addWidget(self.lgtPath_label) self.file_layout.addWidget(self.lgtPath) self.file_layout.addWidget(self.lgtPath_btn) self.combobox_layout.addWidget(self.renderVersion_label) self.combobox_layout.addWidget(self.renderVersion_mu) self.combobox_layout.addWidget(self.renderVersion_filter_label) self.combobox_layout.addWidget(self.renderVersion_filter) self.combobox_layout.addStretch(1) self.master_layout.addLayout(self.file_layout) self.master_layout.addLayout(self.combobox_layout) self.master_layout.addWidget(self.load_btn) self.master_layout.addStretch(1) self.setLayout(self.master_layout) self.setWindowTitle("Sequence Loader") self.setDefault()
def __init__(self, parent=None): super(SearchLineEdit, self).__init__(parent) completer = QtWidgets.QCompleter(parent=self) model = QtWidgets.QFileSystemModel(completer) model.setNameFilters(['*.nxt', '*.nxtb']) model.setNameFilterDisables(False) completer.setModel(model) completer.setCaseSensitivity(QtCore.Qt.CaseInsensitive) completer.setCompletionMode(completer.UnfilteredPopupCompletion) completer.popup().setStyleSheet(parent.parent().stylesheet) self.returnPressed.connect(self.file_chosen.emit) self.setCompleter(completer) self.setFocusPolicy(QtCore.Qt.FocusPolicy.StrongFocus)
def setBlockList(self, blockList): comp = QtWidgets.QCompleter( filter(lambda x: x not in self.__exclude, blockList)) comp.popup().setStyleSheet( "QListView { font-size : 13px; border: 1px solid #8B8B8B; color: #EDEDED; background-color: #222222; }" ) comp.setCaseSensitivity(QtCore.Qt.CaseInsensitive) # This is available in Qt 5.2 and later if hasattr(comp, "setFilterMode"): comp.setFilterMode(QtCore.Qt.MatchContains) comp.setModelSorting(QtWidgets.QCompleter.CaseInsensitivelySortedModel) self.setCompleter(comp)
def showEvent(self, event): # get all company self._company_dict = {} _companys = zfused_api.zFused.get("company") _company_names = [] for _company in _companys: self._company_dict[_company.get("Name")] = _company.get("Id") _company_names.append(_company.get("Name")) self._company_completer = QtWidgets.QCompleter(_company_names) print(self._company_completer) # self._company_completer.setCaseSensitivity(QtCore.Qt.CaseInsensitive) self._company_completer.setFilterMode(QtCore.Qt.MatchContains) self._company_completer.setCompletionMode( QtWidgets.QCompleter.PopupCompletion) self.company_lineedit.setCompleter(self._company_completer)
def __init__(self, file_filter=("*.nxt", "*.nxtb"), caption=''): super(NxtFileDialog, self).__init__() self.filter = file_filter self.filter_string = " ".join(self.filter) self.dir = '' self._file_path = '' self.mode = 'open' self.caption = caption self.setWindowTitle("{} nxt layer".format(self.mode)) self.modes = {'open': self._open, 'save': self._save} self.vb_main_layout = QtWidgets.QVBoxLayout() self.setLayout(self.vb_main_layout) self.hb_file_browse = QtWidgets.QHBoxLayout() self.vb_main_layout.addLayout(self.hb_file_browse) # File path line edit self.l_file_path = QtWidgets.QLineEdit() self.l_file_path.setText(self.get_base_path(with_file_name=False)) self.hb_file_browse.addWidget(self.l_file_path) # TODO: Get the completer to complete relative paths based on the # self.dir path. Right now it starts completions from the file # system root. self.fsm_file = QtWidgets.QFileSystemModel() self.fsm_file.setFilter(QtCore.QDir.AllDirs | QtCore.QDir.NoDotAndDotDot | QtCore.QDir.Files) self.fsm_file.setNameFilters(self.filter) self.fsm_file.setNameFilterDisables(False) self.fsm_file.setRootPath(self.dir) self.completer = QtWidgets.QCompleter() self.completer.setModel(self.fsm_file) self.idx = QtCore.QModelIndex(self.fsm_file.index(self.dir)) self.l_file_path.setCompleter(self.completer) # Default file browser self.btn_browse = QtWidgets.QPushButton('Browse') self.btn_browse.clicked.connect(self.browse) self.hb_file_browse.addWidget(self.btn_browse) self.hb_options = QtWidgets.QHBoxLayout() self.vb_main_layout.addLayout(self.hb_options) self.pb_rel_path = QtWidgets.QPushButton('Convert to relative path') self.pb_rel_path.clicked.connect(self.convert_path) self.hb_options.addWidget(self.pb_rel_path) self.btn_accept = QtWidgets.QPushButton(self.mode.capitalize()) self.btn_accept.setDefault(True) self.btn_accept.clicked.connect(self.accept) self.hb_options.addWidget(self.btn_accept)
def __init__(self, core, thisRow, ls_shots, ls_tasks): ''' core: QTableWidget thisRow: index for the new row ''' super(DataAdd, self).__init__() self.core = core self.thisRow = thisRow self.ls_shots = ls_shots self.curShot = getShot() self.ls_tasks = ls_tasks if len(ls_tasks) > 0 else [ 'comp', 'mastercomp', 'precomp-' ] self.taskCompleter = QtWidgets.QCompleter(self.ls_tasks) self.taskCompleter.setCompletionMode( QtWidgets.QCompleter.InlineCompletion) self.st_shot = QtWidgets.QComboBox() # self.st_shot.setPlaceholderText('Shot (ie. str050_1010)') # self.st_shot.setCompleter(QtWidgets.QCompleter(ls_shots)) self.st_shot.addItems(self.ls_shots) self.st_shot.setEditable(True) self.st_shot.setCurrentIndex(self.st_shot.findText(self.curShot)) self.st_task = QtWidgets.QLineEdit() self.st_task.setPlaceholderText('Task (ie. mastercomp)') self.st_task.setCompleter(self.taskCompleter) self.no_version = VersionBox() self.no_version.setValue(1) self.bx_status = QtWidgets.QComboBox() self.bx_status.addItems(self.core.ls_status) self.st_comments = QtWidgets.QLineEdit() self.bt_add = QtWidgets.QPushButton('ADD') self.bt_add.clicked.connect(self.onClicked) self.layout_master = QtWidgets.QVBoxLayout() self.layout_version = QtWidgets.QHBoxLayout() self.layout_version.addWidget(self.st_shot) self.layout_version.addWidget(self.st_task) self.layout_version.addWidget(self.no_version) self.layout_version.addWidget(self.bx_status) self.layout_master.addLayout(self.layout_version) self.layout_master.addWidget(self.st_comments) self.layout_master.addWidget(self.bt_add) self.setLayout(self.layout_master) self.setWindowTitle("Add a version: entry %s" % (self.thisRow + 1))
def set_search_completer(self): """Set the QCompleter for the search edit. TODO Check if there is a way to update the contents of completer rather recreate new one every time. seems costly """ folders = self.collected_dir_info.keys() base_folders = [] for x in folders: tmp = os.path.abspath(x).replace(self.preset_share_dir, "") tmp = tmp.strip("\\") base_folders.append(tmp) self.completer = QtWidgets.QCompleter(base_folders) self.completer.setCaseSensitivity(QtCore.Qt.CaseInsensitive) self.completer.setFilterMode(QtCore.Qt.MatchContains) self.completer.activated.connect(self.filter_view) self.search_widget.setCompleter(self.completer)
def __init__(self, parent=None): super(ComboBoxCompleter, self).__init__(parent) self.setFocusPolicy(QtCore.Qt.StrongFocus) self.setEditable(True) self.completer = QtWidgets.QCompleter(self) # always show all completions self.completer.setCompletionMode(QtWidgets.QCompleter.UnfilteredPopupCompletion) self.pFilterModel = QtWidgets.QSortFilterProxyModel(self) self.pFilterModel.setFilterCaseSensitivity(QtCore.Qt.CaseInsensitive) self.completer.setPopup(self.view()) self.setCompleter(self.completer) self.lineEdit().textEdited[unicode].connect(self.pFilterModel.setFilterFixedString) self.completer.activated.connect(self.setTextIfCompleterIsClicked)
def __init__( self, parent = None): super( ExtendedCombo, self ).__init__( parent ) self.setFocusPolicy( QtCore.Qt.StrongFocus ) self.setEditable( True ) self.completer = QtWidgets.QCompleter( self ) # always show all completions self.completer.setCompletionMode( QtWidgets.QCompleter.UnfilteredPopupCompletion ) self.pFilterModel = QtCore.QSortFilterProxyModel( self ) self.pFilterModel.setFilterCaseSensitivity( QtCore.Qt.CaseInsensitive ) self.pFilterModel.setSourceModel( QtGui.QStandardItemModel() ) self.completer.setPopup( self.view() ) self.setCompleter( self.completer ) edit = self.lineEdit() # NOTE 取消按 Enter 生成新 item 的功能 edit.returnPressed.disconnect() edit.textEdited[unicode].connect( self.pFilterModel.setFilterFixedString ) self.completer.activated.connect(self.setTextIfCompleterIsClicked)
def __init__(self, *args, **kwargs): super(Launcher, self).__init__(*args, **kwargs) self.completer = QtWidgets.QCompleter() self.model = QtCore.QStringListModel() self.completer.setModel(self.model) self.completer.setFilterMode(QtCore.Qt.MatchContains) self.completer.setCaseSensitivity(QtCore.Qt.CaseInsensitive) self.Search_LE.setCompleter(self.completer) # # TODO 多进程加载 引擎 路径 # self.asset_thread = CollectAssetThread() # self.asset_thread.bind(self.handle_asset) # self.asset_thread.start() # TODO 多线程加载 Python 链接 self.cls_thread = CollectUnrealDirThread() self.cls_thread.bind(self.order_class) self.cls_thread.start() self.state.loading_vis = True self.get_asset_paths()
def __init__(self, path="", filter="", selectedFilter="", parent=None): """ Initialize the panel. :Parameters: path : `str` default path to look in when creating or choosing the file. filter : `list` A list of strings denoting filename match filters. These strings are displayed in a user-selectable combobox. When selected, the file list is filtered by the pattern The format must follow: ["Descriptive text (pattern1 pattern2 ...)", ...] The glob matching pattern is in parens, and the entire string is displayed for the user. selectedFilter : `str` Set the current filename filter. Needs to be one of the entries specified in the "filter" parameter. parent : `QObject` Parent for this widget. """ super(IncludePanel, self).__init__(parent) # Setup UI. self.lookInCombo = QtWidgets.QComboBox(self) self.toParentButton = QtWidgets.QToolButton(self) self.buttonHome = QtWidgets.QToolButton(self) self.buttonOriginal = QtWidgets.QPushButton("Original", self) self.fileNameEdit = QtWidgets.QLineEdit(self) self.fileNameLabel = QtWidgets.QLabel("File:", self) self.fileTypeCombo = QtWidgets.QComboBox(self) self.fileTypeLabel = QtWidgets.QLabel("Type:", self) self.stackedWidget = QtWidgets.QStackedWidget(self) self.listView = QtWidgets.QListView(self) self.fileTypeLabelFiller = QtWidgets.QLabel(self) self.fileTypeComboFiller = QtWidgets.QLabel(self) self.buttonOpen = QtWidgets.QPushButton( QIcon.fromTheme("document-open"), "Open", self) # Item settings. self.buttonHome.setIcon(self.style().standardIcon( QtWidgets.QStyle.SP_DirHomeIcon)) self.buttonHome.setToolTip("User's home directory") self.buttonHome.setAutoRaise(True) self.buttonOriginal.setToolTip("Original directory") self.lookInCombo.setMinimumSize(50, 0) self.toParentButton.setIcon(self.style().standardIcon( QtWidgets.QStyle.SP_FileDialogToParent)) self.toParentButton.setAutoRaise(True) self.toParentButton.setToolTip("Parent directory") self.listView.setDragEnabled(True) self.fileNameLabel.setToolTip("Selected file or directory") self.fileTypeLabel.setBuddy(self.fileTypeCombo) self.fileTypeLabel.setToolTip("File type filter") self.buttonOpen.setToolTip("Open selected file") # Focus policies. self.lookInCombo.setFocusPolicy(QtCore.Qt.NoFocus) self.toParentButton.setFocusPolicy(QtCore.Qt.NoFocus) self.buttonHome.setFocusPolicy(QtCore.Qt.NoFocus) self.buttonOriginal.setFocusPolicy(QtCore.Qt.NoFocus) self.buttonOpen.setFocusPolicy(QtCore.Qt.NoFocus) # Item size policies. self.lookInCombo.setSizePolicy(QtWidgets.QSizePolicy.Ignored, QtWidgets.QSizePolicy.Fixed) self.toParentButton.setSizePolicy(QtWidgets.QSizePolicy.Fixed, QtWidgets.QSizePolicy.Fixed) self.buttonHome.setSizePolicy(QtWidgets.QSizePolicy.Fixed, QtWidgets.QSizePolicy.Fixed) self.buttonOriginal.setSizePolicy(QtWidgets.QSizePolicy.Fixed, QtWidgets.QSizePolicy.Fixed) self.fileNameLabel.setSizePolicy(QtWidgets.QSizePolicy.Minimum, QtWidgets.QSizePolicy.Fixed) self.fileTypeCombo.setSizePolicy(QtWidgets.QSizePolicy.Ignored, QtWidgets.QSizePolicy.Fixed) self.fileTypeLabel.setSizePolicy(QtWidgets.QSizePolicy.Minimum, QtWidgets.QSizePolicy.Fixed) self.buttonOpen.setSizePolicy(QtWidgets.QSizePolicy.Fixed, QtWidgets.QSizePolicy.Fixed) # Layouts. self.include1Layout = QtWidgets.QHBoxLayout() self.include1Layout.setContentsMargins(0, 0, 0, 0) self.include1Layout.setSpacing(5) self.include1Layout.addWidget(self.buttonHome) self.include1Layout.addWidget(self.lookInCombo) self.include1Layout.addWidget(self.toParentButton) self.include2Layout = QtWidgets.QHBoxLayout() self.include2Layout.setContentsMargins(0, 0, 0, 0) self.include2Layout.setSpacing(5) self.include2Layout.addWidget(self.stackedWidget) self.include4Layout = QtWidgets.QGridLayout() self.include4Layout.setContentsMargins(0, 0, 0, 0) self.include4Layout.setSpacing(5) self.include4Layout.addWidget( self.fileNameLabel, 0, 0, QtCore.Qt.AlignRight | QtCore.Qt.AlignVCenter) self.include4Layout.addWidget(self.fileNameEdit, 0, 1) self.include4Layout.addWidget( self.fileTypeLabel, 1, 0, QtCore.Qt.AlignRight | QtCore.Qt.AlignVCenter) self.include4Layout.addWidget(self.fileTypeCombo, 1, 1) self.include4Layout.addWidget(self.fileTypeLabelFiller, 2, 0) self.include4Layout.addWidget(self.fileTypeComboFiller, 2, 1) self.include5Layout = QtWidgets.QHBoxLayout() self.include5Layout.setAlignment(QtCore.Qt.AlignLeft | QtCore.Qt.AlignVCenter) self.include5Layout.setContentsMargins(0, 0, 0, 0) self.include5Layout.setSpacing(5) self.include5Layout.addWidget(self.buttonOriginal) spacer = QtWidgets.QSpacerItem(5, 0, QtWidgets.QSizePolicy.MinimumExpanding) self.include5Layout.addSpacerItem(spacer) self.include5Layout.addWidget(self.buttonOpen) self.includeLayout = QtWidgets.QVBoxLayout() self.includeLayout.setContentsMargins(0, 0, 0, 0) self.includeLayout.setSpacing(5) self.includeLayout.addLayout(self.include1Layout) self.includeLayout.addLayout(self.include2Layout) self.includeLayout.addLayout(self.include4Layout) line1 = QtWidgets.QFrame() line1.setFrameStyle(QtWidgets.QFrame.HLine | QtWidgets.QFrame.Sunken) self.includeLayout.addWidget(line1) self.includeLayout.addLayout(self.include5Layout) self.setLayout(self.includeLayout) self.setSizePolicy(QtWidgets.QSizePolicy.Minimum, QtWidgets.QSizePolicy.Expanding) self.buttonHome.clicked.connect(self.onHome) self.buttonOriginal.clicked.connect(self.onOriginal) self.lookInCombo.activated[int].connect(self.onPathComboChanged) self.fileTypeCombo.activated[int].connect(self._useNameFilter) self.fileModel = QtWidgets.QFileSystemModel(parent) self.fileModel.setReadOnly(True) self.fileModel.setNameFilterDisables(False) self.fileModel.setResolveSymlinks(True) self.fileModel.rootPathChanged.connect(self.pathChanged) self.listView.setModel(self.fileModel) self.listView.activated[QtCore.QModelIndex].connect( self.enterDirectory) # Set selection mode and behavior. self.listView.setSelectionBehavior( QtWidgets.QAbstractItemView.SelectRows) self.listView.setWrapping(False) self.listView.setResizeMode(QtWidgets.QListView.Adjust) selectionMode = QtWidgets.QAbstractItemView.SingleSelection self.listView.setSelectionMode(selectionMode) # Setup the completer. completer = QtWidgets.QCompleter(self.fileModel, self.fileNameEdit) completer.setCaseSensitivity(QtCore.Qt.CaseInsensitive) self.fileNameEdit.setCompleter(completer) self.fileNameEdit.textChanged.connect(self.autoCompleteFileName) self.fileNameEdit.returnPressed.connect(self.accept) pathFile = None if not path: self.__path = os.getcwd() elif os.path.isfile(path): self.__path, pathFile = os.path.split(path) else: self.__path = path self.setPath(self.__path) if filter: self.setNameFilters(filter) if selectedFilter: self.selectNameFilter(selectedFilter) self.listPage = QtWidgets.QWidget(self.stackedWidget) self.stackedWidget.addWidget(self.listPage) listLayout = QtWidgets.QGridLayout(self.listPage) #listLayout.setMargin(0) listLayout.setContentsMargins(0, 0, 0, 0) listLayout.addWidget(self.listView, 0, 0, 1, 1) self.fileTypeLabelFiller.hide() self.fileTypeComboFiller.hide() # Selections selections = self.listView.selectionModel() selections.selectionChanged.connect(self.fileSelectionChanged) if pathFile is not None: idx = self.fileModel.index(self.fileModel.rootPath() + QtCore.QDir.separator() + pathFile) self.select(idx) self.fileNameEdit.setText(pathFile) # Connect signals. self.toParentButton.clicked.connect(self.onUp) self.buttonOpen.clicked.connect(self.accept) self.listView.scheduleDelayedItemsLayout() self.stackedWidget.setCurrentWidget(self.listPage) self.fileNameEdit.setFocus()
def __init__(self, ui_name, nodetype_display=None, auto_name=None, auto_comment=None, completer_list=None, parent=None): """Pop up window to gather name and comment from user about the preset Args: ui_name (str): name to give the ui auto_name (str, optional): should a name be already set auto_comment (str, optional): should a comment already be filled completer_list (list, optional): list of names for the completer parent (QtWidget, optional): Window to parent over """ super(NameAndDescribePresetUI, self).__init__(parent=parent) self.setWindowTitle(ui_name) mainLayout = QtWidgets.QVBoxLayout() self.setLayout(mainLayout) self.result = [] # -------------------------------------------------------------------- if nodetype_display: create_layout = QtWidgets.QVBoxLayout() msg = "Creating a preset for:" creating_label = QtWidgets.QLabel(msg) nodetype_label = QtWidgets.QLabel(nodetype_display) font = nodetype_label.font() font.setBold(True) nodetype_label.setFont(font) create_layout.addWidget(creating_label) create_layout.addWidget(nodetype_label) mainLayout.addLayout(create_layout) selectionLayout = QtWidgets.QHBoxLayout() selectionLabel = QtWidgets.QLabel("Give preset name:") self.preset_name_edit = QtWidgets.QLineEdit() self.preset_name_edit.setPlaceholderText("name") val = QtGui.QRegExpValidator(QtCore.QRegExp("[A-Za-z]+")) self.preset_name_edit.setValidator(val) if auto_name: self.preset_name_edit.setText(auto_name) if completer_list: com = QtWidgets.QCompleter(completer_list) self.preset_name_edit.setCompleter(com) selectionLayout.addWidget(selectionLabel) selectionLayout.addWidget(self.preset_name_edit) mainLayout.addLayout(selectionLayout) # -------------------------------------------------------------------- self.comment_widget = QtWidgets.QTextEdit() self.comment_widget.setPlaceholderText("Details on the preset.") mainLayout.addWidget(self.comment_widget) if auto_comment: self.comment_widget.setText(auto_comment) # -------------------------------------------------------------------- # buttonLayout = QtWidgets.QHBoxLayout() self.okButton = QtWidgets.QPushButton("Ok") self.okButton.clicked.connect(self.onOK) mainLayout.addWidget(self.okButton)
def __init__(self): super(Core_ExprPrompt, self).__init__() # set self.ls_layers = PRESET_LINE # Left Widgets self.title = QtWidgets.QLabel("<h3>%s</h3>" % __TITLE__) self.st_expr = QtWidgets.QLineEdit() self.st_expr.setPlaceholderText('$ly: layer (Id06), $ch: channel (red)') self.st_expr.returnPressed.connect(self.onPressed) self.st_expr.setCompleter(QtWidgets.QCompleter(self.ls_layers)) self.st_expr.textChanged.connect(self.onTextChanged) self.mu_layers = QtWidgets.QComboBox() self.mu_layers.setEnabled(False) self.ck_ch_r = QtWidgets.QCheckBox('r') self.ck_ch_g = QtWidgets.QCheckBox('g') self.ck_ch_b = QtWidgets.QCheckBox('b') self.ck_ch_a = QtWidgets.QCheckBox('alpha') self.bt_ch_all = QtWidgets.QPushButton('all') self.bt_ch_all.clicked.connect(self.setChannels) self.ck_clamp = QtWidgets.QCheckBox('clamp') self.ck_invert = QtWidgets.QCheckBox('invert') self.bt_set = QtWidgets.QPushButton('Set!') self.bt_set.clicked.connect(self.onPressed) # Right Widgets for idx, p in enumerate(PRESET_BTN.keys()): exec("self.presetBtn%s=QtWidgets.QPushButton('%s')" % (idx, p)) exec("self.presetBtn%s.clicked.connect(self.setPreset)" % (idx)) self.ls_ch_layer = [self.ck_ch_r, self.ck_ch_g, self.ck_ch_b, self.ck_ch_a] self.ls_wrapper = [self.ck_clamp, self.ck_invert] # define layouts self.layout_master = QtWidgets.QHBoxLayout() self.layout_main = QtWidgets.QVBoxLayout() self.layout_expr = QtWidgets.QHBoxLayout() self.preset_group = QtWidgets.QGroupBox('presets:') self.layout_right = QtWidgets.QVBoxLayout() self.preset_group.setLayout(self.layout_right) self.layout_channels = QtWidgets.QHBoxLayout() self.layout_wrappers = QtWidgets.QHBoxLayout() self.layout_wrappers.setAlignment(QtCore.Qt.AlignLeft) # add widgets and set layouts for m in [self.st_expr, self.mu_layers]: self.layout_expr.addWidget(m) for c in [self.ck_ch_r, self.ck_ch_g, self.ck_ch_b,self.ck_ch_a, self.bt_ch_all]: self.layout_channels.addWidget(c) for w in [self.ck_clamp, self.ck_invert]: self.layout_wrappers.addWidget(w) # Main Layout self.layout_main.addWidget(self.title) self.layout_main.addLayout(self.layout_expr) self.layout_main.addLayout(self.layout_channels) self.layout_main.addLayout(self.layout_wrappers) self.layout_main.addWidget(self.bt_set) # Right Layout # self.layout_right.addStretch() for idx, p in enumerate(PRESET_BTN.keys()): eval('self.layout_right.addWidget(self.presetBtn%s)' % idx) self.layout_right.addStretch() # Master Layout self.layout_master.addLayout(self.layout_main) self.layout_master.addWidget(self.preset_group) self.setLayout(self.layout_master) self.setMaximumWidth(400) self.mu_layers.setMaximumWidth(70) self.setWindowTitle(__TITLE__) self.setWindowFlags(QtCore.Qt.FramelessWindowHint | QtCore.Qt.WindowStaysOnTopHint | QtCore.Qt.Popup) self.setDefault()