예제 #1
0
    def __init__(self, parent=None):
        super(DlgCalculateSOC, self).__init__(parent)

        self.setupUi(self)
        
        self.regimes = [('Temperate dry (Fl = 0.80)', .80),
                        ('Temperate moist (Fl = 0.69)', .69),
                        ('Tropical dry (Fl = 0.58)', .58),
                        ('Tropical moist (Fl = 0.48)', .48),
                        ('Tropical montane (Fl = 0.64)', .64)]

        self.fl_chooseRegime_comboBox.addItems([r[0] for r in self.regimes])
        self.fl_chooseRegime_comboBox.setEnabled(False)
        self.fl_custom_lineEdit.setEnabled(False)
        # Setup validator for lineedit entries
        validator = QtWidgets.QDoubleValidator()
        validator.setBottom(0)
        validator.setDecimals(3)
        self.fl_custom_lineEdit.setValidator(validator)
        self.fl_radio_default.toggled.connect(self.fl_radios_toggled)
        self.fl_radio_chooseRegime.toggled.connect(self.fl_radios_toggled)
        self.fl_radio_custom.toggled.connect(self.fl_radios_toggled)
    def setupUi(self):
        self.resize(550, 550)
        self.setWindowTitle('Settings')

        #create tabWidget that holds the tabs
        self.tabWidget = QtGui.QTabWidget(self)
        self.tabWidget.setGeometry(QRect(10, 20, 500, 480))
        self.tabWidget.setObjectName('tabWidget')
        tab0labels = [['Name', (50, 50, 56, 17)],['Layer Opacity',(50,100,80,25)], ['Hover Template', (50, 150, 120, 17)]]
        tab1labels = [['Until now "Metadata" has to be edited in the shogun2-webapp', (50, 50, 300, 17)]]
        tab2labels = [['explanation', (50, 50, 400, 200)]]
        tab3labels = [['Users', (100, 10, 50, 20)], ['Groups', (320, 10, 50, 20)]]
        tabwidgets = [['General', tab0labels], ['Metadata', tab1labels], ['Style', tab2labels], ['Permissions', tab3labels]]

        expl = 'To edit the style of layer in shogun, first add the layer to QGIS.\n'
        expl += 'Then style the layer via the QGIS layer properties.\nWhen finished, '
        expl += 'you can upload the current layer style \nto this layer in Shogun by '
        expl += 'right-clicking it in \nthe Shogun Editor menu'

        #first set the labes for all tabwwidgets in a loop:
        for tab in tabwidgets:
            t = QtGui.QWidget()
            t.setObjectName(tab[0])
            self.tabs.append(t)
            self.tabWidget.addTab(t, tab[0])

            for label in tab[1]:
                l = QtGui.QLabel(t)
                l.setGeometry(QRect(label[1][0],label[1][1],label[1][2],label[1][3]))
                if label[0] == 'explanation':
                    l.setText(expl)
                    l.setAlignment(Qt.AlignTop)
                else:
                    l.setText(label[0])


        self.tabWidget.setCurrentIndex(0)


        #then populate the specific tabwidgets with other QObjects:
        #tab 0 = 'General':
        self.nameEdit = QtGui.QLineEdit(self.tabs[0])
        self.nameEdit.setGeometry(QRect(180, 40, 113, 27))
        self.tabedits.append(self.nameEdit)

        self.sliderEdit = QtGui.QLineEdit(self.tabs[0])
        self.sliderEdit.setGeometry(QRect(400, 90, 30, 23))
        self.sliderEdit.setInputMask('9.99')
        if sys.version_info[0] >= 3:
            validator = QDoubleValidator(-0.01, 1.01, 2)
        else:
            validator = QtGui.QDoubleValidator(-0.01, 1.01, 2)
        self.sliderEdit.setValidator(validator)
        self.tabedits.append(self.sliderEdit)

        self.hoverEdit = QtGui.QLineEdit(self.tabs[0])
        self.hoverEdit.setGeometry(QRect(180, 140, 113,27))
        self.tabedits.append(self.hoverEdit)

        self.hoverBox = QtGui.QComboBox(self.tabs[0])
        self.hoverBox.setGeometry(QRect(320, 140, 80, 27))
        self.tabedits.append(self.hoverBox)

        self.hoverAddButton = QtGui.QPushButton(self.tabs[0])
        self.hoverAddButton.setGeometry(QRect(410, 140, 30, 27))
        self.hoverAddButton.setText('Add')
        self.tabedits.append(self.hoverAddButton)

        self.slider = QtGui.QSlider(self.tabs[0])
        self.slider.setGeometry(QRect(180, 90, 160, 18))
        self.slider.setOrientation(Qt.Horizontal)
        self.slider.setMaximum(100)
        self.slider.setMinimum(-1)
        self.slider.setEnabled(False)
        self.moreObjects.append(self.slider)
        self.slider.valueChanged.connect(lambda: self.sliderEdit.setText(str(float(self.slider.value())/100)))
        self.sliderEdit.textEdited.connect(lambda: self.slider.setValue(int(float(self.sliderEdit.text())*100)))

        self.hoverAddButton.clicked.connect(self.addHoverAttribute)



        #tab 3 = 'Permissions':
        self.usertabel = QtGui.QTableWidget(self.tabs[3])
        self.usertabel.setGeometry(QRect(10, 30, 230, 300))
        self.usertabel.setColumnCount(3)
        self.usertabel.setHorizontalHeaderLabels(['Read', 'Update', 'Delete'])
        self.moreObjects.append(self.usertabel)

        self.groupstabel = QtGui.QTableWidget(self.tabs[3])
        self.groupstabel.setGeometry(QRect(250, 30, 230, 300))
        self.groupstabel.setColumnCount(3)
        self.groupstabel.setHorizontalHeaderLabels(['Read', 'Update', 'Delete'])
        self.moreObjects.append(self.groupstabel)


        #create Gui surrounding the tabs
        self.editCheckBox = QtGui.QCheckBox(self)
        self.editCheckBox.setGeometry(QRect(420, 10, 50, 17))
        self.editCheckBox.setText('Edit')

        self.pushButtonOk = QtGui.QPushButton(self)
        self.pushButtonOk.setGeometry(QRect(420, 500, 85, 27))
        self.pushButtonCancel = QtGui.QPushButton(self)
        self.pushButtonCancel.setGeometry(QRect(320, 500, 85, 27))
        self.pushButtonCancel.setText('Cancel')