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')