コード例 #1
0
 def _createSpacer(self, width=0):
     spacer = QWidget(self)
     spacer.setFixedSize(width, self.iconSize().height())
     return spacer
コード例 #2
0
ファイル: talkeditor.py プロジェクト: Noodle1550/freeseer
    def __init__(self, config, db):
        FreeseerApp.__init__(self)

        self.config = config
        self.db = db

        icon = QIcon()
        icon.addPixmap(QPixmap(':/freeseer/logo.png'), QIcon.Normal, QIcon.Off)
        self.setWindowIcon(icon)
        self.resize(960, 600)

        #
        # Setup Layout
        #
        self.mainWidget = QWidget()
        self.mainLayout = QVBoxLayout()
        self.mainWidget.setLayout(self.mainLayout)
        self.setCentralWidget(self.mainWidget)
        self.mainLayout.setAlignment(Qt.AlignTop)

        # Add custom widgets
        self.commandButtons = CommandButtons()
        self.tableView = QTableView()
        self.tableView.setSortingEnabled(True)
        self.tableView.setSelectionBehavior(QAbstractItemView.SelectRows)
        self.talkDetailsWidget = TalkDetailsWidget()
        self.importTalksWidget = ImportTalksWidget()
        self.newTalkWidget = NewTalkWidget()
        self.mainLayout.addWidget(self.importTalksWidget)
        #self.mainLayout.addLayout(self.titleLayout)
        self.mainLayout.addWidget(self.commandButtons)
        self.mainLayout.addWidget(self.tableView)
        self.mainLayout.addWidget(self.talkDetailsWidget)
        self.mainLayout.addWidget(self.importTalksWidget)
        # --- End Layout

        # Keep track of index of the most recently selected talk
        self.currentTalkIndex = QPersistentModelIndex()

        # Prompt user to "Continue Editing", "Discard Changes" or "Save Changes"
        self.savePromptBox = QMessageBox()
        self.savePromptBox.setWindowTitle("Unsaved Changes Exist")
        self.savePromptBox.setIcon(QMessageBox.Information)
        self.savePromptBox.setText("The talk you were editing has unsaved changes.")
        self.continueButton = self.savePromptBox.addButton("Continue Editing", QMessageBox.RejectRole)
        self.discardButton = self.savePromptBox.addButton("Discard Changes", QMessageBox.DestructiveRole)
        self.saveButton = self.savePromptBox.addButton("Save Changes", QMessageBox.AcceptRole)
        self.savePromptBox.setDefaultButton(self.saveButton)

        # Initialize geometry, to be used for restoring window positioning.
        self.geometry = None

        #
        # Setup Menubar
        #
        self.actionExportCsv = QAction(self)
        self.actionExportCsv.setObjectName('actionExportCsv')
        self.actionRemoveAll = QAction(self)
        self.actionRemoveAll.setObjectName('actionRemoveAll')

        # Actions
        self.menuFile.insertAction(self.actionExit, self.actionExportCsv)
        self.menuFile.insertAction(self.actionExit, self.actionRemoveAll)
        # --- End Menubar

        #
        # TableView Connections
        #
        self.connect(self.tableView, SIGNAL('activated(const QModelIndex)'), self.click_talk)
        self.connect(self.tableView, SIGNAL('selected(const QModelIndex)'), self.click_talk)
        self.connect(self.tableView, SIGNAL('clicked(const QModelIndex)'), self.click_talk)

        # Import Widget
        self.connect(self.importTalksWidget.csvRadioButton, SIGNAL('toggled(bool)'), self.toggle_import)
        self.connect(self.importTalksWidget.importButton, SIGNAL('clicked()'), self.import_talks)
        self.connect(self.importTalksWidget.cancelButton, SIGNAL('clicked()'), self.hide_import_talks_widget)
        self.importTalksWidget.setHidden(True)
        self.connect(self.importTalksWidget.csvFileSelectButton, SIGNAL('clicked()'), self.csv_file_select)
        self.connect(self.importTalksWidget.csvLineEdit, SIGNAL('returnPressed()'),
            self.importTalksWidget.importButton.click)
        self.connect(self.importTalksWidget.rssLineEdit, SIGNAL('returnPressed()'),
            self.importTalksWidget.importButton.click)
        self.connect(self.actionExportCsv, SIGNAL('triggered()'), self.export_talks_to_csv)
        self.connect(self.actionRemoveAll, SIGNAL('triggered()'), self.confirm_reset)

        # Command Buttons
        self.connect(self.commandButtons.addButton, SIGNAL('clicked()'), self.click_add_button)
        self.connect(self.commandButtons.removeButton, SIGNAL('clicked()'), self.remove_talk)
        self.connect(self.commandButtons.removeAllButton, SIGNAL('clicked()'), self.confirm_reset)
        self.connect(self.commandButtons.importButton, SIGNAL('clicked()'), self.show_import_talks_widget)
        self.connect(self.commandButtons.exportButton, SIGNAL('clicked()'), self.export_talks_to_csv)
        self.connect(self.commandButtons.searchButton, SIGNAL('clicked()'), self.search_talks)
        self.connect(self.commandButtons.searchLineEdit, SIGNAL('textEdited(QString)'), self.search_talks)
        self.connect(self.commandButtons.searchLineEdit, SIGNAL('returnPressed()'), self.search_talks)

        # Talk Details Buttons
        self.connect(self.talkDetailsWidget.saveButton, SIGNAL('clicked()'), self.update_talk)

        # Talk Details Widget
        self.connect(self.talkDetailsWidget.titleLineEdit, SIGNAL('textEdited(const QString)'), self.enable_save)
        self.connect(self.talkDetailsWidget.presenterLineEdit, SIGNAL('textEdited(const QString)'), self.enable_save)
        self.connect(self.talkDetailsWidget.categoryLineEdit, SIGNAL('textEdited(const QString)'), self.enable_save)
        self.connect(self.talkDetailsWidget.eventLineEdit, SIGNAL('textEdited(const QString)'), self.enable_save)
        self.connect(self.talkDetailsWidget.roomLineEdit, SIGNAL('textEdited(const QString)'), self.enable_save)
        self.connect(self.talkDetailsWidget.descriptionTextEdit, SIGNAL('modificationChanged(bool)'), self.enable_save)
        self.connect(self.talkDetailsWidget.dateEdit, SIGNAL('dateChanged(const QDate)'), self.enable_save)
        self.connect(self.talkDetailsWidget.startTimeEdit, SIGNAL('timeChanged(const QTime)'), self.enable_save)
        self.connect(self.talkDetailsWidget.endTimeEdit, SIGNAL('timeChanged(const QTime)'), self.enable_save)

        # New Talk Widget
        self.newTalkWidget.connect(self.newTalkWidget.addButton, SIGNAL('clicked()'), self.add_talk)
        self.newTalkWidget.connect(self.newTalkWidget.cancelButton, SIGNAL('clicked()'), self.newTalkWidget.reject)

        # Load default language
        actions = self.menuLanguage.actions()
        for action in actions:
            if action.data().toString() == self.config.default_language:
                action.setChecked(True)
                self.translate(action)
                break

        # Load Talk Database
        self.load_presentations_model()

        # Setup Autocompletion
        self.update_autocomplete_fields()

        self.talkDetailsWidget.saveButton.setEnabled(False)
コード例 #3
0
    def __init__(self, parent=None):
        QWidget.__init__(self, parent)

        icon = QIcon()
        icon.addPixmap(QPixmap(_fromUtf8(":/freeseer/logo.png")), QIcon.Normal, QIcon.Off)
        self.setWindowIcon(icon)

        self.mainWidget = QWidget()
        self.mainLayout = QVBoxLayout()
        self.setLayout(self.mainLayout)

        boldFont = QFont()
        boldFont.setBold(True)

        self.infoLayout = QFormLayout()
        self.mainLayout.addLayout(self.infoLayout)
        self.reportLayout = QHBoxLayout()
        self.mainLayout.addLayout(self.reportLayout)
        self.buttonLayout = QHBoxLayout()
        self.mainLayout.addLayout(self.buttonLayout)

        # Talk infomation
        self.titleLabel = QLabel("Title:")
        self.titleLabel2 = QLabel()
        self.titleLabel2.setFont(boldFont)
        self.speakerLabel = QLabel("Speaker:")
        self.speakerLabel2 = QLabel()
        self.speakerLabel2.setFont(boldFont)
        self.eventLabel = QLabel("Event:")
        self.eventLabel2 = QLabel()
        self.eventLabel2.setFont(boldFont)
        self.roomLabel = QLabel("Room:")
        self.roomLabel2 = QLabel()
        self.roomLabel2.setFont(boldFont)
        self.startTimeLabel = QLabel("Start Time:")
        self.startTimeLabel2 = QLabel()
        self.startTimeLabel2.setFont(boldFont)
        self.endTimeLabel = QLabel("End Time:")
        self.endTimeLabel2 = QLabel()
        self.endTimeLabel2.setFont(boldFont)
        self.infoLayout.addRow(self.titleLabel, self.titleLabel2)
        self.infoLayout.addRow(self.speakerLabel, self.speakerLabel2)
        self.infoLayout.addRow(self.eventLabel, self.eventLabel2)
        self.infoLayout.addRow(self.roomLabel, self.roomLabel2)
        self.infoLayout.addRow(self.startTimeLabel, self.startTimeLabel2)
        self.infoLayout.addRow(self.endTimeLabel, self.endTimeLabel2)

        #Report
        self.commentLabel = QLabel("Comment")
        self.commentEdit = QLineEdit()

        self.reportCombo = QComboBox()
        # Prototype for report options. Please define these in the
        # record.py logic file under retranslate() so that translations
        # work.
#        self.options = ['No Audio', 'No Video', 'No Audio/Video']
#        for i in self.options:
#            self.reportCombo.addItem(i)

        self.releaseCheckBox = QCheckBox("Release Received")

        self.reportLayout.addWidget(self.commentLabel)
        self.reportLayout.addWidget(self.commentEdit)
        self.reportLayout.addWidget(self.reportCombo)
        self.reportLayout.addWidget(self.releaseCheckBox)

        #Buttons
        self.reportButton = QPushButton("Report")
        self.closeButton = QPushButton("Close")

        self.buttonLayout.addWidget(self.closeButton)
        self.buttonLayout.addWidget(self.reportButton)
        self.connect(self.closeButton, SIGNAL("clicked()"), self.close)
コード例 #4
0
ファイル: DataSourceDlg.py プロジェクト: nexdatas/configtool
    # \param externalDSLink dsource link action
    def connectExternalActions(self,
                               externalApply=None,
                               externalSave=None,
                               externalClose=None,
                               externalStore=None,
                               externalDSLink=None):
        if hasattr(self, "_DataSourceDlg__methods") and self.__methods:
            return self.__methods.connectExternalActions(
                externalApply, externalSave, externalClose, externalStore)


if __name__ == "__main__":
    import sys
    from PyQt4.QtGui import QWidget
    ## Qt application
    app = QApplication(sys.argv)

    ## the second datasource form

    w = QWidget()
    w.show()
    ## datasource form
    form2 = DataSourceDlg(w)
    form2.createGUI()
    form2.treeMode(True)

    form2.show()

    app.exec_()
コード例 #5
0
ファイル: test_base_dialog.py プロジェクト: xiaomailong/szarp
	def setUp( self ) :
		self.app = QApplication(sys.argv)
		self.parent = QWidget()
		self.diag = BaseDialog( self.parent , 'tests/szarp/' ) 
		self.okbut = self.diag.buttonBox.button(self.diag.buttonBox.Ok)
コード例 #6
0
    def __init__(self, iface, parent=None, qsetting=''):
        """Constructor for the dialog.

        :param iface: A Quantum GIS QGisAppInterface instance.
        :type iface: QGisAppInterface

        :param parent: Parent widget of this dialog
        :type parent: QWidget

        :param qsetting: String to specify the QSettings. By default,
            use empty string.
        :type qsetting: str
        """
        QDialog.__init__(self, parent)
        self.setupUi(self)

        self.setWindowTitle(self.tr('InaSAFE %s Options' % get_version()))
        # Save reference to the QGIS interface and parent
        self.iface = iface
        self.parent = parent
        if qsetting:
            self.settings = QSettings(qsetting)
        else:
            self.settings = QSettings()

        # InaSAFE default values
        self.default_value_parameters = []
        self.default_value_parameter_containers = []

        # Flag for restore default values
        self.is_restore_default = False

        # List of setting key and control
        self.boolean_settings = {
            'visibleLayersOnlyFlag': self.cbxVisibleLayersOnly,
            'set_layer_from_title_flag': self.cbxSetLayerNameFromTitle,
            'setZoomToImpactFlag': self.cbxZoomToImpact,
            'set_show_only_impact_on_report': self.cbx_show_only_impact,
            'print_atlas_report': self.cbx_print_atlas_report,
            'setHideExposureFlag': self.cbxHideExposure,
            'useSelectedFeaturesOnly': self.cbxUseSelectedFeaturesOnly,
            'useSentry': self.cbxUseSentry,
            'template_warning_verbose': self.template_warning_checkbox,
            'showOrganisationLogoInDockFlag':
                self.organisation_on_dock_checkbox,
            'developer_mode': self.cbxDevMode,
            'generate_report': self.checkbox_generate_reports,
            'memory_profile': self.check_box_memory
        }
        self.text_settings = {
            'keywordCachePath': self.leKeywordCachePath,
            'ISO19115_ORGANIZATION': self.iso19115_organization_le,
            'ISO19115_URL': self.iso19115_url_le,
            'ISO19115_EMAIL': self.iso19115_email_le,
            'ISO19115_LICENSE': self.iso19115_license_le,
        }

        # Set up things for context help
        self.help_button = self.button_box.button(QDialogButtonBox.Help)
        # Allow toggling the help button
        self.help_button.setCheckable(True)
        self.help_button.toggled.connect(self.help_toggled)
        self.main_stacked_widget.setCurrentIndex(1)

        # Always set first tab to be open, 0-th index
        self.tabWidget.setCurrentIndex(0)

        # Hide not implemented group
        self.grpNotImplemented.hide()
        self.adjustSize()

        # Demographic tab
        self.scroll_area = QScrollArea()
        self.scroll_area.setWidgetResizable(True)
        self.widget_container = QWidget()
        self.scroll_area.setWidget(self.widget_container)
        self.container_layout = QVBoxLayout()
        self.widget_container.setLayout(self.container_layout)
        self.default_values_layout.addWidget(self.scroll_area)

        self.restore_state()

        # Hide checkbox if not developers
        if not self.cbxDevMode.isChecked():
            self.checkbox_generate_reports.hide()

        # Set up listener for various UI
        self.custom_org_logo_checkbox.toggled.connect(
            self.set_organisation_logo)
        self.custom_north_arrow_checkbox.toggled.connect(self.set_north_arrow)
        self.custom_UseUserDirectory_checkbox.toggled.connect(
            self.set_user_dir)
        self.custom_templates_dir_checkbox.toggled.connect(
            self.set_templates_dir)
        self.custom_org_disclaimer_checkbox.toggled.connect(
            self.set_org_disclaimer)

        # Set up listener for restore defaults button
        self.restore_defaults = self.button_box_restore_defaults.button(
            QDialogButtonBox.RestoreDefaults)
        self.restore_defaults.setCheckable(True)
        self.restore_defaults.clicked.connect(
            self.restore_defaults_ratio)

        # TODO: Hide this until behaviour is defined
        # hide template warning toggle
        self.template_warning_checkbox.hide()

        # hide custom template dir toggle
        self.custom_templates_dir_checkbox.hide()
        self.splitter_custom_report.hide()
コード例 #7
0
ファイル: talkeditor.py プロジェクト: riolowry/freeseer
    def __init__(self, recordapp=None):
        FreeseerApp.__init__(self)

        self.recordapp = recordapp

        icon = QIcon()
        icon.addPixmap(QPixmap(_fromUtf8(":/freeseer/logo.png")), QIcon.Normal,
                       QIcon.Off)
        self.setWindowIcon(icon)
        self.resize(960, 400)

        self.mainWidget = QWidget()
        self.mainLayout = QHBoxLayout()
        self.mainWidget.setLayout(self.mainLayout)
        self.setCentralWidget(self.mainWidget)

        self.editorWidget = EditorWidget()
        self.editorWidget.editor.setColumnHidden(5, True)
        self.addTalkWidget = AddTalkWidget()

        self.mainLayout.addWidget(self.editorWidget)
        self.mainLayout.addWidget(self.addTalkWidget)

        # Initialize geometry, to be used for restoring window positioning.
        self.geometry = None

        self.config = Config(settings.configdir)
        self.db = QtDBConnector(settings.configdir)

        #
        # Setup Menubar
        #
        self.actionExportCsv = QAction(self)
        self.actionExportCsv.setObjectName(_fromUtf8("actionExportCsv"))

        # Actions
        self.menuFile.insertAction(self.actionExit, self.actionExportCsv)
        # --- End Menubar

        #
        # Talk Editor Connections
        #
        # Add Talk Widget
        self.connect(self.addTalkWidget.addButton, SIGNAL('clicked()'),
                     self.add_talk)
        self.connect(self.addTalkWidget.cancelButton, SIGNAL('clicked()'),
                     self.hide_add_talk_widget)
        self.addTalkWidget.setHidden(True)

        # Editor Widget
        self.connect(self.editorWidget.rssLineEdit, SIGNAL('returnPressed()'),
                     self.editorWidget.rssPushButton.click)
        self.connect(self.editorWidget.rssPushButton, SIGNAL('clicked()'),
                     self.add_talks_from_rss)
        self.connect(self.editorWidget.addButton, SIGNAL('clicked()'),
                     self.show_add_talk_widget)
        self.connect(self.editorWidget.removeButton, SIGNAL('clicked()'),
                     self.remove_talk)
        self.connect(self.editorWidget.clearButton, SIGNAL('clicked()'),
                     self.confirm_reset)
        self.connect(self.editorWidget.closeButton, SIGNAL('clicked()'),
                     self.close)

        # CSV Widget
        self.connect(self.editorWidget.csvLineEdit, SIGNAL('returnPressed()'),
                     self.editorWidget.csvPushButton.click)
        self.connect(self.editorWidget.csvFileSelectButton,
                     SIGNAL('clicked()'), self.csv_file_select)
        self.connect(self.editorWidget.csvPushButton, SIGNAL('clicked()'),
                     self.add_talks_from_csv)
        self.connect(self.actionExportCsv, SIGNAL('triggered()'),
                     self.export_talks_to_csv)

        # Load default language
        actions = self.menuLanguage.actions()
        for action in actions:
            if action.data().toString() == self.config.default_language:
                action.setChecked(True)
                self.translate(action)
                break
        self.load_presentations_model()
コード例 #8
0
    def __init__(self, img):
        QtGui.QFrame.__init__(self)
        #self.setFrameStyle(QtGui.QFrame.Box|QtGui.QFrame.Sunken)

        self.img = img
        self.mixer = ColorMixer(self.img)
        self.callback = None

        #---------------------------------------------------------------
        # ComboBox
        #---------------------------------------------------------------

        self.combo_box_entries = [
            'RGB Color', 'HSV Color', 'Brightness/Contrast', 'Gamma',
            'Gamma (Sigmoidal)'
        ]
        self.combo_box = QtGui.QComboBox()
        for entry in self.combo_box_entries:
            self.combo_box.addItem(entry)
        self.combo_box.currentIndexChanged.connect(self.combo_box_changed)

        #---------------------------------------------------------------
        # RGB color sliders
        #---------------------------------------------------------------

        # radio buttons
        self.rgb_add = QtGui.QRadioButton('Additive')
        self.rgb_mul = QtGui.QRadioButton('Multiplicative')
        self.rgb_mul.toggled.connect(self.rgb_radio_changed)
        self.rgb_add.toggled.connect(self.rgb_radio_changed)

        # sliders
        rs = IntelligentSlider('R', 0.51, -255, self.rgb_changed)
        gs = IntelligentSlider('G', 0.51, -255, self.rgb_changed)
        bs = IntelligentSlider('B', 0.51, -255, self.rgb_changed)
        self.rs = rs
        self.gs = gs
        self.bs = bs

        self.rgb_widget = QWidget()
        self.rgb_widget.layout = QGridLayout(self.rgb_widget)
        self.rgb_widget.layout.addWidget(self.rgb_add, 0, 0, 1, 3)
        self.rgb_widget.layout.addWidget(self.rgb_mul, 1, 0, 1, 3)
        self.rgb_widget.layout.addWidget(self.rs, 2, 0)
        self.rgb_widget.layout.addWidget(self.gs, 2, 1)
        self.rgb_widget.layout.addWidget(self.bs, 2, 2)

        #---------------------------------------------------------------
        # HSV sliders
        #---------------------------------------------------------------
        # radio buttons
        self.hsv_add = QtGui.QRadioButton('Additive')
        self.hsv_mul = QtGui.QRadioButton('Multiplicative')
        self.hsv_mul.toggled.connect(self.hsv_radio_changed)
        self.hsv_mul.toggled.connect(self.hsv_radio_changed)

        # sliders
        hs = IntelligentSlider('H', 0.36, -180, self.hsv_changed)
        ss = IntelligentSlider('S', 0.002, 0, self.hsv_changed)
        vs = IntelligentSlider('V', 0.002, 0, self.hsv_changed)
        self.hs = hs
        self.ss = ss
        self.vs = vs

        self.hsv_widget = QWidget()
        self.hsv_widget.layout = QGridLayout(self.hsv_widget)
        self.hsv_widget.layout.addWidget(self.hsv_add, 0, 0, 1, 3)
        self.hsv_widget.layout.addWidget(self.hsv_mul, 1, 0, 1, 3)
        self.hsv_widget.layout.addWidget(self.hs, 2, 0)
        self.hsv_widget.layout.addWidget(self.ss, 2, 1)
        self.hsv_widget.layout.addWidget(self.vs, 2, 2)

        #---------------------------------------------------------------
        # Brightness/Contrast sliders
        #---------------------------------------------------------------
        # sliders
        cont = IntelligentSlider('x', 0.002, 0, self.bright_changed)
        bright = IntelligentSlider('+', 0.51, -255, self.bright_changed)
        self.cont = cont
        self.bright = bright

        # layout
        self.bright_widget = QWidget()
        self.bright_widget.layout = QtGui.QGridLayout(self.bright_widget)
        self.bright_widget.layout.addWidget(self.cont, 0, 0)
        self.bright_widget.layout.addWidget(self.bright, 0, 1)

        #----------------------------------------------------------------------
        # Gamma Slider
        #----------------------------------------------------------------------
        gamma = IntelligentSlider('gamma', 0.005, 0, self.gamma_changed)
        self.gamma = gamma

        # layout
        self.gamma_widget = QWidget()
        self.gamma_widget.layout = QtGui.QGridLayout(self.gamma_widget)
        self.gamma_widget.layout.addWidget(self.gamma, 0, 0)

        #---------------------------------------------------------------
        # Sigmoid Gamma sliders
        #---------------------------------------------------------------
        # sliders
        alpha = IntelligentSlider('alpha', 0.011, 1, self.sig_gamma_changed)
        beta = IntelligentSlider('beta', 0.012, 0, self.sig_gamma_changed)
        self.a_gamma = alpha
        self.b_gamma = beta

        # layout
        self.sig_gamma_widget = QWidget()
        self.sig_gamma_widget.layout = QtGui.QGridLayout(self.sig_gamma_widget)
        self.sig_gamma_widget.layout.addWidget(self.a_gamma, 0, 0)
        self.sig_gamma_widget.layout.addWidget(self.b_gamma, 0, 1)

        #---------------------------------------------------------------
        # Buttons
        #---------------------------------------------------------------
        self.commit_button = QtGui.QPushButton('Commit')
        self.commit_button.clicked.connect(self.commit_changes)
        self.revert_button = QtGui.QPushButton('Revert')
        self.revert_button.clicked.connect(self.revert_changes)

        #---------------------------------------------------------------
        # Mixer Layout
        #---------------------------------------------------------------
        self.sliders = QStackedWidget()
        self.sliders.addWidget(self.rgb_widget)
        self.sliders.addWidget(self.hsv_widget)
        self.sliders.addWidget(self.bright_widget)
        self.sliders.addWidget(self.gamma_widget)
        self.sliders.addWidget(self.sig_gamma_widget)

        self.layout = QtGui.QGridLayout(self)
        self.layout.addWidget(self.combo_box, 0, 0)
        self.layout.addWidget(self.sliders, 1, 0)
        self.layout.addWidget(self.commit_button, 2, 0)
        self.layout.addWidget(self.revert_button, 3, 0)

        #---------------------------------------------------------------
        # State Initialization
        #---------------------------------------------------------------

        self.combo_box.setCurrentIndex(0)
        self.rgb_mul.setChecked(True)
        self.hsv_mul.setChecked(True)
コード例 #9
0
    def __init__(self, parameter, parent=None):
        """Constructor

        :param parameter: A DefaultSelectParameter object.
        :type parameter: DefaultSelectParameter

        """
        super(DefaultSelectParameterWidget, self).__init__(parameter, parent)

        self.default_layout = QHBoxLayout()
        self.radio_button_layout = QHBoxLayout()
        self.radio_button_widget = QWidget()

        self.default_label = QLabel(tr('Default'))

        # Create radio button group
        self.default_input_button_group = QButtonGroup()

        # Define string enabler for radio button
        self.radio_button_enabler = self.input.itemData(0, Qt.UserRole)

        for i in range(len(self._parameter.default_labels)):
            if '%s' in self._parameter.default_labels[i]:
                label = (
                    self._parameter.default_labels[i] %
                    self._parameter.default_values[i])
            else:
                label = self._parameter.default_labels[i]

            radio_button = QRadioButton(label)
            self.radio_button_layout.addWidget(radio_button)
            self.default_input_button_group.addButton(radio_button, i)
            if self._parameter.default_value == \
                    self._parameter.default_values[i]:
                radio_button.setChecked(True)

        # Create double spin box for custom value
        self.custom_value = QDoubleSpinBox()
        if self._parameter.default_values[-1]:
            self.custom_value.setValue(self._parameter.default_values[-1])
        has_min = False
        if self._parameter.minimum is not None:
            has_min = True
            self.custom_value.setMinimum(self._parameter.minimum)
        has_max = False
        if self._parameter.maximum is not None:
            has_max = True
            self.custom_value.setMaximum(self._parameter.maximum)
        if has_min and has_max:
            step = (self._parameter.maximum - self._parameter.minimum) / 100.0
            self.custom_value.setSingleStep(step)
        self.radio_button_layout.addWidget(self.custom_value)

        self.toggle_custom_value()

        # Reset the layout
        self.input_layout.setParent(None)
        self.help_layout.setParent(None)

        self.label.setParent(None)
        self.inner_input_layout.setParent(None)

        self.input_layout = QGridLayout()
        self.input_layout.setSpacing(0)

        self.input_layout.addWidget(self.label, 0, 0)
        self.input_layout.addLayout(self.inner_input_layout, 0, 1)
        self.input_layout.addWidget(self.default_label, 1, 0)
        self.input_layout.addLayout(self.radio_button_layout, 1, 1)

        self.main_layout.addLayout(self.input_layout)
        self.main_layout.addLayout(self.help_layout)

        # check every added combobox, it could have been toggled by
        # the existing keyword
        self.toggle_input()

        # Connect
        # noinspection PyUnresolvedReferences
        self.input.currentIndexChanged.connect(self.toggle_input)
        self.default_input_button_group.buttonClicked.connect(
            self.toggle_custom_value)
コード例 #10
0
    def createSpace(self, size=5):
        """Creates a widget that can be used as spacing on  a panel."""
        qw = QWidget()
        qw.setMinimumSize(QSize(size, size))

        return qw
コード例 #11
0
 def _initViewerStack(self):
     self.volumeEditors = {}
     self.viewerStack.addWidget(QWidget())
コード例 #12
0
    def __init__(self, parent=None):
        '''
        Constructor
        '''
        QWidget.__init__(self, parent)

        self.mainLayout = QVBoxLayout()
        self.setLayout(self.mainLayout)

        #
        # Import Layout
        #
        self.importLayout = QHBoxLayout()
        self.mainLayout.addLayout(self.importLayout)

        self.importTypeComboBox = QComboBox()
        self.importTypeComboBox.addItem("RSS")
        self.importTypeComboBox.addItem("CSV")
        self.importLayout.addWidget(self.importTypeComboBox)

        #
        # RSS Layout
        #
        self.rssWidget = QWidget()
        self.rssLayout = QHBoxLayout()
        self.rssWidget.setLayout(self.rssLayout)

        self.rssLabel = QLabel("URL")
        self.rssLineEdit = QLineEdit()
        if hasattr(QLineEdit(), 'setPlaceholderText'):
            self.rssLineEdit.setPlaceholderText("http://www.example.com/rss")
        self.rssLabel.setBuddy(self.rssLineEdit)
        self.rssPushButton = QPushButton("Load talks from RSS")
        rss_icon = QIcon()
        rss_icon.addPixmap(QPixmap(":/multimedia/rss.png"), QIcon.Normal, QIcon.Off)
        self.rssPushButton.setIcon(rss_icon)

        self.rssLayout.addWidget(self.rssLabel)
        self.rssLayout.addWidget(self.rssLineEdit)
        self.rssLayout.addWidget(self.rssPushButton)
        self.importLayout.addWidget(self.rssWidget)

        #
        # CSV Layout
        #
        self.csvWidget = QWidget()
        self.csvWidget.hide()
        self.csvLayout = QHBoxLayout()
        self.csvWidget.setLayout(self.csvLayout)

        self.csvLabel = QLabel("File")
        self.csvLineEdit = QLineEdit()

        if sys.platform == 'win32':
            if hasattr(QLineEdit(), 'setPlaceholderText'):
                self.csvLineEdit.setPlaceholderText("C:\Example\Freeseer2011.csv")
        else:
            if hasattr(QLineEdit(), 'setPlaceholderText'):
                self.csvLineEdit.setPlaceholderText("/home/freeseer/Example/Freeseer2011.csv")
        self.csvLabel.setBuddy(self.csvLineEdit)
        self.csvFileSelectButton = QToolButton()
        self.csvFileSelectButton.setText("...")
        self.csvPushButton = QPushButton("Load talks from CSV")

        self.csvLayout.addWidget(self.csvLabel)
        self.csvLayout.addWidget(self.csvLineEdit)
        self.csvLayout.addWidget(self.csvFileSelectButton)
        self.csvLayout.addWidget(self.csvPushButton)
        self.importLayout.addWidget(self.csvWidget)

        #
        # Editor Layout
        #
        self.editorLayout = QHBoxLayout()
        self.mainLayout.addLayout(self.editorLayout)

        self.buttonsLayout = QVBoxLayout()
        self.editorLayout.addLayout(self.buttonsLayout)

        addIcon = QIcon.fromTheme("list-add")
        removeIcon = QIcon.fromTheme("list-remove")
        clearIcon = QIcon.fromTheme("edit-clear")
        closeIcon = QIcon.fromTheme("application-exit")

        self.addButton = QPushButton("Add")
        self.addButton.setIcon(addIcon)
        self.removeButton = QPushButton("Remove")
        self.removeButton.setIcon(removeIcon)
        self.clearButton = QPushButton("Clear")
        self.clearButton.setIcon(clearIcon)
        self.closeButton = QPushButton("Close")
        self.closeButton.setIcon(closeIcon)
        self.buttonsLayout.addWidget(self.addButton)
        self.buttonsLayout.addWidget(self.removeButton)
        self.buttonsLayout.addWidget(self.clearButton)
        self.buttonsLayout.addStretch(0)
        self.buttonsLayout.addWidget(self.closeButton)

        self.editor = QTableView()
        self.editor.setAlternatingRowColors(True)
        self.editor.setSortingEnabled(True)
        self.editorLayout.addWidget(self.editor)

        #
        # Widget Connections
        #

        self.connect(self.importTypeComboBox, SIGNAL('currentIndexChanged(const QString&)'), self.switch_import_plugin)
コード例 #13
0
ファイル: window.py プロジェクト: ohmyheartbeat/CCA
except AttributeError:

    def _fromUtf8(s):
        return s


# WINDOW = tk.Tk()
# WINDOW.title(WindowCons.EXE_NAME)  # 设置名称
# WINDOW.geometry(WindowCons.WINDOW_SIZE)  # 设置初始窗口大小
APP = QApplication(sys.argv)

WINDOW = QMainWindow()
WINDOW.setObjectName(_fromUtf8("MainWindow"))
WINDOW.resize(960, 540)

CENTRAL_WIDGET = QWidget(WINDOW)
CENTRAL_WIDGET.setObjectName(_fromUtf8("centralwidget"))

# def callback():
#     """关闭回调"""
#     if messagebox.askokcancel("Quit", "Do you really wish to quit?"):
#         WINDOW.destroy()

# canvas = tk.Canvas(WINDOW, width=900, height=500, bd=0, highlightthickness=0)
# imgpath = './resource/backgroud.png'
# img = Image.open(imgpath)
# photo = ImageTk.PhotoImage(img)
#
# canvas.create_image(900, 500, image=photo)
# canvas.pack()
# WINDOW.protocol(WindowCons.QUIT_ACTION, callback)
コード例 #14
0
ファイル: audiofire.py プロジェクト: nphilipp/ffado.svn
    def buildMixer(self):
        log.debug("Building mixer")
        self.MatrixButtonControls = {}
        self.MatrixRotaryControls = {}
        self.MatrixVolumeControls = {}
        self.VolumeControls = {}
        self.SelectorControls = {}
        self.SPDIFmodeControls = {}
        self.TriggerControls = {}
        self.DigIfaceControls = {}
        self.PlbkRouteControls = {}
        self.StreamMonitors = []

        nb_pys_out = self.hw.getDiscrete("/HwInfo/PhysicalAudioOutCount")
        nb_pys_in = self.hw.getDiscrete("/HwInfo/PhysicalAudioInCount")

        outputtabslayout = QHBoxLayout(self)
        outputtabs = QTabWidget(self)
        outputtabslayout.addWidget(outputtabs, 1)

        for outpair in range(int(nb_pys_out / 2)):
            tab = QWidget(outputtabs)
            tablayout = QHBoxLayout(tab)

            grpMonitor = QGroupBox(tab)
            tablayout.addWidget(grpMonitor)

            grpPlayback = QGroupBox(tab)
            tablayout.addWidget(grpPlayback)

            grpOutput = QGroupBox(tab)
            tablayout.addWidget(grpOutput)

            grpMonitor.setTitle("Monitor")
            grpPlayback.setTitle("Playback")
            grpOutput.setTitle("Output")

            # monitor controls
            grpMonitorLayout = QHBoxLayout()
            grpMonitor.setLayout(grpMonitorLayout)
            output_id = outpair * 2
            for inpair in range(int(nb_pys_in / 2)):
                # create GUI elements
                strip = AfMonitorWidget(grpMonitor)
                grpMonitorLayout.addWidget(strip, 1)
                input_id = inpair * 2
                strip.lblName.setText("In %d/%d" %
                                      (input_id + 1, input_id + 2))

                # add the elements to the control structure

                self.MatrixButtonControls[strip.btnMute0] = [
                    '/Mixer/MonitorMute', input_id, output_id
                ]
                self.MatrixButtonControls[strip.btnMute1] = [
                    '/Mixer/MonitorMute', input_id + 1, output_id + 1
                ]
                self.MatrixButtonControls[strip.btnSolo0] = [
                    '/Mixer/MonitorSolo', input_id, output_id
                ]
                self.MatrixButtonControls[strip.btnSolo1] = [
                    '/Mixer/MonitorSolo', input_id + 1, output_id + 1
                ]
                self.MatrixRotaryControls[strip.rotPan0] = [
                    '/Mixer/MonitorPan', input_id, output_id
                ]
                self.MatrixRotaryControls[strip.rotPan1] = [
                    '/Mixer/MonitorPan', input_id + 1, output_id + 1
                ]
                self.MatrixVolumeControls[strip.sldGain0] = [
                    '/Mixer/MonitorGain', input_id, output_id
                ]
                self.MatrixVolumeControls[strip.sldGain1] = [
                    '/Mixer/MonitorGain', input_id + 1, output_id + 1
                ]

            # playback
            grpPlaybackLayout = QHBoxLayout()
            grpPlayback.setLayout(grpPlaybackLayout)
            strip = AfMonitorWidget(grpPlayback)
            grpPlaybackLayout.addWidget(strip, 1)
            strip.lblName.setText("Playback %d/%d" %
                                  (output_id + 1, output_id + 2))
            self.StreamMonitors.append(strip)

            self.VolumeControls[strip.sldGain0] = [
                "/Mixer/PC%dGain" % (output_id)
            ]
            self.VolumeControls[strip.sldGain1] = [
                "/Mixer/PC%dGain" % (output_id + 1)
            ]
            self.SelectorControls[strip.btnMute0] = [
                "/Mixer/PC%dMute" % (output_id)
            ]
            self.SelectorControls[strip.btnMute1] = [
                "/Mixer/PC%dMute" % (output_id + 1)
            ]
            self.SelectorControls[strip.btnSolo0] = [
                "/Mixer/PC%dSolo" % (output_id)
            ]
            self.SelectorControls[strip.btnSolo1] = [
                "/Mixer/PC%dSolo" % (output_id + 1)
            ]

            # fix up mixer strip gui
            strip.rotPan0.hide()
            strip.rotPan1.hide()

            # output
            grpOutputLayout = QHBoxLayout()
            grpOutput.setLayout(grpOutputLayout)
            strip = AfMonitorWidget(grpOutput)
            grpOutputLayout.addWidget(strip, 1)
            strip.lblName.setText("Output %d/%d" %
                                  (output_id + 1, output_id + 2))

            self.VolumeControls[strip.sldGain0] = [
                "/Mixer/OUT%dGain" % (output_id)
            ]
            self.VolumeControls[strip.sldGain1] = [
                "/Mixer/OUT%dGain" % (output_id + 1)
            ]
            self.SelectorControls[strip.btnMute0] = [
                "/Mixer/OUT%dMute" % (output_id)
            ]
            self.SelectorControls[strip.btnMute1] = [
                "/Mixer/OUT%dMute" % (output_id + 1)
            ]
            self.SelectorControls[strip.btnSolo0] = [
                "/Mixer/OUT%dNominal" % (output_id)
            ]
            self.SelectorControls[strip.btnSolo1] = [
                "/Mixer/OUT%dNominal" % (output_id + 1)
            ]

            # fix up mixer strip gui
            strip.btnSolo0.setText("Pad")
            strip.btnSolo1.setText("Pad")
            strip.rotPan0.hide()
            strip.rotPan1.hide()

            # add the tab
            outputtabs.addTab(tab,
                              "Out %d/%d" % (output_id + 1, output_id + 2))

        # add an input config tab
        tab = QWidget(outputtabs)
        tablayout = QHBoxLayout(tab)

        for inpair in range(nb_pys_in):
            # create GUI elements
            log.debug("strip")
            grpInput = QGroupBox(tab)
            tablayout.addWidget(grpInput)
            grpInput.setTitle("In %d" % (inpair + 1))

            grpInputLayout = QVBoxLayout()
            grpInput.setLayout(grpInputLayout)

            label = QLabel(grpInput)
            grpInputLayout.addWidget(label)
            label.setText("In %d" % (inpair + 1))
            label.setAlignment(Qt.AlignCenter)

            btn = QToolButton(grpInput)
            grpInputLayout.addWidget(btn)
            btn.setText("Pad")
            btn.setCheckable(True)
            self.SelectorControls[btn] = ["/Mixer/IN%dNominal" % (inpair)]

            spacer = QSpacerItem(1, 1, QSizePolicy.Minimum,
                                 QSizePolicy.Expanding)
            grpInputLayout.addItem(spacer)

        outputtabs.addTab(tab, "Input")

        # add an settings tab
        tab = QWidget(outputtabs)
        tablayout = QHBoxLayout(tab)
        outputtabs.addTab(tab, "Settings")
        settings = AfSettingsWidget(tab)

        has_sw_phantom = self.hw.getDiscrete("/HwInfo/PhantomPower")
        if has_sw_phantom:
            self.SelectorControls[settings.btnPhantom] = ["/PhantomPower"]
        else:
            settings.btnPhantom.hide()

        has_opt_iface = self.hw.getDiscrete('/HwInfo/OpticalInterface')
        if has_opt_iface:
            self.DigIfaceControls[settings.cmbDigIface] = ['/DigitalInterface']
        else:
            settings.DigIface.hide()

        has_plbk_route = self.hw.getDiscrete('/HwInfo/PlaybackRouting')
        if has_plbk_route:
            self.PlbkRouteControls[settings.cmbRoute1] = [
                '/PlaybackRouting', 0
            ]
            self.PlbkRouteControls[settings.cmbRoute2] = [
                '/PlaybackRouting', 1
            ]
            self.PlbkRouteControls[settings.cmbRoute3] = [
                '/PlaybackRouting', 2
            ]
            if self.configrom.getModelId() == 0x0AF2:
                label_route2 = 'Headphone Out 1/2'
            else:
                label_route2 = 'Analog Out 3/4'
            settings.labelRoute2.setText(label_route2)
        else:
            settings.PlbkRoute.hide()

        self.TriggerControls[settings.btnSaveSettings] = ["/SaveSettings"]
        self.TriggerControls[settings.btnIdentify] = ["/Identify"]

        if self.configrom.getModelId() == 0x0AF12:
            settings.spdifMode.hide()
        else:
            self.SPDIFmodeControls[settings.radioConsumer] = ["/SpdifMode", 0]
            self.SPDIFmodeControls[settings.radioProfessional] = [
                "/SpdifMode", 1
            ]

        # Store a reference to the "save" button for later manipulation
        self.btnSaveSettings = settings.btnSaveSettings
コード例 #15
0
ファイル: br_jobdock.py プロジェクト: GeoffClements/ravenc
    def __init__(self, job, passes, job_id, closesig, source, parent=None):
        name = source.title
        super().__init__(name, parent)
        self.job = job
        self.passes = passes
        self.job_id = job_id
        self.closesig = closesig
        self.source = source

        self.setWindowTitle(name)
        self.setFeatures(QDockWidget.DockWidgetMovable
                         | QDockWidget.DockWidgetFloatable)
        self.setAllowedAreas(Qt.BottomDockWidgetArea)
        self.setFloating(True)

        self.widget = QWidget()
        layout = QVBoxLayout()
        #        layout.setSizeConstraint(QVBoxLayout.SetFixedSize)
        message_layout = QFormLayout()
        self.lblPass = QLabel('Pass ? of {}'.format(passes))
        message_layout.addRow(self.lblPass)
        self.lblFrame = QLabel('?')
        message_layout.addRow('Frame:', self.lblFrame)
        self.lblFps = QLabel('?')
        message_layout.addRow('Frames per Second:', self.lblFps)
        self.lblSize = QLabel('?')
        message_layout.addRow('File Size:', self.lblSize)
        self.lblTime = QLabel('?')
        message_layout.addRow('Video Time:', self.lblTime)
        self.lblBitrate = QLabel('?')
        message_layout.addRow('Bitrate:', self.lblBitrate)
        layout.addLayout(message_layout)

        self.progressbar = QProgressBar()
        self.progressbar.setRange(0, self.source.length.total_seconds())
        layout.addWidget(self.progressbar)

        self.qualitybar = QualityBar()
        layout.addWidget(self.qualitybar)

        btn_layout = QHBoxLayout()
        btn_More = QPushButton('More')
        btn_More.setCheckable(True)
        btn_layout.addWidget(btn_More)
        btn_layout.addStretch()
        self.btnCancel = QPushButton('Close')
        self.btnCancel.setIcon(QIcon(QPixmap(':/icons/application-exit.png')))
        self.btnCancel.clicked.connect(self.on_cancel_clicked)
        btn_layout.addWidget(self.btnCancel)
        layout.addLayout(btn_layout)

        self.terminal = QPlainTextEdit()
        self.terminal.setReadOnly(True)
        self.terminal.setShown(False)
        #        self.terminal.setMinimumWidth(400)
        btn_More.toggled.connect(self.terminal.setVisible)
        layout.addWidget(self.terminal)

        griplayout = QHBoxLayout()
        griplayout.addWidget(QSizeGrip(self.widget))
        griplayout.addStretch()
        griplayout.addWidget(QSizeGrip(self.widget))
        layout.addLayout(griplayout)

        self.widget.setLayout(layout)
        self.setWidget(self.widget)

        self.transcode_data[dict].connect(self.on_avconv_data)
        self.transcode_data[str].connect(self.on_terminal_data)
        self.closesig.connect(parent.on_jobclose)
コード例 #16
0
    def __init__(self,
                 ilastik,
                 forbiddenItems=[],
                 singleSelection=True,
                 selectedItems=[]):
        QtGui.QWidget.__init__(self, ilastik)

        self.pixmapImage = None

        # init
        # ------------------------------------------------
        self.setMinimumWidth(600)
        self.layout = QtGui.QVBoxLayout()
        self.setLayout(self.layout)
        self.selectedOverlaysList = []
        self.selectedOverlayPaths = []
        self.ilastik = ilastik
        self.christophsDict = ilastik.project.dataMgr[
            ilastik._activeImageNumber].overlayMgr
        self.forbiddenOverlays = forbiddenItems
        self.preSelectedOverlays = selectedItems
        self.singleOverlaySelection = singleSelection
        self.scaleList = [
            0.1, 0.125, 0.17, 0.25, 0.33, 0.50, 0.67, 1, 2, 3, 4, 5, 6, 7, 8
        ]
        self.scalePrev = 0.67
        self.scaleNext = 2
        self.scaleIndex = 7

        # widgets and layouts
        # ------------------------------------------------

        # splits the layout into the left part
        # (select overlay from tree over available overlays)
        # and the right part
        # (previews the currently selected overlay)
        splitter = QSplitter()

        treeGroupBoxLayout = QtGui.QGroupBox("Overlays")
        treeAndButtonsLayout = QtGui.QVBoxLayout()
        self.treeWidget = MyTreeWidget()
        self.connect(self.treeWidget, QtCore.SIGNAL('spacePressed'),
                     self.spacePressedTreewidget)
        self.treeWidget.header().close()
        self.treeWidget.setSortingEnabled(True)
        self.treeWidget.installEventFilter(self)
        #self.treeWidget.itemClicked.connect(self.treeItemSelectionChanged)
        self.treeWidget.itemSelectionChanged.connect(
            self.treeItemSelectionChanged)
        self.connect(self.treeWidget,
                     QtCore.SIGNAL('itemChanged(QTreeWidgetItem *,int)'),
                     self.treeItemChanged)

        treeButtonsLayout = QtGui.QHBoxLayout()
        self.expandCollapseButton = QtGui.QPushButton("Collapse All")
        self.connect(self.expandCollapseButton, QtCore.SIGNAL('clicked()'),
                     self.expandOrCollapse)
        treeButtonsLayout.addWidget(self.expandCollapseButton)
        treeButtonsLayout.addStretch()
        treeAndButtonsLayout.addWidget(self.treeWidget)
        treeAndButtonsLayout.addLayout(treeButtonsLayout)
        treeGroupBoxLayout.setLayout(treeAndButtonsLayout)

        rightLayout = QtGui.QVBoxLayout()
        previewGroupBox = QtGui.QGroupBox("Preview")
        previewLayout = QtGui.QVBoxLayout()
        self.grview = QtGui.QGraphicsView()
        self.grview.setDragMode(QtGui.QGraphicsView.ScrollHandDrag)
        self.grview.setHorizontalScrollBarPolicy(QtCore.Qt.ScrollBarAlwaysOff)
        self.grview.setVerticalScrollBarPolicy(QtCore.Qt.ScrollBarAlwaysOff)
        self.grscene = QtGui.QGraphicsScene()
        self.grview.setSizePolicy(QSizePolicy.Expanding, QSizePolicy.Expanding)

        grviewHudLayout = QtGui.QVBoxLayout(self.grview)
        grviewHudLayout.addStretch()
        grviewHudZoomElementsLayout = QtGui.QHBoxLayout()
        self.min = MyQLabel()
        self.min.setPixmap(QtGui.QPixmap(ilastikIcons.RemSelx16))
        self.connect(self.min, QtCore.SIGNAL('clicked()'), self.scaleDown)
        self.zoomScaleLabel = MyQLabel("100%")
        #self.zoomScaleLabel.setAttribute(Qt.WA_TransparentForMouseEvents, True)
        self.zoomScaleLabel.setStyleSheet(
            "color: lightGray; font-weight:bold;")
        self.connect(self.zoomScaleLabel, QtCore.SIGNAL('clicked()'),
                     self.clickOnLabel)
        self.max = MyQLabel()
        self.max.setPixmap(QtGui.QPixmap(ilastikIcons.AddSelx16))
        self.connect(self.max, QtCore.SIGNAL('clicked()'), self.scaleUp)
        grviewHudZoomElementsLayout.addStretch()
        grviewHudZoomElementsLayout.addWidget(self.min)
        grviewHudZoomElementsLayout.addWidget(self.zoomScaleLabel)
        grviewHudZoomElementsLayout.addWidget(self.max)
        grviewHudZoomElementsLayout.addStretch()
        grviewHudLayout.addLayout(grviewHudZoomElementsLayout)

        grviewSpinboxLayout = QtGui.QHBoxLayout()
        self.channelSpinboxLabel = QtGui.QLabel("Channel")
        self.channelSpinbox = QtGui.QSpinBox(self)
        self.channelSpinbox.setEnabled(False)
        self.connect(self.channelSpinbox, QtCore.SIGNAL('valueChanged(int)'),
                     self.channelSpinboxValueChanged)
        self.sliceSpinboxLabel = QtGui.QLabel("Slice")
        self.sliceSpinbox = QtGui.QSpinBox(self)
        self.sliceSpinbox.setEnabled(False)
        sliceItem = OverlayTreeWidgetItem(
            self.christophsDict[self.christophsDict.keys()[0]], "")
        self.sliceValue = (sliceItem.item._data.shape[1] - 1) / 2
        self.sliceSpinbox.setMaximum(sliceItem.item._data.shape[1] - 1)
        self.sliceSpinbox.setValue(self.sliceValue)
        self.connect(self.sliceSpinbox, QtCore.SIGNAL('valueChanged(int)'),
                     self.sliceSpinboxValueChanged)
        grviewSpinboxLayout.addWidget(self.channelSpinboxLabel)
        grviewSpinboxLayout.addWidget(self.channelSpinbox)
        grviewSpinboxLayout.addStretch()
        grviewSpinboxLayout.addWidget(self.sliceSpinboxLabel)
        grviewSpinboxLayout.addWidget(self.sliceSpinbox)
        grviewSpinboxLayout.addStretch()
        previewLayout.addWidget(self.grview)
        previewLayout.addLayout(grviewSpinboxLayout)
        previewGroupBox.setLayout(previewLayout)

        infoGroupBox = QtGui.QGroupBox("Information")
        infoLayout = QtGui.QVBoxLayout()
        self.overlayItemLabel = QtGui.QLabel()
        self.overlayItemLabel.setWordWrap(True)
        self.overlayItemLabel.setAlignment(QtCore.Qt.AlignTop)
        self.overlayItemSizeLabel = QtGui.QLabel("Size: 123 bytes")
        self.overlayItemPageOutLabel = QtGui.QLabel("Memory/Hard drive")
        infoLayout.addWidget(self.overlayItemLabel)
        infoLayout.addWidget(self.overlayItemPageOutLabel)
        infoGroupBox.setLayout(infoLayout)

        rightLayout.addWidget(previewGroupBox)
        rightLayout.addWidget(infoGroupBox)
        splitter.addWidget(treeGroupBoxLayout)
        w = QWidget()
        w.setLayout(rightLayout)
        splitter.addWidget(w)

        tempLayout = QtGui.QHBoxLayout()
        self.cancelButton = QtGui.QPushButton("&Cancel")
        self.connect(self.cancelButton, QtCore.SIGNAL('clicked()'),
                     self.cancel)
        self.addSelectedButton = QtGui.QPushButton("&Add Selected")
        self.addSelectedButton.setEnabled(False)
        self.addSelectedButton.setDefault(True)
        self.connect(self.addSelectedButton, QtCore.SIGNAL('clicked()'),
                     self.addSelected)
        tempLayout.addStretch()
        tempLayout.addWidget(self.cancelButton)
        tempLayout.addWidget(self.addSelectedButton)

        if self.singleOverlaySelection == True:
            self.setWindowTitle("Overlay Single Selection")
            self.overlayItemLabel.setText("Single Selection Mode")
        else:
            self.setWindowTitle("Overlay Multi Selection")
            self.overlayItemLabel.setText("Multi Selection Mode")
            self.treeWidget.setSelectionMode(
                QtGui.QAbstractItemView.ExtendedSelection)

        self.layout.addWidget(splitter)
        self.layout.addLayout(tempLayout)

        self.addOverlaysToTreeWidget()
        self.treeWidget.expandAll()
        self.treeWidgetExpanded = True
コード例 #17
0
    def __init__(self,
                 template,
                 character,
                 typ,
                 isCheckable=False,
                 parent=None):
        super(CategoryWidget, self).__init__(parent)

        self.__storage = template
        self.__character = character

        self._layout = QVBoxLayout()
        self.setLayout(self._layout)

        self._toolBox = QToolBox()
        ## Die Auflistung der Widgets soll auch unter Windows einen transparenten Hintergrund haben.
        self._toolBox.setObjectName("transparentWidget")
        ## \todo Sollte nicht vom Betriebssystem, sondern vom verwendeten Style abhängen.
        if os.name == "nt":
            self._toolBox.setStyleSheet(
                "QScrollArea{ background: transparent; } QWidget#transparentWidget { background: transparent; }"
            )

        self._layout.addWidget(self._toolBox)

        self._typ = typ
        categories = self.__storage.categories(self._typ)

        # Diese Liste speichert den Index der ToolBox-Seite bei den unterschiedlichen Kategorien
        # {
        # 	Index: [Widget, Eigenschaft1, Eigenschaft2, ...]
        # }
        self._toolBoxPageList = {}

        for item in categories:
            # Für jede Kategorie wird ein eigener Abschnitt erzeugt.
            widgetCategory = QWidget()
            ## Dank des Namens übernimmt dieses Widget den Stil des Eltern-Widgets.
            widgetCategory.setObjectName("transparentWidget")

            layoutCategory = QVBoxLayout()

            widgetCategory.setLayout(layoutCategory)

            ## In dieser Liste sammle ich die Widgets, damit sie später bei Bedarf in die ToolBox eingefügt werden können.
            self._toolBoxPageList[item] = [widgetCategory]

            __list = list(self.__character.traits[self._typ][item].items())
            __list.sort()
            for trait in __list:
                # Anlegen des Widgets, das diese Eigenschaft repräsentiert.
                traitWidget = None
                if isCheckable:
                    traitWidget = CheckTrait(trait[1], self)
                else:
                    traitWidget = CharaTrait(trait[1], self)
                    traitWidget.setSpecialtiesHidden(True)
                if type(trait) != StandardTrait or not trait[1].custom:
                    traitWidget.setDescriptionHidden(True)

                self._toolBoxPageList[item].append(trait[1])

                layoutCategory.addWidget(traitWidget)

                self.__character.traitVisibleReasonChanged.connect(
                    traitWidget.hideOrShowTrait)

            # Stretch einfügen, damit die Eigenschaften besser angeordnet sind.
            layoutCategory.addStretch()
        #Debug.debug(self._toolBoxPageList)
        self.__character.speciesChanged.connect(self.hideOrShowToolPage)
        self.__character.breedChanged.connect(self.hideOrShowToolPage)
        self.__character.factionChanged.connect(self.hideOrShowToolPage)
コード例 #18
0
    def __init__(self, parent, prm):
        QMainWindow.__init__(self, parent)
        self.setAttribute(QtCore.Qt.WA_DeleteOnClose)
        self.prm = prm
        self.currLocale = self.parent().prm['data']['currentLocale']
        self.currLocale.setNumberOptions(self.currLocale.OmitGroupSeparator | self.currLocale.RejectGroupSeparator)

        #define some parameters before axes creation
        self.canvasColor = pltColorFromQColor(self.prm['pref']['canvasColor'])
        self.backgroundColor = pltColorFromQColor(self.prm['pref']['backgroundColor'])
        self.axesColor = pltColorFromQColor(self.prm['pref']['axes_color'])
        self.tickLabelColor = pltColorFromQColor(self.prm['pref']['tick_label_color'])
        self.gridColor = pltColorFromQColor(self.prm['pref']['grid_color'])
        self.axesLabelColor = pltColorFromQColor(self.prm['pref']['axes_label_color'])
        self.labelFontFamily = self.prm['pref']['label_font_family']
        self.labelFontWeight = self.prm['pref']['label_font_weight']
        self.labelFontStyle = self.prm['pref']['label_font_style']
        self.labelFontSize = self.prm['pref']['label_font_size']
        self.labelFont = font_manager.FontProperties(family=self.labelFontFamily,
                                                     weight=self.labelFontWeight,
                                                     style= self.labelFontStyle,
                                                     size=self.labelFontSize)
        
        self.majorTickLength = self.prm['pref']['major_tick_length']
        self.majorTickWidth = self.prm['pref']['major_tick_width']
        self.minorTickLength = self.prm['pref']['minor_tick_length']
        self.minorTickWidth = self.prm['pref']['minor_tick_width']
        self.tickLabelFontFamily = self.prm['pref']['tick_label_font_family']
        self.tickLabelFontWeight = self.prm['pref']['tick_label_font_weight']
        self.tickLabelFontStyle = self.prm['pref']['tick_label_font_style']
        self.tickLabelFontSize = self.prm['pref']['tick_label_font_size']
        self.tickLabelFont = font_manager.FontProperties(family=self.tickLabelFontFamily,
                                                         weight=self.tickLabelFontWeight,
                                                         style= self.tickLabelFontStyle,
                                                         size=self.tickLabelFontSize)
        self.xAxisLabel = ''
        self.yAxisLabel = ''
        self.dpi = self.prm['pref']['dpi']
        self.spinesLineWidth = self.prm['pref']['spines_line_width']
        self.gridLineWidth = self.prm['pref']['grid_line_width']

        self.mw = QWidget(self)
        self.vbl = QVBoxLayout(self.mw)
        self.fig = Figure(facecolor=self.canvasColor, dpi=self.dpi)
        self.axes = self.fig.add_subplot(111, facecolor=self.backgroundColor)
       
        self.createBaseMenus()
        self.createAdditionalMenus()
        self.defineMenusLayout()
        self.canvas = FigureCanvas(self.fig)
        self.canvas.setParent(self.mw)
       
        self.ntb = NavigationToolbar(self.canvas, self.mw)
        self.gridOn = QCheckBox(self.tr('Grid'))
        self.gridOn.setChecked(self.prm['pref']['grid'])
        self.gridOn.stateChanged[int].connect(self.toggleGrid)
        self.setBaseFigureProperties()
        self.gridBox = QGridLayout()
        self.createBaseControlWidgets()

        self.createAdditionalControlWidgets()
        self.defineGridBoxLayout()

        self.ntbBox = QHBoxLayout()
        self.ntbBox.addWidget(self.ntb)
        self.ntbBox.addWidget(self.gridOn)
        
        self.vbl.addWidget(self.canvas)
        self.vbl.addLayout(self.ntbBox)
        self.vbl.addLayout(self.gridBox)
        self.mw.setFocus()
        self.setCentralWidget(self.mw)
        self.show()
        self.canvas.draw()
コード例 #19
0
 def addDockWidget(self, area, dockwidget):
     """ Add a dock widget to the main window """
     dockwidget.setTitleBarWidget(QWidget())
     self.myApp.tabifyDockWidget(self.myApp.LegendDock, dockwidget)
     self.myApp.LegendDock.raise_()  # legendDock at the top
コード例 #20
0
    def __init__(self, parent=None):
        super(MapWidget, self).__init__(parent)
        self.setupUi(self)

        icon = roam_style.iconsize()
        self.projecttoolbar.setIconSize(QSize(icon, icon))

        self.firstshow = True
        self.layerbuttons = []
        self.editfeaturestack = []
        self.lastgpsposition = None
        self.project = None
        self.gps = None
        self.gpslogging = None
        self.selectionbands = defaultdict(partial(QgsRubberBand, self.canvas))

        # self.canvas.setInteractive(False)
        self.canvas.setCanvasColor(Qt.white)
        self.canvas.enableAntiAliasing(True)
        self.canvas.setWheelAction(QgsMapCanvas.WheelZoomToMouseCursor)

        if hasattr(self.canvas, 'setParallelRenderingEnabled'):
            threadcount = QThread.idealThreadCount()
            threadcount = 2 if threadcount > 2 else 1
            QgsApplication.setMaxThreads(threadcount)
            self.canvas.setParallelRenderingEnabled(True)

        pal = QgsPalLabeling()
        self.canvas.mapRenderer().setLabelingEngine(pal)
        self.canvas.setFrameStyle(QFrame.NoFrame)

        self.editgroup = QActionGroup(self)
        self.editgroup.setExclusive(True)
        self.editgroup.addAction(self.actionPan)
        self.editgroup.addAction(self.actionZoom_In)
        self.editgroup.addAction(self.actionZoom_Out)
        self.editgroup.addAction(self.actionInfo)

        self.actionGPS = GPSAction(":/icons/gps", self.canvas, self)
        self.projecttoolbar.addAction(self.actionGPS)

        if roam.config.settings.get('north_arrow', False):
            self.northarrow = NorthArrow(":/icons/north", self.canvas)
            self.northarrow.setPos(10, 10)
            self.canvas.scene().addItem(self.northarrow)

        self.scalebar_enabled = roam.config.settings.get('scale_bar', False)
        if self.scalebar_enabled:
            self.scalebar = ScaleBarItem(self.canvas)
            self.canvas.scene().addItem(self.scalebar)

        self.projecttoolbar.setContextMenuPolicy(Qt.CustomContextMenu)

        gpsspacewidget = QWidget()
        gpsspacewidget.setMinimumWidth(30)
        gpsspacewidget.setSizePolicy(QSizePolicy.Expanding,
                                     QSizePolicy.Expanding)

        self.topspaceraction = self.projecttoolbar.insertWidget(
            self.actionGPS, gpsspacewidget)

        self.dataentryselection = QAction(self.projecttoolbar)
        self.dataentryaction = self.projecttoolbar.insertAction(
            self.topspaceraction, self.dataentryselection)
        self.dataentryselection.triggered.connect(self.select_data_entry)

        self.marker = GPSMarker(self.canvas)
        self.marker.hide()

        self.currentfeatureband = CurrentSelection(self.canvas)
        self.currentfeatureband.setIconSize(30)
        self.currentfeatureband.setWidth(10)
        self.currentfeatureband.setColor(QColor(186, 93, 212, 50))
        self.currentfeatureband.setOutlineColour(QColor(186, 93, 212))

        self.gpsband = QgsRubberBand(self.canvas)
        self.gpsband.setColor(QColor(165, 111, 212, 75))
        self.gpsband.setWidth(5)

        RoamEvents.editgeometry.connect(self.queue_feature_for_edit)
        RoamEvents.selectioncleared.connect(self.clear_selection)
        RoamEvents.selectionchanged.connect(self.highlight_selection)
        RoamEvents.openfeatureform.connect(self.feature_form_loaded)
        RoamEvents.sync_complete.connect(self.refresh_map)

        self.connectButtons()
コード例 #21
0
    def __init__(self, parent=None):
        super(MainWindow, self).__init__(parent)
        self.dirty = False
        self.isLoaded = False
        self.calibration_enabled = False
        self.aggregate_enabled = False

        self.setObjectName("MainWindow")
        self.resize(800, 600)
        self.setWindowTitle("OpenFisca")
        app_icon = get_icon('OpenFisca22.png')
        self.setWindowIcon(app_icon)
        self.setLocale(QLocale(QLocale.French, QLocale.France))
        self.setDockOptions(QMainWindow.AllowNestedDocks
                            | QMainWindow.AllowTabbedDocks
                            | QMainWindow.AnimatedDocks)

        self.centralwidget = QWidget(self)
        self.gridLayout = QGridLayout(self.centralwidget)
        self.setCentralWidget(self.centralwidget)
        self.centralwidget.hide()

        self.statusbar = QStatusBar(self)
        self.statusbar.setObjectName("statusbar")
        self.setStatusBar(self.statusbar)

        # Showing splash screen
        pixmap = QPixmap(':/images/splash.png', 'png')
        self.splash = QSplashScreen(pixmap)
        font = self.splash.font()
        font.setPixelSize(10)
        self.splash.setFont(font)
        self.splash.show()
        self.splash.showMessage(
            "Initialisation...",
            Qt.AlignBottom | Qt.AlignCenter | Qt.AlignAbsolute,
            QColor(Qt.black))
        #        if CONF.get('main', 'current_version', '') != __version__:
        #            CONF.set('main', 'current_version', __version__)
        # Execute here the actions to be performed only once after
        # each update (there is nothing there for now, but it could
        # be useful some day...

        self.scenario = Scenario()
        # Preferences
        self.general_prefs = [SimConfigPage, PathConfigPage, CalConfigPage]
        self.oldXAXIS = 'sal'
        self.reforme = False
        self.apply_settings()

        # Dockwidgets creation
        self.splash.showMessage(
            "Creating widgets...",
            Qt.AlignBottom | Qt.AlignCenter | Qt.AlignAbsolute,
            QColor(Qt.black))

        self.create_dockwidgets()
        self.populate_mainwidow()

        #################################################################
        ## Menu initialization
        #################################################################
        self.splash.showMessage(
            "Creating menubar...",
            Qt.AlignBottom | Qt.AlignCenter | Qt.AlignAbsolute,
            QColor(Qt.black))
        # Menu Fichier
        self.file_menu = self.menuBar().addMenu("Fichier")
        action_export_png = create_action(self,
                                          'Exporter le graphique',
                                          icon='document-save png.png',
                                          triggered=self._graph.save_figure)
        action_export_csv = create_action(self,
                                          'Exporter la table',
                                          icon='document-save csv.png',
                                          triggered=self._table.saveCsv)
        action_pref = create_action(self,
                                    u'Préférences',
                                    QKeySequence.Preferences,
                                    icon='preferences-desktop.png',
                                    triggered=self.edit_preferences)
        action_quit = create_action(self,
                                    'Quitter',
                                    QKeySequence.Quit,
                                    icon='process-stop.png',
                                    triggered=SLOT('close()'))

        file_actions = [
            action_export_png, action_export_csv, None, action_pref, None,
            action_quit
        ]
        add_actions(self.file_menu, file_actions)

        # Menu Edit
        self.edit_menu = self.menuBar().addMenu(u"Édition")
        action_copy = create_action(self,
                                    'Copier',
                                    QKeySequence.Copy,
                                    triggered=self.global_callback,
                                    data='copy')

        edit_actions = [None, action_copy]
        add_actions(self.edit_menu, edit_actions)

        # Menu Simulation
        self.simulation_menu = self.menuBar().addMenu(u"Simulation")

        self.action_refresh_bareme = create_action(
            self,
            u'Calculer barèmes',
            shortcut='F9',
            icon='calculator_green.png',
            triggered=self.refresh_bareme)
        self.action_refresh_aggregate = create_action(
            self,
            u'Calculer aggrégats',
            shortcut='F10',
            icon='calculator_blue.png',
            triggered=self.refresh_aggregate)

        self.action_calibrate = create_action(self,
                                              u'Caler les poids',
                                              shortcut='CTRL+K',
                                              icon='scale22.png',
                                              triggered=self.calibrate)

        action_bareme = create_action(self,
                                      u'Barème',
                                      icon='bareme22.png',
                                      toggled=self.modeBareme)
        action_cas_type = create_action(self,
                                        u'Cas type',
                                        icon='castype22.png',
                                        toggled=self.modeCasType)
        action_mode_reforme = create_action(
            self,
            u'Réforme',
            icon='comparison22.png',
            toggled=self.modeReforme,
            tip=
            u"Différence entre la situation simulée et la situation actuelle")
        mode_group = QActionGroup(self)
        mode_group.addAction(action_bareme)
        mode_group.addAction(action_cas_type)
        self.mode = 'bareme'
        action_bareme.trigger()

        simulation_actions = [
            self.action_refresh_bareme, self.action_refresh_aggregate, None,
            self.action_calibrate, None, action_bareme, action_cas_type, None,
            action_mode_reforme
        ]
        add_actions(self.simulation_menu, simulation_actions)

        # Menu Help
        help_menu = self.menuBar().addMenu("&Aide")
        action_about = create_action(self,
                                     u"&About OpenFisca",
                                     triggered=self.helpAbout)
        action_help = create_action(self,
                                    "&Aide",
                                    QKeySequence.HelpContents,
                                    triggered=self.helpHelp)
        help_actions = [action_about, action_help]
        add_actions(help_menu, help_actions)

        # Display Menu
        view_menu = self.createPopupMenu()
        view_menu.setTitle("&Affichage")
        self.menuBar().insertMenu(help_menu.menuAction(), view_menu)

        # Toolbar
        self.main_toolbar = self.create_toolbar(u"Barre d'outil",
                                                'main_toolbar')
        toolbar_actions = [
            action_export_png, action_export_csv, None,
            self.action_refresh_bareme, self.action_refresh_aggregate, None,
            self.action_calibrate, None, action_bareme, action_cas_type, None,
            action_mode_reforme
        ]
        add_actions(self.main_toolbar, toolbar_actions)

        self.connect(self._menage, SIGNAL('changed()'), self.changed_bareme)
        self.connect(self._parametres, SIGNAL('changed()'), self.changed_param)
        self.connect(self._aggregate_output, SIGNAL('calculated()'),
                     self.calculated)
        self.connect(self, SIGNAL('weights_changed()'), self.refresh_aggregate)
        self.connect(self, SIGNAL('bareme_only()'), self.switch_bareme_only)

        # Window settings
        self.splash.showMessage(
            "Restoring settings...",
            Qt.AlignBottom | Qt.AlignCenter | Qt.AlignAbsolute,
            QColor(Qt.black))
        settings = QSettings()
        size = settings.value('MainWindow/Size',
                              QVariant(QSize(800, 600))).toSize()
        self.resize(size)
        position = settings.value('MainWindow/Position',
                                  QVariant(QPoint(0, 0))).toPoint()
        self.move(position)
        self.restoreState(settings.value("MainWindow/State").toByteArray())

        self.splash.showMessage(
            "Loading survey data...",
            Qt.AlignBottom | Qt.AlignCenter | Qt.AlignAbsolute,
            QColor(Qt.black))

        self.enable_aggregate(True)

        self.refresh_bareme()

        self.isLoaded = True
        self.splash.hide()
コード例 #22
0
ファイル: pqMsgs.py プロジェクト: jlg234bob/PPQT
# Routine called during initialization (or anytime really) to
# note something with a timestamp on standard output.
# In theory one could take a command-line argument --log-level or
# such and control this output at run-time.
def noteEvent(description) :
    stamp = int(1000 * (time.clock() - time_now))
    #print(u'{0:08d} {1}'.format(stamp,description))

if __name__ == "__main__":
    import sys
    app = QApplication(sys.argv) # create an app
    from PyQt4.QtGui import QWidget
    import pqIMC
    IMC = pqIMC.tricorder()
    IMC.mainWindow = QWidget()
    beep()
    noteEvent("about to call infoMsg")
    infoMsg("This is the message","Did you hear that beep?")
    noteEvent("about to call getStringMsg")
    (s, b) = getStringMsg("TITLE STRING", "label text")
    if b : print( "got "+s)
    else: print("cancel")
    (s, b) = getStringMsg("TITLE STRING", "what you should enter", "prepared")
    if b : print( "got "+s)
    else: print("cancel")
    noteEvent("Whatever...")
    #ew = QTextEdit()
    #(b,qs) = getFindMsg(ew)
    #print(b,qs)
    qsl = QStringList()
コード例 #23
0
    def setupGui(self):
        self.ui = uic.loadUi(os.path.join(GUIDIR, "labeltool.ui"), self)

        # get inserters and items from labels
        # FIXME for handling the new-style config correctly
        inserters = dict([(label['attributes']['class'], label['inserter']) 
                          for label in config.LABELS
                          if 'class' in label.get('attributes', {}) and 'inserter' in label])
        items = dict([(label['attributes']['class'], label['item']) 
                      for label in config.LABELS
                      if 'class' in label.get('attributes', {}) and 'item' in label])

        # Property Editor
        self.property_editor = PropertyEditor(config.LABELS)
        self.ui.dockProperties.setWidget(self.property_editor)

        # Scene
        self.scene = AnnotationScene(self.labeltool, items=items, inserters=inserters)
        self.property_editor.insertionModeStarted.connect(self.scene.onInsertionModeStarted)
        self.property_editor.insertionModeEnded.connect(self.scene.onInsertionModeEnded)

        # SceneView
        self.view = GraphicsView(self)
        self.view.setSizePolicy(QSizePolicy.MinimumExpanding, QSizePolicy.MinimumExpanding)
        self.view.setScene(self.scene)

        self.central_widget = QWidget()
        self.central_layout = QVBoxLayout()
        self.controls = ControlButtonWidget()
        #give functions as lambdas, or else they will be called with a bool as parameter
        self.controls.back_button.clicked.connect(lambda lt: self.labeltool.gotoPrevious())
        self.controls.forward_button.clicked.connect(lambda lt: self.labeltool.gotoNext())

        self.central_layout.addWidget(self.controls)
        self.central_layout.addWidget(self.view)
        self.central_widget.setLayout(self.central_layout)
        self.setCentralWidget(self.central_widget)

        self.initShortcuts(config.HOTKEYS)
        self.initOptions()
        self.initAnnotationMenu()

        self.treeview = AnnotationTreeView()
        self.treeview.setSizePolicy(QSizePolicy.MinimumExpanding, QSizePolicy.Preferred)
        self.ui.dockAnnotations.setWidget(self.treeview)

        self.scene.selectionChanged.connect(self.scene.onSelectionChanged)
        self.treeview.selectedItemsChanged.connect(self.scene.onSelectionChangedInTreeView)

        self.posinfo = QLabel("-1, -1")
        self.posinfo.setFrameStyle(QFrame.StyledPanel)
        self.statusBar().addPermanentWidget(self.posinfo)
        self.scene.mousePositionChanged.connect(self.onMousePositionChanged)

        self.image_resolution = QLabel("[no image]")
        self.image_resolution.setFrameStyle(QFrame.StyledPanel)
        self.statusBar().addPermanentWidget(self.image_resolution)

        self.zoominfo = QLabel()
        self.zoominfo.setFrameStyle(QFrame.StyledPanel)
        self.statusBar().addPermanentWidget(self.zoominfo)
        self.view.scaleChanged.connect(self.onScaleChanged)
        self.onScaleChanged(self.view.getScale())

        self.sb_progress = QProgressBar()

        # View menu
        self.ui.menu_Views.addAction(self.ui.dockProperties.toggleViewAction())
        self.ui.menu_Views.addAction(self.ui.dockAnnotations.toggleViewAction())

        # Annotation menu
        self.copyAnnotations = CopyAnnotations(self.labeltool)
        self.interpolateRange = InterpolateRange(self.labeltool)

        # Show the UI.  It is important that this comes *after* the above 
        # adding of custom widgets, especially the central widget.  Otherwise the
        # dock widgets would be far to large.
        self.ui.show()

        ## connect action signals
        self.connectActions()
コード例 #24
0
 def setupUi(self, port):
     self.setObjectName("MainWindow")
     self.resize(600, 600)
     self.centralwidget = QWidget(self)
     p = self.centralwidget.palette()
     self.centralwidget.setAutoFillBackground(True)
     p.setColor(self.centralwidget.backgroundRole(), QColor(126, 135, 152))
     self.centralwidget.setPalette(p)
     self.centralwidget.setObjectName("centralwidget")
     self.gridLayout = QGridLayout(self.centralwidget)
     self.gridLayout.setObjectName("gridLayout")
     self.setCentralWidget(self.centralwidget)
     self.menubar = QMenuBar(self)
     self.menubar.setGeometry(QRect(0, 0, 808, 25))
     self.menubar.setObjectName("menubar")
     self.menuFile = QMenu(self.menubar)
     self.menuFile.setObjectName("menuFile")
     self.setMenuBar(self.menubar)
     self.statusbar = QStatusBar(self)
     self.statusbar.setObjectName("statusbar")
     self.setStatusBar(self.statusbar)
     self.actionQuit = QAction(self)
     self.actionQuit.setObjectName("actionQuit")
     self.menuFile.addSeparator()
     self.menuFile.addAction(self.actionQuit)
     self.menubar.addAction(self.menuFile.menuAction())
     self.actionReset = QAction(self)
     self.actionReset.setObjectName("reset")
     self.menuFile.addSeparator()
     self.menuFile.addAction(self.actionReset)
     self.menubar.addAction(self.menuFile.menuAction())
     # add other GUI objects
     self.graph_widget = GraphWidget(self.statusbar)
     self.gridLayout.addWidget(self.graph_widget, 1, 11, 10, 10)
     pixmap = QPixmap(':/images/cta-logo-mini.png')
     lbl = QLabel()
     lbl.setPixmap(pixmap)
     self.gridLayout.addWidget(lbl, 0, 0)
     p = self.graph_widget.palette()
     self.graph_widget.setAutoFillBackground(True)
     p.setColor(self.graph_widget.backgroundRole(),
                QColor(255, 255, 255))  # QColor(226, 235, 252))
     self.graph_widget.setPalette(p)
     self.quitButton = QPushButton()  # self.centralwidget)
     self.quitButton.setObjectName("quitButton")
     self.quitButton.setText(
         QApplication.translate("MainWindow", "Quit", None,
                                QApplication.UnicodeUTF8))
     self.gridLayout.addWidget(self.quitButton, 12, 0, 1, 1)
     self.info_label = InfoLabel(0, 4)
     self.info_label.setAutoFillBackground(True)
     self.gridLayout.addWidget(self.info_label, 1, 0, 1, 5)
     # self.info_label.setAlignment(PyQt4.Qt.AlignCenter);
     palette = QPalette()
     palette.setColor(self.info_label.backgroundRole(), Qt.lightGray)
     self.info_label.setPalette(palette)
     QObject.connect(self.quitButton, SIGNAL("clicked()"), self.stop)
     QObject.connect(self.actionQuit, SIGNAL("triggered()"), self.stop)
     QMetaObject.connectSlotsByName(self)
     self.retranslateUi()
     QObject.connect(self.actionQuit, SIGNAL("triggered()"), self.close)
     QMetaObject.connectSlotsByName(self)
     # Create GuiConnexion for ZMQ comminucation with pipeline
     self.guiconnection = GuiConnexion(gui_port=port,
                                       statusBar=self.statusbar)
     self.guiconnection.message.connect(self.graph_widget.pipechange)
     self.guiconnection.message.connect(self.info_label.pipechange)
     self.guiconnection.reset_message.connect(self.graph_widget.reset)
     self.guiconnection.reset_message.connect(self.info_label.reset)
     self.guiconnection.mode_message.connect(self.info_label.mode_receive)
     QObject.connect(self.actionReset, SIGNAL("triggered()"),
                     self.guiconnection.reset)
     QMetaObject.connectSlotsByName(self)
     # start the process
     self.guiconnection.start()
コード例 #25
0
ファイル: filePathButton.py プロジェクト: thecocce/ilastik
        os.path = ntpath

        buttons = []
        buttons.append(
            FilePathButton(r"c:\some\long\path\to\the\file.txt",
                           " (Don't abbreviate this suffix)"))
        buttons.append(FilePathButton(r"file.txt", " (some suffix)"))
        buttons.append(
            FilePathButton("\\some\\long\\path\\to\\the\\", " (some suffix)"))
    else:
        buttons = []
        buttons.append(
            FilePathButton("/some/long/path/to/the/file.txt",
                           " (Don't abbreviate this suffix)"))
        buttons.append(FilePathButton("file.txt", " (some suffix)"))
        buttons.append(
            FilePathButton("/some/long/path/to/the/", " (some suffix)"))

    layout = QVBoxLayout()
    for button in buttons:
        # Typically, the button chooses a minimum size that is appropriate for its shortest possible text
        # But for this little test we force an even smaller minimum size so we can test multiple paths at once...
        button.setMinimumWidth(10)
        layout.addWidget(button)

    widget = QWidget()
    widget.setLayout(layout)
    widget.show()

    app.exec_()
コード例 #26
0
ファイル: main.py プロジェクト: roscoeKartoza/inasafe
def main():
    """Main function"""
    app = QApplication([])

    unit_feet = Unit('130790')
    unit_feet.load_dictionary(unit_feet_depth)

    unit_metres = Unit('900713')
    unit_metres.load_dictionary(unit_metres_depth)

    string_parameter = StringParameter('28082014')
    string_parameter.name = 'Province Name'
    string_parameter.help_text = 'Name of province.'
    string_parameter.description = (
        'A <b>test _description</b> that is very long so that you need to read '
        'it for one minute and you will be tired after read this description. '
        'You are the best user so far. Even better if you read this '
        'description loudly so that all of your friends will be able to hear '
        'you')
    string_parameter.is_required = True
    string_parameter.value = 'Daerah Istimewa Yogyakarta'

    boolean_parameter = BooleanParameter('1231231')
    boolean_parameter.name = 'Post processor'
    boolean_parameter.help_text = 'This is post processor parameter.'
    boolean_parameter.description = (
        'A <b>test _description</b> that is very long so that you need to read '
        'it for one minute and you will be tired after read this description. '
        'You are the best user so far. Even better if you read this '
        'description loudly so that all of your friends will be able to hear '
        'you')
    boolean_parameter.is_required = True
    boolean_parameter.value = True

    float_parameter = FloatParameter()
    float_parameter.name = 'Flood Depth'
    float_parameter.is_required = True
    float_parameter.precision = 3
    float_parameter.minimum_allowed_value = 1.0
    float_parameter.maximum_allowed_value = 2.0
    float_parameter.help_text = 'The depth of flood.'
    float_parameter.description = (
        'A <b>test _description</b> that is very long so that you need to read '
        'it for one minute and you will be tired after read this description. '
        'You are the best user so far. Even better if you read this '
        'description loudly so that all of your friends will be able to hear '
        'you')
    float_parameter.unit = unit_feet
    float_parameter.allowed_units = [unit_metres, unit_feet]
    float_parameter.value = 1.12

    integer_parameter = IntegerParameter()
    integer_parameter.name = 'Paper'
    integer_parameter.is_required = True
    integer_parameter.minimum_allowed_value = 1
    integer_parameter.maximum_allowed_value = 5
    integer_parameter.help_text = 'Number of paper'
    integer_parameter.description = (
        'A <b>test _description</b> that is very long so that you need to read '
        'it for one minute and you will be tired after read this description. '
        'You are the best user so far. Even better if you read this '
        'description loudly so that all of your friends will be able to hear '
        'you')
    integer_parameter.unit = unit_feet
    integer_parameter.allowed_units = [unit_feet]
    integer_parameter.value = 3

    parameters = [
        string_parameter, integer_parameter, boolean_parameter,
        float_parameter, float_parameter, boolean_parameter, integer_parameter
    ]
    parameter_container = ParameterContainer(parameters)

    widget = QWidget()
    layout = QGridLayout()
    layout.addWidget(parameter_container)
    widget.setLayout(layout)
    widget.setGeometry(0, 0, 500, 500)

    widget.show()

    new_parameters = parameter_container.get_parameters()
    for new_parameter in new_parameters:
        print new_parameter.name, new_parameter.value

    sys.exit(app.exec_())
コード例 #27
0
ファイル: ModelerParametersDialog.py プロジェクト: ltbam/QGIS
    def setupUi(self):
        self.labels = {}
        self.widgets = {}
        self.checkBoxes = {}
        self.showAdvanced = False
        self.valueItems = {}
        self.dependentItems = {}
        self.resize(650, 450)
        self.buttonBox = QDialogButtonBox()
        self.buttonBox.setOrientation(Qt.Horizontal)
        self.buttonBox.setStandardButtons(QDialogButtonBox.Cancel
                                          | QDialogButtonBox.Ok)
        tooltips = self._alg.getParameterDescriptions()
        self.setSizePolicy(QSizePolicy.Expanding, QSizePolicy.Expanding)
        self.verticalLayout = QVBoxLayout()
        self.verticalLayout.setSpacing(5)
        self.verticalLayout.setMargin(20)

        hLayout = QHBoxLayout()
        hLayout.setSpacing(5)
        hLayout.setMargin(0)
        descriptionLabel = QLabel(self.tr("Description"))
        self.descriptionBox = QLineEdit()
        self.descriptionBox.setText(self._alg.name)
        hLayout.addWidget(descriptionLabel)
        hLayout.addWidget(self.descriptionBox)
        self.verticalLayout.addLayout(hLayout)
        line = QFrame()
        line.setFrameShape(QFrame.HLine)
        line.setFrameShadow(QFrame.Sunken)
        self.verticalLayout.addWidget(line)

        for param in self._alg.parameters:
            if param.isAdvanced:
                self.advancedButton = QPushButton()
                self.advancedButton.setText(
                    self.tr('Show advanced parameters'))
                self.advancedButton.setMaximumWidth(150)
                self.advancedButton.clicked.connect(
                    self.showAdvancedParametersClicked)
                self.verticalLayout.addWidget(self.advancedButton)
                break
        for param in self._alg.parameters:
            if param.hidden:
                continue
            desc = param.description
            if isinstance(param, ParameterExtent):
                desc += '(xmin, xmax, ymin, ymax)'
            label = QLabel(desc)
            self.labels[param.name] = label
            widget = self.getWidgetFromParameter(param)
            self.valueItems[param.name] = widget
            if param.name in tooltips.keys():
                tooltip = tooltips[param.name]
            else:
                tooltip = param.description
            label.setToolTip(tooltip)
            widget.setToolTip(tooltip)
            if param.isAdvanced:
                label.setVisible(self.showAdvanced)
                widget.setVisible(self.showAdvanced)
                self.widgets[param.name] = widget
            self.verticalLayout.addWidget(label)
            self.verticalLayout.addWidget(widget)

        for output in self._alg.outputs:
            if output.hidden:
                continue
            if isinstance(output, (OutputRaster, OutputVector, OutputTable,
                                   OutputHTML, OutputFile, OutputDirectory)):
                label = QLabel(output.description + '<' +
                               output.__class__.__name__ + '>')
                item = QLineEdit()
                if hasattr(item, 'setPlaceholderText'):
                    item.setPlaceholderText(ModelerParametersDialog.ENTER_NAME)
                self.verticalLayout.addWidget(label)
                self.verticalLayout.addWidget(item)
                self.valueItems[output.name] = item

        label = QLabel(' ')
        self.verticalLayout.addWidget(label)
        label = QLabel(self.tr('Parent algorithms'))
        self.dependenciesPanel = self.getDependenciesPanel()
        self.verticalLayout.addWidget(label)
        self.verticalLayout.addWidget(self.dependenciesPanel)

        self.verticalLayout.addStretch(1000)
        self.setLayout(self.verticalLayout)

        self.setPreviousValues()
        self.setWindowTitle(self._alg.name)
        self.verticalLayout2 = QVBoxLayout()
        self.verticalLayout2.setSpacing(2)
        self.verticalLayout2.setMargin(0)
        self.tabWidget = QTabWidget()
        self.tabWidget.setMinimumWidth(300)
        self.paramPanel = QWidget()
        self.paramPanel.setLayout(self.verticalLayout)
        self.scrollArea = QScrollArea()
        self.scrollArea.setWidget(self.paramPanel)
        self.scrollArea.setWidgetResizable(True)
        self.tabWidget.addTab(self.scrollArea, self.tr('Parameters'))
        self.webView = QWebView()

        html = None
        url = None
        isText, help = self._alg.help()
        if help is not None:
            if isText:
                html = help
            else:
                url = QUrl(help)
        else:
            html = self.tr('<h2>Sorry, no help is available for this '
                           'algorithm.</h2>')
        try:
            if html:
                self.webView.setHtml(html)
            elif url:
                self.webView.load(url)
        except:
            self.webView.setHtml(
                self.tr('<h2>Could not open help file :-( </h2>'))
        self.tabWidget.addTab(self.webView, 'Help')
        self.verticalLayout2.addWidget(self.tabWidget)
        self.verticalLayout2.addWidget(self.buttonBox)
        self.setLayout(self.verticalLayout2)
        self.buttonBox.accepted.connect(self.okPressed)
        self.buttonBox.rejected.connect(self.cancelPressed)
        QMetaObject.connectSlotsByName(self)
コード例 #28
0
    def __init__(self, title, toggle_enabled, is_enabled):
        super().__init__()

        # Title bar.
        title_holder = QWidget()
        title_holder.setSizePolicy(QSizePolicy.MinimumExpanding,
                                   QSizePolicy.Fixed)
        title_holder.setStyleSheet("""
        .QWidget {
        background: qlineargradient( x1:0 y1:0, x2:0 y2:1,
        stop:0 #F8F8F8, stop:1 #C8C8C8);
        border-bottom: 1px solid #B3B3B3;
        }
        """)
        self.titleArea = QHBoxLayout()
        self.titleArea.setContentsMargins(15, 10, 15, 10)
        self.titleArea.setSpacing(0)
        title_holder.setLayout(self.titleArea)

        self.title_label = QLabel(title)
        self.title_label.setStyleSheet('font-size: 12px;')
        self.titleArea.addWidget(self.title_label)

        self.off_label = QLabel('[disabled]')
        self.off_label.setStyleSheet('color: #B0B0B0; margin-left: 5px;')
        self.titleArea.addWidget(self.off_label)
        self.off_label.hide()

        self.titleArea.addStretch()

        # Root.
        self.rootArea = QVBoxLayout()
        self.rootArea.setContentsMargins(0, 0, 0, 0)
        self.rootArea.setSpacing(0)
        self.setLayout(self.rootArea)
        self.rootArea.addWidget(title_holder)

        self.contents = QWidget()
        contentArea = QVBoxLayout()
        contentArea.setContentsMargins(15, 10, 15, 10)
        self.contents.setLayout(contentArea)
        self.rootArea.addWidget(self.contents)

        self.enabled = is_enabled
        if toggle_enabled:
            self.toggle_module_switch = QCheckBox()
            switch_icon_on_resource = _i('on_button.png')
            switch_icon_off_resource = _i('off_button.png')
            style_sheet = '''
            QCheckBox::indicator {
                width: 23px;
                height: 23px;
            }
            QCheckBox::indicator:checked {
                image: url(%s);
            }
            QCheckBox::indicator:unchecked {
                image: url(%s);
            }
            ''' % (switch_icon_on_resource, switch_icon_off_resource)
            self.toggle_module_switch.setStyleSheet(style_sheet)
            self.toggle_module_switch.setChecked(self.enabled)
            self.toggle_module_switch.stateChanged.connect(self.on_toggle)

            # Change the view according to the flag.
            if self.enabled:
                self.off_label.hide()
                self.contents.show()
                self.title_label.setStyleSheet('color: #000000;')
            else:
                self.off_label.show()
                self.contents.hide()
                self.title_label.setStyleSheet('color: #B0B0B0;')

            self.titleArea.addWidget(self.toggle_module_switch)
コード例 #29
0
    def __init__(self, parent, layer):
        '''
        Constructor
        '''
        QDialog.__init__(self, parent)
        self.resize(200, 200)

        self.rasterLayer = layer

        sizePolicy = QSizePolicy(QSizePolicy.Preferred, QSizePolicy.Fixed)
        sizePolicy.setHorizontalStretch(0)
        sizePolicy.setVerticalStretch(0)
        sizePolicy.setHeightForWidth(self.sizePolicy().hasHeightForWidth())
        self.setSizePolicy(sizePolicy)

        verticalLayout = QVBoxLayout(self)
        verticalLayout.setObjectName("verticalLayout")
        stackedWidget = QStackedWidget(self)
        stackedWidget.setObjectName("stackedWidget")
        pageRender = QWidget(stackedWidget)
        pageRender.setObjectName("pageRender")
        sizePolicy = QSizePolicy(QSizePolicy.Preferred, QSizePolicy.Fixed)
        sizePolicy.setHorizontalStretch(0)
        sizePolicy.setVerticalStretch(0)
        sizePolicy.setHeightForWidth(
            pageRender.sizePolicy().hasHeightForWidth())
        pageRender.setSizePolicy(sizePolicy)

        horizontalLayout = QHBoxLayout(pageRender)
        horizontalLayout.setObjectName("horizontalLayout")
        frameRender = QFrame(pageRender)
        frameRender.setObjectName("frameRender")
        frameRender.setFrameShape(QFrame.StyledPanel)
        frameRender.setFrameShadow(QFrame.Raised)

        sizePolicy = QSizePolicy(QSizePolicy.Preferred, QSizePolicy.Fixed)
        sizePolicy.setHorizontalStretch(0)
        sizePolicy.setVerticalStretch(0)
        sizePolicy.setHeightForWidth(
            frameRender.sizePolicy().hasHeightForWidth())
        frameRender.setSizePolicy(sizePolicy)
        self.vLayoutFrameRender = QVBoxLayout(frameRender)
        self.vLayoutFrameRender.setObjectName("vLayoutFrameRender")

        horizontalLayout.addWidget(frameRender)
        self.cmbRendererType = ComboBoxPanel(frameRender)
        self.cmbRendererType.Caption = "Render Type"
        self.cmbRendererType.LabelWidth = 70
        self.cmbRendererType.Items = [
            "Mutiband color", "Paletted", "Singleband gray",
            "Singleband pseudocolor"
        ]
        self.connect(self.cmbRendererType, SIGNAL("Event_0"),
                     self.cmbRendererType_currentIndexChanged)

        self.vLayoutFrameRender.addWidget(self.cmbRendererType)
        self.gbRenderer = GroupBox(frameRender)
        self.gbRenderer.Caption = self.cmbRendererType.SelectedItem
        self.vLayoutFrameRender.addWidget(self.gbRenderer)

        self.qgsMultiBandColorRendererWidget = QgsMultiBandColorRendererWidget(
            self.rasterLayer)
        self.qgsPalettedRendererWidget = QgsPalettedRendererWidget(
            self.rasterLayer)
        self.qgsSingleBandGrayRendererWidget = QgsSingleBandGrayRendererWidget(
            self.rasterLayer)
        self.qgsSingleBandPseudoColorRendererWidget = QgsSingleBandPseudoColorRendererWidget(
            self.rasterLayer)

        self.gbRenderer.Add = self.qgsMultiBandColorRendererWidget
        self.gbRenderer.Add = self.qgsPalettedRendererWidget
        self.gbRenderer.Add = self.qgsSingleBandGrayRendererWidget
        self.gbRenderer.Add = self.qgsSingleBandPseudoColorRendererWidget

        self.qgsPalettedRendererWidget.setVisible(False)
        self.qgsSingleBandGrayRendererWidget.setVisible(False)
        self.qgsSingleBandPseudoColorRendererWidget.setVisible(False)

        stackedWidget.addWidget(pageRender)
        # page_2 = QWidget()
        # page_2.setObjectName("page_2")
        # stackedWidget.addWidget(page_2)

        verticalLayout.addWidget(stackedWidget)

        buttonBox = QDialogButtonBox(self)
        buttonBox.setObjectName("buttonBox")
        buttonBox.setOrientation(Qt.Horizontal)
        buttonBox.setStandardButtons(QDialogButtonBox.Cancel
                                     | QDialogButtonBox.Ok
                                     | QDialogButtonBox.Apply)
        btnApply = buttonBox.button(QDialogButtonBox.Apply)
        btnApply.clicked.connect(self.btnApply_clicked)
        verticalLayout.addWidget(buttonBox)

        # retranslateUi(Dialog)
        buttonBox.accepted.connect(self.OK)
        buttonBox.rejected.connect(self.reject)

        if self.rasterLayer.renderer().bandCount() == 1:
            self.cmbRendererType.SelectedIndex = 2
        elif self.rasterLayer.renderer().bandCount() > 1:
            self.cmbRendererType.SelectedIndex = 0
コード例 #30
0
    def setup_ui(self, must_scroll=True):
        """Setup the UI of this parameter container.
        """
        # Vertical layout to place the parameter widgets
        self.vertical_layout.setContentsMargins(0, 0, 0, 0)
        self.vertical_layout.setSpacing(0)

        # Widget to hold the vertical layout
        self.widget = QWidget()
        self.widget.setLayout(self.vertical_layout)

        # Label for description
        self.description_label.setText(self.description_text)

        self.group_frame.setLineWidth(0)
        self.group_frame.setFrameStyle(QFrame.NoFrame)
        vlayout = QVBoxLayout()
        vlayout.setContentsMargins(0, 0, 0, 0)
        vlayout.setSpacing(0)
        self.group_frame.setLayout(vlayout)

        if must_scroll:
            vlayout.addWidget(self.scroll_area)
            self.scroll_area.setWidgetResizable(True)
            self.scroll_area.setWidget(self.widget)
        else:
            vlayout.addWidget(self.widget)

        # Main layout of the container
        if self.description_text:
            self.main_layout.addWidget(self.description_label)
        self.main_layout.setContentsMargins(0, 0, 0, 0)
        self.setLayout(self.main_layout)

        self.setSizePolicy(QSizePolicy.Minimum, QSizePolicy.MinimumExpanding)

        if not isinstance(self.parameters, list):
            parameters = [self.parameters]
        else:
            parameters = self.parameters

        if len(parameters) == 0:
            self.set_empty_parameters()
            return

        self.main_layout.addWidget(self.group_frame)

        self.qt4_parameter_factory = Qt4ParameterFactory()
        if self.extra_parameters is not None:
            for extra_parameter in self.extra_parameters:
                if (type(extra_parameter) == tuple
                        and len(extra_parameter) == 2):
                    self.qt4_parameter_factory.register_widget(
                        extra_parameter[0], extra_parameter[1])

        color_odd = QColor(220, 220, 220)
        color_even = QColor(192, 192, 192)

        i = 0
        for parameter in parameters:
            parameter_widget = self.qt4_parameter_factory.get_widget(parameter)
            if i % 2:
                color = color_even
            else:
                color = color_odd
            i += 1
            parameter_widget.setAutoFillBackground(True)
            # palette = parameter_widget.palette()
            # palette.setColor(parameter_widget.backgroundRole(), color)
            # parameter_widget.setPalette(palette)
            self.vertical_layout.addWidget(parameter_widget)

        self.setSizePolicy(QSizePolicy.Expanding, QSizePolicy.Expanding)