class ImageSettings(QDialog): def __init__(self, imageCapture, parent=None): super(ImageSettings, self).__init__(parent) self.ui = Ui_ImageSettingsUi() self.imagecapture = imageCapture self.ui.setupUi(self) self.ui.imageCodecBox.addItem("Default image format", "") for codecName in self.imagecapture.supportedImageCodecs(): description = self.imagecapture.imageCodecDescription(codecName) self.ui.imageCodecBox.addItem(codecName + ": " + description, codecName) self.ui.imageQualitySlider.setRange(0, QMultimedia.VeryHighQuality) self.ui.imageResolutionBox.addItem("Default resolution") supportedResolutions, _ = self.imagecapture.supportedResolutions() for resolution in supportedResolutions: self.ui.imageResolutionBox.addItem( "%dx%d" % (resolution.width(), resolution.height()), resolution) def imageSettings(self): settings = self.imagecapture.encodingSettings() settings.setCodec(self.boxValue(self.ui.imageCodecBox)) settings.setQuality( QMultimedia.EncodingQuality( self.ui.imageQualitySlider.value())) settings.setResolution(self.boxValue(self.ui.imageResolutionBox)) return settings def setImageSettings(self, settings): self.selectComboBoxItem(self.ui.imageCodecBox, settings.codec()) self.selectComboBoxItem(self.ui.imageResolutionBox, settings.resolution()) self.ui.imageQualitySlider.setValue(settings.quality()) @staticmethod def boxValue(box): idx = box.currentIndex() if idx == -1: return None return box.itemData(idx) @staticmethod def selectComboBoxItem(box, value): for i in range(box.count()): if box.itemData(i) == value: box.setCurrentIndex(i) break
def __init__(self, imageCapture, parent=None): super(ImageSettings, self).__init__(parent) self.ui = Ui_ImageSettingsUi() self.imagecapture = imageCapture self.ui.setupUi(self) self.ui.imageCodecBox.addItem("Default image format", "") for codecName in self.imagecapture.supportedImageCodecs(): description = self.imagecapture.imageCodecDescription(codecName) self.ui.imageCodecBox.addItem(codecName + ": " + description, codecName) self.ui.imageQualitySlider.setRange(0, QMultimedia.VeryHighQuality) self.ui.imageResolutionBox.addItem("Default resolution") supportedResolutions, _ = self.imagecapture.supportedResolutions() for resolution in supportedResolutions: self.ui.imageResolutionBox.addItem( "%dx%d" % (resolution.width(), resolution.height()), resolution)