def f(): from bLUeTop.QtGui1 import window lastDir = str(window.settings.value('paths/dlgdir', '.')) filter = "Images ( *" + " *".join(IMAGE_FILE_EXTENSIONS) + ")" dlg = QFileDialog(window, "select", lastDir, filter) if dlg.exec_(): filenames = dlg.selectedFiles() newDir = dlg.directory().absolutePath() window.settings.setValue('paths/dlgdir', newDir) self.sourceImage = QImage(filenames[0]) self.updateSource() """ # scale img while keeping its aspect ratio # into a QPixmap having the same size than self.layer sourcePixmap = QPixmap.fromImage(self.sourceImage).scaled(self.layer.size(), Qt.KeepAspectRatio) self.sourceSize = sourcePixmap.size() self.sourcePixmap = QPixmap(self.layer.size()) self.sourcePixmap.fill(Qt.black) qp = QPainter(self.sourcePixmap) qp.drawPixmap(QPointF(), sourcePixmap) # (QRect(0, 0, sourcePixmap.width(), sourcePixmap.height()), sourcePixmap) qp.end() self.sourcePixmapThumb = self.sourcePixmap.scaled(self.pwSize, self.pwSize, aspectMode=Qt.KeepAspectRatio) self.widgetImg.setPixmap(self.sourcePixmapThumb) self.widgetImg.setFixedSize(self.sourcePixmapThumb.size()) self.layer.sourceFromFile = True """ self.widgetImg.show()
def openDlg(mainWidget, ask=True): """ Returns a file name or None. @param mainWidget: @type mainWidget: @param ask: @type ask: @return: @rtype: """ if ask and mainWidget.label.img.isModified: ret = saveChangeDialog(mainWidget.label.img) if ret == QMessageBox.Yes: try: saveDlg(mainWidget.label.img, mainWidget) except (ValueError, IOError) as e: dlgWarn(str(e)) return elif ret == QMessageBox.Cancel: return # don't ask again for saving mainWidget.label.img.isModified = False lastDir = str(mainWidget.settings.value('paths/dlgdir', '.')) dlg = QFileDialog( mainWidget, "select", lastDir, " *".join(IMAGE_FILE_EXTENSIONS) + " *".join(RAW_FILE_EXTENSIONS)) if dlg.exec_(): filenames = dlg.selectedFiles() newDir = dlg.directory().absolutePath() mainWidget.settings.setValue('paths/dlgdir', newDir) return filenames[0]
def action_load_files(self): log.info("Loading .nif files ...") self.toggle(False) self.progress_bar.setMinimum(0) self.progress_bar.setMaximum(0) file_dialog = QFileDialog() file_dialog.setFileMode(QFileDialog.DirectoryOnly) file_dialog.setDirectory(self.source_folder) if file_dialog.exec_(): scan_dirs = file_dialog.selectedFiles() if len(scan_dirs) >= 1: self.source_folder = scan_dirs[0] else: self.source_folder = file_dialog.directory() if self.source_folder: log.info("Scanning directory : " + self.source_folder) CONFIG.set("DEFAULT", "SourceFolder", self.source_folder), save_config() worker = Worker(self.load_files) worker.signals.progress.connect(self.update_nif_files) worker.signals.result.connect(self.finish_load_action) QThreadPool.globalInstance().start(worker)
def open_from_file(self): file_dialog = QFileDialog() file_dialog.setFileMode(QFileDialog.AnyFile) file_dialog.setViewMode(QFileDialog.Detail) if file_dialog.exec_(): file_name = file_dialog.selectedFiles()[0] self.ui.fromFilePath_lineEdit.setText(file_name) folder_path = file_dialog.directory().path() self.ui.toFilePath_lineEdit.setText(folder_path)
def saveLUT(self): """ """ mainForm = self.mainForm lut = self.scene().lut lastDir = str(mainForm.settings.value('paths/dlg3DLUTdir', '.')) dlg = QFileDialog(mainForm, "Save Color LUT", lastDir) dlg.setNameFilter('*.cube') dlg.setDefaultSuffix('cube') try: if dlg.exec_(): filenames = dlg.selectedFiles() newDir = dlg.directory().absolutePath() mainForm.settings.setValue('paths/dlg3DLUTdir', newDir) lut.writeToTextFile(filenames[0]) dlgInfo('3D LUT written') except IOError as e: dlgWarn(str(e))
def openDlg(mainWidget, ask=True, multiple=False): """ if multiple is true returns a list of file names, otherwise returns a file name or None. @param mainWidget: @type mainWidget: @param ask: @type ask: @param multiple: @type multiple: boolean @return: @rtype: string or list of strings """ if ask and mainWidget.label.img.isModified: ret = saveChangeDialog(mainWidget.label.img) if ret == QMessageBox.Yes: try: saveDlg(mainWidget.label.img, mainWidget) except (ValueError, IOError) as e: dlgWarn(str(e)) return elif ret == QMessageBox.Cancel: return # don't ask again for saving mainWidget.label.img.isModified = False lastDir = str(mainWidget.settings.value('paths/dlgdir', '.')) filter = "Images ( *" + " *".join( IMAGE_FILE_EXTENSIONS) + " *" + " *".join(RAW_FILE_EXTENSIONS) + ")" if multiple: # allow multiple selections filenames = QFileDialog.getOpenFileNames(mainWidget, "select", lastDir, filter) return filenames[0] # select a single file dlg = QFileDialog(mainWidget, "select", lastDir, filter) if dlg.exec_(): filenames = dlg.selectedFiles() newDir = dlg.directory().absolutePath() mainWidget.settings.setValue('paths/dlgdir', newDir) return filenames[0] return None
class savingDialog(QDialog): """ File dialog with quality and compression sliders. We use a standard QFileDialog as a child widget and we forward its methods to the top level. """ def __init__(self, parent, text, lastDir): """ @param parent: @type parent: QObject @param text: @type text: str @param lastDir: @type lastDir:str """ # QDialog __init__ super().__init__() self.setWindowTitle(text) # File Dialog self.dlg = QFileDialog(caption=text, directory=lastDir) # sliders self.sliderComp = QbLUeSlider(Qt.Horizontal) self.sliderComp.setTickPosition(QSlider.TicksBelow) self.sliderComp.setRange(0, 9) self.sliderComp.setSingleStep(1) self.sliderComp.setValue(5) self.sliderQual = QbLUeSlider(Qt.Horizontal) self.sliderQual.setTickPosition(QSlider.TicksBelow) self.sliderQual.setRange(0, 100) self.sliderQual.setSingleStep(10) self.sliderQual.setValue(90) self.dlg.setVisible(True) l = QVBoxLayout() h = QHBoxLayout() l.addWidget(self.dlg) h.addWidget(QLabel("Quality")) h.addWidget(self.sliderQual) h.addWidget(QLabel("Compression")) h.addWidget(self.sliderComp) l.addLayout(h) self.setLayout(l) # file dialog close event handler def f(): self.close() self.dlg.finished.connect(f) def exec_(self): # QDialog exec_ super().exec_() # forward file dialog result return self.dlg.result() def selectFile(self, fileName): self.dlg.selectFile(fileName) def selectedFiles(self): return self.dlg.selectedFiles() def directory(self): return self.dlg.directory()