def createList(labelText, slot, changedSlot, validator=None): widget = QWidget() layout = QVBoxLayout() layout.setObjectName('listLayout') widget.setLayout(layout) hboxWidget = QWidget() hboxLayout = QHBoxLayout() hboxLayout.setObjectName('hboxLayout for tableWidget') hboxWidget.setLayout(hboxLayout) tableWidget = QTableWidget(0, 2) tableWidget.setAlternatingRowColors(True) widget.connect(tableWidget, SIGNAL('cellChanged(int, int)'), changedSlot) tableWidget.setHorizontalHeaderLabels(createQStringList([labelText, ''])) tableWidget.setColumnWidth(INPUT_IDX, contentColumnWidth) tableWidget.setColumnWidth(BUTTON_IDX, deleteButtonColumnWidth) hboxLayout.addWidget(tableWidget) add = QWidget() addLayout = QHBoxLayout() addLayout.setObjectName('addLayout') add.setLayout(addLayout) addLineEdit = createLineEdit(add, None, validator) addButton = createButton(translate('MainWindow', 'Add'), add, add, slot) add.connect(addLineEdit, SIGNAL('returnPressed()'), slot) for wid in addLineEdit, addButton: addLayout.addWidget(wid) for wid in add, hboxWidget: layout.addWidget(wid) return (widget, tableWidget, addLineEdit)
class choixSonSortieWidget(QGroupBox) : """Class pour faire le widget standard de sélection du format de sortie son + réglages experts""" def __init__(self, soxSuppFormat, parent=None) : super(choixSonSortieWidget, self).__init__(parent) self.setObjectName("groupBox") self.horizontalLayout = QHBoxLayout(self) self.horizontalLayout.setObjectName("horizontalLayout") self.label = QLabel(self) self.label.setObjectName("label") self.horizontalLayout.addWidget(self.label) self.formatSound = QComboBox(self) for x in soxSuppFormat : self.formatSound.addItem(QString(x)) self.formatSound.setObjectName("formatSound") self.horizontalLayout.addWidget(self.formatSound) spacerItem = QSpacerItem(40, 20, QSizePolicy.Expanding, QSizePolicy.Minimum) self.horizontalLayout.addItem(spacerItem) self.reglageExp = reglageExpert(soxSuppFormat, self.formatSound) self.horizontalLayout.addWidget(self.reglageExp) self.setTitle(_(u"Réglage du format de sortie")) self.label.setText(_(u"Format du fichier de sortie :")) self.formatSound.setToolTip(_(u"Format du fichier son de sortie")) def getFileExt(self) : return unicode(self.formatSound.currentText())
def createEmptyTabWidget(self, name): """crates a dumy tab widget""" tab = TabWidget(['sasa']) tab.setObjectName("tab") hboxlayout = QHBoxLayout(tab) hboxlayout.setObjectName("hboxlayout") tabWidget = QTabWidget(tab) tabWidget.setObjectName("tabWidget") hboxlayout.addWidget(tabWidget) self.getTabWidget().addTab(tab, name) return tabWidget
def addAttr(self, node): map = node.attr.smap time = node.attr.time font = QFont() font.setWeight(75) font.setBold(True) for i in map : hboxlayout = QHBoxLayout() hboxlayout.setObjectName("labelType") labelType = QLabel(self.widget) labelType.setMinimumSize(QSize(92,22)) labelType.setMaximumSize(QSize(92,22)) labelType.setFont(font) labelType.setText(str(i) + " :") labelType.setObjectName("labelType") self.listAttrName.append(labelType) hboxlayout.addWidget(labelType) valueType =QLabel(self.widget) valueType.setMinimumSize(QSize(300,22)) valueType.setMaximumSize(QSize(16777215,22)) valueType.setObjectName("valueType") valueType.setText(str(map[i])) self.listAttrValue.append(valueType) hboxlayout.addWidget(valueType) self.listAttrLayout.append(hboxlayout) self.vboxlayout.addLayout(hboxlayout) for i in time : hboxlayout = QHBoxLayout() labelType = QLabel(self.widget) labelType.setMinimumSize(QSize(92,22)) labelType.setMaximumSize(QSize(92,22)) labelType.setFont(font) labelType.setText(str(i) + " :") labelType.setObjectName("labelType") self.listAttrName.append(labelType) hboxlayout.addWidget(labelType) valueType = QLabel(self.widget) valueType.setMinimumSize(QSize(300,22)) valueType.setMaximumSize(QSize(16777215,22)) valueType.setObjectName("valueType") valueType.setText(str(time[i].get_time())) self.listAttrValue.append(valueType) hboxlayout.addWidget(valueType) self.listAttrLayout.append(hboxlayout) self.vboxlayout.addLayout(hboxlayout)
def addAttr(self, node): map = node.attr.smap time = node.attr.time font = QFont() font.setWeight(75) font.setBold(True) for i in map: hboxlayout = QHBoxLayout() hboxlayout.setObjectName("labelType") labelType = QLabel(self.widget) labelType.setMinimumSize(QSize(92, 22)) labelType.setMaximumSize(QSize(92, 22)) labelType.setFont(font) labelType.setText(str(i) + " :") labelType.setObjectName("labelType") self.listAttrName.append(labelType) hboxlayout.addWidget(labelType) valueType = QLabel(self.widget) valueType.setMinimumSize(QSize(300, 22)) valueType.setMaximumSize(QSize(16777215, 22)) valueType.setObjectName("valueType") valueType.setText(str(map[i])) self.listAttrValue.append(valueType) hboxlayout.addWidget(valueType) self.listAttrLayout.append(hboxlayout) self.vboxlayout.addLayout(hboxlayout) for i in time: hboxlayout = QHBoxLayout() labelType = QLabel(self.widget) labelType.setMinimumSize(QSize(92, 22)) labelType.setMaximumSize(QSize(92, 22)) labelType.setFont(font) labelType.setText(str(i) + " :") labelType.setObjectName("labelType") self.listAttrName.append(labelType) hboxlayout.addWidget(labelType) valueType = QLabel(self.widget) valueType.setMinimumSize(QSize(300, 22)) valueType.setMaximumSize(QSize(16777215, 22)) valueType.setObjectName("valueType") valueType.setText(str(time[i].get_time())) self.listAttrValue.append(valueType) hboxlayout.addWidget(valueType) self.listAttrLayout.append(hboxlayout) self.vboxlayout.addLayout(hboxlayout)
def createBottomButtons(self): bottom = QWidget(self) bottom_layout = QHBoxLayout() bottom_layout.setObjectName('bottomLayout') bottom.setLayout(bottom_layout) buttons = ( createButton(tr('&Save'), bottom, self.main_window, self.checkAndSaveConf), createButton(tr('App&ly'), bottom, self.main_window, self.applyConf), createButton(tr('Reset'), bottom, self.main_window, self.resetConf), ) for button in buttons: bottom_layout.addWidget(button) return bottom
def __init__(self, layer, parent=None): super(LayerSnappingWidget, self).__init__(parent) label = QLabel(layer.name(), self) spacer = QSpacerItem(20, 40, QSizePolicy.Minimum, QSizePolicy.Expanding, self) action = LayerSnappingAction(layer, self) tool = QToolButton(self) tool.setDefaultAction(action) layout = QHBoxLayout(self) layout.setObjectName(u'layout') layout.addWidget(label) layout.addWidget(spacer) layout.addWidget(tool) self.setLayout(layout)
def _setup_ui(self): self.widgets = {} mainwidget = QWidget(self) mainwidget.setMouseTracking(True) mainwidget.setObjectName("mainwidget") flayout = QHBoxLayout(mainwidget) flayout.setObjectName("flayout") fsplitter = EzSphinxSplitter(mainwidget, self, 'fsplitter', Qt.Horizontal) ftwidget = QWidget(fsplitter) ftwidget.setObjectName("ftwidget") ftlayout = QVBoxLayout(ftwidget) ftlayout.setObjectName("ftlayout") ftlayout.setContentsMargins(0,4,1,0) filetree = EzSphinxTreeView(ftwidget) ftlayout.addWidget(filetree) vlayout = QVBoxLayout(fsplitter) vlayout.setObjectName("vlayout") vlayout.setContentsMargins(4,0,4,0) vsplitter = EzSphinxSplitter(fsplitter, self, 'vsplitter', Qt.Vertical) editwidget = QWidget(vsplitter) editwidget.setObjectName("editwidget") elayout = QVBoxLayout(editwidget) elayout.setObjectName("elayout") elayout.setContentsMargins(1,4,1,0) hsplitter = EzSphinxSplitter(editwidget, self, 'hsplitter', Qt.Horizontal) elayout.addWidget(hsplitter) textwidget = QWidget(hsplitter) textwidget.setObjectName("textwidget") textlayout = QHBoxLayout(textwidget) textlayout.setObjectName("textlayout") textlayout.setContentsMargins(0,0,2,0) restedit = EzSphinxRestEdit(textwidget, self) textlayout.addWidget(restedit) webwidget = QWidget(hsplitter) webwidget.setObjectName("webwidget") weblayout = QHBoxLayout(webwidget) weblayout.setObjectName("weblayout") weblayout.setContentsMargins(1,0,2,2) webview = EzSphinxWebView(webwidget, self) weblayout.addWidget(webview) tablewidget = QWidget(vsplitter) tablewidget.setObjectName("tablewidget") tablelayout = QHBoxLayout(tablewidget) tablelayout.setObjectName("tablelayout") tablelayout.setContentsMargins(1,0,2,0) vlayout.addWidget(vsplitter) flayout.addWidget(fsplitter) warnreport = EzSphinxWarnReportView(self) tablelayout.addWidget(warnreport) self.setCentralWidget(mainwidget) self.setMenuBar(EzSphinxMenuBar(self)) self.setStatusBar(EzSphinxStatusBar(self)) self._add_widgets((hsplitter, vsplitter, fsplitter)) self._add_widgets((filetree, restedit, webview, warnreport))
def createLabelAndCheckBox(labelText, changedSlot): # is it really needed to have 2 widgets ? widget = QWidget() sub_layout = QHBoxLayout() sub_layout.setObjectName('labelAndCheckBoxLayout') widget.setLayout(sub_layout) checkBox = QCheckBox(widget) widget.connect(checkBox, SIGNAL('stateChanged(int)'), changedSlot) checkBox.setText(labelText) checkBox.setSizePolicy(QSizePolicy.Fixed, QSizePolicy.Minimum) sub_layout.addWidget(checkBox) sub_layout.addStretch(100) return (widget, checkBox)
def __init__(self, parent): QFrame.__init__(self, parent) # self.frame_WindIA = QFrame(parent) horizontalLayout_100 = QHBoxLayout(self) horizontalLayout_100.setSpacing(0) horizontalLayout_100.setContentsMargins(0, 0, 0, 0) horizontalLayout_100.setObjectName("horizontalLayout_100") self.txtSurface = QLineEdit(self) self.txtSurface.setObjectName("txtSurface") font = QFont() font.setFamily("Arial") self.txtSurface.setFont(font) horizontalLayout_100.addWidget(self.txtSurface) self.txtResult = QLineEdit(self) self.txtResult.setObjectName("txtOCHResults") self.txtResult.setFont(font) horizontalLayout_100.addWidget(self.txtResult)
class CalcDlg(QDialog): def __init__(self, parent, point3d, startBearing, flagStr): QDialog.__init__(self, parent) self.parent0 = parent self.point = point3d self.flagStr = flagStr self.calcedPoint = None self.startBearing = startBearing # self.flagStrName = flagStr # self.resize(326, 310) self.verticalLayout = QVBoxLayout(self) self.verticalLayout.setSpacing(6) self.verticalLayout.setMargin(3) self.verticalLayout.setObjectName(("verticalLayout")) self.groupBox = QGroupBox(self) self.groupBox.setTitle(("")) self.groupBox.setObjectName(("groupBox")) self.verticalLayout_2 = QVBoxLayout(self.groupBox) self.verticalLayout_2.setSpacing(0) self.verticalLayout_2.setMargin(3) self.verticalLayout_2.setObjectName(("verticalLayout_2")) self.groupBox_5 = QGroupBox(self.groupBox) sizePolicy = QSizePolicy(QSizePolicy.Preferred, QSizePolicy.Maximum) sizePolicy.setHorizontalStretch(0) sizePolicy.setVerticalStretch(0) sizePolicy.setHeightForWidth( self.groupBox_5.sizePolicy().hasHeightForWidth()) self.groupBox_5.setSizePolicy(sizePolicy) font = QFont() font.setFamily(("Arial")) self.groupBox_5.setFont(font) self.groupBox_5.setObjectName(("groupBox_5")) self.horizontalLayout_19 = QHBoxLayout(self.groupBox_5) self.horizontalLayout_19.setSpacing(0) self.horizontalLayout_19.setMargin(0) self.horizontalLayout_19.setObjectName(("horizontalLayout_19")) self.groupBox_5.setVisible(False) self.frame_18 = QFrame(self.groupBox_5) self.frame_18.setFrameShape(QFrame.StyledPanel) self.frame_18.setFrameShadow(QFrame.Raised) self.frame_18.setObjectName(("frame_18")) self.verticalLayout_13 = QVBoxLayout(self.frame_18) self.verticalLayout_13.setSpacing(0) self.verticalLayout_13.setContentsMargins(-1, -1, 0, -1) self.verticalLayout_13.setObjectName(("verticalLayout_13")) self.frame_19 = QFrame(self.frame_18) sizePolicy = QSizePolicy(QSizePolicy.Minimum, QSizePolicy.Preferred) sizePolicy.setHorizontalStretch(0) sizePolicy.setVerticalStretch(0) sizePolicy.setHeightForWidth( self.frame_19.sizePolicy().hasHeightForWidth()) self.frame_19.setSizePolicy(sizePolicy) self.frame_19.setFrameShape(QFrame.StyledPanel) self.frame_19.setFrameShadow(QFrame.Raised) self.frame_19.setObjectName(("frame_19")) self.horizontalLayout_20 = QHBoxLayout(self.frame_19) self.horizontalLayout_20.setSpacing(0) self.horizontalLayout_20.setMargin(0) self.horizontalLayout_20.setObjectName(("horizontalLayout_20")) self.label_9 = QLabel(self.frame_19) self.label_9.setMaximumSize(QSize(60, 16777215)) font = QFont() font.setFamily(("Arial")) font.setBold(False) font.setWeight(50) self.label_9.setFont(font) self.label_9.setObjectName(("label_9")) self.horizontalLayout_20.addWidget(self.label_9) self.txtTHR_X = QLineEdit(self.frame_19) sizePolicy = QSizePolicy(QSizePolicy.Preferred, QSizePolicy.Fixed) sizePolicy.setHorizontalStretch(0) sizePolicy.setVerticalStretch(0) sizePolicy.setHeightForWidth( self.txtTHR_X.sizePolicy().hasHeightForWidth()) self.txtTHR_X.setSizePolicy(sizePolicy) self.txtTHR_X.setMaximumSize(QSize(16777215, 16777215)) font = QFont() font.setFamily(("Arial")) self.txtTHR_X.setFont(font) self.txtTHR_X.setObjectName(("txtTHR_X")) self.horizontalLayout_20.addWidget(self.txtTHR_X) self.verticalLayout_13.addWidget(self.frame_19) self.frame_20 = QFrame(self.frame_18) sizePolicy = QSizePolicy(QSizePolicy.Minimum, QSizePolicy.Preferred) sizePolicy.setHorizontalStretch(0) sizePolicy.setVerticalStretch(0) sizePolicy.setHeightForWidth( self.frame_20.sizePolicy().hasHeightForWidth()) self.frame_20.setSizePolicy(sizePolicy) self.frame_20.setFrameShape(QFrame.StyledPanel) self.frame_20.setFrameShadow(QFrame.Raised) self.frame_20.setObjectName(("frame_20")) self.horizontalLayout_21 = QHBoxLayout(self.frame_20) self.horizontalLayout_21.setSpacing(0) self.horizontalLayout_21.setMargin(0) self.horizontalLayout_21.setObjectName(("horizontalLayout_21")) self.label_10 = QLabel(self.frame_20) self.label_10.setMaximumSize(QSize(60, 16777215)) font = QFont() font.setFamily(("Arial")) font.setBold(False) font.setWeight(50) self.label_10.setFont(font) self.label_10.setObjectName(("label_10")) self.horizontalLayout_21.addWidget(self.label_10) self.txtTHR_Y = QLineEdit(self.frame_20) sizePolicy = QSizePolicy(QSizePolicy.Preferred, QSizePolicy.Fixed) sizePolicy.setHorizontalStretch(0) sizePolicy.setVerticalStretch(0) sizePolicy.setHeightForWidth( self.txtTHR_Y.sizePolicy().hasHeightForWidth()) self.txtTHR_Y.setSizePolicy(sizePolicy) self.txtTHR_Y.setMaximumSize(QSize(16777215, 16777215)) font = QFont() font.setFamily(("Arial")) self.txtTHR_Y.setFont(font) self.txtTHR_Y.setObjectName(("txtTHR_Y")) self.horizontalLayout_21.addWidget(self.txtTHR_Y) self.verticalLayout_13.addWidget(self.frame_20) self.horizontalLayout_19.addWidget(self.frame_18) self.frame_21 = QFrame(self.groupBox_5) sizePolicy = QSizePolicy(QSizePolicy.Preferred, QSizePolicy.Preferred) sizePolicy.setHorizontalStretch(0) sizePolicy.setVerticalStretch(0) sizePolicy.setHeightForWidth( self.frame_21.sizePolicy().hasHeightForWidth()) self.frame_21.setSizePolicy(sizePolicy) self.frame_21.setMaximumSize(QSize(30, 70)) self.frame_21.setFrameShape(QFrame.StyledPanel) self.frame_21.setFrameShadow(QFrame.Raised) self.frame_21.setObjectName(("frame_21")) self.verticalLayout_14 = QVBoxLayout(self.frame_21) self.verticalLayout_14.setSpacing(0) self.verticalLayout_14.setMargin(0) self.verticalLayout_14.setObjectName(("verticalLayout_14")) self.btnCaptureRunwayTHR = QToolButton(self.frame_21) sizePolicy = QSizePolicy(QSizePolicy.Preferred, QSizePolicy.Fixed) sizePolicy.setHorizontalStretch(0) sizePolicy.setVerticalStretch(0) sizePolicy.setHeightForWidth( self.btnCaptureRunwayTHR.sizePolicy().hasHeightForWidth()) self.btnCaptureRunwayTHR.setSizePolicy(sizePolicy) self.btnCaptureRunwayTHR.setMaximumSize(QSize(16777215, 47)) icon = QIcon() icon.addPixmap(QPixmap(("Resource/coordinate_capture.png")), QIcon.Normal, QIcon.Off) self.btnCaptureRunwayTHR.setIcon(icon) self.btnCaptureRunwayTHR.setObjectName(("btnCaptureRunwayTHR")) self.verticalLayout_14.addWidget(self.btnCaptureRunwayTHR) # self.btnToolTHR = QToolButton(self.frame_21) # sizePolicy = QSizePolicy(QSizePolicy.Preferred, QSizePolicy.Fixed) # sizePolicy.setHorizontalStretch(0) # sizePolicy.setVerticalStretch(0) # sizePolicy.setHeightForWidth(self.btnToolTHR.sizePolicy().hasHeightForWidth()) # self.btnToolTHR.setSizePolicy(sizePolicy) # self.btnToolTHR.setMaximumSize(QSize(16777215, 20)) # icon1 = QIcon() # icon1.addPixmap(QPixmap(("Resource/sort2.png")), QIcon.Normal, QIcon.Off) # self.btnToolTHR.setIcon(icon1) # self.btnToolTHR.setObjectName(("btnToolTHR")) # self.verticalLayout_14.addWidget(self.btnToolTHR) self.horizontalLayout_19.addWidget(self.frame_21) self.verticalLayout_2.addWidget(self.groupBox_5) self.groupBox_4 = QGroupBox(self.groupBox) self.groupBox_4.setVisible(False) # self.groupBox.setVisible(False) sizePolicy = QSizePolicy(QSizePolicy.Preferred, QSizePolicy.Maximum) sizePolicy.setHorizontalStretch(0) sizePolicy.setVerticalStretch(0) sizePolicy.setHeightForWidth( self.groupBox_4.sizePolicy().hasHeightForWidth()) self.groupBox_4.setSizePolicy(sizePolicy) font = QFont() font.setFamily(("Arial")) self.groupBox_4.setFont(font) self.groupBox_4.setObjectName(("groupBox_4")) self.horizontalLayout_16 = QHBoxLayout(self.groupBox_4) self.horizontalLayout_16.setSpacing(0) self.horizontalLayout_16.setMargin(0) self.horizontalLayout_16.setObjectName(("horizontalLayout_16")) self.frame_14 = QFrame(self.groupBox_4) self.frame_14.setFrameShape(QFrame.StyledPanel) self.frame_14.setFrameShadow(QFrame.Raised) self.frame_14.setObjectName(("frame_14")) self.verticalLayout_11 = QVBoxLayout(self.frame_14) self.verticalLayout_11.setSpacing(0) self.verticalLayout_11.setContentsMargins(-1, -1, 0, -1) self.verticalLayout_11.setObjectName(("verticalLayout_11")) self.frame_15 = QFrame(self.frame_14) sizePolicy = QSizePolicy(QSizePolicy.Minimum, QSizePolicy.Preferred) sizePolicy.setHorizontalStretch(0) sizePolicy.setVerticalStretch(0) sizePolicy.setHeightForWidth( self.frame_15.sizePolicy().hasHeightForWidth()) self.frame_15.setSizePolicy(sizePolicy) self.frame_15.setFrameShape(QFrame.StyledPanel) self.frame_15.setFrameShadow(QFrame.Raised) self.frame_15.setObjectName(("frame_15")) self.horizontalLayout_17 = QHBoxLayout(self.frame_15) self.horizontalLayout_17.setSpacing(0) self.horizontalLayout_17.setMargin(0) self.horizontalLayout_17.setObjectName(("horizontalLayout_17")) self.label_7 = QLabel(self.frame_15) self.label_7.setMaximumSize(QSize(60, 16777215)) font = QFont() font.setFamily(("Arial")) font.setBold(False) font.setWeight(50) self.label_7.setFont(font) self.label_7.setObjectName(("label_7")) self.horizontalLayout_17.addWidget(self.label_7) self.txtEND_X = QLineEdit(self.frame_15) sizePolicy = QSizePolicy(QSizePolicy.Preferred, QSizePolicy.Fixed) sizePolicy.setHorizontalStretch(0) sizePolicy.setVerticalStretch(0) sizePolicy.setHeightForWidth( self.txtEND_X.sizePolicy().hasHeightForWidth()) self.txtEND_X.setSizePolicy(sizePolicy) self.txtEND_X.setMaximumSize(QSize(16777215, 16777215)) font = QFont() font.setFamily(("Arial")) self.txtEND_X.setFont(font) self.txtEND_X.setObjectName(("txtEND_X")) self.horizontalLayout_17.addWidget(self.txtEND_X) self.verticalLayout_11.addWidget(self.frame_15) self.frame_16 = QFrame(self.frame_14) sizePolicy = QSizePolicy(QSizePolicy.Minimum, QSizePolicy.Preferred) sizePolicy.setHorizontalStretch(0) sizePolicy.setVerticalStretch(0) sizePolicy.setHeightForWidth( self.frame_16.sizePolicy().hasHeightForWidth()) self.frame_16.setSizePolicy(sizePolicy) self.frame_16.setFrameShape(QFrame.StyledPanel) self.frame_16.setFrameShadow(QFrame.Raised) self.frame_16.setObjectName(("frame_16")) self.horizontalLayout_18 = QHBoxLayout(self.frame_16) self.horizontalLayout_18.setSpacing(0) self.horizontalLayout_18.setMargin(0) self.horizontalLayout_18.setObjectName(("horizontalLayout_18")) self.label_8 = QLabel(self.frame_16) self.label_8.setMaximumSize(QSize(60, 16777215)) font = QFont() font.setFamily(("Arial")) font.setBold(False) font.setWeight(50) self.label_8.setFont(font) self.label_8.setObjectName(("label_8")) self.horizontalLayout_18.addWidget(self.label_8) self.txtEND_Y = QLineEdit(self.frame_16) sizePolicy = QSizePolicy(QSizePolicy.Preferred, QSizePolicy.Fixed) sizePolicy.setHorizontalStretch(0) sizePolicy.setVerticalStretch(0) sizePolicy.setHeightForWidth( self.txtEND_Y.sizePolicy().hasHeightForWidth()) self.txtEND_Y.setSizePolicy(sizePolicy) self.txtEND_Y.setMaximumSize(QSize(16777215, 16777215)) font = QFont() font.setFamily(("Arial")) self.txtEND_Y.setFont(font) self.txtEND_Y.setObjectName(("txtEND_Y")) self.horizontalLayout_18.addWidget(self.txtEND_Y) self.verticalLayout_11.addWidget(self.frame_16) self.horizontalLayout_16.addWidget(self.frame_14) self.frame_17 = QFrame(self.groupBox_4) self.frame_17.setMaximumSize(QSize(30, 16777215)) self.frame_17.setFrameShape(QFrame.StyledPanel) self.frame_17.setFrameShadow(QFrame.Raised) self.frame_17.setObjectName(("frame_17")) self.verticalLayout_12 = QVBoxLayout(self.frame_17) self.verticalLayout_12.setSpacing(0) self.verticalLayout_12.setMargin(0) self.verticalLayout_12.setObjectName(("verticalLayout_12")) self.btnCaptureRunwayEND = QToolButton(self.frame_17) sizePolicy = QSizePolicy(QSizePolicy.Preferred, QSizePolicy.Fixed) sizePolicy.setHorizontalStretch(0) sizePolicy.setVerticalStretch(0) sizePolicy.setHeightForWidth( self.btnCaptureRunwayEND.sizePolicy().hasHeightForWidth()) self.btnCaptureRunwayEND.setSizePolicy(sizePolicy) self.btnCaptureRunwayEND.setMaximumSize(QSize(16777215, 47)) self.btnCaptureRunwayEND.setIcon(icon) self.btnCaptureRunwayEND.setObjectName(("btnCaptureRunwayEND")) self.verticalLayout_12.addWidget(self.btnCaptureRunwayEND) # self.btnToolEND = QToolButton(self.frame_17) # sizePolicy = QSizePolicy(QSizePolicy.Preferred, QSizePolicy.Fixed) # sizePolicy.setHorizontalStretch(0) # sizePolicy.setVerticalStretch(0) # sizePolicy.setHeightForWidth(self.btnToolEND.sizePolicy().hasHeightForWidth()) # self.btnToolEND.setSizePolicy(sizePolicy) # self.btnToolEND.setMaximumSize(QSize(16777215, 20)) # self.btnToolEND.setIcon(icon1) # self.btnToolEND.setObjectName(("btnToolEND")) # self.verticalLayout_12.addWidget(self.btnToolEND) self.horizontalLayout_16.addWidget(self.frame_17) self.verticalLayout_2.addWidget(self.groupBox_4) self.lbl1 = QLabel(self.groupBox) font = QFont() font.setFamily(("Arial")) self.lbl1.setFont(font) self.lbl1.setText(("")) self.lbl1.setAlignment(Qt.AlignCenter) self.lbl1.setWordWrap(False) self.lbl1.setMargin(0) self.lbl1.setObjectName(("lbl1")) self.verticalLayout_2.addWidget(self.lbl1) self.lbl2 = QLabel(self.groupBox) font = QFont() font.setFamily(("Arial")) font.setBold(False) font.setWeight(50) self.lbl2.setFont(font) self.lbl2.setText(("")) self.lbl2.setAlignment(Qt.AlignCenter) self.lbl2.setObjectName(("lbl2")) self.verticalLayout_2.addWidget(self.lbl2) self.frame_22 = QFrame(self.groupBox) sizePolicy = QSizePolicy(QSizePolicy.Minimum, QSizePolicy.Preferred) sizePolicy.setHorizontalStretch(0) sizePolicy.setVerticalStretch(0) sizePolicy.setHeightForWidth( self.frame_22.sizePolicy().hasHeightForWidth()) self.frame_22.setSizePolicy(sizePolicy) self.frame_22.setFrameShape(QFrame.StyledPanel) self.frame_22.setFrameShadow(QFrame.Raised) self.frame_22.setObjectName(("frame_22")) self.horizontalLayout_22 = QHBoxLayout(self.frame_22) self.horizontalLayout_22.setSpacing(0) self.horizontalLayout_22.setMargin(0) self.horizontalLayout_22.setObjectName(("horizontalLayout_22")) self.label_11 = QLabel(self.frame_22) self.label_11.setMinimumSize(QSize(170, 0)) self.label_11.setMaximumSize(QSize(180, 16777215)) font = QFont() font.setFamily(("Arial")) font.setBold(False) font.setWeight(50) self.label_11.setFont(font) self.label_11.setObjectName(("label_11")) self.horizontalLayout_22.addWidget(self.label_11) self.txtForm = QLineEdit(self.frame_22) self.txtForm.setEnabled(False) sizePolicy = QSizePolicy(QSizePolicy.Preferred, QSizePolicy.Fixed) sizePolicy.setHorizontalStretch(0) sizePolicy.setVerticalStretch(0) sizePolicy.setHeightForWidth( self.txtForm.sizePolicy().hasHeightForWidth()) self.txtForm.setSizePolicy(sizePolicy) self.txtForm.setMaximumSize(QSize(16777215, 16777215)) font = QFont() font.setFamily(("Arial")) self.txtForm.setFont(font) self.txtForm.setObjectName(("txtForm")) self.horizontalLayout_22.addWidget(self.txtForm) self.verticalLayout_2.addWidget(self.frame_22) self.frame_23 = QFrame(self.groupBox) sizePolicy = QSizePolicy(QSizePolicy.Minimum, QSizePolicy.Preferred) sizePolicy.setHorizontalStretch(0) sizePolicy.setVerticalStretch(0) sizePolicy.setHeightForWidth( self.frame_23.sizePolicy().hasHeightForWidth()) self.frame_23.setSizePolicy(sizePolicy) self.frame_23.setFrameShape(QFrame.StyledPanel) self.frame_23.setFrameShadow(QFrame.Raised) self.frame_23.setObjectName(("frame_23")) self.horizontalLayout_23 = QHBoxLayout(self.frame_23) self.horizontalLayout_23.setSpacing(0) self.horizontalLayout_23.setMargin(0) self.horizontalLayout_23.setObjectName(("horizontalLayout_23")) self.label_12 = QLabel(self.frame_23) self.label_12.setMinimumSize(QSize(170, 0)) self.label_12.setMaximumSize(QSize(180, 16777215)) font = QFont() font.setFamily(("Arial")) font.setBold(False) font.setWeight(50) self.label_12.setFont(font) self.label_12.setObjectName(("label_12")) self.horizontalLayout_23.addWidget(self.label_12) self.txtBearing = QLineEdit(self.frame_23) sizePolicy = QSizePolicy(QSizePolicy.Preferred, QSizePolicy.Fixed) sizePolicy.setHorizontalStretch(0) sizePolicy.setVerticalStretch(0) sizePolicy.setHeightForWidth( self.txtBearing.sizePolicy().hasHeightForWidth()) self.txtBearing.setSizePolicy(sizePolicy) self.txtBearing.setMaximumSize(QSize(16777215, 16777215)) font = QFont() font.setFamily(("Arial")) self.txtBearing.setFont(font) self.txtBearing.setObjectName(("txtBearing")) self.horizontalLayout_23.addWidget(self.txtBearing) self.btnCaptureBearing = QToolButton(self.frame_23) sizePolicy = QSizePolicy(QSizePolicy.Fixed, QSizePolicy.Fixed) sizePolicy.setHorizontalStretch(0) sizePolicy.setVerticalStretch(0) sizePolicy.setHeightForWidth( self.btnCaptureBearing.sizePolicy().hasHeightForWidth()) self.btnCaptureBearing.setSizePolicy(sizePolicy) self.btnCaptureBearing.setMaximumSize(QSize(16777215, 25)) self.btnCaptureBearing.setStyleSheet(("")) self.btnCaptureBearing.setIcon(icon) self.btnCaptureBearing.setObjectName(("btnCaptureBearing")) self.horizontalLayout_23.addWidget(self.btnCaptureBearing) self.verticalLayout_2.addWidget(self.frame_23) self.frame_24 = QFrame(self.groupBox) sizePolicy = QSizePolicy(QSizePolicy.Minimum, QSizePolicy.Preferred) sizePolicy.setHorizontalStretch(0) sizePolicy.setVerticalStretch(0) sizePolicy.setHeightForWidth( self.frame_24.sizePolicy().hasHeightForWidth()) self.frame_24.setSizePolicy(sizePolicy) self.frame_24.setFrameShape(QFrame.StyledPanel) self.frame_24.setFrameShadow(QFrame.Raised) self.frame_24.setObjectName(("frame_24")) self.horizontalLayout_24 = QHBoxLayout(self.frame_24) self.horizontalLayout_24.setSpacing(0) self.horizontalLayout_24.setMargin(0) self.horizontalLayout_24.setObjectName(("horizontalLayout_24")) self.lblDistance = QLabel(self.frame_24) self.lblDistance.setMinimumSize(QSize(170, 0)) self.lblDistance.setMaximumSize(QSize(180, 16777215)) font = QFont() font.setFamily(("Arial")) font.setBold(False) font.setWeight(50) self.lblDistance.setFont(font) self.lblDistance.setObjectName(("lblDistance")) self.horizontalLayout_24.addWidget(self.lblDistance) self.txtDistance = QLineEdit(self.frame_24) self.txtDistance.setEnabled(False) sizePolicy = QSizePolicy(QSizePolicy.Preferred, QSizePolicy.Fixed) sizePolicy.setHorizontalStretch(0) sizePolicy.setVerticalStretch(0) sizePolicy.setHeightForWidth( self.txtDistance.sizePolicy().hasHeightForWidth()) self.txtDistance.setSizePolicy(sizePolicy) self.txtDistance.setMaximumSize(QSize(16777215, 16777215)) font = QFont() font.setFamily(("Arial")) self.txtDistance.setFont(font) self.txtDistance.setObjectName(("txtDistance")) self.horizontalLayout_24.addWidget(self.txtDistance) self.btnCaptureDistance = QToolButton(self.frame_24) sizePolicy = QSizePolicy(QSizePolicy.Fixed, QSizePolicy.Fixed) sizePolicy.setHorizontalStretch(0) sizePolicy.setVerticalStretch(0) sizePolicy.setHeightForWidth( self.btnCaptureDistance.sizePolicy().hasHeightForWidth()) self.btnCaptureDistance.setSizePolicy(sizePolicy) self.btnCaptureDistance.setMaximumSize(QSize(16777215, 23)) self.btnCaptureDistance.setStyleSheet(("")) self.btnCaptureDistance.setIcon(icon) self.btnCaptureDistance.setObjectName(("btnCaptureDistance")) self.horizontalLayout_24.addWidget(self.btnCaptureDistance) self.verticalLayout_2.addWidget(self.frame_24) self.verticalLayout.addWidget(self.groupBox) self.buttonBox = QDialogButtonBox(self) self.buttonBox.setOrientation(Qt.Horizontal) self.buttonBox.setStandardButtons(QDialogButtonBox.Cancel | QDialogButtonBox.Ok) self.buttonBox.setObjectName(("buttonBox")) self.verticalLayout.addWidget(self.buttonBox) self.btnCaptureDistance.clicked.connect(self.method_9) self.btnCaptureBearing.clicked.connect(self.method_8) self.txtEND_X.textChanged.connect(self.method_4) self.txtEND_Y.textChanged.connect(self.method_4) self.txtTHR_X.textChanged.connect(self.method_4) self.txtTHR_Y.textChanged.connect(self.method_4) # self.type = rnavType # self.category = category # self.resultPosionList = position_List self.MinBearing2 = 0 self.MaxBearing2 = 0 self.waypoint = None self.distanceMeasureTool = MeasureTool(define._canvas, self.txtDistance, DistanceUnits.NM) self.bearingTool = CaptureBearingTool(define._canvas, self.txtBearing) self.CaptureTHRCoordTool = CaptureCoordinateTool( define._canvas, self.txtTHR_X, self.txtTHR_Y) self.CaptureTHRCoordTool.rubberBandClick.setColor(Qt.green) self.CaptureENDCoordTool = CaptureCoordinateTool( define._canvas, self.txtEND_X, self.txtEND_Y) self.CaptureENDCoordTool.rubberBandClick.setColor(Qt.blue) # if rnavType == RnavCommonWaypoint.FAWP or rnavType == RnavCommonWaypoint.MAWP: # self.from1 = position_0 # # self.resize(326, 310) # if position_List[0] != None: # self.setThrPosition(position_List[0].x(),position_List[0].y()) # self.CaptureTHRCoordTool.rubberBandClick.addPoint(QgsPoint(position_List[0].x(),position_List[0].y())) # # self.CaptureTHRCoordTool.rubberBandClick.show() # if position_List[1] != None: # self.setEndPosition(position_List[1].x(),position_List[1].y()) # self.CaptureENDCoordTool.rubberBandClick.addPoint(QgsPoint(position_List[1].x(),position_List[1].y())) # # self.setWaypoint(position_List[2]) # else: # self.from1 = position_1 # num = RnavWaypoints.smethod_0(position_0, position_1) # self.MinBearing = RnavWaypoints.smethod_7(rnavType, category, num) # self.MaxBearing= RnavWaypoints.smethod_8(rnavType, category, num) # self.MinDistance = RnavWaypoints.smethod_4(rnavType, category) # if flagStr == "Y-Bar": # if (rnavType == RnavCommonWaypoint.IAWP1): # self.setBearing(self.MaxBearing) # elif (rnavType != RnavCommonWaypoint.IAWP3): # self.setBearing(num) # else: # self.setBearing(self.MinBearing) # else: # if (rnavType == RnavCommonWaypoint.IAWP1): # self.setBearing(self.MinBearing) # elif (rnavType != RnavCommonWaypoint.IAWP3): # self.setBearing(num) # else: # self.setBearing(self.MaxBearing) # # if self.txtDistance.isEnabled(): # # self.setDistance(RnavWaypoints.smethod_6(rnavType, category).NauticalMiles) # # self.setWaypoint(position_List.pop(0)) # self.method_4() self.retranslateUi() QObject.connect(self.buttonBox, SIGNAL(("accepted()")), self.btnCalculate_Click) QObject.connect(self.buttonBox, SIGNAL(("rejected()")), self.reject) # QMetaObject.connectSlotsByName(Dialog) # self.btnToolEND.clicked.connect(self.removeEnd) # self.btnToolTHR.clicked.connect(self.removeThr) self.btnCaptureRunwayTHR.clicked.connect(self.captureTHR) self.btnCaptureRunwayEND.clicked.connect(self.captureEND) self.txtDistance.setText("10") def retranslateUi(self): self.setWindowTitle("CaculaterDlg") self.groupBox_5.setTitle("Runway THR") self.label_9.setText("X:") self.label_10.setText("Y:") self.btnCaptureRunwayTHR.setText("...") # self.btnToolTHR.setText("...") self.groupBox_4.setTitle("Runway END") self.label_7.setText("X:") self.label_8.setText("Y:") self.btnCaptureRunwayEND.setText("...") # self.btnToolEND.setText("...") self.label_11.setText("From:") self.txtForm.setText("FAWP") self.label_12.setText(unicode("Bearing (°) :", "utf-8")) # self.txtBearing.setText("188.25") self.btnCaptureBearing.setText("...") self.lblDistance.setText("Distance (nm):") self.txtDistance.setText("5") self.btnCaptureDistance.setText("...") def captureTHR(self): define._canvas.setMapTool(self.CaptureTHRCoordTool) def captureEND(self): define._canvas.setMapTool(self.CaptureENDCoordTool) def close(self): scene = define._canvas.scene() scene.removeItem(self.CaptureTHRCoordTool.rubberBandClick) scene.removeItem(self.CaptureENDCoordTool.rubberBandClick) scene.removeItem(self.bearingTool.rubberBand) scene.removeItem(self.distanceMeasureTool.rubberBand) # self.CaptureTHRCoordTool.rubberBand.hide() # self.CaptureENDCoordTool.rubberBand.hide() define._canvas.setMapTool(QgsMapToolPan(define._canvas)) # self.reject() def reject(self): self.close() QDialog.reject(self) def getThrPoint3D(self): if self.txtTHR_X.text() != "" and self.txtTHR_Y.text() != "": try: x = float(self.txtTHR_X.text()) except ValueError: x = 0 try: y = float(self.txtTHR_Y.text()) except ValueError: y = 0 return Point3D(x, y, 0) else: return None def getEndPoint3D(self): if self.txtEND_X.text() != "" and self.txtEND_Y.text() != "": try: x = float(self.txtEND_X.text()) except ValueError: x = 0 try: y = float(self.txtEND_Y.text()) except ValueError: y = 0 return Point3D(x, y, 0) else: return None def setEndPosition(self, x, y): self.txtEND_X.setText(str(x)) self.txtEND_Y.setText(str(y)) def setThrPosition(self, x, y): self.txtTHR_X.setText(str(x)) self.txtTHR_Y.setText(str(y)) def getWaypoint(self): if (self.type == RnavCommonWaypoint.FAWP): nauticalMiles = float(self.txtDistance.text()) value = float(self.txtBearing.text()) num1 = math.fabs(self.rethr - value) if (num1 > 180): num1 = 360 - num1 num2 = math.sin(Unit.smethod_0(num1)) * 0.7559395 num3 = Unit.smethod_1(math.asin(num2 / nauticalMiles)) num4 = math.cos(Unit.smethod_0(num1)) * 0.755939525 num5 = math.cos(Unit.smethod_0(num3)) * nauticalMiles return RnavWaypoints.smethod_3( self.pos1400m, float(self.txtBearing.text()), Distance(math.fabs(num5 - num4), DistanceUnits.NM)) if (self.type != RnavCommonWaypoint.MAWP): return RnavWaypoints.smethod_3( self.from1, float(self.txtBearing.text()), Distance(float(self.txtDistance.text()), DistanceUnits.NM)) if (float(self.txtBearing.text()) > self.thrre or float(self.txtBearing.text()) - self.thrre >= 90): angle = 90 if self.flagStrName == "Y-Bar": angle = 70 num = self.rethr - angle if (num < 0): num = num + 360 else: num = self.rethr + angle if (num > 360): num = num - 360 point3d1 = self.from1 point3d2 = self.getThrPoint3D() point3d = MathHelper.getIntersectionPoint( point3d1, RnavWaypoints.smethod_3(self.from1, float(self.txtBearing.text()), Distance(1000)), point3d2, RnavWaypoints.smethod_3(self.getThrPoint3D(), num, Distance(1000))) if point3d == None: raise UserWarning, Messages.ERR_FAILED_TO_CALCULATE_INTERSECTION_POINT return RnavWaypoints.smethod_3( self.getThrPoint3D(), num, Distance(MathHelper.calcDistance(point3d2, point3d))) def setWaypoint(self, value): self.waypoint = value if self.from1 != None and self.waypoint != None: # self.setBearing(RnavWaypoints.smethod_0(self.from1, value)) # if self.txtDistance.isEnabled(): # print RnavWaypoints.smethod_2(self.from1, value).NauticalMiles # print RnavWaypoints.smethod_2(self.from1, value).NauticalMiles self.setDistance( RnavWaypoints.smethod_2(self.from1, value).NauticalMiles) def setDistance(self, value): self.txtDistance.setText("%i" % round(value)) def setBearing(self, value): self.txtBearing.setText(str(value)) def btnCalculate_Click(self): try: bearing = Unit.ConvertDegToRad(float(self.txtBearing.text())) distance0 = Distance(float(self.txtDistance.text()), DistanceUnits.NM).Metres self.calcedPoint = MathHelper.distanceBearingPoint( self.point, bearing, distance0) if self.flagStr == "R": self.parent0.parametersPanel.pnlIAWP1.Point3d = self.calcedPoint self.parent0.parametersPanel.txtRadiusIAWP1.setText( self.txtDistance.text()) elif self.flagStr == "L": self.parent0.parametersPanel.txtRadiusIAWP3.setText( self.txtDistance.text()) self.parent0.parametersPanel.pnlIAWP3.Point3d = self.calcedPoint elif self.flagStr == "C": self.parent0.parametersPanel.txtRadiusIAWP2.setText( self.txtDistance.text()) self.parent0.parametersPanel.pnlIAWP2.Point3d = self.calcedPoint self.accept() except UserWarning as e: QMessageBox.warning(self, "warning", e.message) def method_9(self): # self.distanceMeasureTool = MeasureTool(define._canvas, self.txtDistance, DistanceUnits.NM) define._canvas.setMapTool(self.distanceMeasureTool) def method_8(self): # self.bearingTool = CaptureBearingTool(define._canvas, self.txtBearing) define._canvas.setMapTool(self.bearingTool) def method_4(self): num = None num1 = None num2 = None num3 = None num4 = None num5 = None num6 = None num7 = None num8 = None num9 = None self.lbl1.setText(Validations.PLEASE_ENTER_VALID_RUNWAY_POSITIONS) self.lbl2.setText(" ") if (self.type == RnavCommonWaypoint.FAWP): position = self.getThrPoint3D() position1 = self.getEndPoint3D() if position is None or position1 is None: self.txtBearing.setText("") # self.txtDistance.setText("") return self.thrre = RnavWaypoints.smethod_0(position, position1) self.rethr = RnavWaypoints.smethod_0(position1, position) self.pos1400m = RnavWaypoints.smethod_3(position, self.rethr, Distance(1400)) self.MinDistance = RnavWaypoints.smethod_4(self.type, self.category) # if self.txtDistance.isEnabled(): # self.setDistance(RnavWaypoints.smethod_6(self.type, self.category).NauticalMiles) self.setBearing(self.rethr) self.MinBearing = RnavWaypoints.smethod_7(self.type, self.category, self.rethr) self.MaxBearing = RnavWaypoints.smethod_8(self.type, self.category, self.rethr) # if self.waypoint is not None: # self.setBearing(round(RnavWaypoints.smethod_0(self.pos1400m, self.waypoint), 2)) # # if self.txtDistance.isEnabled(): # self.setDistance(RnavWaypoints.smethod_2(position, self.waypoint).NauticalMiles) elif (self.type == RnavCommonWaypoint.MAWP): position2 = self.getThrPoint3D() position3 = self.getEndPoint3D() if position2 is None or position3 is None: self.txtBearing.setText("") return self.thrre = RnavWaypoints.smethod_0(position2, position3) self.rethr = RnavWaypoints.smethod_0(position3, position2) self.pos1400m = RnavWaypoints.smethod_3(position2, self.rethr, Distance(1400)) num10 = RnavWaypoints.smethod_1(self.pos1400m, self.from1) num = RnavWaypoints.smethod_1(self.from1, self.pos1400m) num11 = 15 position4 = None if (self.category == AircraftSpeedCategory.A or self.category == AircraftSpeedCategory.B or self.category == AircraftSpeedCategory.H): num11 = 30 if (num10 > self.rethr or self.rethr - num10 >= 90): num1 = self.thrre + num11 num2 = num if (num2 > 360): num2 = num2 - 360 else: num1 = num num2 = self.thrre - num11 if (num2 < 0): num2 = num2 + 360 if (max(num1, num2) <= 270 or min(num1, num2) >= 90): num3 = min(num1, num2) num4 = max(num1, num2) else: num3 = max(num1, num2) num4 = min(num1, num2) position4 = RnavWaypoints.smethod_3(position2, self.thrre, Distance(466)) num12 = RnavWaypoints.smethod_0(position4, self.from1) num13 = math.fabs(num12 - self.rethr) if (num13 > 180): num13 = 360 - num13 if (num13 > 5): num5 = 0 num6 = 0 num7 = 0 num8 = 0 else: if (num12 > self.rethr or self.rethr - num12 >= 90): num9 = self.rethr + 90 if (num9 > 360): num9 = num9 - 360 else: num9 = self.rethr - 90 if (num9 < 0): num9 = num9 + 360 position5 = RnavWaypoints.smethod_3(self.pos1400m, num9, Distance(150)) num5 = RnavWaypoints.smethod_0(self.from1, position5) num6 = RnavWaypoints.smethod_0(self.from1, self.pos1400m) if (max(num5, num6) <= 270 or min(num5, num6) >= 90): num7 = min(num5, num6) num8 = max(num5, num6) else: num7 = max(num5, num6) num8 = min(num5, num6) if (MathHelper.smethod_99(num, self.thrre, 1)): position6 = RnavWaypoints.smethod_3(self.pos1400m, self.rethr - 90, Distance(150)) position7 = RnavWaypoints.smethod_3(self.pos1400m, self.rethr + 90, Distance(150)) num1 = RnavWaypoints.smethod_0(self.from1, position6) num2 = RnavWaypoints.smethod_0(self.from1, position7) num7 = 0 num8 = 0 if (max(num1, num2) <= 270 or min(num1, num2) >= 90): num3 = min(num1, num2) num4 = max(num1, num2) else: num3 = max(num1, num2) num4 = min(num1, num2) if (MathHelper.smethod_96(num7) or MathHelper.smethod_96(num8)): self.MinBearing = MathHelper.smethod_3(num3) self.MaxBearing = MathHelper.smethod_3(num4) self.MinBearing2 = MathHelper.smethod_3(num7) self.MaxBearing2 = MathHelper.smethod_3(num8) elif (min(num3, num4) >= min(num7, num8)): if (MathHelper.smethod_99(num8, num3, 0.3)): num8 = num4 num3 = 0 num4 = 0 self.MinBearing = MathHelper.smethod_3(num7) self.MaxBearing = MathHelper.smethod_3(num8) self.MinBearing2 = MathHelper.smethod_3(num3) self.MaxBearing2 = MathHelper.smethod_3(num4) else: if (MathHelper.smethod_99(num4, num7, 0.3)): num4 = num8 num7 = 0 num8 = 0 self.MinBearing = MathHelper.smethod_3(num3) self.MaxBearing = MathHelper.smethod_3(num4) self.MinBearing2 = MathHelper.smethod_3(num7) self.MaxBearing2 = MathHelper.smethod_3(num8) self.MinDistance = RnavWaypoints.smethod_4(self.type, self.category) # if self.txtDistance.isEnabled(): # self.setDistance(RnavWaypoints.smethod_6(self.type, self.category).NauticalMiles) if (self.MinBearing <= self.MaxBearing): self.setBearing((self.MinBearing + self.MaxBearing) / 2) else: self.setBearing( MathHelper.smethod_3(self.MinBearing + (360 - self.MinBearing + self.MaxBearing))) # if (self.waypoint is not None): # self.setBearing(RnavWaypoints.smethod_0(self.from1, self.waypoint)) if (MathHelper.smethod_96(self.MinBearing2) or MathHelper.smethod_96(self.MaxBearing2)): self.lbl1.setText( unicode("Acceptable bearings are %.1f° - %.1f°", "utf-8") % (self.MinBearing, self.MaxBearing)) else: self.lbl1.setText(Validations.ACCEPTABLE_BEARINGS_ARE_X_Y_AND_X_Y % (self.MinBearing, self.MaxBearing, self.MinBearing2, self.MaxBearing2)) if self.MinDistance != None and self.type != RnavCommonWaypoint.MAWP: self.lbl2.setText(Validations.ACCEPTABLE_MINIMUM_DISTANCE_IS_X % (self.MinDistance.NauticalMiles)) # def removeEnd(self): # self.txtEND_X.setText("") # self.txtEND_Y.setText("") # def removeThr(self): # self.txtTHR_X.setText("") # self.txtTHR_Y.setText("") # @staticmethod # def smethod_0( parent, rnavCommonWaypoint_0, aircraftSpeedCategory_0, position_0, position_1, position_List): # flag = None # using (DlgCalculateWaypoint dlgCalculateWaypoint = new DlgCalculateWaypoint()) # { # dlgCalculateWaypoint.Text = string.Format("{0} {1}", Captions.CALCULATE, EnumHelper.smethod_0(rnavCommonWaypoint_0)) # dlgCalculateWaypoint.Type = rnavCommonWaypoint_0 # dlgCalculateWaypoint.Category = aircraftSpeedCategory_0 # dlgCalculateWaypoint.From = position_1 # double num = RnavWaypoints.smethod_0(position_0, position_1) # dlgCalculateWaypoint.MinBearing = RnavWaypoints.smethod_7(rnavCommonWaypoint_0, aircraftSpeedCategory_0, num) # dlgCalculateWaypoint.MaxBearing = RnavWaypoints.smethod_8(rnavCommonWaypoint_0, aircraftSpeedCategory_0, num) # dlgCalculateWaypoint.MinDistance = RnavWaypoints.smethod_4(rnavCommonWaypoint_0, aircraftSpeedCategory_0) # if (rnavCommonWaypoint_0 == RnavCommonWaypoint.IAWP1) # { # dlgCalculateWaypoint.Bearing = dlgCalculateWaypoint.MinBearing # } # else if (rnavCommonWaypoint_0 != RnavCommonWaypoint.IAWP3) # { # dlgCalculateWaypoint.Bearing = num # } # else # { # dlgCalculateWaypoint.Bearing = dlgCalculateWaypoint.MaxBearing # } # dlgCalculateWaypoint.Distance = RnavWaypoints.smethod_6(rnavCommonWaypoint_0, aircraftSpeedCategory_0) # dlgCalculateWaypoint.Waypoint = position_2 # if (dlgCalculateWaypoint.method_2(iwin32Window_0) != System.Windows.Forms.DialogResult.OK) # { # flag = false # } # else # { # position_2 = dlgCalculateWaypoint.Waypoint # flag = true # } # } # return flag # } # # public static bool smethod_1(IWin32Window iwin32Window_0, RnavCommonWaypoint rnavCommonWaypoint_0, AircraftSpeedCategory aircraftSpeedCategory_0, Position position_0, ref Position position_1, ref Position position_2, ref Position position_3) # { # bool flag # using (DlgCalculateWaypoint dlgCalculateWaypoint = new DlgCalculateWaypoint()) # { # dlgCalculateWaypoint.Text = string.Format("{0} {1}", Captions.CALCULATE, EnumHelper.smethod_0(rnavCommonWaypoint_0)) # dlgCalculateWaypoint.Type = rnavCommonWaypoint_0 # dlgCalculateWaypoint.Category = aircraftSpeedCategory_0 # dlgCalculateWaypoint.From = position_0 # dlgCalculateWaypoint.RwyThr = position_1 # dlgCalculateWaypoint.RwyEnd = position_2 # dlgCalculateWaypoint.Waypoint = position_3 # bool flag1 = dlgCalculateWaypoint.method_2(iwin32Window_0) == System.Windows.Forms.DialogResult.OK # position_1 = dlgCalculateWaypoint.RwyThr # position_2 = dlgCalculateWaypoint.RwyEnd # if (flag1) # { # position_3 = dlgCalculateWaypoint.Waypoint # } # flag = flag1 # } # return flag # } # }
class WindPanel(QFrame): def __init__(self, parent): QFrame.__init__(self, parent) # self.frame_WindIA = QFrame(parent) sizePolicy = QSizePolicy(QSizePolicy.Minimum, QSizePolicy.Preferred) sizePolicy.setHorizontalStretch(0) sizePolicy.setVerticalStretch(0) sizePolicy.setHeightForWidth(self.sizePolicy().hasHeightForWidth()) self.setSizePolicy(sizePolicy) self.setFrameShape(QFrame.StyledPanel) self.setFrameShadow(QFrame.Raised) self.setObjectName(("frame_WindIA")) self.horizontalLayout_32 = QHBoxLayout(self) self.horizontalLayout_32.setSpacing(0) self.horizontalLayout_32.setMargin(0) self.horizontalLayout_32.setObjectName(("horizontalLayout_32")) self.lblIA = QLabel(self) self.lblIA.setMinimumSize(QSize(140, 0)) self.lblIA.setMaximumSize(QSize(100, 16777215)) font = QFont() font.setFamily(("Arial")) font.setBold(False) font.setWeight(50) self.lblIA.setFont(font) self.lblIA.setObjectName(("lblIA")) self.horizontalLayout_32.addWidget(self.lblIA) self.comboBox = QComboBox(self) sizePolicy = QSizePolicy(QSizePolicy.Minimum, QSizePolicy.Fixed) sizePolicy.setHorizontalStretch(0) sizePolicy.setVerticalStretch(0) sizePolicy.setHeightForWidth( self.comboBox.sizePolicy().hasHeightForWidth()) self.comboBox.setSizePolicy(sizePolicy) self.comboBox.setMinimumSize(QSize(60, 0)) font = QFont() font.setFamily(("Arial")) font.setBold(False) font.setWeight(50) self.comboBox.setFont(font) self.comboBox.setObjectName(("comboBox")) self.horizontalLayout_32.addWidget(self.comboBox) self.speedBox = QLineEdit(self) sizePolicy = QSizePolicy(QSizePolicy.MinimumExpanding, QSizePolicy.Fixed) sizePolicy.setHorizontalStretch(0) sizePolicy.setVerticalStretch(0) sizePolicy.setHeightForWidth( self.speedBox.sizePolicy().hasHeightForWidth()) self.speedBox.setSizePolicy(sizePolicy) self.speedBox.setMinimumSize(QSize(70, 0)) self.speedBox.setMaximumSize(QSize(16777215, 16777215)) font = QFont() font.setFamily(("Arial")) font.setBold(False) font.setWeight(50) self.speedBox.setFont(font) self.speedBox.setObjectName(("speedBox")) self.horizontalLayout_32.addWidget(self.speedBox) self.altitude = Altitude.NaN() self.customValue = Speed(30).Knots self.comboBox.addItems(["ICAO", "UK", "Custom"]) self.comboBox.currentIndexChanged.connect(self.changeWindType) self.comboBox.setCurrentIndex(0) self.lblIA.setText("Wind (kts):") self.speedBox.setEnabled(False) def setAltitude(self, value): self.altitude = value self.method_5() # def getValue(self, SpeedUnits_0 = SpeedUnits.KTS): # return Speed(float(self.speedBox.text()), SpeedUnits_0) def method_3(self, altitude_0): altitude = Altitude(float(self.speedBox.text()), AltitudeUnits.FT) if (self.comboBox.currentIndex() != 0): return altitude return Altitude(altitude.Feet - altitude_0.Feet, AltitudeUnits.FT) def method_5(self): if self.comboBox.currentIndex() == 0: self.speedBox.setText( str(round(Speed.smethod_1(self.altitude).Knots, 1))) elif self.comboBox.currentIndex() == 1: self.speedBox.setText( str(round(Speed.smethod_2(self.altitude).Knots, 1))) else: self.speedBox.setText(str(self.customValue)) if self.comboBox.currentIndex() != 2: self.speedBox.setEnabled(False) else: self.speedBox.setEnabled(True) def changeWindType(self): self.method_5() def method_7(self, string_0): # object[] string0 = new object[] { string_0, this.captionLabel.Caption, this.speedBox.ToString(), this.comboBox.Items[this.comboBox.SelectedIndex] }; return "%s%s\t%s (%s)" % (string_0, "Wind: ", self.speedBox.text(), self.comboBox.currentText()) def get_speed(self): try: return Speed(float(self.speedBox.text())) except: return None Value = property(get_speed, None, None, None) def get_isEmpty(self): try: num = float(self.speedBox.text()) return False except: return True IsEmpty = property(get_isEmpty, None, None, None)
class HSKGui(QWidget): """ GUI to display flash cards and browse through them. The description of how this class works lies in the method on_browseButton_clicked() """ def __init__(self, parent=None, fname=None): super(HSKGui, self).__init__(parent) # main layout of the form is the verticallayout self.verticalLayout = QVBoxLayout() self.verticalLayout.setObjectName("verticalLayout") # main layout of the form is the verticallayout self.horizontalLayout = QHBoxLayout() self.horizontalLayout.setObjectName("horizontalLayout") self.charLayout = QHBoxLayout() self.charLayout.setObjectName("charLayout") # labels which will be used to display the score, the character, its # prononciation and its definition self.headerLabel = QLabel(self) self.scoreLabel = QLabel(self) self.numwordLabel = QLabel(self) self.numwordLabel.setText("#Words : 0") self.horizontalLayout.addWidget(self.headerLabel) self.horizontalLayout.addWidget(self.scoreLabel) self.horizontalLayout.addWidget(self.numwordLabel) self.charLabel = QLabel(self) self.charLabel.setFont(QFont("Helvetica", 45)) # checkbox used to say that we would like to set this character in our # favorite ones self.favBox = QCheckBox(self) self.charLayout.addWidget(self.charLabel) self.charLayout.addWidget(self.favBox) self.prononciationLabel = QLabel(self) self.prononciationLabel.setFont(QFont("Helvetica", 20)) self.defLabel = QLabel(self) self.defLabel.setFont(QFont("Helvetica", 15)) self.defLabel.setWordWrap(True) # sets all labels to empty strings self.clear_fields() # adding the labels to thelayout self.verticalLayout.addLayout(self.horizontalLayout) self.verticalLayout.addLayout(self.charLayout) self.verticalLayout.addWidget(self.prononciationLabel) self.verticalLayout.addWidget(self.defLabel) # button to interact with the user self.browseButton = QPushButton(parent=self) self.browseButton.setText("Start") self.assessButton = QPushButton(parent=self) self.assessButton.setText("Options...") self.verticalLayout.addWidget(self.browseButton) self.verticalLayout.addWidget(self.assessButton) self.setLayout(self.verticalLayout) # link the click of the buttons to the execution of a method self.connect(self.browseButton, SIGNAL( 'clicked()'), self.on_browseButton_clicked) self.connect(self.assessButton, SIGNAL( 'clicked()'), self.on_assessButton_clicked) self.load_voc_list(fname) # a variable to contain the word asked self.current_word = None # this variable value indicates at which stage of the question we are self.question_stage = ASK_WORD # these are the options availiable self.option_list = {"Save current session": self.save_learning, "Credits(disabled)": None, "Read the help(disabled)": None, "Reset the known voc": self.reset_voc_list, "Load another list": self.load_voc_list} # this is the number of word one went through during one session self.numword = 0 def load_voc_list(self, fname=None): """loads a vocabulary list from a user choosen location""" if fname == None: fname = str(QFileDialog.getOpenFileName( self, 'Load vocabulary list as', './')) if not fname == None: # a class responsible to browswe through a list of vocabulary self.browser = FlashCardBrowser(fname) # update the score prev_score = self.browser.calculate_score() self.change_score(*prev_score) # change the label of the header according to the filename self.headerLabel.setText(self.browser.get_fname()) # resets the number of words done during the session self.numword = 0 def reset_voc_list(self): """resets the number of known words to 0""" reply = QMessageBox.question( self, 'Message', "Do you want to reset your learning?", QMessageBox.Yes, QMessageBox.No) if reply == QMessageBox.Yes: self.browser.reset_word_learned() # update the score prev_score = self.browser.calculate_score() self.change_score(*prev_score) def increment_numword(self): """increment the number of words browsed""" self.numword = self.numword + 1 self.numwordLabel.setText("#Words : %i" % (self.numword)) def closeEvent(self, event): """when exiting the widget we are prompt with this question""" reply = QMessageBox.question( self, 'Message', "Do you want to save your learning?", QMessageBox.Yes, QMessageBox.No) if reply == QMessageBox.Yes: # save the learning of the words self.save_learning() event.accept() def clear_fields(self): """resets the label fields to empty""" self.charLabel.setText("") self.prononciationLabel.setText("") self.defLabel.setText("") def on_browseButton_clicked(self): """called upon interaction of the user with the browseButton""" if self.question_stage == ASK_WORD: self.clear_fields() # update the state of the favorite word box self.update_favBox(self.current_word, self.favBox.isChecked()) # picks a new word and displays only the character self.current_word = self.browser.word_picking() self.charLabel.setText(unicode("%s" % (self.current_word[ASK_WORD]),"utf8")) # update the state of the favorite word box self.update_favBox() # prepares the button to display the prononciation upon next click self.browseButton.setText("Show prononciation") self.question_stage = ASK_PRON elif self.question_stage == ASK_PRON: # displays the prononciation of the character self.prononciationLabel.setText(unicode("%s" % (self.current_word[ASK_PRON]),"utf8")) # prepares the button to display the definition upon next click self.browseButton.setText("Show definition") self.question_stage = ASK_DEF elif self.question_stage == ASK_DEF: # displays the definition of the character self.defLabel.setText(unicode("%s" % (self.current_word[ASK_DEF]),"utf8")) # prepares the buttons to ask the users whether they know the # character or not self.browseButton.setText("Don't Know") self.assessButton.setText("Know") self.question_stage = ASSESS elif self.question_stage == ASSESS: # The user clicked on "Don't Know" # prepares the buttons to ask the users to pick a new word self.browseButton.setText("Pick another word") self.assessButton.setText("Options...") self.question_stage = ASK_WORD self.increment_numword() def on_assessButton_clicked(self): """the button is alternatively "Know" or "Options..." """ if self.question_stage == ASSESS: # the user clicked on "Know", so we update the score of the word in # the voc list self.current_word[-2] = KNOWN_WORD new_score = self.browser.word_learning(self.current_word) self.change_score(*new_score) # prepares the buttons to ask the users to pick a new word self.browseButton.setText("Pick another word") self.assessButton.setText("Options...") self.question_stage = ASK_WORD self.increment_numword() else: # this button is then used as an option menu trigger item, ok = QInputDialog.getItem(self, self.trUtf8("Options"), self.trUtf8("Choose an option"), self.option_list.keys()) if ok: # execute the option from the list self.option_list[str(item)]() def change_score(self, known_num, tot_num): """update the label with the score""" self.scoreLabel.setText("Known words : %i/%i" % (known_num, tot_num)) def save_learning(self): """prompt the user to save the current session in a file""" fname = str(QFileDialog.getSaveFileName(self, 'Save as', './%s'%(os.path.basename(self.browser.fname)), "*.csv")) if fname: self.browser.save_voc_list(fname) else: self.browser.save_voc_list("Flash_card_backup.csv") def update_favBox(self, word=None, fav_state=None): """update the state of the checkbox""" if word == None: # there is no word for which to update status if self.current_word == None: # the current word is None (very first iteration) self.favBox.setChecked(False) elif len(self.current_word) == 7: # there is a fav column, so we update the favBox if self.current_word[6] == FAV_ID: self.favBox.setChecked(True) else: self.favBox.setChecked(False) else: # there is no fav column self.favBox.setChecked(False) else: # there is a word in the argument if not len(self.current_word) == 7: word = np.append(word, 0) if fav_state: word[6] = FAV_ID else: word[6] = NOT_FAV_ID if len(self.current_word) == 7: # #there is a fav column self.browser.add_fav_word(word) else: # there is no fav column self.browser.add_fav_word(word)
class QgsTextAnnotationDialog(QDialog): def __init__(self, item): QDialog.__init__(self) self.gridLayout = QGridLayout(self) self.gridLayout.setObjectName(("gridLayout")) self.horizontalLayout = QHBoxLayout() self.horizontalLayout.setObjectName(("horizontalLayout")) self.mFontComboBox = QFontComboBox(self) self.mFontComboBox.setObjectName(("mFontComboBox")) self.horizontalLayout.addWidget(self.mFontComboBox) spacerItem = QSpacerItem(38, 20, QSizePolicy.Expanding, QSizePolicy.Minimum) self.horizontalLayout.addItem(spacerItem) self.mFontSizeSpinBox = QSpinBox(self) self.mFontSizeSpinBox.setObjectName(("mFontSizeSpinBox")) self.horizontalLayout.addWidget(self.mFontSizeSpinBox) self.mBoldPushButton = QPushButton(self) self.mBoldPushButton.setMinimumSize(QSize(50, 0)) self.mBoldPushButton.setCheckable(True) self.mBoldPushButton.setObjectName(("mBoldPushButton")) self.horizontalLayout.addWidget(self.mBoldPushButton) self.mItalicsPushButton = QPushButton(self) self.mItalicsPushButton.setMinimumSize(QSize(50, 0)) self.mItalicsPushButton.setCheckable(True) self.mItalicsPushButton.setObjectName(("mItalicsPushButton")) self.horizontalLayout.addWidget(self.mItalicsPushButton) self.mFontColorButton = QgsColorButton(self) self.mFontColorButton.setText(("")) self.mFontColorButton.setAutoDefault(False) self.mFontColorButton.setObjectName(("mFontColorButton")) self.horizontalLayout.addWidget(self.mFontColorButton) self.gridLayout.addLayout(self.horizontalLayout, 0, 0, 1, 1) self.mButtonBox = QDialogButtonBox(self) self.mButtonBox.setOrientation(Qt.Horizontal) self.mButtonBox.setStandardButtons(QDialogButtonBox.Cancel|QDialogButtonBox.Ok) self.mButtonBox.setObjectName(("mButtonBox")) self.gridLayout.addWidget(self.mButtonBox, 3, 0, 1, 1) self.mTextEdit = QTextEdit(self) self.mTextEdit.setObjectName(("mTextEdit")) self.gridLayout.addWidget(self.mTextEdit, 1, 0, 1, 1) self.mStackedWidget = QStackedWidget(self) self.mStackedWidget.setObjectName(("mStackedWidget")) self.page = QWidget() self.page.setObjectName(("page")) self.mStackedWidget.addWidget(self.page) self.page_2 = QWidget() self.page_2.setObjectName(("page_2")) self.mStackedWidget.addWidget(self.page_2) self.gridLayout.addWidget(self.mStackedWidget, 2, 0, 1, 1) self.setLayout(self.gridLayout) self.mStackedWidget.setCurrentIndex(0) QObject.connect(self.mButtonBox, SIGNAL(("accepted()")), self.accept) QObject.connect(self.mButtonBox, SIGNAL(("rejected()")), self.reject) self.setTabOrder(self.mFontComboBox, self.mFontSizeSpinBox) self.setTabOrder(self.mFontSizeSpinBox, self.mBoldPushButton) self.setTabOrder(self.mBoldPushButton, self.mItalicsPushButton) self.setTabOrder(self.mItalicsPushButton, self.mFontColorButton) self.setTabOrder(self.mFontColorButton, self.mTextEdit) self.setTabOrder(self.mTextEdit, self.mButtonBox) self.setWindowTitle("Annotation text") self.mBoldPushButton.setText("B") self.mItalicsPushButton.setText("I") self.mTextDocument = None self.mItem = item self.mEmbeddedWidget = QgsAnnotationWidget(self, self.mItem ) self.mEmbeddedWidget.show() self.mStackedWidget.addWidget( self.mEmbeddedWidget ) self.mStackedWidget.setCurrentWidget( self.mEmbeddedWidget ) if ( self.mItem != None ): self.mTextDocument = self.mItem.document() self.mTextEdit.setDocument( self.mTextDocument ) self.mFontColorButton.setColorDialogTitle( "Select font color" ) self.mFontColorButton.setColorDialogOptions( QColorDialog.ShowAlphaChannel ) self.setCurrentFontPropertiesToGui() QObject.connect( self.mButtonBox, SIGNAL("accepted()"), self.applyTextToItem) # QObject.connect( self.mFontComboBox, SIGNAL( "currentFontChanged(QFont())"), self.changeCurrentFormat) self.mFontComboBox.currentFontChanged.connect(self.changeCurrentFormat) QObject.connect( self.mFontSizeSpinBox, SIGNAL( "valueChanged( int )" ), self.changeCurrentFormat ) QObject.connect( self.mBoldPushButton, SIGNAL( "toggled( bool )" ), self.changeCurrentFormat) QObject.connect( self.mItalicsPushButton, SIGNAL( "toggled( bool )" ), self.changeCurrentFormat) QObject.connect( self.mTextEdit, SIGNAL( "cursorPositionChanged()" ), self.setCurrentFontPropertiesToGui ) # QObject.connect( self.mButtonBox, SIGNAL( "accepted()" ), self.applySettingsToItem) deleteButton = QPushButton( "Delete" ) QObject.connect( deleteButton, SIGNAL( "clicked()" ), self.deleteItem ) self.mButtonBox.addButton( deleteButton, QDialogButtonBox.RejectRole ) def applyTextToItem(self): if ( self.mItem != None and self.mTextDocument !=None ): if ( self.mEmbeddedWidget != None): self.mEmbeddedWidget.apply() self.mItem.setDocument( self.mTextDocument ) self.mItem.update() def changeCurrentFormat(self): newFont = QFont() newFont.setFamily( self.mFontComboBox.currentFont().family() ) #bold if ( self.mBoldPushButton.isChecked() ): newFont.setBold( True ) else: newFont.setBold( False ) #italic if ( self.mItalicsPushButton.isChecked() ): newFont.setItalic( True ) else: newFont.setItalic( False ) #size newFont.setPointSize( self.mFontSizeSpinBox.value() ) self.mTextEdit.setCurrentFont( newFont ) #color self.mTextEdit.setTextColor( self.mFontColorButton.color() ) def on_mFontColorButton_colorChanged(self, color ): self.changeCurrentFormat() def setCurrentFontPropertiesToGui(self): self.blockAllSignals( True ) currentFont = self.mTextEdit.currentFont() self.mFontComboBox.setCurrentFont( currentFont ) self.mFontSizeSpinBox.setValue( currentFont.pointSize() ) self.mBoldPushButton.setChecked( currentFont.bold() ) self.mItalicsPushButton.setChecked( currentFont.italic() ) self.mFontColorButton.setColor( self.mTextEdit.textColor() ) self.blockAllSignals( False ) def blockAllSignals(self, block ): self.mFontComboBox.blockSignals( block ) self.mFontSizeSpinBox.blockSignals( block ) self.mBoldPushButton.blockSignals( block ) self.mItalicsPushButton.blockSignals( block ) self.mFontColorButton.blockSignals( block ) def deleteItem(self): scene = self.mItem.scene() if ( scene != None ): scene.removeItem( self.mItem ) self.mItem = None
class GroupBox(QGroupBox): def __init__(self, parent, layoutStyle="VL"): QGroupBox.__init__(self, parent) sizePolicy = QSizePolicy(QSizePolicy.Preferred, QSizePolicy.Fixed) sizePolicy.setHorizontalStretch(0) sizePolicy.setVerticalStretch(0) sizePolicy.setHeightForWidth(self.sizePolicy().hasHeightForWidth()) self.setSizePolicy(sizePolicy) self.layoutBoxPanel = None if layoutStyle == "VL": self.layoutBoxPanel = QVBoxLayout(self) self.layoutBoxPanel.setSpacing(6) self.layoutBoxPanel.setContentsMargins(6, 6, 6, 6) self.layoutBoxPanel.setObjectName(("layoutBoxPanel")) elif layoutStyle == "HL": self.layoutBoxPanel = QHBoxLayout(self) self.layoutBoxPanel.setSpacing(0) self.layoutBoxPanel.setContentsMargins(6, 6, 6, 6) self.layoutBoxPanel.setObjectName(("layoutBoxPanel")) self.setTitle("GroupBox") def get_Visible(self): return self.isVisible() def set_Visible(self, bool): self.setVisible(bool) Visible = property(get_Visible, set_Visible, None, None) def get_Title(self): return self.title() def set_Title(self, titleStr): self.setTitle(titleStr) Title = property(get_Title, set_Title, None, None) def set_Margin(self, left, top=None, right=None, bottom=None): try: if top == None: self.layoutBoxPanel.setMargin(left, left, left, left) return elif right == None: self.layoutBoxPanel.setMargin(left, top, left, top) return self.layoutBoxPanel.setMargin(left, top, right, bottom) except: str0 = "You must set the magin of frame with the int type." QMessageBox.warning(self, "Warning", str0) Margin = property(None, set_Margin, None, None) def set_Add(self, widget): self.layoutBoxPanel.addWidget(widget) Add = property(None, set_Add, None, None) def get_Enabled(self): return self.isEnabled() def set_Enabled(self, bool): self.setEnabled(bool) Enabled = property(get_Enabled, set_Enabled, None, None) def get_Caption(self): caption = self.title() return caption def set_Caption(self, captionStr): self.setTitle(captionStr) Caption = property(get_Caption, set_Caption, None, None)
class AltitudeBoxPanel(QWidget): def __init__(self, parent): QWidget.__init__(self, parent) while not isinstance(parent, QDialog): parent = parent.parent() self.setObjectName("AltitudeBoxPanel" + str(len(parent.findChildren(AltitudeBoxPanel)))) self.hLayoutBoxPanel = QHBoxLayout(self) self.hLayoutBoxPanel.setSpacing(0) self.hLayoutBoxPanel.setContentsMargins(0,0,0,0) self.hLayoutBoxPanel.setObjectName(("hLayoutBoxPanel")) self.frameBoxPanel = QFrame(self) sizePolicy = QSizePolicy(QSizePolicy.Fixed, QSizePolicy.Fixed) sizePolicy.setHorizontalStretch(0) sizePolicy.setVerticalStretch(0) sizePolicy.setHeightForWidth(self.frameBoxPanel.sizePolicy().hasHeightForWidth()) self.frameBoxPanel.setSizePolicy(sizePolicy) self.frameBoxPanel.setFrameShape(QFrame.NoFrame) self.frameBoxPanel.setFrameShadow(QFrame.Raised) self.frameBoxPanel.setObjectName(("frameBoxPanel")) self.hLayoutframeBoxPanel = QHBoxLayout(self.frameBoxPanel) self.hLayoutframeBoxPanel.setSpacing(0) self.hLayoutframeBoxPanel.setMargin(0) self.hLayoutframeBoxPanel.setObjectName(("hLayoutframeBoxPanel")) self.captionLabel = QLabel(self.frameBoxPanel) sizePolicy = QSizePolicy(QSizePolicy.Fixed, QSizePolicy.Fixed) sizePolicy.setHorizontalStretch(0) sizePolicy.setVerticalStretch(0) sizePolicy.setHeightForWidth(self.captionLabel.sizePolicy().hasHeightForWidth()) self.captionLabel.setSizePolicy(sizePolicy) self.captionLabel.setMinimumSize(QSize(200, 0)) self.captionLabel.setMaximumSize(QSize(200, 16777215)) font = QFont() font.setBold(False) font.setWeight(50) self.captionLabel.setFont(font) self.captionLabel.setObjectName(("captionLabel")) self.hLayoutframeBoxPanel.addWidget(self.captionLabel) self.frameBoxPanelIn = QFrame(self.frameBoxPanel) self.frameBoxPanelIn.setFrameShape(QFrame.StyledPanel) self.frameBoxPanelIn.setFrameShadow(QFrame.Raised) self.frameBoxPanelIn.setObjectName(("frameBoxPanelIn")) self.hLayoutframeBoxPanelIn = QHBoxLayout(self.frameBoxPanelIn) self.hLayoutframeBoxPanelIn.setSpacing(0) self.hLayoutframeBoxPanelIn.setMargin(0) self.hLayoutframeBoxPanelIn.setObjectName(("hLayoutframeBoxPanelIn")) self.txtAltitudeM = QLineEdit(self.frameBoxPanelIn) self.txtAltitudeM.setEnabled(True) font = QFont() font.setBold(False) font.setWeight(50) self.txtAltitudeM.setFont(font) self.txtAltitudeM.setObjectName(self.objectName() + "_txtAltitudeM") self.txtAltitudeM.setText("0.0") self.txtAltitudeM.setMinimumWidth(70) self.txtAltitudeM.setMaximumWidth(70) self.hLayoutframeBoxPanelIn.addWidget(self.txtAltitudeM) labelM = QLabel(self.frameBoxPanelIn) labelM.setObjectName(("labelM")) labelM.setText(" m ") self.hLayoutframeBoxPanelIn.addWidget(labelM) self.txtAltitudeFt = QLineEdit(self.frameBoxPanelIn) self.txtAltitudeFt.setEnabled(True) font = QFont() font.setBold(False) font.setWeight(50) self.txtAltitudeFt.setFont(font) self.txtAltitudeFt.setObjectName(self.objectName() + "_txtAltitudeFt") self.txtAltitudeFt.setText("0.0") self.txtAltitudeFt.setMinimumWidth(70) self.txtAltitudeFt.setMaximumWidth(70) self.hLayoutframeBoxPanelIn.addWidget(self.txtAltitudeFt) labelFt = QLabel(self.frameBoxPanelIn) labelFt.setObjectName(("labelFt")) labelFt.setText(" ft") self.hLayoutframeBoxPanelIn.addWidget(labelFt) self.hLayoutframeBoxPanel.addWidget(self.frameBoxPanelIn) self.hLayoutBoxPanel.addWidget(self.frameBoxPanel) spacerItem = QSpacerItem(10,10,QSizePolicy.Expanding, QSizePolicy.Minimum) self.hLayoutBoxPanel.addItem(spacerItem) self.txtAltitudeM.textChanged.connect(self.txtAltitudeMChanged) self.txtAltitudeFt.textChanged.connect(self.txtAltitudeFtChanged) self.txtAltitudeM.editingFinished.connect(self.txtAltitude_returnPressed) self.txtAltitudeFt.editingFinished.connect(self.txtAltitude_returnPressed) self.value = 0.0 self.captionUnits = "m" self.OriginalUnits = "m" self.flag = 0 self.txtAltitudeM.setText("0.0") def mouseMoveEvent(self, mouseEvent): pt = mouseEvent.pos() c = self.childAt(pt) pass def method_8(self, string_0): if self.CaptionUnits == "m": return "%s%s\t%s %s"%(string_0, self.Caption, self.txtAltitudeM, self.CaptionUnits); else: return "%s%s\t%s %s"%(string_0, self.Caption, self.txtAltitudeFt, self.CaptionUnits); def txtAltitude_returnPressed(self): self.emit(SIGNAL("editingFinished"), self) def txtAltitudeFtChanged(self): try: test = float(self.txtAltitudeFt.text()) if self.flag==0: self.flag=1; if self.flag==2: self.flag=0; if self.flag==1: try: self.txtAltitudeM.setText(str(round(Unit.ConvertFeetToMeter(float(self.txtAltitudeFt.text())), 4))) except: self.txtAltitudeM.setText("0.0") self.emit(SIGNAL("Event_0"), self) except: str0 = "You must input the float type in \"%s\"."%(self.Caption) QMessageBox.warning(self, "Warning" , str0) self.txtAltitudeM.setText("0.0") def txtAltitudeMChanged(self): try: test = float(self.txtAltitudeM.text()) if self.flag==0: self.flag=2; if self.flag==1: self.flag=0; if self.flag==2: try: self.txtAltitudeFt.setText(str(round(Unit.ConvertMeterToFeet(float(self.txtAltitudeM.text())), 4))) except: self.txtAltitudeFt.setText("0.0") self.emit(SIGNAL("Event_0"), self) except: str0 = "You must input the float type in \"%s\"."%(self.Caption) QMessageBox.warning(self, "Warning" , str0) self.txtAltitudeFt.setText("0.0") def get_CaptionUnits(self): return self.captionUnits def set_CaptionUnits(self, captionUnits): self.captionUnits = captionUnits self.OriginalUnits = captionUnits CaptionUnits = property(get_CaptionUnits, set_CaptionUnits, None, None) def get_Caption(self): caption = self.captionLabel.text() val = caption.left(caption.length() - 1) return val def set_Caption(self, captionStr): self.captionLabel.setText(captionStr + ":") Caption = property(get_Caption, set_Caption, None, None) def get_Visible(self): return self.isVisible() def set_Visible(self, bool): self.setVisible(bool) Visible = property(get_Visible, set_Visible, None, None) def get_Value(self): try: return Altitude(float(self.txtAltitudeM.text())) except: return Altitude(0.0) def set_Value(self, altitude): if altitude == None: self.txtAltitudeM.setText(str("0.0")) return if isinstance(altitude, Altitude): if self.CaptionUnits == "m": self.txtAltitudeM.setText(str(round(altitude.Metres, 4))) else: self.txtAltitudeFt.setText(str(round(altitude.Feet, 4))) else: str0 = "You must input the type \"Altitude\" in \"%s\"."%(self.Caption) QMessageBox.warning(self, "Warning" , str0) self.txtAltitudeM.setText("0.0") Value = property(get_Value, set_Value, None, None) def get_IsEmpty(self): return self.txtAltitudeM.text() == "" or self.txtAltitudeM.text() == None IsEmpty = property(get_IsEmpty, None, None, None) def set_LabelWidth(self, width): self.captionLabel.setMinimumSize(QSize(width, 0)) self.captionLabel.setMaximumSize(QSize(width, 16777215)) LabelWidth = property(None, set_LabelWidth, None, None) def get_ReadOnly(self): return self.txtAltitudeM.isReadOnly() def set_ReadOnly(self, bool): self.txtAltitudeM.setReadOnly(bool) self.txtAltitudeFt.setReadOnly(bool) ReadOnly = property(get_ReadOnly, set_ReadOnly, None, None) def get_Enabled(self): return self.txtAltitudeM.isEnabled() def set_Enabled(self, bool): self.txtAltitudeM.setEnabled(bool) self.txtAltitudeFt.setEnabled(bool) Enabled = property(get_Enabled, set_Enabled, None, None)
class DegreesBoxPanel(QWidget): def __init__(self, parent , boxType = None): QWidget.__init__(self, parent) while not isinstance(parent, QDialog): parent = parent.parent() self.setObjectName("DegreesBoxPanel" + str(len(parent.findChildren(DegreesBoxPanel)))) self.hLayoutDegreesBoxPanel = QHBoxLayout(self) self.hLayoutDegreesBoxPanel.setSpacing(0) self.hLayoutDegreesBoxPanel.setContentsMargins(0,0,0,0) self.hLayoutDegreesBoxPanel.setObjectName(("hLayoutDegreesBoxPanel")) self.frameDegreesBoxPanel = QFrame(self) sizePolicy = QSizePolicy(QSizePolicy.Fixed, QSizePolicy.Fixed) sizePolicy.setHorizontalStretch(0) sizePolicy.setVerticalStretch(0) sizePolicy.setHeightForWidth(self.frameDegreesBoxPanel.sizePolicy().hasHeightForWidth()) self.frameDegreesBoxPanel.setSizePolicy(sizePolicy) self.frameDegreesBoxPanel.setFrameShape(QFrame.NoFrame) self.frameDegreesBoxPanel.setFrameShadow(QFrame.Raised) self.frameDegreesBoxPanel.setObjectName(("frameDegreesBoxPanel")) self.hLayoutFrameDegreesBoxPanel = QHBoxLayout(self.frameDegreesBoxPanel) self.hLayoutFrameDegreesBoxPanel.setSpacing(0) self.hLayoutFrameDegreesBoxPanel.setMargin(0) self.hLayoutFrameDegreesBoxPanel.setObjectName(("hLayoutFrameDegreesBoxPanel")) self.captionLabel = QLabel(self.frameDegreesBoxPanel) sizePolicy = QSizePolicy(QSizePolicy.Fixed, QSizePolicy.Fixed) sizePolicy.setHorizontalStretch(0) sizePolicy.setVerticalStretch(0) sizePolicy.setHeightForWidth(self.captionLabel.sizePolicy().hasHeightForWidth()) self.captionLabel.setSizePolicy(sizePolicy) self.captionLabel.setMinimumSize(QSize(200, 0)) self.captionLabel.setMaximumSize(QSize(200, 16777215)) font = QFont() font.setBold(False) font.setWeight(50) self.captionLabel.setFont(font) self.captionLabel.setObjectName(("captionLabel")) self.hLayoutFrameDegreesBoxPanel.addWidget(self.captionLabel) self.frameDegreesBoxPanelIn = QFrame(self.frameDegreesBoxPanel) self.frameDegreesBoxPanelIn.setFrameShape(QFrame.StyledPanel) self.frameDegreesBoxPanelIn.setFrameShadow(QFrame.Raised) self.frameDegreesBoxPanelIn.setObjectName(("frameDegreesBoxPanelIn")) self.hLayoutFrameDegreesBoxPanelIn = QHBoxLayout(self.frameDegreesBoxPanelIn) self.hLayoutFrameDegreesBoxPanelIn.setSpacing(0) self.hLayoutFrameDegreesBoxPanelIn.setMargin(0) self.hLayoutFrameDegreesBoxPanelIn.setObjectName(("hLayoutFrameDegreesBoxPanelIn")) self.txtDegreeBox = QLineEdit(self.frameDegreesBoxPanelIn) self.txtDegreeBox.setEnabled(True) font = QFont() font.setBold(False) font.setWeight(50) self.txtDegreeBox.setFont(font) self.txtDegreeBox.setObjectName(self.objectName() + "_txtDegreeBox") self.txtDegreeBox.setText("0.0") self.txtDegreeBox.setMinimumWidth(70) self.txtDegreeBox.setMaximumWidth(70) self.hLayoutFrameDegreesBoxPanelIn.addWidget(self.txtDegreeBox) self.btnDegreeBoxPanel = QToolButton(self.frameDegreesBoxPanelIn) self.btnDegreeBoxPanel.setText(("")) icon = QIcon() icon.addPixmap(QPixmap(("Resource/Calculator.bmp")), QIcon.Normal, QIcon.Off) self.btnDegreeBoxPanel.setIcon(icon) self.btnDegreeBoxPanel.setObjectName(("btnDegreeBoxPanel")) self.hLayoutFrameDegreesBoxPanelIn.addWidget(self.btnDegreeBoxPanel) self.hLayoutFrameDegreesBoxPanel.addWidget(self.frameDegreesBoxPanelIn) self.hLayoutDegreesBoxPanel.addWidget(self.frameDegreesBoxPanel) spacerItem = QSpacerItem(10,10,QSizePolicy.Expanding, QSizePolicy.Minimum) self.hLayoutDegreesBoxPanel.addItem(spacerItem) self.btnDegreeBoxPanel.clicked.connect(self.btnDegreeBoxPanel_clicked) self.txtDegreeBox.textChanged.connect(self.txtDegreeBox_textChanged) self.boxType = boxType self.value = 0.0 def txtDegreeBox_textChanged(self): try: test = float(self.txtDegreeBox.text()) self.emit(SIGNAL("txtDegreeBox_textChanged"), self) except: str0 = "You must input the float type in \"%s\"."%(self.Caption) QMessageBox.warning(self, "Warning" , str0) self.txtDegreeBox.setText("0.0") def btnDegreeBoxPanel_clicked(self): self.emit(SIGNAL("btnDegreeBoxPanel_clicked"), self) def btnDegreeBoxPanel_visible(self, bool): self.btnDegreeBoxPanel.setVisible(bool) ButtonVisible = property(None, btnDegreeBoxPanel_visible, None, None) def get_Value(self): try: return float(self.txtDegreeBox.text()) except: return 0.0 def set_Value(self, value): self.txtDegreeBox.setText(str(value)) Value = property(get_Value, set_Value, None, None) # def set_Enabled(self, bool): # self.txtDegreeBox.setEnabled(bool) # Enabled = property(None, set_Enabled, None, None) def set_CaptionLabel(self, labelString): self.captionLabel.setText(labelString + ":") CaptionLabel = property(None, set_CaptionLabel, None, None) def set_LabelWidth(self, width): self.captionLabel.setMinimumSize(QSize(width, 0)) self.captionLabel.setMaximumSize(QSize(width, 16777215)) LabelWidth = property(None, set_LabelWidth, None, None) def get_ReadOnly(self): return self.txtDegreeBox.isReadOnly() def set_ReadOnly(self, bool): self.txtDegreeBox.setReadOnly(bool) ReadOnly = property(get_ReadOnly, set_ReadOnly, None, None) def get_Enabled(self): return self.txtDegreeBox.isEnabled() def set_Enabled(self, bool): self.txtDegreeBox.setEnabled(bool) Enabled = property(get_Enabled, set_Enabled, None, None)
def toolTypeSelected(self, index): #print "Got a new selection" #print self.comboBox.itemText(index) self.typeSelection = str(self.comboBox.itemText(index)) for testw in self.test_widget: self.vboxlayout.removeWidget(testw) testw.hide() self.tooltypearray = [] self.test_widget = [] self.test_text = [] self.test_line = [] # The tool_config will always have tool_config name self.tooltypearray.append(["Tool Config Name","tool_config",""]) # Now look up the selected connection type and present to the user... # First we start at the tool_library tool_name = str(self.typeSelection) tool_node = self.tool_nodes[tool_name] for param_node in tool_node.find('params'): type_val = param_node.get('param_type') default_val = param_node.text or '' self.tooltypearray.append([param_node.get('name'), type_val, default_val]) for i, param in enumerate(self.tooltypearray): # print "Key: %s , Val: %s" % (param[0],param[1]) paramName = str(param[0] or '').strip() type_val = str(param[1] or '').strip() default_val = str(param[2] or '').strip() if (i==0): widgetTemp = QFrame(self.variableBox) widgetTemp.setFrameStyle(QFrame.Panel | QFrame.Raised) widgetTemp.setLineWidth(2) else: widgetTemp = QWidget(self.variableBox) widgetTemp.setObjectName(QString("test_widget").append(QString(i))) self.test_widget.append(widgetTemp) hlayout = QHBoxLayout(widgetTemp) self.hboxlayout.append(hlayout) hlayout.setMargin(4) hlayout.setSpacing(4) hlayout.setObjectName(QString("hboxlayout").append(QString(i))) test_text = QLabel(widgetTemp) self.test_text.append(test_text) test_text.setObjectName(QString("test_text").append(QString(i))) if type_val == "Required": palette = test_text.palette() palette.setColor(QPalette.WindowText,Qt.red) test_text.setPalette(palette) test_text.setText(paramName) test_text_type = QLabel(widgetTemp) self.test_text_type.append(test_text_type) test_text_type.setObjectName(QString("test_text_type").append(QString(i))) paramName = type_val test_text_type.setText(QString("(").append(paramName).append(QString(")"))) hlayout.addWidget(test_text) hlayout.addWidget(test_text_type) if type_val == 'db_connection_hook': test_line = QComboBox(widgetTemp) db_connection_choices = get_db_connection_names() for i in db_connection_choices: test_line.addItem(QString(i)) self.test_line.append(test_line) test_line.setEnabled(True) test_line.setMinimumSize(QSize(200,0)) test_line.setObjectName(QString("test_line").append(QString(i))) else: test_line = QLineEdit(widgetTemp) self.test_line.append(test_line) test_line.setEnabled(True) test_line.setMinimumSize(QSize(200,0)) test_line.setObjectName(QString("test_line").append(QString(i))) # test_line = QLineEdit(widgetTemp) # self.test_line.append(test_line) # test_line.setEnabled(True) # test_line.setMinimumSize(QSize(200,0)) # test_line.setObjectName(QString("test_line").append(QString(i))) # test_line.setText(QString("")) hlayout.addWidget(test_line) self.vboxlayout.addWidget(widgetTemp)
class ComboBoxPanel(QWidget): def __init__(self, parent, editable=False, spacerItemMove=False): QWidget.__init__(self, parent) while not isinstance(parent, QDialog): parent = parent.parent() self.setObjectName("ComboBoxPanel" + str(len(parent.findChildren(ComboBoxPanel)))) self.hLayoutBoxPanel = QHBoxLayout(self) self.hLayoutBoxPanel.setSpacing(0) self.hLayoutBoxPanel.setContentsMargins(0, 0, 0, 0) self.hLayoutBoxPanel.setObjectName(("hLayoutBoxPanel")) self.frameBoxPanel = QFrame(self) sizePolicy = QSizePolicy(QSizePolicy.Preferred, QSizePolicy.Fixed) sizePolicy.setHorizontalStretch(0) sizePolicy.setVerticalStretch(0) sizePolicy.setHeightForWidth( self.frameBoxPanel.sizePolicy().hasHeightForWidth()) self.frameBoxPanel.setSizePolicy(sizePolicy) self.frameBoxPanel.setFrameShape(QFrame.NoFrame) self.frameBoxPanel.setFrameShadow(QFrame.Raised) self.frameBoxPanel.setObjectName(("frameBoxPanel")) self.hLayoutframeBoxPanel = QHBoxLayout(self.frameBoxPanel) self.hLayoutframeBoxPanel.setSpacing(0) self.hLayoutframeBoxPanel.setMargin(0) self.hLayoutframeBoxPanel.setObjectName(("hLayoutframeBoxPanel")) self.captionLabel = QLabel(self.frameBoxPanel) sizePolicy = QSizePolicy(QSizePolicy.Fixed, QSizePolicy.Fixed) sizePolicy.setHorizontalStretch(0) sizePolicy.setVerticalStretch(0) sizePolicy.setHeightForWidth( self.captionLabel.sizePolicy().hasHeightForWidth()) self.captionLabel.setSizePolicy(sizePolicy) self.captionLabel.setMinimumSize(QSize(200, 0)) self.captionLabel.setMaximumSize(QSize(200, 16777215)) font = QFont() font.setBold(False) font.setWeight(50) self.captionLabel.setFont(font) self.captionLabel.setObjectName(("captionLabel")) self.hLayoutframeBoxPanel.addWidget(self.captionLabel) self.comboBox = QComboBox(self.frameBoxPanel) self.comboBox.setEnabled(True) font = QFont() font.setBold(False) font.setWeight(50) self.comboBox.setFont(font) self.comboBox.setObjectName(self.objectName() + "_comboBox") self.comboBox.setMinimumWidth(70) # self.comboBox.setMaximumWidth(70) # self.hLayoutframeBoxPanel.addWidget(self.lineEdit) self.hLayoutframeBoxPanel.addWidget(self.comboBox) self.imageButton = QToolButton(self.frameBoxPanel) self.imageButton.setText(("")) icon = QIcon() icon.addPixmap(QPixmap(("Resource/convex_hull.png")), QIcon.Normal, QIcon.Off) self.imageButton.setIcon(icon) self.imageButton.setObjectName(("imageButton")) self.imageButton.setVisible(False) self.hLayoutframeBoxPanel.addWidget(self.imageButton) self.hLayoutBoxPanel.addWidget(self.frameBoxPanel) if not spacerItemMove: spacerItem = QSpacerItem(10, 10, QSizePolicy.Expanding, QSizePolicy.Minimum) self.hLayoutBoxPanel.addItem(spacerItem) self.comboBox.currentIndexChanged.connect(self.comboBoxChanged) # self.comboBox.editTextChanged.connect(self.comboBoxEditTextChanged) self.imageButton.clicked.connect(self.imageButtonClicked) self.captionUnits = "" self.hasObject = False self.objectList = [] if editable == True: self.lineEdit = QLineEdit(self.frameBoxPanel) self.lineEdit.setObjectName("lineEdit") self.hLayoutframeBoxPanel.insertWidget(1, self.lineEdit) self.comboBox.setLineEdit(self.lineEdit) self.lineEdit.returnPressed.connect(self.comboBoxEditTextChanged) def FindString(self, string): return self.comboBox.findText(string) def comboBoxEditTextChanged(self): self.comboBox.showPopup() def get_Count(self): return self.comboBox.count() Count = property(get_Count, None, None, None) def method_0(self): return self.comboBox.currentIndex( ) >= 0 and self.SelectedItem != None and self.SelectedItem != "" def method_3(self, string_0): return self.comboBox.findText(string_0) def method_11(self, string_0): if (self.IsEmpty): return "%s%s\t" % (string_0, self.Caption) return "%s%s\t%s %s" % (string_0, self.Caption, self.Value, self.CaptionUnits) def comboBoxChanged(self): self.emit(SIGNAL("Event_0"), self) def IndexOf(self, item): if isinstance(item, str) or isinstance(item, QString): return self.comboBox.findText(item) else: return self.comboBox.findText(item.ToString()) def Contains(self, item): compStr = None if isinstance(item, str): compStr = item elif isinstance(item, float) or isinstance(item, int): compStr = str(item) else: compStr = item.ToString() for i in range(self.comboBox.count()): comboItemstr = self.comboBox.itemText(i) if compStr == comboItemstr: return True return False def Clear(self): self.comboBox.clear() self.objectList = [] self.hasObject = False def Add(self, item): if not isinstance(item, str) and not isinstance(item, QString): self.comboBox.addItem(item.ToString()) self.objectList.append(item) self.hasObject = True return self.comboBox.addItem(item) self.hasObject = False def Insert(self, index, item): if not isinstance(item, str) and not isinstance(item, QString): self.comboBox.insertItem(index, item.ToString()) self.objectList.insert(index, item) self.hasObject = True return self.comboBox.insertItem(index, item) self.hasObject = False def imageButtonClicked(self): self.emit(SIGNAL("Event_3"), self) def get_Caption(self): caption = self.captionLabel.text() findIndex = caption.indexOf("(") if findIndex > 0: val = caption.left(findIndex) return val return caption def set_Caption(self, captionStr): if captionStr == "": self.captionLabel.setText("") self.LabelWidth = 0 return if self.CaptionUnits != "" and self.CaptionUnits != None: self.captionLabel.setText(captionStr + "(" + QString(self.CaptionUnits) + ")" + ":") else: self.captionLabel.setText(captionStr + ":") Caption = property(get_Caption, set_Caption, None, None) def get_CaptionUnits(self): return self.captionUnits def set_CaptionUnits(self, captionUnits): self.captionUnits = captionUnits CaptionUnits = property(get_CaptionUnits, set_CaptionUnits, None, None) def set_ButtonVisible(self, bool): self.imageButton.setVisible(bool) ButtonVisible = property(None, set_ButtonVisible, None, None) # def get_Value(self): # return self.comboBox.currentIndex() # def set_Value(self, value): # try: # self.comboBox.setCurrentIndex(value) # except: # self.textBox.setText("") # Value = property(get_Value, set_Value, None, None) def get_IsEmpty(self): return self.comboBox.currentText() == "" or self.comboBox.currentIndex( ) == -1 IsEmpty = property(get_IsEmpty, None, None, None) def get_ReadOnly(self): return self.textBox.isReadOnly() # def set_ReadOnly(self, bool): # self.comboBox.setR.setReadOnly(bool) # ReadOnly = property(get_ReadOnly, set_ReadOnly, None, None) def set_LabelWidth(self, width): self.captionLabel.setMinimumSize(QSize(width, 0)) self.captionLabel.setMaximumSize(QSize(width, 16777215)) LabelWidth = property(None, set_LabelWidth, None, None) def set_Width(self, width): self.comboBox.setMinimumSize(QSize(width, 0)) self.comboBox.setMaximumSize(QSize(width, 16777215)) Width = property(None, set_Width, None, None) def set_Button(self, imageName): if imageName == None or imageName == "": self.imageButton.setVisible(False) return icon = QIcon() icon.addPixmap(QPixmap(("Resource/" + imageName)), QIcon.Normal, QIcon.Off) self.imageButton.setIcon(icon) self.imageButton.setVisible(True) Button = property(None, set_Button, None, None) def get_SelectedIndex(self): return self.comboBox.currentIndex() def set_SelectedIndex(self, index): if self.comboBox.count() == 0: return if index > self.comboBox.count() - 1: self.comboBox.setCurrentIndex(0) else: self.comboBox.setCurrentIndex(index) SelectedIndex = property(get_SelectedIndex, set_SelectedIndex, None, None) def get_Value(self): return self.comboBox.currentIndex() def set_Value(self, valueStr): if self.comboBox.count() == 0: return if valueStr == None: self.SelectedIndex = -1 return self.comboBox.setCurrentIndex(self.comboBox.findText(str(valueStr))) Value = property(get_Value, set_Value, None, None) def get_Items(self): # if self.hasObject: # return self.objectList itemList = [] if self.comboBox.count() > 0: for i in range(self.comboBox.count()): itemList.append(self.comboBox.itemText(i)) return itemList def set_AddItems(self, strList): self.Clear() if len(strList) != 0 and (not isinstance(strList[0], str) and not isinstance(strList[0], QString)): for obj in strList: self.comboBox.addItem(obj.ToString()) self.objectList.append(obj) self.hasObject = True return self.comboBox.addItems(strList) Items = property(get_Items, set_AddItems, None, None) def get_Enabled(self): return self.comboBox.isEnabled() def set_Enabled(self, bool): self.comboBox.setEnabled(bool) Enabled = property(get_Enabled, set_Enabled, None, None) def get_Visible(self): return self.isVisible() def set_Visible(self, bool): self.setVisible(bool) Visible = property(get_Visible, set_Visible, None, None) def get_Editable(self): return self.comboBox.isEditable() def set_Editable(self, bool): self.comboBox.setEditable(bool) Editable = property(get_Editable, set_Editable, None, None) def get_SelectedItem(self): if self.comboBox.count() == 0: return None if self.hasObject: return self.objectList[self.SelectedIndex] return self.comboBox.currentText() def set_SelectedItem(self, val): index = self.comboBox.findText(val) self.comboBox.setCurrentIndex(index) SelectedItem = property(get_SelectedItem, set_SelectedItem, None, None)
class EkdProgress(QDialog) : """EkdProgress est une boite de dialog contenant l'état de la progression de chaque processus""" def __init__(self, parent=None, totfile=0): super(EkdProgress, self).__init__(parent) self.setupUi(self) self.barProgress.setMaximum(totfile) self.fermer.setEnabled(False) self.totframe=totfile self.value = 0 self.connect(self.fermer,SIGNAL("clicked()"),self.tmpclose) def upProgress(self) : self.value += 1 self.barProgress.setValue(self.value) def addText(self, text) : self.infoText.append(QString(text)) def tmpclose(self) : self.emit(SIGNAL("cleantmp")) self.close() def setupUi(self, showprogress): showprogress.setObjectName("showprogress") showprogress.resize(335, 310) self.verticalLayout = QVBoxLayout(showprogress) self.verticalLayout.setObjectName("verticalLayout") self.barProgress = QProgressBar(showprogress) self.barProgress.setProperty("value", QVariant(0)) self.barProgress.setObjectName("barProgress") self.verticalLayout.addWidget(self.barProgress) self.infoText = QTextEdit(showprogress) palette = QPalette() brush = QBrush(QColor(255, 255, 255)) brush.setStyle(Qt.SolidPattern) palette.setBrush(QPalette.Active, QPalette.Text, brush) brush = QBrush(QColor(0, 0, 0)) brush.setStyle(Qt.SolidPattern) palette.setBrush(QPalette.Active, QPalette.Base, brush) brush = QBrush(QColor(255, 255, 255)) brush.setStyle(Qt.SolidPattern) palette.setBrush(QPalette.Inactive, QPalette.Text, brush) brush = QBrush(QColor(0, 0, 0)) brush.setStyle(Qt.SolidPattern) palette.setBrush(QPalette.Inactive, QPalette.Base, brush) brush = QBrush(QColor(126, 125, 124)) brush.setStyle(Qt.SolidPattern) palette.setBrush(QPalette.Disabled, QPalette.Text, brush) brush = QBrush(QColor(255, 255, 255)) brush.setStyle(Qt.SolidPattern) palette.setBrush(QPalette.Disabled, QPalette.Base, brush) self.infoText.setPalette(palette) self.infoText.setObjectName("infoText") self.verticalLayout.addWidget(self.infoText) self.horizontalLayout = QHBoxLayout() self.horizontalLayout.setObjectName("horizontalLayout") spacerItem = QSpacerItem(40, 20, QSizePolicy.Expanding, QSizePolicy.Minimum) self.horizontalLayout.addItem(spacerItem) self.fermer = QPushButton(showprogress) self.fermer.setObjectName("fermer") self.horizontalLayout.addWidget(self.fermer) self.verticalLayout.addLayout(self.horizontalLayout) self.retranslateUi(showprogress) QMetaObject.connectSlotsByName(showprogress) def retranslateUi(self, showprogress): showprogress.setWindowTitle(_(u"Progression")) self.barProgress.setToolTip(_(u"Progression de l\'encodage")) self.infoText.setToolTip(_(u"Messages")) self.fermer.setToolTip(_(u"Fermer la fenêtre")) self.fermer.setText(_(u"Fermer"))
class previewDlg(QMainWindow): ''' classdocs ''' def __init__(self, parent, comp, basePMCheck, model): ''' Constructor ''' QMainWindow.__init__(self, parent) self.basePMCheck = basePMCheck # self.ui = Ui_Previewself.grbPageProperty() # self.ui.setupUi(self) self.resize(1000, 700) self.setWindowTitle("Preview Dialog") self.view = QgsComposerView(self) viewLayout = QGridLayout() viewLayout.setSpacing(0) viewLayout.setMargin(0) mHorizontalRuler = QgsComposerRuler(QgsComposerRuler.Horizontal) mVerticalRuler = QgsComposerRuler(QgsComposerRuler.Vertical) mRulerLayoutFix = QWidget() mRulerLayoutFix.setAttribute(Qt.WA_NoMousePropagation) mRulerLayoutFix.setBackgroundRole(QPalette.Window) mRulerLayoutFix.setFixedSize(mVerticalRuler.rulerSize(), mHorizontalRuler.rulerSize()) viewLayout.addWidget(mRulerLayoutFix, 0, 0) viewLayout.addWidget(mHorizontalRuler, 0, 1) viewLayout.addWidget(mVerticalRuler, 1, 0) self.view.setContentsMargins(0, 0, 0, 0) self.view.setHorizontalRuler(mHorizontalRuler) self.view.setVerticalRuler(mVerticalRuler) viewLayout.addWidget(self.view, 1, 1) # self.scene = comp self.view.setZoomLevel(1.0) self.view.setComposition(comp) self.scene = self.view.composition() layout = QVBoxLayout() hLayout = QHBoxLayout() hLayout.addLayout(viewLayout) self.mapItem = self.scene.getComposerMapById(0) self.view.scale(2.8, 2.8) self.view.setPreviewModeEnabled(True) self.toolBarAction = self.addToolBar("composer action") self.actionMapRefresh = QAction(self) self.actionMapRefresh.setObjectName("actionMapRefresh") icon3 = QIcon("Resource/Refresh.png") self.actionMapRefresh.setIcon(icon3) self.actionMapRefresh.setToolTip("Refresh") # self.textItemAction.setCheckable(True) self.connect(self.actionMapRefresh, SIGNAL("triggered()"), self.actionMapRefresh_triggered) self.toolBarAction.addAction(self.actionMapRefresh) # # self.templeteCreateAction = QAction(self) # # self.templeteCreateAction.setObjectName("createTempleteAction") # # icon4 = QIcon("Resource\\templetepointer.png") # # self.templeteCreateAction.setIcon(icon4) # # self.templeteCreateAction.setToolTip("Create Templete") # # self.templeteCreateAction.setCheckable(True) # # self.connect(self.templeteCreateAction, SIGNAL("triggered()"), self.createTempleteAction) # # self.toolBar.addAction(self.templeteCreateAction) # layout.insertWidget(0, self.toolBar) # self.scene.selectedItemChanged.connect(self.selectedItemDisplay) self.view.selectedItemChanged.connect(self.selectedItemDisplay) self.view.cursorPosChanged.connect(self.cursorPosChangedEvent) # self.connect(self.view, SIGNAL("selectedItemChanged(QgsComposerItem)"),self, SLOT("selectedItemDisplay(QgsComposerItem)")) # self.scene.composerLabelAdded.connect(self.composerLabelAddedEvent) self.view.itemRemoved.connect(self.deleteItem) # self.connect( self.view, SIGNAL( "actionFinished()" ), self.setSelectionTool) #listen out for position updates from the QgsComposerView self.propertyWidget = QWidget(self) hLayout.addWidget(self.propertyWidget) self.propertyWidget.setObjectName("propertyWidget") self.propertyWidget.resize(222, 302) self.vLayout_3 = QVBoxLayout(self.propertyWidget) self.vLayout_3.setObjectName("vLayout_3") self.groupBox = QGroupBox(self.propertyWidget) self.groupBox.setObjectName("groupBox") self.horizontalLayout_2 = QHBoxLayout(self.groupBox) self.horizontalLayout_2.setObjectName("horizontalLayout_2") self.frame = QFrame(self.groupBox) self.frame.setFrameShape(QFrame.StyledPanel) self.frame.setFrameShadow(QFrame.Raised) self.frame.setObjectName("frame") self.verticalLayout = QVBoxLayout(self.frame) self.verticalLayout.setObjectName("verticalLayout") self.label = QLabel(self.frame) self.label.setObjectName("label") self.verticalLayout.addWidget(self.label) self.labelText = QPlainTextEdit(self.frame) self.labelText.setObjectName("labelText") self.verticalLayout.addWidget(self.labelText) self.btnLabelFont = QPushButton(self.frame) self.btnLabelFont.setObjectName("btnLabelFont") self.verticalLayout.addWidget(self.btnLabelFont) self.btnLabelColor = QPushButton(self.frame) self.btnLabelColor.setObjectName("btnLabelColor") self.verticalLayout.addWidget(self.btnLabelColor) self.frame_2 = QFrame(self.frame) self.frame_2.setFrameShape(QFrame.StyledPanel) self.frame_2.setFrameShadow(QFrame.Raised) self.frame_2.setObjectName("frame_2") self.horizontalLayout = QHBoxLayout(self.frame_2) self.horizontalLayout.setObjectName("horizontalLayout") self.label_2 = QLabel(self.frame_2) self.label_2.setObjectName("label_2") self.horizontalLayout.addWidget(self.label_2) self.spinLabelRotation = QSpinBox(self.frame_2) self.spinLabelRotation.setObjectName("spinLabelRotation") self.spinLabelRotation.setMinimum(-360) self.spinLabelRotation.setMaximum(360) self.horizontalLayout.addWidget(self.spinLabelRotation) self.verticalLayout.addWidget(self.frame_2) self.chbBackgroundEnable = QCheckBox(self.frame) self.chbBackgroundEnable.setChecked(True) self.chbBackgroundEnable.setObjectName("chbBackgroundEnable") self.verticalLayout.addWidget(self.chbBackgroundEnable) self.horizontalLayout_2.addWidget(self.frame) self.vLayout_3.addWidget(self.groupBox) self.resolutionFrame = QFrame(self.frame) self.resolutionFrame.setFrameShape(QFrame.StyledPanel) self.resolutionFrame.setFrameShadow(QFrame.Raised) self.resolutionFrame.setObjectName("resolutionFrame") self.horizontalLayout4 = QHBoxLayout(self.resolutionFrame) self.horizontalLayout4.setObjectName("horizontalLayout4") self.label_resolution = QLabel(self.resolutionFrame) self.label_resolution.setObjectName("label_resolution") self.label_resolution.setText("Print Resolution (dpi):") self.horizontalLayout4.addWidget(self.label_resolution) self.spinResolution = QSpinBox(self.resolutionFrame) self.spinResolution.setObjectName("spinResolution") self.spinResolution.setMinimum(0) self.spinResolution.setMaximum(1000) self.spinResolution.setValue(300) self.horizontalLayout4.addWidget(self.spinResolution) # self.verticalLayout.addWidget(self.frame_2) self.vLayout_3.addWidget(self.resolutionFrame) self.gbTable = GroupBox(self.propertyWidget) self.gbTable.Caption = "Table" self.vLayout_3.addWidget(self.gbTable) self.mTableView = QTableView(self.gbTable) self.gbTable.Add = self.mTableView hHeder = self.mTableView.horizontalHeader() hHeder.setVisible(False) vHeder = self.mTableView.verticalHeader() vHeder.setVisible(False) # self.mTableView.setFixedHeight(70) # self.mTableView.setFixedWidth(comp.paperWidth() - 40) # self.stdItemModel = QStandardItemModel() # self. self.spaceItem = QSpacerItem(20, 40, QSizePolicy.Minimum, QSizePolicy.Expanding) self.vLayout_3.addItem(self.spaceItem) self.groupBox.setTitle("Label Property") self.label.setText("Label Text:") self.btnLabelFont.setText("Label Font") self.btnLabelColor.setText("Label Color") self.label_2.setText("Label Rotation:") self.chbBackgroundEnable.setText("Background Enable") self.groupBox.setEnabled(False) self.connect(self.btnLabelFont, SIGNAL("clicked()"), self.btnLabelFontClick) self.connect(self.btnLabelColor, SIGNAL("clicked()"), self.btnLabelColorClick) self.connect(self.chbBackgroundEnable, SIGNAL("clicked()"), self.chbBackgroundEnableClick) self.labelText.textChanged.connect(self.labelTextChanged) self.spinLabelRotation.valueChanged.connect( self.spinLabelRotationValueChanged) layout.addLayout(hLayout) # self.btnBack = QPushButton() self.btnBack.setText("back") footerLayout = QHBoxLayout() footerLayout.addWidget(self.btnBack) self.buttonBox = QDialogButtonBox(self) self.buttonBox.setOrientation(Qt.Horizontal) self.buttonBox.setStandardButtons(QDialogButtonBox.Cancel | QDialogButtonBox.Ok) self.buttonBox.setObjectName("buttonBox") footerLayout.addWidget(self.buttonBox) layout.addLayout(footerLayout) self.setLayout(layout) deleteItemKey = QShortcut(QKeySequence(Qt.Key_Delete), self) deleteItemKey.activated.connect(self.deleteItem) # self.btnBack.clicked.connect(self.back) self.connect(self.buttonBox, SIGNAL("accepted()"), self.acceptMethod) self.connect(self.buttonBox, SIGNAL("rejected()"), self.reject) self.btnCancel = self.buttonBox.button(QDialogButtonBox.Cancel) self.view.setCurrentTool(QgsComposerView.Select) self.btnLabelColor.setVisible(False) # self.btnBack.setVisible(False) self.chbBackgroundEnable.setVisible(False) # self.view.emit(SIGNAL("actionFinished")) # if self.scene.plotStyle() != QgsComposition.Preview: # self.scene.setPlotStyle(QgsComposition.Preview) # self.mapItem.setPreviewMode(QgsComposerMap.Render) # self.mapItem.updateCachedImage() # self.mapItem.setSelected(True) self.mComposition = comp self.composerMapItem = self.mComposition.composerMapItems()[0] self.composerMapItem.setUpdatesEnabled(True) self.mStdModel = model self.mTableView.setModel(self.mStdModel) self.mTableView.setSpan(0, 0, 1, 6) self.mTableView.setSpan(1, 0, 1, 2) self.mTableView.setSpan(2, 0, 2, 1) self.mTableView.setSpan(4, 0, 1, 2) self.mTableView.setSpan(5, 0, 1, 2) self.mTableView.setSpan(6, 0, 1, 2) self.mTableView.setSpan(0, 6, 1, 8) self.mTableView.setSpan(1, 7, 1, 4) self.mTableView.setSpan(1, 11, 1, 3) self.mTableView.setSpan(2, 7, 1, 4) self.mTableView.setSpan(2, 11, 1, 3) def acceptMethod(self): # self.mStdModel.setItem(0, QStandardItem("nnnnnnnn")) filePath = QFileDialog.getSaveFileName( self, "Save PDF File", QCoreApplication.applicationDirPath(), "pdf files(*.pdf )") if filePath == "": return self.mComposition.clearSelection() self.mComposition.setPrintResolution(self.spinResolution.value()) resultPdf = self.mComposition.exportAsPDF(filePath) if resultPdf: message = QMessageBox.information(self, "Result", "Successful export PDF") else: message = QMessageBox.information(self, "Result", "Don't export PDF") def rePresent(self, comp, model): self.mComposition = comp self.mStdModel = model self.view.setComposition(comp) self.scene = self.view.composition() def back(self): self.done(2) def spinLabelRotationValueChanged(self, rotationValue): self.selectedLabelItem.setItemRotation(rotationValue) def cursorPosChangedEvent(self, scenePointF): self.scenePoint = scenePointF # i = 100 def labelTextChanged(self): self.selectedLabelItem.beginCommand( "Label text changed", QgsComposerMergeCommand.ComposerLabelSetText) self.selectedLabelItem.blockSignals(True) self.selectedLabelItem.setText(self.labelText.toPlainText()) self.selectedLabelItem.update() self.selectedLabelItem.blockSignals(False) self.selectedLabelItem.endCommand() def chbBackgroundEnableClick(self): if self.chbBackgroundEnable.isChecked(): self.selectedLabelItem.setBackgroundEnabled(True) self.mapItem.updateCachedImage() else: self.selectedLabelItem.setBackgroundEnabled(False) self.mapItem.updateCachedImage() def btnLabelFontClick(self): dlgFont = QFontDialog(self) dlgFont.setCurrentFont(self.selectedLabelItem.font()) result = dlgFont.exec_() if result == 1: self.labelFont = dlgFont.selectedFont() else: self.labelFont = QFont() self.selectedLabelItem.setFont(self.labelFont) def btnLabelColorClick(self): dlgColor = QColorDialog(self) dlgColor.setCurrentColor(self.selectedLabelItem.fontColor()) result = dlgColor.exec_() if result == 1: self.labelColor = dlgColor.selectedColor() self.selectedLabelItem.setFontColor(self.labelColor) def createTempleteAction(self): if self.templeteCreateAction.isChecked() and self.basePMCheck: font = QFont("Arial", 13) font.setItalic(True) self.compLabel1 = QgsComposerLabel(self.scene) self.compLabel1.setFont(font) self.compLabel1.setText("South China Sea") self.compLabel1.setBackgroundEnabled(False) self.compLabel1.setItemPosition(156, 100) self.compLabel1.adjustSizeToText() self.compLabel1.setItemRotation(60) # mapitem = self.scene.composerMapItems() # mapitem[0].addItem(self.compLabel1) self.scene.addItem(self.compLabel1) self.compLabel2 = QgsComposerLabel(self.scene) self.compLabel2.setFont(font) self.compLabel2.setText("Straits Of Malacca") self.compLabel2.setBackgroundEnabled(False) self.compLabel2.setItemPosition(35, 100) self.compLabel2.adjustSizeToText() self.compLabel2.setItemRotation(60) self.scene.addItem(self.compLabel2) font.setItalic(False) self.compLabel3 = QgsComposerLabel(self.scene) self.compLabel3.setFont(font) self.compLabel3.setBackgroundEnabled(False) self.compLabel3.setText("THAILAND") self.compLabel3.setItemPosition(68, 60) self.compLabel3.adjustSizeToText() # self.compLabel3.setItemRotation(0.5) self.scene.addItem(self.compLabel3) # self.templeteCreateAction.setChecked(False) self.compLabel4 = QgsComposerLabel(self.scene) self.compLabel4.setFont(font) self.compLabel4.setBackgroundEnabled(False) self.compLabel4.setText("SINGAPORE") self.compLabel4.setItemPosition(141, 218) self.compLabel4.adjustSizeToText() # self.compLabel3.setItemRotation(0.5) self.scene.addItem(self.compLabel4) self.templeteCreateAction.setChecked(False) self.compLabel4.setSelected(True) elif self.templeteCreateAction.isChecked( ) and self.basePMCheck == False: font = QFont("Arial", 14) font.setItalic(True) self.compLabel5 = QgsComposerLabel(self.scene) self.compLabel5.setFont(font) self.compLabel5.setText("South China Sea") self.compLabel5.setBackgroundEnabled(False) self.compLabel5.setItemPosition(108, 86) self.compLabel5.adjustSizeToText() self.compLabel5.setItemRotation(-45) # mapitem = self.scene.composerMapItems() # mapitem[0].addItem(self.compLabel1) self.scene.addItem(self.compLabel5) self.compLabel6 = QgsComposerLabel(self.scene) self.compLabel6.setFont(font) self.compLabel6.setText("Sulu Sea") self.compLabel6.setBackgroundEnabled(False) self.compLabel6.setItemPosition(236, 38) self.compLabel6.adjustSizeToText() self.compLabel6.setItemRotation(45) self.scene.addItem(self.compLabel6) font.setItalic(False) self.compLabel7 = QgsComposerLabel(self.scene) self.compLabel7.setFont(font) self.compLabel7.setBackgroundEnabled(False) self.compLabel7.setText("Celebes Sea") self.compLabel7.setItemPosition(242, 112) self.compLabel7.adjustSizeToText() self.compLabel7.setItemRotation(-45) # self.compLabel3.setItemRotation(0.5) self.scene.addItem(self.compLabel7) # self.templeteCreateAction.setChecked(False) self.compLabel8 = QgsComposerLabel(self.scene) self.compLabel8.setFont(font) self.compLabel8.setBackgroundEnabled(False) self.compLabel8.setText("INDONESIA\n(Kalimantan)") self.compLabel8.setItemPosition(172, 148, 32, 16) # self.compLabel8.setHAlign(Qt.AlignHCenter) # self.compLabel8.setVAlign(Qt.AlignVCenter) # self.compLabel8.setFrameEnabled(False) # self.compLabel8.setItemPosition() # self.compLabel8.adjustSizeToText() # self.compLabl3.setItemRotation(0.5) self.scene.addItem(self.compLabel8) self.compLabel9 = QgsComposerLabel(self.scene) self.compLabel9.setFont(font) self.compLabel9.setBackgroundEnabled(False) self.compLabel9.setText("BRUNEI") self.compLabel9.setItemPosition(136, 83) self.compLabel9.adjustSizeToText() # self.compLabl3.setItemRotation(0.5) self.scene.addItem(self.compLabel9) self.templeteCreateAction.setChecked(False) pass def actionMapRefresh_triggered(self): self.view.setCurrentTool(QgsComposerView.AddRectangle) def setSelectionTool(self): self.view.deleteSelectedItems() font = QFont("Arial", 14) newLabelItem = QgsComposerLabel(self.scene) newLabelItem.setText("QGIS") newLabelItem.setFont(font) newLabelItem.setItemPosition(self.scenePoint.x(), self.scenePoint.y()) newLabelItem.adjustSizeToText() self.scene.addItem(newLabelItem) # selectItemPoint = self.scene.composerItemAt(self.scenePoint) newLabelItem.setSelected(True) self.groupBox.setEnabled(True) self.selectedLabelItem = newLabelItem # txt = self.selectedLabelItem.text() # textDoc = QTextDocument(txt) self.labelText.setPlainText(self.selectedLabelItem.text()) # self.scene.setSelectedItem(self.newLabelItem) self.view.setCurrentTool(QgsComposerView.Select) # self.selectedLabelItem = self.view.currentTool() self.textItemAction.setChecked(False) def selectedItemDisplay(self, item): if self.scene.plotStyle() != QgsComposition.Preview: self.scene.setPlotStyle(QgsComposition.Preview) self.mapItem.setPreviewMode(QgsComposerMap.Render) self.mapItem.updateCachedImage() item._class_ = QgsComposerLabel # selectedItems = self.scene.selectedComposerItems(True) # if isinstance(item, QgsComposerItem): # self.selectedLabelItem = item # if isinstance(item, QGraphicsRectItem): # self.selectedLabelItem = item if isinstance(item, QgsComposerLabel): self.selectedLabelItem = item self.groupBox.setEnabled(True) self.labelText.setPlainText(self.selectedLabelItem.text()) self.spinLabelRotation.setValue(self.selectedLabelItem.rotation()) else: self.groupBox.setEnabled(False) # print "debug" itemName = self.view.currentTool() if itemName == 5: item.setText("label") pass def deleteItem(self): self.view.deleteSelectedItems()
class FileSelectionWidget(QWidget): def __init__(self, parent=None): super(FileSelectionWidget, self).__init__(None) self.setupUi(self) self.ext = '*' self.dialog_title = self.tr('Select folder') self.is_folder = False self.btnSelect.clicked.connect(self.show_selection_dialog) def show_selection_dialog(self): # Find the file dialog's working directory settings = QSettings() text = self.leText.text() if os.path.isdir(text): path = text elif os.path.isdir(os.path.dirname(text)): path = os.path.dirname(text) else: path = PluginSettings.last_icon_path() if self.is_folder: folder = QFileDialog.getExistingDirectory(self, self.dialog_title, path) if folder: self.leText.setText(folder) PluginSettings.set_last_icon_path(os.path.dirname(folder)) else: filename = QFileDialog.getOpenFileName(self, self.dialog_title, path, self.ext) if filename: self.leText.setText(filename) PluginSettings.set_last_icon_path(os.path.dirname(filename)) def get_path(self): s = self.leText.text() if os.name == 'nt': s = s.replace('\\', '/') return s def set_path(self, text): self.leText.setText(text) def set_dialog_ext(self, ext): self.ext = ext def set_dialog_title(self, title): self.dialog_titledialog_title = title def setupUi(self, Form): Form.setObjectName(_fromUtf8("Form")) Form.resize(249, 23) self.horizontalLayout = QHBoxLayout(Form) self.horizontalLayout.setSpacing(2) self.horizontalLayout.setMargin(0) self.horizontalLayout.setObjectName(_fromUtf8("horizontalLayout")) self.leText = QLineEdit(Form) self.leText.setReadOnly(True) self.leText.setObjectName(_fromUtf8("leText")) self.horizontalLayout.addWidget(self.leText) self.btnSelect = QToolButton(Form) self.btnSelect.setObjectName(_fromUtf8("btnSelect")) self.horizontalLayout.addWidget(self.btnSelect) self.retranslateUi(Form) QtCore.QMetaObject.connectSlotsByName(Form) def retranslateUi(self, Form): #Form.setWindowTitle(self.tr(self.dialog_title)) self.btnSelect.setText(self.tr("..."))
class FileSelectionWidget(QWidget): def __init__(self, parent = None): super(FileSelectionWidget, self).__init__(None) self.setupUi(self) self.ext = '*' self.dialog_title = self.tr('Select folder') self.is_folder = False self.btnSelect.clicked.connect(self.show_selection_dialog) def show_selection_dialog(self): # Find the file dialog's working directory settings = QSettings() text = self.leText.text() if os.path.isdir(text): path = text elif os.path.isdir(os.path.dirname(text)): path = os.path.dirname(text) else: path = PluginSettings.last_icon_path() if self.is_folder: folder = QFileDialog.getExistingDirectory(self, self.dialog_title, path) if folder: self.leText.setText(folder) PluginSettings.set_last_icon_path(os.path.dirname(folder)) else: filename = QFileDialog.getOpenFileName(self, self.dialog_title, path, self.ext) if filename: self.leText.setText(filename) PluginSettings.set_last_icon_path(os.path.dirname(filename)) def get_path(self): s = self.leText.text() if os.name == 'nt': s = s.replace('\\', '/') return s def set_path(self, text): self.leText.setText(text) def set_dialog_ext(self, ext): self.ext = ext def set_dialog_title(self, title): self.dialog_titledialog_title = title def setupUi(self, Form): Form.setObjectName(_fromUtf8("Form")) Form.resize(249, 23) self.horizontalLayout = QHBoxLayout(Form) self.horizontalLayout.setSpacing(2) self.horizontalLayout.setMargin(0) self.horizontalLayout.setObjectName(_fromUtf8("horizontalLayout")) self.leText = QLineEdit(Form) self.leText.setReadOnly(True) self.leText.setObjectName(_fromUtf8("leText")) self.horizontalLayout.addWidget(self.leText) self.btnSelect = QToolButton(Form) self.btnSelect.setObjectName(_fromUtf8("btnSelect")) self.horizontalLayout.addWidget(self.btnSelect) self.retranslateUi(Form) QtCore.QMetaObject.connectSlotsByName(Form) def retranslateUi(self, Form): #Form.setWindowTitle(self.tr(self.dialog_title)) self.btnSelect.setText(self.tr("..."))
class QtSCJ(QDialog) : """ QtSCJ est une boite de dialogue contenant l'état de la progression de chaque processus """ def __init__(self, parent=None): super(QtSCJ, self).__init__(parent) self.dir = None self.jobs = { } self.log = [ ] self.mode = "ogg" self.filter = "*.mp3 *.ogg *.wav" self.modes = [ "ogg", "mp3", "wav" ] self.readSettings() self.setupUi() self.retranslateUi() self.fermer.setEnabled(True) self.connect(self.fermer,SIGNAL("clicked()"),self.close) self.connect(self.convertDir,SIGNAL("clicked()"),self.getDir) self.connect(self.convertFile,SIGNAL("clicked()"),self.getFiles) self.connect(self.startallbtn,SIGNAL("clicked()"),self.startAll) self.connect(self.delallbtn,SIGNAL("clicked()"),self.delAll) self.connect(self.output,SIGNAL("currentIndexChanged(const QString)"), self.setMode) def setMode(self, mode): self.mode = mode self.writeSettings() def writeSettings(self): settings = QSettings("scj", "scj") settings.setValue("mode", self.mode) def readSettings(self): settings = QSettings("scj", "scj") self.mode = settings.value("mode", "ogg").toString() def setupUi(self): self.setObjectName("SCJ") self.setFixedSize(600,260) #self.setSizePolicy(QSizePolicy.Minimum, QSizePolicy.Minimum) self.verticalLayout = QVBoxLayout(self) self.verticalLayout.setObjectName("verticalLayout") #self.infoText = QTextEdit(self) self.infoText = QLabel(self) palette = QPalette() brush = QBrush(QColor(245, 245, 245)) brush.setStyle(Qt.SolidPattern) palette.setBrush(QPalette.Normal, QPalette.Background, brush) self.infoText.setPalette(palette) self.infoText.setAutoFillBackground(True) self.infoText.setFixedHeight(200) self.infoText.setObjectName("infoText") #self.infoText.setReadOnly(True) self.infoText.setWordWrap(True) self.verticalLayout.addWidget(self.infoText) # Manage Actions buttons self.horizontalLayout = QHBoxLayout() self.horizontalLayout.setObjectName("horizontalLayout") spacerItem = QSpacerItem(40, 20, QSizePolicy.Expanding, QSizePolicy.Minimum) self.horizontalLayout.addItem(spacerItem) ## Format de sortie self.outlabel = QLabel(self.trUtf8("Choix du format de destination")) self.horizontalLayout.addWidget(self.outlabel) self.output = QComboBox() self.output.addItems(self.modes) self.output.setCurrentIndex(self.output.findText(self.mode)) self.horizontalLayout.addWidget(self.output) # Buttons self.fermer = QPushButton(self) self.fermer.setObjectName("fermer") self.horizontalLayout.addWidget(self.fermer) self.convertDir = QPushButton(self) self.convertDir.setObjectName("convertDir") self.horizontalLayout.addWidget(self.convertDir) self.convertFile = QPushButton(self) self.convertFile.setObjectName("convertFile") self.horizontalLayout.addWidget(self.convertFile) self.verticalLayout.addLayout(self.horizontalLayout) # Layout for allButtons self.allLayout = QHBoxLayout() # Add startAll bouton self.startallbtn = QPushButton(self) self.allLayout.addWidget(self.startallbtn) self.startallbtn.hide() self.verticalLayout.addLayout(self.allLayout) # Add delAll bouton self.delallbtn = QPushButton(self) self.allLayout.addWidget(self.delallbtn) self.delallbtn.hide() # Mode avec scroll self.frame = QFrame() self.frame.setMinimumSize(520,250) self.frame.setMaximumWidth(520) self.scroll = QScrollArea() self.scroll.setMinimumHeight(180) self.jobsLayout = QVBoxLayout(self.frame) self.jobsLayout.setSizeConstraint(QLayout.SetMinAndMaxSize) #self.jobsLayout.setSizeConstraint(QLayout.SetMinimumSize) #self.jobsLayout.setSizeConstraint(QLayout.SetMaximumSize) self.scroll.setWidget(self.frame) self.scroll.setWidgetResizable(False) self.verticalLayout.addWidget(self.scroll) self.scroll.hide() # Mode sans scroll #self.jobsLayout = QVBoxLayout() #self.verticalLayout.addLayout(self.jobsLayout) # Add a strech to the bottom of the window self.verticalLayout.insertStretch(-1) def retranslateUi(self): self.setWindowTitle(u"SCJ") self.infoText.setToolTip(self.trUtf8("Messages")) self.fermer.setToolTip(self.trUtf8("Fermer la fenetre")) self.fermer.setText(self.trUtf8("Fermer")) self.startallbtn.setToolTip(self.trUtf8("Demarrer toutes les taches")) self.startallbtn.setText(self.trUtf8("Tout demarrer")) self.delallbtn.setToolTip(self.trUtf8("Supprimmer toutes les taches")) self.delallbtn.setText(self.trUtf8("Tout supprimer")) self.convertDir.setToolTip(self.trUtf8("Convertir un repertoire")) self.convertDir.setText(self.trUtf8("Repertoire")) self.convertFile.setToolTip(self.trUtf8("Convertir un fichier")) self.convertFile.setText(self.trUtf8("Fichier(s)")) self.infoText.setText(u"<h1>%s</h1>\ \n%s<br/>\ \n%s\ \n<ul><li>%s</li>\ \n <li>%s</li>\ \n <li><b>%s</b></li>\ \n</ul>" % (self.trUtf8("BIENVENUE SUR SCJ"), self.trUtf8("SCJ permet de convertir un ou plusieurs fichiers"+ " son vers differents formats."), self.trUtf8("Il gere egalement les repertoires en convertissant"+ " l'ensemble des fichiers sons presents vers le"+ " format voulu."), self.trUtf8("Choisissez le format de destination"), self.trUtf8("Cliquez sur Fichier(s) ou Repertoire en fonction"+ " de ve que vous voulez convertir."), self.trUtf8("Demarrez la conversion !") )) def addFile(self, file, createDir=False): file.makeAbsolute() if (file.suffix() != self.mode): job = SCJProgress( parent=None, file=file.filePath(), format=self.mode, createDir=createDir) if not self.jobs.get(job.output): self.jobs[job.output] = job self.jobsLayout.addLayout(self.jobs[job.output]) self.connect(self.jobs[job.output], SIGNAL("void removed(QString)"), self.delFile) self.addStartAll() def delFile(self, job): j = self.jobs.pop(job) self.addStartAll() self.jobsLayout.removeItem(j) def getDir(self): self.dir = QFileDialog.getExistingDirectory( parent = self, caption = self.trUtf8("Choix du repertoire"), directory = QDir.homePath(), options = QFileDialog.ShowDirsOnly | QFileDialog.DontResolveSymlinks) if self.dir : directory = QDir(self.dir, self.filter) for file in directory.entryInfoList(): self.addFile(file, createDir=True) def getFiles(self): files = QFileDialog.getOpenFileNames( parent = self, caption = self.trUtf8("Choix des fichiers"), directory = QDir.homePath(), filter = u"%s (%s)" % (self.trUtf8("Sons"), self.filter)) for file in files: self.addFile(QFileInfo(file), createDir=False) def addStartAll(self): if (len(self.jobs) > 0 ): self.startallbtn.setVisible(True) self.delallbtn.setVisible(True) self.scroll.setVisible(True) self.setFixedSize(600, 480) else: self.startallbtn.setVisible(False) self.delallbtn.setVisible(False) self.scroll.setVisible(False) self.setFixedSize(600, 260) self.updateGeometry() def startAll(self): for (key, job) in self.jobs.items(): job.start() def delAll(self): for (key, job) in self.jobs.items(): job.stop() self.delFile(key) def close(self): print u"%s" % self.trUtf8("We are stopping running jobs"), for (key, job) in self.jobs.items(): job.stop() print ".", print u"%s" % self.trUtf8("Done") super(QtSCJ, self).close()
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
def toolTypeSelected(self, index): #print "Got a new selection" #print self.comboBox.itemText(index) self.typeSelection = str(self.comboBox.itemText(index)) for testw in self.test_widget: self.vboxlayout.removeWidget(testw) testw.hide() self.tooltypearray = [] self.test_widget = [] self.test_text = [] self.test_line = [] # The tool_config will always have tool_config name self.tooltypearray.append(["Tool Config Name", "tool_config", ""]) # Now look up the selected connection type and present to the user... # First we start at the tool_library tool_name = str(self.typeSelection) tool_node = self.tool_nodes[tool_name] for param_node in tool_node.find('params'): type_val = param_node.get('param_type') default_val = param_node.text or '' self.tooltypearray.append( [param_node.get('name'), type_val, default_val]) for i, param in enumerate(self.tooltypearray): # print "Key: %s , Val: %s" % (param[0],param[1]) paramName = str(param[0] or '').strip() type_val = str(param[1] or '').strip() default_val = str(param[2] or '').strip() if (i == 0): widgetTemp = QFrame(self.variableBox) widgetTemp.setFrameStyle(QFrame.Panel | QFrame.Raised) widgetTemp.setLineWidth(2) else: widgetTemp = QWidget(self.variableBox) widgetTemp.setObjectName(QString("test_widget").append(QString(i))) self.test_widget.append(widgetTemp) hlayout = QHBoxLayout(widgetTemp) self.hboxlayout.append(hlayout) hlayout.setMargin(4) hlayout.setSpacing(4) hlayout.setObjectName(QString("hboxlayout").append(QString(i))) test_text = QLabel(widgetTemp) self.test_text.append(test_text) test_text.setObjectName(QString("test_text").append(QString(i))) if type_val == "Required": palette = test_text.palette() palette.setColor(QPalette.WindowText, Qt.red) test_text.setPalette(palette) test_text.setText(paramName) test_text_type = QLabel(widgetTemp) self.test_text_type.append(test_text_type) test_text_type.setObjectName( QString("test_text_type").append(QString(i))) paramName = type_val test_text_type.setText( QString("(").append(paramName).append(QString(")"))) hlayout.addWidget(test_text) hlayout.addWidget(test_text_type) if type_val == 'db_connection_hook': test_line = QComboBox(widgetTemp) db_connection_choices = get_db_connection_names() for i in db_connection_choices: test_line.addItem(QString(i)) self.test_line.append(test_line) test_line.setEnabled(True) test_line.setMinimumSize(QSize(200, 0)) test_line.setObjectName( QString("test_line").append(QString(i))) else: test_line = QLineEdit(widgetTemp) self.test_line.append(test_line) test_line.setEnabled(True) test_line.setMinimumSize(QSize(200, 0)) test_line.setObjectName( QString("test_line").append(QString(i))) # test_line = QLineEdit(widgetTemp) # self.test_line.append(test_line) # test_line.setEnabled(True) # test_line.setMinimumSize(QSize(200,0)) # test_line.setObjectName(QString("test_line").append(QString(i))) # test_line.setText(QString("")) hlayout.addWidget(test_line) self.vboxlayout.addWidget(widgetTemp)
class MapScalePanel(QWidget): def __init__(self, parent, mapScaleDropDownType): QWidget.__init__(self, parent) while not isinstance(parent, QDialog): parent = parent.parent() self.setObjectName("DistanceBoxPanel" + str(len(parent.findChildren(MapScalePanel)))) self.hLayoutBoxPanel = QHBoxLayout(self) self.hLayoutBoxPanel.setSpacing(0) self.hLayoutBoxPanel.setContentsMargins(0, 0, 0, 0) self.hLayoutBoxPanel.setObjectName(("hLayoutBoxPanel")) self.frameBoxPanel = QFrame(self) sizePolicy = QSizePolicy(QSizePolicy.Fixed, QSizePolicy.Fixed) sizePolicy.setHorizontalStretch(0) sizePolicy.setVerticalStretch(0) sizePolicy.setHeightForWidth( self.frameBoxPanel.sizePolicy().hasHeightForWidth()) self.frameBoxPanel.setSizePolicy(sizePolicy) self.frameBoxPanel.setFrameShape(QFrame.NoFrame) self.frameBoxPanel.setFrameShadow(QFrame.Raised) self.frameBoxPanel.setObjectName(("frameBoxPanel")) self.hLayoutframeBoxPanel = QHBoxLayout(self.frameBoxPanel) self.hLayoutframeBoxPanel.setSpacing(0) self.hLayoutframeBoxPanel.setMargin(0) self.hLayoutframeBoxPanel.setObjectName(("hLayoutframeBoxPanel")) self.captionLabel = QLabel(self.frameBoxPanel) sizePolicy = QSizePolicy(QSizePolicy.Fixed, QSizePolicy.Fixed) sizePolicy.setHorizontalStretch(0) sizePolicy.setVerticalStretch(0) sizePolicy.setHeightForWidth( self.captionLabel.sizePolicy().hasHeightForWidth()) self.captionLabel.setSizePolicy(sizePolicy) self.captionLabel.setMinimumSize(QSize(200, 0)) self.captionLabel.setMaximumSize(QSize(200, 16777215)) font = QFont() font.setBold(False) font.setWeight(50) self.captionLabel.setFont(font) self.captionLabel.setObjectName(("captionLabel")) self.hLayoutframeBoxPanel.addWidget(self.captionLabel) self.frameBoxPanelIn = QFrame(self.frameBoxPanel) self.frameBoxPanelIn.setFrameShape(QFrame.StyledPanel) self.frameBoxPanelIn.setFrameShadow(QFrame.Raised) self.frameBoxPanelIn.setObjectName(("frameBoxPanelIn")) self.hLayoutframeBoxPanelIn = QHBoxLayout(self.frameBoxPanelIn) self.hLayoutframeBoxPanelIn.setSpacing(0) self.hLayoutframeBoxPanelIn.setMargin(0) self.hLayoutframeBoxPanelIn.setObjectName(("hLayoutframeBoxPanelIn")) self.comboBox = ComboBoxPanel(self.frameBoxPanelIn) self.comboBox.Caption = "1" self.comboBox.LabelWidth = 20 self.hLayoutframeBoxPanelIn.addWidget(self.comboBox) # self.txtDistance = QLineEdit(self.frameBoxPanelIn) # self.txtDistance.setEnabled(True) # font = QFont() # font.setBold(False) # font.setWeight(50) # self.txtDistance.setFont(font) # self.txtDistance.setObjectName(("txtDistance")) # self.txtDistance.setText("0.0") # self.txtDistance.setMinimumWidth(70) # self.txtDistance.setMaximumWidth(70) # self.hLayoutframeBoxPanelIn.addWidget(self.txtDistance) self.imageButton = QToolButton(self.frameBoxPanelIn) self.imageButton.setText(("")) icon = QIcon() icon.addPixmap(QPixmap(("Resource/coordinate_capture.png")), QIcon.Normal, QIcon.Off) self.imageButton.setIcon(icon) self.imageButton.setObjectName(("btnDegreeBoxPanel")) self.hLayoutframeBoxPanelIn.addWidget(self.imageButton) self.hLayoutframeBoxPanel.addWidget(self.frameBoxPanelIn) self.hLayoutBoxPanel.addWidget(self.frameBoxPanel) spacerItem = QSpacerItem(10, 10, QSizePolicy.Expanding, QSizePolicy.Minimum) self.hLayoutBoxPanel.addItem(spacerItem) self.imageButton.clicked.connect(self.imageButtonClicked) define._canvas.renderComplete.connect(self.canvas_renderComplete) self.connect(self.comboBox, SIGNAL("Event_0"), self.comboBox_Event_0) self.flag = 0 self.dropDownType = mapScaleDropDownType self.method_5() self.imageButton.setVisible(False) def comboBox_Event_0(self): define._canvas.zoomScale(float(self.comboBox.SelectedItem)) def canvas_renderComplete(self): self.comboBox.comboBox.setEditText(str(int(define._canvas.scale()))) def method_4(self, mapScaleDropDownType_0): return (self.dropDownType & mapScaleDropDownType_0) == mapScaleDropDownType_0 def method_5(self): self.comboBox.Clear() if (self.method_4(MapScaleDropDownType.Aerodrome)): for i in range(2, 7): num = i * 5000 self.comboBox.Add(str(num)) if (self.method_4(MapScaleDropDownType.Approach)): for j in range(4, 20): num1 = j * 50000 self.comboBox.Add(str(num1)) if (self.method_4(MapScaleDropDownType.Enroute)): for k in range(2, 21): num2 = k * 500000 self.comboBox.Add(str(num2)) # def method_6(self, string_0): # value = None # if self.distanceUnit == DistanceUnits.NM: # value = self.txtDistance.text() + "nm" # elif self.distanceUnit == DistanceUnits.M: # value = self.txtDistance.text() + "m" # elif self.distanceUnit == DistanceUnits.KM: # value = self.txtDistance.text() + "km" # elif self.distanceUnit == DistanceUnits.FT: # value = self.txtDistance.text() + "ft" # elif self.distanceUnit == DistanceUnits.MM: # value = self.txtDistance.text() + "mm" # else: # value = "" # # # return "%s%s\t%s"%(string_0, self.Caption, value); def txtDistanceChanged(self): try: test = float(self.txtDistance.text()) self.emit(SIGNAL("Event_0"), self) except: str0 = "You must input the float type in \"%s\"." % (self.Caption) QMessageBox.warning(self, "Warning", str0) self.txtDistance.setText("0.0") def imageButtonClicked(self): measureDistanceTool = MeasureTool(define._canvas, self.txtDistance, self.distanceUnit) define._canvas.setMapTool(measureDistanceTool) self.emit(SIGNAL("Event_1"), self) def get_CaptionUnits(self): return self.distanceUnit def set_CaptionUnits(self, distanceUnit): self.distanceUnit = distanceUnit CaptionUnits = property(get_CaptionUnits, set_CaptionUnits, None, None) def get_Caption(self): caption = self.captionLabel.text() findIndex = caption.indexOf("(") if findIndex > 0: val = caption.left(findIndex) return val return caption def set_Caption(self, captionStr): # if self.distanceUnit == DistanceUnits.NM: # value = captionStr + "(nm)" # elif self.distanceUnit == DistanceUnits.M: # value = captionStr + "(m)" # elif self.distanceUnit == DistanceUnits.KM: # value = captionStr + "(km)" # elif self.distanceUnit == DistanceUnits.FT: # value = captionStr + "(ft)" # elif self.distanceUnit == DistanceUnits.MM: # value = captionStr + "(mm)" # else: # value = "" self.captionLabel.setText(captionStr + ":") Caption = property(get_Caption, set_Caption, None, None) def get_dropDownType(self): return self.dropDownType def set_dropDownType(self, val): self.dropDownType = val DropDownType = property(get_dropDownType, set_dropDownType, None, None) def get_Value(self): try: return self.comboBox.SelectedItem except: return "" # def set_Value(self, value): Value = property(get_Value, None, None, None) # def get_IsEmpty(self): # return self.txtDistance.text() == "" or self.txtDistance.text() == None # IsEmpty = property(get_IsEmpty, None, None, None) def set_LabelWidth(self, width): self.captionLabel.setMinimumSize(QSize(width, 0)) self.captionLabel.setMaximumSize(QSize(width, 16777215)) LabelWidth = property(None, set_LabelWidth, None, None) def get_ReadOnly(self): return self.comboBox.isReadOnly() def set_ReadOnly(self, bool): self.comboBox.setReadOnly(bool) ReadOnly = property(get_ReadOnly, set_ReadOnly, None, None) def get_Enabled(self): return self.comboBox.Enabled def set_Enabled(self, bool): self.comboBox.Enabled = bool self.imageButton.setEnabled(bool) Enabled = property(get_Enabled, set_Enabled, None, None) def get_Visible(self): return self.isVisible() def set_Visible(self, bool): self.setVisible(bool) Visible = property(get_Visible, set_Visible, None, None) def set_Button(self, imageName): if imageName == None or imageName == "": self.imageButton.setVisible(False) return icon = QIcon() icon.addPixmap(QPixmap(("Resource/" + imageName)), QIcon.Normal, QIcon.Off) self.imageButton.setIcon(icon) self.imageButton.setVisible(True) Button = property(None, set_Button, None, None)
class HoldingRnpDlg(FlightPlanBaseDlg): ''' classdocs ''' def __init__(self, parent): ''' Constructor ''' FlightPlanBaseDlg.__init__(self, parent) self.setObjectName("HoldingRnp") self.surfaceType = SurfaceTypes.HoldingRnp self.initParametersPan() self.setWindowTitle(SurfaceTypes.HoldingRnp) self.resize(540, 550) QgisHelper.matchingDialogSize(self, 710, 700) # point1 = Point3D(670765.834204, 6624159.01137) # point2 = Point3D(658888.622249, 6631328.51407) # point3 = Point3D(648258.512784, 6624159.01137) # b = MathHelper.smethod_60(point1, point2, point3) # pass def exportResult(self): result, resultHideColumnNames = FlightPlanBaseDlg.exportResult(self) if not result: return filePathDir = QFileDialog.getSaveFileName( self, "Export Obstacle Data", QCoreApplication.applicationDirPath(), "ExportObstaclefiles(*.xml)") if filePathDir == "": return # self.filterList = [] # for taaArea in self.taaCalculationAreas: # self.filterList.append(taaArea.title) parameterList = self.getParameterList() DataHelper.saveExportResult(filePathDir, SurfaceTypes.HoldingRnp, self.ui.tblObstacles, None, parameterList, resultHideColumnNames) # self.obstaclesModel.setFilterFixedString(self.filterList[self.ui.cmbObstSurface.currentIndex()]) # return FlightPlanBaseDlg.exportResult(self) def getParameterList(self): parameterList = [] parameterList.append(("general", "group")) parameterList.append(("Waypoint Position", "group")) longLatPoint = QgisHelper.Meter2Degree( float(self.parametersPanel.pnlWaypoint.txtPointX.text()), float(self.parametersPanel.pnlWaypoint.txtPointY.text())) parameterList.append( ("Lat", self.parametersPanel.pnlWaypoint.txtLat.Value)) parameterList.append( ("Lon", self.parametersPanel.pnlWaypoint.txtLong.Value)) parameterList.append( ("X", self.parametersPanel.pnlWaypoint.txtPointX.text())) parameterList.append( ("Y", self.parametersPanel.pnlWaypoint.txtPointY.text())) parameterList.append(("Parameters", "group")) parameterList.append( ("RNP Value", self.parametersPanel.txtRnpValue.text())) # parameterList.append(("Aircraft Category", self.parametersPanel.cmbAircraftCategory_2.currentText())) parameterList.append( ("IAS", self.parametersPanel.txtIas.text() + "kts")) parameterList.append( ("TAS", self.parametersPanel.txtTas.text() + "kts")) parameterList.append( ("Altitude", self.parametersPanel.txtAltitudeM.text() + "m")) parameterList.append( ("", self.parametersPanel.txtAltitude.text() + "ft")) parameterList.append( ("ISA", self.parametersPanel.txtIsa.text() + unicode("°C", "utf-8"))) parameterList.append( ("Wind", self.parametersPanel.pnlWind.speedBox.text() + "kts")) parameterList.append( ("Time", self.parametersPanel.txtTime.text() + "min")) parameterList.append(("MOC", self.parametersPanel.txtMoc.text() + "m")) parameterList.append(("", self.parametersPanel.txtMocFt.text() + "ft")) parameterList.append( ("Construction Type", self.parametersPanel.cmbConstruction.currentText())) parameterList.append(("Orientation", "group")) parameterList.append( ("In-bound Trak", "Plan : " + str(self.parametersPanel.txtTrack.txtRadialPlan.Value) + define._degreeStr)) parameterList.append( ("", "Geodetic : " + str(self.parametersPanel.txtTrack.txtRadialGeodetic.Value) + define._degreeStr)) # parameterList.append(("In-bound Trak", self.parametersPanel.txtTrack.Value + unicode("°", "utf-8"))) parameterList.append( ("Turns", self.parametersPanel.cmbOrientation.currentText())) parameterList.append(("Results / Checked Obstacles", "group")) parameterList.append(("Checked Obstacles", "group")) c = self.obstaclesModel.rowCount() parameterList.append(("Number of Checked Obstacles", str(c))) return parameterList def initObstaclesModel(self): ObstacleTable.MocMultiplier = self.parametersPanel.mocSpinBox.value() self.obstaclesModel = HoldingRnpObstacles( self.surfaceList, Altitude(float(self.parametersPanel.txtMoc.text())), Altitude(float(self.parametersPanel.txtAltitude.text()), AltitudeUnits.FT)) return FlightPlanBaseDlg.initObstaclesModel(self) def btnEvaluate_Click(self): polylines = self.method_36(False) # polylines[0].Dispose(); # polylines.RemoveAt(0); count = len(polylines) num = 0.1 * count altitudeMoc = Altitude(float(self.parametersPanel.txtMoc.text()), AltitudeUnits.M) metres = altitudeMoc.Metres holdingRnpAreas = [] for i in range(count): if (i > 0): metres = num * altitudeMoc.Metres num = num - 0.1 point3dCollection = polylines[i].method_14_closed(6) polylineArea0 = PolylineArea(point3dCollection) holdingRnpAreas.append( HoldingRnpArea(polylineArea0, Altitude(metres))) self.surfaceList = holdingRnpAreas return FlightPlanBaseDlg.btnEvaluate_Click(self) def btnConstruct_Click(self): flag = FlightPlanBaseDlg.btnConstruct_Click(self) if not flag: return mapUnits = define._canvas.mapUnits() constructionLayer = None polylines = self.method_36(True) pollineAreaLineList, polylineAreaArcList, centerPolylineArea = self.method_36_Construct( True) if (self.parametersPanel.cmbConstruction.currentText() != ConstructionType.Construct3D): constructionLayer = AcadHelper.createVectorLayer( self.surfaceType, QGis.Line) AcadHelper.setGeometryAndAttributesInLayer(constructionLayer, centerPolylineArea, True) for polrlineArea in pollineAreaLineList: AcadHelper.setGeometryAndAttributesInLayer( constructionLayer, polrlineArea) for polrlineArea in polylineAreaArcList: AcadHelper.setGeometryAndAttributesInLayer( constructionLayer, polrlineArea) else: constructionLayer = AcadHelper.createVectorLayer( self.surfaceType, QGis.Polygon) # if define._mapCrs == None: # if mapUnits == QGis.Meters: # constructionLayer = QgsVectorLayer("polygon?crs=EPSG:32633", self.surfaceType, "memory") # else: # constructionLayer = QgsVectorLayer("polygon?crs=EPSG:4326", self.surfaceType, "memory") # else: # constructionLayer = QgsVectorLayer("polygon?crs=%s"%define._mapCrs.authid (), self.surfaceType, "memory") # constructionLayer.startEditing() count = len(polylines) num = 0.1 * count altitude = Altitude(float(self.parametersPanel.txtAltitude.text()), AltitudeUnits.FT) value = Altitude(float(self.parametersPanel.txtMoc.text()), AltitudeUnits.M) metres = altitude.Metres - value.Metres for i in range(count): AcadHelper.setGeometryAndAttributesInLayer( constructionLayer, polylines[len(polylines) - 1 - i], True) # polygon1 = QgsGeometry.fromPolygon([polylines[i].method_14_closed(6)]) # polygonNew = polygon1 # if (i > 0): # metres1 = altitude.Metres # # value = self.pnlMoc.Value; # metres = metres1 - num * value.Metres # num = num - 0.1 # if (i > 0): # polygon0 = QgsGeometry.fromPolygon([polylines[i - 1].method_14_closed(6)]) # polygonNew = polygon1.difference(polygon0) # feature = QgsFeature() # feature.setGeometry(polygonNew) # constructionLayer.addFeature(feature) # constructionLayer.commitChanges() QgisHelper.appendToCanvas(define._canvas, [constructionLayer], SurfaceTypes.HoldingRnp) self.resultLayerList = [constructionLayer] self.ui.btnEvaluate.setEnabled(True) def uiStateInit(self): self.ui.grbMostCritical.setVisible(False) self.ui.grbResult_2.setVisible(False) self.ui.btnUpdateQA.setVisible(False) self.ui.btnUpdateQA_2.setVisible(False) self.ui.frm_cmbObstSurface.setVisible(False) self.ui.tabCtrlGeneral.removeTab(2) # self.ui.btnPDTCheck.clicked.connect(self.btnPDTCheck_Click) return FlightPlanBaseDlg.uiStateInit(self) def btnPDTCheck_Click(self): pdtResultStr = "" K = round( 171233 * math.pow( 288 + float(self.parametersPanel.txtIsa.text()) - 0.00198 * Altitude(float(self.parametersPanel.txtAltitude.text()), AltitudeUnits.FT).Feet, 0.5) / (math.pow( 288 - 0.00198 * Altitude(float(self.parametersPanel.txtAltitude.text()), AltitudeUnits.FT).Feet, 2.628)), 4) pdtResultStr = "1. K = \t" + str(K) + "\n" V = Speed.smethod_0( Speed(float(self.parametersPanel.txtIas.text())), float(self.parametersPanel.txtIsa.text()), Altitude(float(self.parametersPanel.txtAltitude.text()), AltitudeUnits.FT)).Knots pdtResultStr += "2. V = \t" + str(V) + "kt\n" v = V / 3600 pdtResultStr += "3. v = \t" + str(v) + "NM/s\n" R = 509.26 / V pdtResultStr += "4. R = \t" + str(R) + unicode("°/s", "utf-8") + "\n" r = V / (62.83 * R) pdtResultStr += "5. r = \t" + str(r) + "NM\n" h = float(self.parametersPanel.txtAltitude.text()) / 1000 pdtResultStr += "6. h = \t" + str(h) + "\n" w = 2 * h + 47 pdtResultStr += "7. w = \t" + str(w) + "kt\n" wd = w / 3600 pdtResultStr += "8. w' = \t" + str(wd) + "NM/s\n" E45 = 45 * wd / R pdtResultStr += "9. E45' = \t" + str(E45) + "NM\n" t = 60 * float(self.parametersPanel.txtTime.text()) pdtResultStr += "10. t = \t" + str(t) + "s\n" L = v * t pdtResultStr += "11. L = \t" + str(L) + "NM\n" ab = 5 * v pdtResultStr += "12. ab = \t" + str(ab) + "NM\n" ac = 11 * v pdtResultStr += "13. ac = \t" + str(ac) + "NM\n" gi1 = (t - 5) * v pdtResultStr += "14. gi1 = gi3 = \t" + str(gi1) + "NM\n" gi2 = (t + 21) * v pdtResultStr += "15. gi2 = gi4 = \t" + str(gi2) + "NM\n" Wb = 5 * wd pdtResultStr += "16. Wb = \t" + str(Wb) + "NM\n" Wc = 11 * wd pdtResultStr += "17. Wc = \t" + str(Wc) + "NM\n" Wd = Wc + E45 pdtResultStr += "18. Wd = \t" + str(Wd) + "NM\n" We = Wc + 2 * E45 pdtResultStr += "19. We = \t" + str(We) + "NM\n" Wf = Wc + 3 * E45 pdtResultStr += "20. Wf = \t" + str(Wf) + "NM\n" Wg = Wc + 4 * E45 pdtResultStr += "21. Wg = \t" + str(Wg) + "NM\n" Wh = Wb + 4 * E45 pdtResultStr += "22. Wh = \t" + str(Wh) + "NM\n" Wo = Wb + 5 * E45 pdtResultStr += "23. Wo = \t" + str(Wo) + "NM\n" Wp = Wb + 6 * E45 pdtResultStr += "24. Wp = \t" + str(Wp) + "NM\n" Wi1 = (t + 6) * wd + 4 * E45 pdtResultStr += "25. Wi1 = Wi3 = \t" + str(Wi1) + "NM\n" Wi2 = Wi1 + 14 * wd pdtResultStr += "26. Wi2 = Wi4 = \t" + str(Wi2) + "NM\n" Wj = Wi2 + E45 pdtResultStr += "27. Wj = \t" + str(Wj) + "NM\n" Wk = Wi2 + 2 * E45 pdtResultStr += "28. Wk = Wi = \t" + str(Wk) + "NM\n" Wm = Wi2 + 3 * E45 pdtResultStr += "29. Wm = \t" + str(Wm) + "NM\n" Wn3 = Wi1 + 4 * E45 pdtResultStr += "30. Wn3 = \t" + str(Wn3) + "NM\n" Wn4 = Wi2 + 4 * E45 pdtResultStr += "31. Wn4 = \t" + str(Wn4) + "NM\n" XE = 2 * r + (t + 15) * v + (t + 26 + 195 / R) * wd pdtResultStr += "32. XE = \t" + str(XE) + "NM\n" YE = 11 * v * math.cos(math.pi * 20 / 180) + r * ( 1 + math.sin(math.pi * 20 / 180)) + (t + 15) * v * math.tan( math.pi * 5 / 180) + (t + 26 + 125 / R) * wd pdtResultStr += "33. YE = \t" + str(YE) + "NM" QMessageBox.warning(self, "PDT Check", pdtResultStr) def initParametersPan(self): ui = Ui_HoldingRnpGeneral() self.parametersPanel = ui FlightPlanBaseDlg.initParametersPan(self) self.parametersPanel.txtTas.setEnabled(False) self.parametersPanel.pnlWaypoint = PositionPanel( self.parametersPanel.holding) self.parametersPanel.pnlWaypoint.groupBox.setTitle("Waypoint Position") self.parametersPanel.pnlWaypoint.hideframe_Altitude() self.parametersPanel.pnlWaypoint.setObjectName("positionWaypoint") self.parametersPanel.pnlWaypoint.btnCalculater.hide() self.parametersPanel.verticalLayout.insertWidget( 0, self.parametersPanel.pnlWaypoint) self.parametersPanel.pnlWind = WindPanel( self.parametersPanel.grbParameters) self.parametersPanel.vLayout_grbParameters.insertWidget( 5, self.parametersPanel.pnlWind) self.parametersPanel.pnlWind.setAltitude( Altitude(float(self.parametersPanel.txtAltitude.text()), AltitudeUnits.FT)) # self.resize(460,600) self.parametersPanel.cmbConstruction.addItems(["2D", "3D"]) self.parametersPanel.cmbAircraftCategory_2.addItems( ["A", "B", "C", "D", "E", "H", "Custom"]) self.parametersPanel.cmbOrientation.addItems( [OrientationType.Left, OrientationType.Right]) # self.parametersPanel.cmbOrientation.setCurrentIndex(1) # # '''Event Handlers Connect''' # self.parametersPanel.txtAltitude.textChanged.connect(self.method_31) # self.parametersPanel.cmbTurnLimitation.currentIndexChanged.connect(self.method_28) # self.parametersPanel.btnCaptureTrack.clicked.connect(self.captureBearing) self.parametersPanel.cmbAircraftCategory_2.currentIndexChanged.connect( self.changeCategory) self.parametersPanel.cmbAircraftCategory_2.setCurrentIndex(3) self.frame_8_1 = QFrame(self) sizePolicy = QSizePolicy(QSizePolicy.Minimum, QSizePolicy.Preferred) sizePolicy.setHorizontalStretch(0) sizePolicy.setVerticalStretch(0) # sizePolicy.setHeightForWidth(self.frame_8.sizePolicy().hasHeightForWidth()) self.frame_8_1.setSizePolicy(sizePolicy) self.frame_8_1.setFrameShape(QFrame.StyledPanel) self.frame_8_1.setFrameShadow(QFrame.Raised) self.frame_8_1.setObjectName("frame_8") self.horizontalLayout_10_1 = QHBoxLayout(self.frame_8_1) self.horizontalLayout_10_1.setAlignment(Qt.AlignHCenter) self.horizontalLayout_10_1.setSpacing(0) self.horizontalLayout_10_1.setMargin(0) self.horizontalLayout_10_1.setObjectName("horizontalLayout_10") self.label_2_1 = QLabel(self.frame_8_1) self.label_2_1.setMinimumSize(QSize(140, 16777215)) # self.label_2_1.setFixedWidth(100) self.label_2_1.setText("MOCmultiplier") font = QFont() font.setFamily("Arial") font.setBold(False) font.setWeight(50) self.label_2_1.setFont(font) self.label_2_1.setObjectName("label_2_1") self.horizontalLayout_10_1.addWidget(self.label_2_1) self.parametersPanel.mocSpinBox = QSpinBox(self.frame_8_1) self.parametersPanel.mocSpinBox.setFont(font) self.parametersPanel.mocSpinBox.setObjectName("mocSpinBox") sizePolicy = QSizePolicy(QSizePolicy.MinimumExpanding, QSizePolicy.Fixed) sizePolicy.setHorizontalStretch(0) sizePolicy.setVerticalStretch(0) sizePolicy.setHeightForWidth( self.parametersPanel.mocSpinBox.sizePolicy().hasHeightForWidth()) self.parametersPanel.mocSpinBox.setSizePolicy(sizePolicy) self.parametersPanel.mocSpinBox.setMinimum(1) self.parametersPanel.mocSpinBox.setMinimumSize(QSize(140, 16777215)) # self.parametersPanel.mocSpinBox.setFixedWidth(100) self.horizontalLayout_10_1.addWidget(self.parametersPanel.mocSpinBox) # self.verticalLayout_9.addWidget(self.frame_8_1) self.parametersPanel.vLayout_grbParameters.addWidget(self.frame_8_1) self.parametersPanel.btnIasHelp.clicked.connect(self.iasHelpShow) self.parametersPanel.frame_ConstructionType_2.hide() self.parametersPanel.txtIas.textChanged.connect(self.iasChanged) self.parametersPanel.txtIsa.textChanged.connect(self.isaChanged) # self.parametersPanel.txtIsa.textChanged.connect(self.isaChanged) self.parametersPanel.txtAltitudeM.textChanged.connect( self.txtAltitudeMChanged) self.parametersPanel.txtAltitude.textChanged.connect( self.txtAltitudeFtChanged) self.flag = 0 if self.flag == 0: self.flag = 2 if self.flag == 1: self.flag = 0 if self.flag == 2: try: self.parametersPanel.txtAltitudeM.setText( str( round( Unit.ConvertFeetToMeter( float( self.parametersPanel.txtAltitude.text())), 4))) except: self.parametersPanel.txtAltitudeM.setText("0.0") self.parametersPanel.txtMoc.textChanged.connect(self.txtMocMChanged) self.parametersPanel.txtMocFt.textChanged.connect(self.txtMocFtChanged) self.flag1 = 0 if self.flag1 == 0: self.flag1 = 1 if self.flag1 == 2: self.flag1 = 0 if self.flag1 == 1: try: self.parametersPanel.txtMocFt.setText( str( round( Unit.ConvertMeterToFeet( float(self.parametersPanel.txtMoc.text())), 4))) except: self.parametersPanel.txtMocFt.setText("0.0") self.parametersPanel.txtTas.setText( str( round( Speed.smethod_0( Speed(float(self.parametersPanel.txtIas.text())), float(self.parametersPanel.txtIsa.text()), Altitude( float(self.parametersPanel.txtAltitude.text()), AltitudeUnits.FT)).Knots, 4))) def txtAltitudeMChanged(self): if self.flag == 0: self.flag = 1 if self.flag == 2: self.flag = 0 if self.flag == 1: try: self.parametersPanel.txtAltitude.setText( str( round( Unit.ConvertMeterToFeet( float( self.parametersPanel.txtAltitudeM.text())), 4))) except: self.parametersPanel.txtAltitude.setText("0.0") def txtAltitudeFtChanged(self): if self.flag == 0: self.flag = 2 if self.flag == 1: self.flag = 0 if self.flag == 2: try: self.parametersPanel.txtAltitudeM.setText( str( round( Unit.ConvertFeetToMeter( float( self.parametersPanel.txtAltitude.text())), 4))) except: self.parametersPanel.txtAltitudeM.setText("0.0") def txtMocMChanged(self): if self.flag1 == 0: self.flag1 = 1 if self.flag1 == 2: self.flag1 = 0 if self.flag1 == 1: try: self.parametersPanel.txtMocFt.setText( str( round( Unit.ConvertMeterToFeet( float(self.parametersPanel.txtMoc.text())), 4))) except: self.parametersPanel.txtMocFt.setText("0.0") def txtMocFtChanged(self): if self.flag1 == 0: self.flag1 = 2 if self.flag1 == 1: self.flag1 = 0 if self.flag1 == 2: try: self.parametersPanel.txtMoc.setText( str( round( Unit.ConvertFeetToMeter( float(self.parametersPanel.txtMocFt.text())), 4))) except: self.parametersPanel.txtMoc.setText("0.0") def iasChanged(self): try: self.parametersPanel.txtTas.setText( str( round( Speed.smethod_0( Speed(float(self.parametersPanel.txtIas.text())), float(self.parametersPanel.txtIsa.text()), Altitude( float(self.parametersPanel.txtAltitude.text()), AltitudeUnits.FT)).Knots, 4))) except: raise ValueError("Value Invalid") def isaChanged(self): try: self.parametersPanel.txtTas.setText( str( round( Speed.smethod_0( Speed(float(self.parametersPanel.txtIas.text())), float(self.parametersPanel.txtIsa.text()), Altitude( float(self.parametersPanel.txtAltitude.text()), AltitudeUnits.FT)).Knots, 4))) except: raise ValueError("Value Invalid") def iasHelpShow(self): dlg = IasHelpDlg() dlg.exec_() def changeCategory(self): if self.parametersPanel.cmbAircraftCategory_2.currentIndex( ) == AircraftSpeedCategory.A: self.parametersPanel.txtIas.setText(str(Speed(150).Knots)) return elif self.parametersPanel.cmbAircraftCategory_2.currentIndex( ) == AircraftSpeedCategory.B: self.parametersPanel.txtIas.setText(str(Speed(180).Knots)) return elif self.parametersPanel.cmbAircraftCategory_2.currentIndex( ) == AircraftSpeedCategory.C: self.parametersPanel.txtIas.setText(str(Speed(240).Knots)) return elif self.parametersPanel.cmbAircraftCategory_2.currentIndex( ) == AircraftSpeedCategory.D: self.parametersPanel.txtIas.setText(str(Speed(250).Knots)) return elif self.parametersPanel.cmbAircraftCategory_2.currentIndex( ) == AircraftSpeedCategory.E: self.parametersPanel.txtIas.setText(str(Speed(250).Knots)) return elif self.parametersPanel.cmbAircraftCategory_2.currentIndex( ) == AircraftSpeedCategory.H: self.parametersPanel.txtIas.setText(str(Speed(250).Knots)) return def method_31(self): self.parametersPanel.pnlWind.setAltitude( Altitude(float(self.parametersPanel.txtAltitude.text()), AltitudeUnits.FT)) try: speed = Speed.smethod_0( Speed(float(self.parametersPanel.txtIas.text())), float(self.parametersPanel.txtIsa.text()), Altitude(float(self.parametersPanel.txtAltitude.text()), AltitudeUnits.FT)) self.parametersPanel.txtTas.setText(str(round(speed.Knots, 4))) except: raise ValueError("Value Invalid") # def captureBearing(self): # self.captureTrackTool= CaptureBearingTool(define._canvas, self.parametersPanel.txtTrack) # define._canvas.setMapTool(self.captureTrackTool) def method_36(self, bool_0): polylines = [] point3d5 = self.parametersPanel.pnlWaypoint.Point3d value = float(self.parametersPanel.txtTrack.Value) value1 = float(self.parametersPanel.txtRnpValue.text()) speed = Speed(float(self.parametersPanel.txtIas.text())) altitude = Altitude(float(self.parametersPanel.txtAltitude.text()), AltitudeUnits.FT) num1 = float(self.parametersPanel.txtIsa.text()) value2 = float(self.parametersPanel.txtTime.text()) speed1 = Speed(float(self.parametersPanel.pnlWind.speedBox.text())) num = 15 if (altitude.Feet >= 24500) else 23 speed2 = Speed.smethod_0(speed, num1, altitude) metresPerSecond = value2 * 60 * speed2.MetresPerSecond num2 = math.pow(speed2.Knots + speed1.Knots, 2) / ( 34313 * math.tan(Unit.ConvertDegToRad(num))) * 1852 num3 = value1 * 1852 num4 = num2 * (1 - math.sin(Unit.ConvertDegToRad(20))) / ( 2 * math.cos(Unit.ConvertDegToRad(20))) num5 = value1 * 1852 + 3704 if (num5 < 9260): num5 = 9260 point3d4 = MathHelper.distanceBearingPoint( point3d5, Unit.ConvertDegToRad(value + 90), num2 / 2) if (self.parametersPanel.cmbOrientation.currentText() != OrientationType.Left) else MathHelper.distanceBearingPoint( point3d5, Unit.ConvertDegToRad(value - 90), num2 / 2) point3d6 = MathHelper.distanceBearingPoint(point3d4, Unit.ConvertDegToRad(value), num4) point3d7 = MathHelper.distanceBearingPoint( point3d4, Unit.ConvertDegToRad(value + 180), metresPerSecond) num6 = num2 / 2 + 1.414 * num3 num7 = num2 / 2 + num3 point3d8 = MathHelper.distanceBearingPoint(point3d6, Unit.ConvertDegToRad(value), num6) point3d9 = MathHelper.distanceBearingPoint( point3d6, Unit.ConvertDegToRad(value + 90) - math.acos(num7 / num6), num6) point3d10 = MathHelper.distanceBearingPoint( point3d7, Unit.ConvertDegToRad(value + 90) + math.acos(num7 / num6), num6) point3d11 = MathHelper.distanceBearingPoint( point3d7, Unit.ConvertDegToRad(value + 180), num6) point3d12 = MathHelper.distanceBearingPoint( point3d7, Unit.ConvertDegToRad(value - 90) - math.acos(num7 / num6), num6) point3d13 = MathHelper.distanceBearingPoint( point3d6, Unit.ConvertDegToRad(value - 90) + math.acos(num7 / num6), num6) point3d = MathHelper.getIntersectionPoint( point3d9, MathHelper.distanceBearingPoint( point3d9, MathHelper.getBearing(point3d6, point3d9) - Unit.ConvertDegToRad(90), 100), point3d8, MathHelper.distanceBearingPoint(point3d8, Unit.ConvertDegToRad(value + 90), 100)) point3d1 = MathHelper.getIntersectionPoint( point3d10, MathHelper.distanceBearingPoint( point3d10, MathHelper.getBearing(point3d7, point3d10) + Unit.ConvertDegToRad(90), 100), point3d11, MathHelper.distanceBearingPoint(point3d11, Unit.ConvertDegToRad(value + 90), 100)) point3d2 = MathHelper.getIntersectionPoint( point3d12, MathHelper.distanceBearingPoint( point3d12, MathHelper.getBearing(point3d7, point3d12) - Unit.ConvertDegToRad(90), 100), point3d11, MathHelper.distanceBearingPoint(point3d11, Unit.ConvertDegToRad(value - 90), 100)) point3d3 = MathHelper.getIntersectionPoint( point3d13, MathHelper.distanceBearingPoint( point3d13, MathHelper.getBearing(point3d6, point3d13) + Unit.ConvertDegToRad(90), 100), point3d8, MathHelper.distanceBearingPoint(point3d8, Unit.ConvertDegToRad(value - 90), 100)) polylines1 = [] if (bool_0): num8 = num2 / 2 point3d14 = MathHelper.distanceBearingPoint( point3d4, Unit.ConvertDegToRad(value + 90), num8) point3d15 = MathHelper.distanceBearingPoint( point3d7, Unit.ConvertDegToRad(value + 90), num8) point3d16 = MathHelper.distanceBearingPoint( point3d7, Unit.ConvertDegToRad(value - 90), num8) point3d17 = MathHelper.distanceBearingPoint( point3d4, Unit.ConvertDegToRad(value - 90), num8) point3dArray = [point3d14, point3d15, point3d16, point3d17] polylineArea = PolylineArea(point3dArray) polylineArea.method_19( 1, -1 ) #MathHelper.smethod_57(TurnDirection.Right, point3d15, point3d16, point3d7)) polylineArea.method_19( 3, -1 ) #MathHelper.smethod_57(TurnDirection.Right, point3d17, point3d14, point3d4)) polylines1.append(polylineArea) point3dArray1 = [point3d9, point3d10, point3d12, point3d13] polylineArea1 = PolylineArea(point3dArray1) # for point3d0 in point3dArray1: # polyline1.Add(point3d0) polylineArea1.method_19( 1, MathHelper.smethod_57(TurnDirection.Right, point3d10, point3d12, point3d7)) polylineArea1.method_19( 3, MathHelper.smethod_57(TurnDirection.Right, point3d13, point3d9, point3d6)) # polylineArea1.set_closed(True) # polyline1.SetDatabaseDefaults(); polylines1.append(polylineArea1) num9 = num5 / 5 for i in range(1, 6): # polylineArea1.pop(len(polylineArea1) -1) polylineArea0 = polylineArea1.getOffsetCurve(num9 * i, 4) polylines1.append(polylineArea0) return polylines1 def method_36_Construct(self, bool_0): polylines = [] point3d5 = self.parametersPanel.pnlWaypoint.Point3d value = float(self.parametersPanel.txtTrack.Value) value1 = float(self.parametersPanel.txtRnpValue.text()) speed = Speed(float(self.parametersPanel.txtIas.text())) altitude = Altitude(float(self.parametersPanel.txtAltitude.text()), AltitudeUnits.FT) num1 = float(self.parametersPanel.txtIsa.text()) value2 = float(self.parametersPanel.txtTime.text()) speed1 = Speed(float(self.parametersPanel.pnlWind.speedBox.text())) num = 15 if (altitude.Feet >= 24500) else 23 speed2 = Speed.smethod_0(speed, num1, altitude) metresPerSecond = value2 * 60 * speed2.MetresPerSecond num2 = math.pow(speed2.Knots + speed1.Knots, 2) / ( 34313 * math.tan(Unit.ConvertDegToRad(num))) * 1852 num3 = value1 * 1852 num4 = num2 * (1 - math.sin(Unit.ConvertDegToRad(20))) / ( 2 * math.cos(Unit.ConvertDegToRad(20))) num5 = value1 * 1852 + 3704 if (num5 < 9260): num5 = 9260 point3d4 = MathHelper.distanceBearingPoint( point3d5, Unit.ConvertDegToRad(value + 90), num2 / 2) if (self.parametersPanel.cmbOrientation.currentText() != OrientationType.Left) else MathHelper.distanceBearingPoint( point3d5, Unit.ConvertDegToRad(value - 90), num2 / 2) point3d6 = MathHelper.distanceBearingPoint(point3d4, Unit.ConvertDegToRad(value), num4) point3d7 = MathHelper.distanceBearingPoint( point3d4, Unit.ConvertDegToRad(value + 180), metresPerSecond) num6 = num2 / 2 + 1.414 * num3 num7 = num2 / 2 + num3 point3d8 = MathHelper.distanceBearingPoint(point3d6, Unit.ConvertDegToRad(value), num6) point3d9 = MathHelper.distanceBearingPoint( point3d6, Unit.ConvertDegToRad(value + 90) - math.acos(num7 / num6), num6) point3d10 = MathHelper.distanceBearingPoint( point3d7, Unit.ConvertDegToRad(value + 90) + math.acos(num7 / num6), num6) point3d11 = MathHelper.distanceBearingPoint( point3d7, Unit.ConvertDegToRad(value + 180), num6) point3d12 = MathHelper.distanceBearingPoint( point3d7, Unit.ConvertDegToRad(value - 90) - math.acos(num7 / num6), num6) point3d13 = MathHelper.distanceBearingPoint( point3d6, Unit.ConvertDegToRad(value - 90) + math.acos(num7 / num6), num6) point3d = MathHelper.getIntersectionPoint( point3d9, MathHelper.distanceBearingPoint( point3d9, MathHelper.getBearing(point3d6, point3d9) - Unit.ConvertDegToRad(90), 100), point3d8, MathHelper.distanceBearingPoint(point3d8, Unit.ConvertDegToRad(value + 90), 100)) point3d1 = MathHelper.getIntersectionPoint( point3d10, MathHelper.distanceBearingPoint( point3d10, MathHelper.getBearing(point3d7, point3d10) + Unit.ConvertDegToRad(90), 100), point3d11, MathHelper.distanceBearingPoint(point3d11, Unit.ConvertDegToRad(value + 90), 100)) point3d2 = MathHelper.getIntersectionPoint( point3d12, MathHelper.distanceBearingPoint( point3d12, MathHelper.getBearing(point3d7, point3d12) - Unit.ConvertDegToRad(90), 100), point3d11, MathHelper.distanceBearingPoint(point3d11, Unit.ConvertDegToRad(value - 90), 100)) point3d3 = MathHelper.getIntersectionPoint( point3d13, MathHelper.distanceBearingPoint( point3d13, MathHelper.getBearing(point3d6, point3d13) + Unit.ConvertDegToRad(90), 100), point3d8, MathHelper.distanceBearingPoint(point3d8, Unit.ConvertDegToRad(value - 90), 100)) polylines1 = [] polylineArea = None if (bool_0): num8 = num2 / 2 point3d14 = MathHelper.distanceBearingPoint( point3d4, Unit.ConvertDegToRad(value + 90), num8) point3d15 = MathHelper.distanceBearingPoint( point3d7, Unit.ConvertDegToRad(value + 90), num8) point3d16 = MathHelper.distanceBearingPoint( point3d7, Unit.ConvertDegToRad(value - 90), num8) point3d17 = MathHelper.distanceBearingPoint( point3d4, Unit.ConvertDegToRad(value - 90), num8) point3dArray = [point3d14, point3d15, point3d16, point3d17] polylineArea = PolylineArea(point3dArray) polylineArea.method_19( 1, -1 ) #MathHelper.smethod_57(TurnDirection.Right, point3d15, point3d16, point3d7)) polylineArea.method_19( 3, -1 ) #MathHelper.smethod_57(TurnDirection.Right, point3d17, point3d14, point3d4)) polylines1.append(polylineArea) point3dArray1 = [point3d9, point3d10, point3d12, point3d13] polylineArea1 = PolylineArea(point3dArray1) # for point3d0 in point3dArray1: # polyline1.Add(point3d0) polylineArea1.method_19( 1, MathHelper.smethod_57(TurnDirection.Right, point3d10, point3d12, point3d7)) polylineArea1.method_19( 3, MathHelper.smethod_57(TurnDirection.Right, point3d13, point3d9, point3d6)) # polylineArea1.set_closed(True) # polyline1.SetDatabaseDefaults(); polylines1.append(polylineArea1) polylineAreaLineList = [ PolylineArea( [polylineArea1[0].Position, polylineArea1[1].Position]), PolylineArea( [polylineArea1[2].Position, polylineArea1[3].Position]) ] polylineAreaArc0 = PolylineArea() polylineAreaArc0.Add(polylineArea1[1]) polylineAreaArc0.Add(PolylineAreaPoint(polylineArea1[2].Position)) polylineAreaArc1 = PolylineArea() polylineAreaArc1.Add(polylineArea1[3]) polylineAreaArc1.Add(PolylineAreaPoint(polylineArea1[0].Position)) polylineAreaArcList = [polylineAreaArc0, polylineAreaArc1] num9 = num5 / 5 polylineAreaArcListResult = [] polylineAreaLineListResult = [] for i in range(1, 6): polylineAreaL0 = polylineAreaLineList[0].getOffsetCurveNo( num9 * i, 4) polylineAreaLineListResult.append(polylineAreaL0) polylineAreaA0 = polylineAreaArcList[0].getOffsetCurveNo( num9 * i, 4) polylineAreaT = PolylineArea() polylineAreaT.Add( PolylineAreaPoint( polylineAreaA0[0].Position, MathHelper.smethod_60( polylineAreaA0[0].Position, polylineAreaA0[int(len(polylineAreaA0) / 2)].Position, polylineAreaA0[len(polylineAreaA0) - 1].Position))) polylineAreaT.Add( PolylineAreaPoint(polylineAreaA0[len(polylineAreaA0) - 1].Position)) polylineAreaArcListResult.append(polylineAreaT) polylineAreaL1 = polylineAreaLineList[1].getOffsetCurveNo( num9 * i, 4) polylineAreaLineListResult.append(polylineAreaL1) polylineAreaA1 = polylineAreaArcList[1].getOffsetCurveNo( num9 * i, 4) polylineAreaT = PolylineArea() polylineAreaT.Add( PolylineAreaPoint( polylineAreaA1[0].Position, MathHelper.smethod_60( polylineAreaA1[0].Position, polylineAreaA1[int(len(polylineAreaA1) / 2)].Position, polylineAreaA1[len(polylineAreaA1) - 1].Position))) polylineAreaT.Add( PolylineAreaPoint(polylineAreaA1[len(polylineAreaA1) - 1].Position)) polylineAreaArcListResult.append(polylineAreaT) polylineAreaLineListResult.append( PolylineArea([ polylineAreaL0[len(polylineAreaL0) - 1].Position, polylineAreaA0[0].Position ])) polylineAreaLineListResult.append( PolylineArea([ polylineAreaA0[len(polylineAreaA0) - 1].Position, polylineAreaL1[0].Position ])) polylineAreaLineListResult.append( PolylineArea([ polylineAreaL1[len(polylineAreaL1) - 1].Position, polylineAreaA1[0].Position ])) polylineAreaLineListResult.append( PolylineArea([ polylineAreaA1[len(polylineAreaA1) - 1].Position, polylineAreaL0[0].Position ])) return polylineAreaLineListResult, polylineAreaArcListResult, polylineArea
def createGUIElements(self): ''' Build the GUI based on the parameters for the tool ''' for i, param in enumerate(self.tooltypearray): # print 'creatgui element %d, %s' %(i, param) #Swap in the passed params if they exist... loop through each passed #param and see if it matches... if so swap it in if self.optional_params.has_key(str(param[0])): param[2] = self.optional_params[str(param[0])] #print "Key: %s , Val: %s" % (param[0],param[1]) widgetTemp = QWidget(self.variableBox) widgetTemp.setObjectName(QString("test_widget").append(QString(i))) self.test_widget.append(widgetTemp) hlayout = QHBoxLayout(widgetTemp) self.hboxlayout.append(hlayout) hlayout.setMargin(4) hlayout.setSpacing(4) hlayout.setObjectName(QString("hboxlayout").append(QString(i))) test_text = QLabel(widgetTemp) self.test_text.append(test_text) test_text.setObjectName(QString("test_text").append(QString(i))) paramName = param[0].strip() if param[2].strip() == "Required": palette = test_text.palette() palette.setColor(QPalette.WindowText, Qt.red) test_text.setPalette(palette) test_text.setText(paramName) test_text_type = QLabel(widgetTemp) self.test_text_type.append(test_text_type) test_text_type.setObjectName( QString("test_text_type").append(QString(i))) paramName = param[1].strip() test_text_type.setText( QString("(").append(paramName).append(QString(")"))) hlayout.addWidget(test_text) hlayout.addWidget(test_text_type) if param[1] == 'db_connection_hook': test_line = QComboBox(widgetTemp) db_connection_choices = get_db_connection_names() for i in db_connection_choices: test_line.addItem(QString(i)) self.test_line.append(test_line) test_line.setEnabled(True) test_line.setMinimumSize(QSize(200, 0)) test_line.setObjectName( QString("test_line").append(QString(i))) index = test_line.findText(param[2], Qt.MatchExactly) test_line.setCurrentIndex(index) else: test_line = QLineEdit(widgetTemp) self.test_line.append(test_line) test_line.setEnabled(True) test_line.setMinimumSize(QSize(200, 0)) test_line.setObjectName( QString("test_line").append(QString(i))) test_line.setText(QString(param[2])) hlayout.addWidget(test_line) # If we have a dir_path or file_path add a select button if (paramName == QString('dir_path')) or (paramName == QString('file_path')): pbnSelect = QPushButton(widgetTemp) pbnSelect.setObjectName( QString('pbnSelect').append(QString(i))) pbnSelect.setText(QString("Select...")) pbnSelectDelegate = FileDialogSignal(typeName=paramName, param=test_line) QObject.connect( pbnSelectDelegate.o, SIGNAL("buttonPressed(PyQt_PyObject,PyQt_PyObject)"), self.on_pbnSelect_released) QObject.connect(pbnSelect, SIGNAL("released()"), pbnSelectDelegate.relayButtonSignal) self.test_line_delegates.append(pbnSelectDelegate) self.test_line_buttons.append(pbnSelect) hlayout.addWidget(pbnSelect) self.vboxlayout.addWidget(widgetTemp) self.adjustSize() # Jesse adding help text from opusHelp tool_path = self.optional_params.get('tool_path', '') try: exec_stmt = 'from %s.%s import opusHelp' % (tool_path, self.module_name) exec exec_stmt help = QString(opusHelp()) self.toolhelpEdit.insertPlainText(help) except Exception, e: help = 'could not find opusHelp function in tool module' self.toolhelpEdit.insertPlainText(help)
class DlgUserInputPanel(QDialog): def __init__(self, parent=None): QDialog.__init__(self, parent) self.resize(100, 70) self.setWindowTitle("User Input Panel") sizePolicy = QSizePolicy(QSizePolicy.Fixed, QSizePolicy.Fixed) sizePolicy.setHorizontalStretch(0) sizePolicy.setVerticalStretch(0) sizePolicy.setHeightForWidth(self.sizePolicy().hasHeightForWidth()) self.setSizePolicy(sizePolicy) verticalLayoutDlg = QVBoxLayout(self) verticalLayoutDlg.setObjectName(("verticalLayoutDlg")) self.groupBox1 = GroupBox(self) self.groupBox1.Caption = "" verticalLayoutDlg.addWidget(self.groupBox1) self.frameBoxPanel = QFrame(self) sizePolicy = QSizePolicy(QSizePolicy.Preferred, QSizePolicy.Fixed) sizePolicy.setHorizontalStretch(0) sizePolicy.setVerticalStretch(0) sizePolicy.setHeightForWidth( self.frameBoxPanel.sizePolicy().hasHeightForWidth()) self.frameBoxPanel.setSizePolicy(sizePolicy) self.frameBoxPanel.setFrameShape(QFrame.NoFrame) self.frameBoxPanel.setFrameShadow(QFrame.Raised) self.frameBoxPanel.setObjectName(("frameBoxPanel")) self.hLayoutframeBoxPanel = QHBoxLayout(self.frameBoxPanel) self.hLayoutframeBoxPanel.setSpacing(0) self.hLayoutframeBoxPanel.setMargin(0) self.hLayoutframeBoxPanel.setObjectName(("hLayoutframeBoxPanel")) self.captionLabel = QLabel(self.frameBoxPanel) sizePolicy = QSizePolicy(QSizePolicy.Fixed, QSizePolicy.Fixed) sizePolicy.setHorizontalStretch(0) sizePolicy.setVerticalStretch(0) sizePolicy.setHeightForWidth( self.captionLabel.sizePolicy().hasHeightForWidth()) self.captionLabel.setSizePolicy(sizePolicy) self.captionLabel.setMinimumSize(QSize(60, 0)) self.captionLabel.setMaximumSize(QSize(60, 16777215)) self.captionLabel.setText("Radius:") font = QFont() font.setBold(False) font.setWeight(50) self.captionLabel.setFont(font) self.captionLabel.setObjectName(("captionLabel")) self.hLayoutframeBoxPanel.addWidget(self.captionLabel) self.spinBox = QLineEdit(self.frameBoxPanel) # self.spinBox.setMaximum(1000000000) # self.spinBox.setMinimum(-1000000000) self.spinBox.setText("0") self.spinBox.setMinimumSize(QSize(150, 0)) self.hLayoutframeBoxPanel.addWidget(self.spinBox) self.groupBox1.Add = self.frameBoxPanel def getValue(self): return float(self.spinBox.text()) def setValue(self, val): if isinstance(val, int) or isinstance(val, float): self.spinBox.setText(str(round(val, 4))) Value = property(getValue, setValue, None, None)
class Mplayer(QDialog): REVENIR, PAS_PRECEDENT_SUIVANT, PRECEDENT_SUIVANT, CURSEUR_SUR_UNE_LIGNE,\ CURSEUR_A_PART, PARCOURIR, PAS_PARCOURIR, LIST, RATIO = range(9) HAUTEUR, LARGEUR = range(2) def __init__(self, cheminVideo=[], taille=(250,225), choixWidget=(RATIO, REVENIR, PAS_PRECEDENT_SUIVANT,CURSEUR_SUR_UNE_LIGNE,PAS_PARCOURIR,LIST), debutFin=(0,0), cheminMPlayer=None, barreTaches=None, facteurLimitant=HAUTEUR, cheminParcourir=None, parent=None): """widget mplayer""" QDialog.__init__(self, parent) #=== Paramètres généraux ===# self.setAttribute(Qt.WA_DeleteOnClose) self.setWindowTitle(_(u"Player vidéo")) #On réduit la marge pour gagner de l'espace self.setContentsMargins(0,0,0,0) self.systeme = os.name ### Quand EKD windows est installé, le chemin des dépendances sont ########### ### positionnées dans les variables d'environnement donc pas besoin de ####### ### collecter le chemin des ces dépendances ################################## self.cheminMPlayer = "mplayer" ############################################################################## # liste de chemins vidéos if type(cheminVideo) != list : self.listeVideos=[cheminVideo] else : self.listeVideos = cheminVideo # est-ce que la vidéo est lue? self.estLue=False # est-ce que la vidéo est en pause? self.estEnPause=False self.debutFin = debutFin # Nom du fichier courant (le self n'est pas encore utile) txtParDefaut = u"Pas de fichier lu" if self.listeVideos.__len__()!=0: self.fichierCourant = [txtParDefaut, self.listeVideos[0]] else: self.fichierCourant = [txtParDefaut, ""] # Barre des tâches de la fenêtre self.barreTaches = barreTaches # Taille de la vidéo self.tailleLargeur=taille[0] self.tailleHauteur=taille[1] # paramètres des boutons-icones iconTaille=22 flat=1 # Pour récupérer le temps courant depuis certains cadre self.temps = 0 self.dureeTimer = 10 # temps en ms ############################################################################################################################### #Pour être plus précis lors de la lecture, on prend comme unité la miliseconde. ###################### ## Il faut donc utiliser une echelle 1000 fois plus grande pour les unités du slider self.echelle=1000 ############################################################################################################################### # Permet de récupérer la durée de la vidéo depuis une instance de la classe # Sert dans certains cadres self.dureeVideo = 0 # Chemin sur lequel peut s'ouvrir la boite de dialogue de fichier # associée au bouton parcourir self.cheminPourBoutonParcourir = cheminParcourir self.taille = taille debug("self.taille avant lecture : %s %s" % (self.taille, type(self.taille))) #=== Widgets ===# self.icone_lire=QIcon("Icones" + os.sep + "player_play.png") self.icone_pause=QIcon("Icones" + os.sep + "player_pause.png") self.icone_arret=QIcon("Icones" + os.sep + "player_stop.png") if Mplayer.REVENIR in choixWidget: self.bout_revenir = QPushButton(u"Revenir") self.bout_revenir.setIcon(QIcon("Icones" + os.sep + "revenir.png")) if Mplayer.PARCOURIR in choixWidget: self.bout_ouvVideo = QPushButton(u"Parcourir...") if Mplayer.PRECEDENT_SUIVANT in choixWidget: self.bout_prec = QPushButton(QIcon("Icones" + os.sep + "player_rew.png"),"") self.bout_prec.setIconSize(QSize(iconTaille, iconTaille)) self.bout_prec.setFlat(flat) self.bout_suivant = QPushButton(QIcon("Icones" + os.sep + "player_fwd.png"),"") self.bout_suivant.setIconSize(QSize(iconTaille, iconTaille)) self.bout_suivant.setFlat(flat) self.LISTW=False if Mplayer.LIST in choixWidget : self.LISTW = True self.listFichiers = QComboBox() self.listFichiers.hide() self.setListeVideo() self.bout_LectPause = QPushButton(self.icone_lire,"") self.bout_LectPause.setIconSize(QSize(iconTaille, iconTaille)) self.bout_LectPause.setFlat(flat) self.bout_Arret = QPushButton(self.icone_arret,"") self.bout_Arret.setIconSize(QSize(iconTaille, iconTaille)) self.bout_Arret.setFlat(flat) # widget qui contiendra la vidéo self.cibleVideo = DisplayVid(self) # par défaut le widget-cible est noir color = QColor(0, 0, 0) self.cibleVideo.setAutoFillBackground(True) self.cibleVideo.setPalette(QPalette(color)) self.cibleVideo.setSizePolicy(QSizePolicy.Expanding, QSizePolicy.Fixed) self.cibleVideo.setFixedHeight(self.taille[1]) self.cibleVideo.setToolTip(self.fichierCourant[0]) #Choix de l'aspect ratio de la vidéo if Mplayer.RATIO in choixWidget : self.conf = QGroupBox() self.conf.setContentsMargins(0,0,0,0) self.conf.setMinimumSize(QSize(self.tailleLargeur, 0)) self.conf.setObjectName("conf") self.verticalLayout = QHBoxLayout(self.conf) self.verticalLayout.setObjectName("verticalLayout") self.choicenorm = QRadioButton(self.conf) self.choicenorm.setObjectName("choicenorm") self.verticalLayout.addWidget(self.choicenorm) self.choicewide = QRadioButton(self.conf) self.choicewide.setObjectName("choicewide") self.verticalLayout.addWidget(self.choicewide) self.choiceone = QRadioButton(self.conf) self.choiceone.setObjectName("choiceone") self.verticalLayout.addWidget(self.choiceone) self.choicenorm.setText("4:3") self.choicewide.setText("16:9") self.choiceone.setText("w:h") # Checked le ratio de la vidéo if self.listeVideos.__len__()!=0: self.changeRatio(self.listeVideos[0]) else : self.setRatio(4.0/3.0) if Mplayer.RATIO in choixWidget : self.choicenorm.setChecked(True) self.slider = QSlider(Qt.Horizontal) self.slider.setEnabled(True) self.mplayerProcess = QProcess(self) self.timer = QTimer(self) self.tempsChrono = TracerChrono() #=== mise-en-page/plan ===# mhbox = QHBoxLayout() vbox = QVBoxLayout() vbox.addWidget(self.cibleVideo) if Mplayer.RATIO in choixWidget : vbox.addWidget(self.conf) hbox = QHBoxLayout() if Mplayer.REVENIR in choixWidget: hbox.addWidget(self.bout_revenir) if Mplayer.PARCOURIR in choixWidget: hbox.addWidget(self.bout_ouvVideo) hbox.addWidget(self.bout_LectPause) hbox.addWidget(self.bout_Arret) if Mplayer.PRECEDENT_SUIVANT in choixWidget: hbox.addWidget(self.bout_prec) hbox.addWidget(self.bout_suivant) hbox.addWidget(self.tempsChrono) if Mplayer.CURSEUR_A_PART not in choixWidget: hbox.addWidget(self.slider) vbox.addLayout(hbox) if Mplayer.CURSEUR_A_PART in choixWidget: hbox.setAlignment(Qt.AlignLeft) hbox = QHBoxLayout() hbox.addWidget(self.slider) vbox.addLayout(hbox) # Liste fichier dans combobox if self.LISTW : hbox = QHBoxLayout() hbox.addWidget(self.listFichiers) vbox.addLayout(hbox) mhbox.addLayout(vbox) self.setLayout(mhbox) #=== connexion des widgets à des fonctions ===# if Mplayer.REVENIR in choixWidget: self.connect(self.bout_revenir, SIGNAL('clicked()'), SLOT('close()')) if Mplayer.PARCOURIR in choixWidget: self.connect(self.bout_ouvVideo, SIGNAL('clicked()'), self.ouvrirVideo) if Mplayer.PRECEDENT_SUIVANT in choixWidget: self.connect(self.bout_prec, SIGNAL('clicked()'), self.precedent) self.connect(self.bout_suivant, SIGNAL('clicked()'), self.suivant) #Ajouté le 08/11/2009 - Liste des fichiers dans une combobox if self.LISTW : self.connect(self.listFichiers, SIGNAL('currentIndexChanged(int)'), self.changeVideo) self.connect(self.bout_LectPause, SIGNAL('clicked()'), self.lectPause) self.connect(self.bout_Arret, SIGNAL('clicked()'), self.arretMPlayer) self.connect(self.mplayerProcess, SIGNAL('readyReadStandardOutput()'), self.recupSortie) self.connect(self.mplayerProcess, SIGNAL('finished(int,QProcess::ExitStatus)'), self.finVideo) self.connect(self.timer, SIGNAL('timeout()'), self.sonderTempsActuel) self.connect(self.slider, SIGNAL('sliderMoved(int)'), self.changerTempsCurseur) self.connect(self.cibleVideo, SIGNAL('changeSize'), self.sizeMplayer) if Mplayer.RATIO in choixWidget : self.connect(self.choicenorm, SIGNAL("clicked(bool)"), self.defRatio) self.connect(self.choicewide, SIGNAL("clicked(bool)"), self.defRatio) self.connect(self.choiceone, SIGNAL("clicked(bool)"), self.defRatio) def setListeVideo(self) : self.referenceVideo = [] self.listFichiers.clear() for vid in self.listeVideos : self.referenceVideo.append(vid) self.listFichiers.addItem(os.path.basename(vid)) if self.listeVideos.__len__() > 1 : self.listFichiers.show() def setAudio(self,au) : if au : self.cibleVideo.hide() if "conf" in self.__dict__ : self.conf.hide() else : self.cibleVideo.show() if "conf" in self.__dict__ : self.conf.show() def changeVideo(self, index) : self.arretMPlayer() if index >= 0 : # Condition ajoutée pour éviter une erreure de dépassement de range dans la liste. self.listeVideos = self.referenceVideo[index] self.listFichiers.setCurrentIndex(index) def defRatio(self, state=0) : if state : if self.choicenorm.isChecked() : self.setRatio(4.0/3.0) if self.choicewide.isChecked() : self.setRatio(16.0/9.0) if self.choiceone.isChecked() : try : dim=getVideoSize(unicode(self.listeVideos[0])) self.setRatio(dim[0]/dim[1]) except : None self.defRatio() else : self.adjustSize() def setRatio(self,ratio) : self.ratio = ratio self.sizeMplayer() def changeRatio(self,video) : rv = getVideoRatio(video) if rv[0]==0.0 and type(rv[1])==float : rat = rv[1] else : rat = rv[0] if rat > 1.7 : if "choicewide" in self.__dict__ : self.choicewide.setChecked(True) self.setRatio(16.0/9.0) elif rat > 1.3 and rat <= 1.7 : if "choicenorm" in self.__dict__ : self.choicenorm.setChecked(True) self.setRatio(4.0/3.0) elif rat < 1.3 and rat != 0.0 : if "choiceone" in self.__dict__ : self.choiceone.setChecked(True) dim=getVideoSize(video) self.setRatio(dim[0]/dim[1]) else : if "choicenorm" in self.__dict__ : self.choicenorm.setChecked(True) self.setRatio(4.0/3.0) def sizeMplayer(self) : self.cibleVideo.setFixedHeight(int(self.cibleVideo.width()/self.ratio)) def ouvrirVideo(self): """Ouverture de la boîte de dialogue de fichiers""" txt = u"Fichiers vidéo" if self.cheminPourBoutonParcourir: chemin = self.cheminPourBoutonParcourir else: try: chemin = EkdConfig.get('general','video_input_path').decode("UTF8") except: chemin = os.path.expanduser('~') liste=QFileDialog.getOpenFileNames(None, u"Ouvrir", chemin, "%s (*.avi *.mpg *.mpeg *.mjpeg *.flv *.mp4 *.ogg *.vob *.mov *.wmv *.3gp *.h264)\n*" %txt) if not liste: return self.listeVideos = liste self.changeRatio(unicode(self.listeVideos[0])) chemin = unicode(self.listeVideos[0]) EkdConfig.set('general','video_input_path',os.path.dirname(chemin).encode("UTF8")) def setVideos(self, videos) : '''Définie proprement la liste des vidéos à jouer''' if type(videos) != list : self.listeVideos = [videos] else : self.listeVideos = videos if self.LISTW and videos.__len__() > 1 : self.setListeVideo() elif self.LISTW : self.listFichiers.hide() def demarrerMPlayer(self): """démarrage de mplayer avec les arguments choisis""" if self.estLue: return True args = QStringList() # Liste Qt qui contiendra les options de mplayer # Ajout d'options à liste: args << "-option" # mplayer fonctionnera comme un terminal dans ce script args << "-slave" # on ne veut pas avoir des commentaires sans grand intérêt args << "-quiet" # Sous linux, aucun driver n'a été nécessaire et pas de manip pour Wid :) if self.systeme=='posix': # try - except? # la fenêtre de mplayer restera attaché à la fenêtre # wid prend en valeur le nombre identifiant le widget (celui qui contiendra la vidéo) args << "-wid" << QString.number(self.cibleVideo.winId()) # Objet QString car args est une liste de ch de caractères settings = QSettings() videoOutput = settings.value("vo", QVariant('')).toString() if videoOutput: args << '-vo' << videoOutput # Sous windows else: # reinterpret_cast<qlonglong> obligatoire, winId() ne se laissant pas convertir gentiment ;) args << "-wid" << self.cibleVideo.winId().__hex__() args << "-vo" << "directx:noaccel" #args << "-vo" << "gl" # alternative # chemin de la vidéo args << self.listeVideos if PYQT_VERSION_STR >= "4.1.0": # mode de canal: on fusionne le canal de sortie normal (stdout) et celui des erreurs (stderr) self.mplayerProcess.setProcessChannelMode(QProcess.MergedChannels) # démarrage de mplayer (en tenant compte des arguments définis ci-dessus) # comme un nouveau processus self.mplayerProcess.start(self.cheminMPlayer, args) # au cas où mplayer ne démarrerait pas au bout de 3 sec (ex. problème de codec) if not self.mplayerProcess.waitForStarted(3000): QMessageBox.critical(self, u"Avertissement", u"Bogue au lancement de la vidéo avec mplayer") return False # donne le temps toutes les x secondes self.timer.start(self.dureeTimer) self.estLue = True return True def recupSortie(self): """récupère les lignes d'information émises par QProcess (mplayerProcess) et en tire les conséquences""" while self.mplayerProcess.canReadLine(): # renvoie True si une ligne complète peut être lue à partir du système # stocker l'ensemble des bits d'une ligne tampon=QByteArray(self.mplayerProcess.readLine()) # readline: lit une ligne ascii à partir du système # On vérifie si on a eu des réponses if tampon.startsWith("Playing"): # On récupère les infos de base ('$ mplayer -input cmdlist' pour avoir la liste complète - file:///usr/share/doc/mplayer-doc/tech/slave.txt.gz pour plus de détails) self.mplayerProcess.write("get_video_resolution\n") # récupère la résolution de la vidéo self.mplayerProcess.write("get_time_length\n") # Nouveau fichier chargé -> on récupère son nom ind = tampon.length() - 2 # suppression du '.' à la fin tampon.remove(ind,ind) tampon.remove(0, 8) # vire Playing tampon.replace(QByteArray("\n"), QByteArray("")) tampon.replace(QByteArray("\r"), QByteArray("")) try: # Tour de passe-passe pour ne pas avoir de problème d'accents # Condition pour détection windows if os.name == 'nt': self.fichierCourant[1]=unicode(QString(tampon)) # Condition pour détection Linux ou MacOSX elif os.name in ['posix', 'mac']: self.fichierCourant[1]=unicode(QString(tampon)).encode("Latin1").decode("UTF8") except UnicodeEncodeError, e: debug(e) self.fichierCourant[1]="?" self.cibleVideo.setToolTip(self.fichierCourant[1]) if self.barreTaches is not None: self.barreTaches.showMessage(self.fichierCourant[1]) # réponse à get_video_resolution : ANS_VIDEO_RESOLUTION='<width> x <height>' if tampon.startsWith("ANS_VIDEO_RESOLUTION"): # retourne True si l'ensemble de bits démarre avec "..." debug("tampon : %s" % tampon) # ex. -> ANS_VIDEO_RESOLUTION='352 x 288' tampon.remove(0, 21) # suppression des 21 1er caract -> '352 x 288' tampon.replace(QByteArray("'"), QByteArray("")) # -> 352 x 288 tampon.replace(QByteArray(" "), QByteArray("")) # -> 352x288 tampon.replace(QByteArray("\n"), QByteArray("")) # -> 352x288 # retour chariot unix tampon.replace(QByteArray("\r"), QByteArray("")) # -> 352x288 # retour chariot windows #print "-----tampon.indexOf('x') :", tampon.indexOf('x'), type(tampon.indexOf('x')) sepIndex = tampon.indexOf('x') # récupère la position de 'x' # 3 <type 'int'> #print "-----tampon.left(sepIndex).toInt():", tampon.left(sepIndex).toInt(), type(tampon.left(sepIndex).toInt()) resX = tampon.left(sepIndex).toInt()[0] # -> 352 # (352, True) <type 'tuple'> #print "-----tampon.mid(sepIndex+1).toInt() :", tampon.mid(sepIndex+1).toInt(), type(tampon.mid(sepIndex+1).toInt()) resY = tampon.mid(sepIndex+1).toInt()[0] # -> 288 # (288, True) <type 'tuple'> # on définit les nouvelles dimensions de l'image du widget-mplayer. # try pour éviter les bogues sur les fichiers audio (sans dimension d'image)!!! #try: if resX!=0 or resY!=0: debug( "ratio : %s - %s" % (self.ratio, type(self.ratio))) else: debug("fichier audio") # réponse à get_time_length : ANS_LENGTH=xx.yy elif tampon.startsWith("ANS_LENGTH"): debug("tampon : %s" % tampon) # -> ANS_LENGTH=279.38 tampon.remove(0, 11) # vire ANS_LENGTH= tampon.replace(QByteArray("'"), QByteArray("")) tampon.replace(QByteArray(" "), QByteArray("")) tampon.replace(QByteArray("\n"), QByteArray("")) tampon.replace(QByteArray("\r"), QByteArray("")) # -> 279.38 #print "-----tampon.toFloat() :", tampon.toFloat(), type(tampon.toFloat()) tempsMax = tampon.toFloat()[0] # (279.3800048828125, True) <type 'tuple'> self.dureeVideo = tempsMax ## Modifié le 28/05/2009 : On augmente la précision du slider #self.slider.setMaximum(tempsMax) # déf du domaine de valeur du curseur self.slider.setMaximum(tempsMax*self.echelle) # ATTENTION J'AI COMMENTE CETTE LIGNE !!! #self.slider.setMaximum(tempsMax) # réponse à get_time_pos : ANS_TIME_POSITION=xx.y elif tampon.startsWith("ANS_TIME_POSITION"): #print "tampon :",tampon # -> ANS_TIME_POSITION=1.4 (temps courant) tampon.remove(0, 18) # vire ANS_TIME_POSITION= tampon.replace(QByteArray("'"), QByteArray("")) tampon.replace(QByteArray(" "), QByteArray("")) tampon.replace(QByteArray("\n"), QByteArray("")) tampon.replace(QByteArray("\r"), QByteArray("")) #print "-----tampon.toFloat() :", tampon.toFloat(), type(tampon.toFloat()) tempsCourant = tampon.toFloat()[0] # (1.3999999761581421, True) <type 'tuple'> # récupération du temps courant: utile dans certains cadres self.temps = tempsCourant # Programmer un arrêt. Utile pour les aperçus temps = float("%.1f" %self.temps) if self.debutFin!=(0,0) and self.debutFin[1]==temps: self.arretMPlayer() return self.slider.setValue(tempsCourant*self.echelle) ############################################################################# self.changerTempsChrono(tempsCourant) # modifier le chrono du bouton
def createGUIElements(self): ''' Build the GUI based on the parameters for the tool ''' for i, param in enumerate(self.tooltypearray): # print 'creatgui element %d, %s' %(i, param) #Swap in the passed params if they exist... loop through each passed #param and see if it matches... if so swap it in if self.optional_params.has_key(str(param[0])): param[2] = self.optional_params[str(param[0])] #print "Key: %s , Val: %s" % (param[0],param[1]) widgetTemp = QWidget(self.variableBox) widgetTemp.setObjectName(QString("test_widget").append(QString(i))) self.test_widget.append(widgetTemp) hlayout = QHBoxLayout(widgetTemp) self.hboxlayout.append(hlayout) hlayout.setMargin(4) hlayout.setSpacing(4) hlayout.setObjectName(QString("hboxlayout").append(QString(i))) test_text = QLabel(widgetTemp) self.test_text.append(test_text) test_text.setObjectName(QString("test_text").append(QString(i))) paramName = param[0].strip() if param[2].strip() == "Required": palette = test_text.palette() palette.setColor(QPalette.WindowText,Qt.red) test_text.setPalette(palette) test_text.setText(paramName) test_text_type = QLabel(widgetTemp) self.test_text_type.append(test_text_type) test_text_type.setObjectName(QString("test_text_type").append(QString(i))) paramName = param[1].strip() test_text_type.setText(QString("(").append(paramName).append(QString(")"))) hlayout.addWidget(test_text) hlayout.addWidget(test_text_type) if param[1] == 'db_connection_hook': test_line = QComboBox(widgetTemp) db_connection_choices = get_db_connection_names() for i in db_connection_choices: test_line.addItem(QString(i)) self.test_line.append(test_line) test_line.setEnabled(True) test_line.setMinimumSize(QSize(200,0)) test_line.setObjectName(QString("test_line").append(QString(i))) index = test_line.findText(param[2], Qt.MatchExactly) test_line.setCurrentIndex(index) else: test_line = QLineEdit(widgetTemp) self.test_line.append(test_line) test_line.setEnabled(True) test_line.setMinimumSize(QSize(200,0)) test_line.setObjectName(QString("test_line").append(QString(i))) test_line.setText(QString(param[2])) hlayout.addWidget(test_line) # If we have a dir_path or file_path add a select button if (paramName == QString('dir_path')) or (paramName == QString('file_path')): pbnSelect = QPushButton(widgetTemp) pbnSelect.setObjectName(QString('pbnSelect').append(QString(i))) pbnSelect.setText(QString("Select...")) pbnSelectDelegate = FileDialogSignal(typeName=paramName,param=test_line) QObject.connect(pbnSelectDelegate.o, SIGNAL("buttonPressed(PyQt_PyObject,PyQt_PyObject)"), self.on_pbnSelect_released) QObject.connect(pbnSelect, SIGNAL("released()"), pbnSelectDelegate.relayButtonSignal) self.test_line_delegates.append(pbnSelectDelegate) self.test_line_buttons.append(pbnSelect) hlayout.addWidget(pbnSelect) self.vboxlayout.addWidget(widgetTemp) self.adjustSize() # Jesse adding help text from opusHelp tool_path = self.optional_params.get('tool_path','') try: exec_stmt = 'from %s.%s import opusHelp' % (tool_path, self.module_name) exec exec_stmt help = QString(opusHelp()) self.toolhelpEdit.insertPlainText(help) except Exception, e: help = 'could not find opusHelp function in tool module' self.toolhelpEdit.insertPlainText(help)
class Frame(QFrame): def __init__(self, parent, layoutStyle="VL"): QFrame.__init__(self, parent) # sizePolicy = QSizePolicy(QSizePolicy.Preferred, QSizePolicy.Fixed) # sizePolicy.setHorizontalStretch(0) # sizePolicy.setVerticalStretch(0) # sizePolicy.setHeightForWidth(self.sizePolicy().hasHeightForWidth()) # self.setSizePolicy(sizePolicy) self.layoutBoxPanel = None if layoutStyle == "VL": self.layoutBoxPanel = QVBoxLayout(self) self.layoutBoxPanel.setSpacing(6) self.layoutBoxPanel.setContentsMargins(0, 0, 0, 0) self.layoutBoxPanel.setObjectName(("layoutBoxPanel")) elif layoutStyle == "HL": self.layoutBoxPanel = QHBoxLayout(self) self.layoutBoxPanel.setSpacing(6) self.layoutBoxPanel.setContentsMargins(0, 0, 0, 0) self.layoutBoxPanel.setObjectName(("layoutBoxPanel")) def set_Margin(self, value): try: # if top == None: # self.layoutBoxPanel.setMargin(left, left, left, left) # return # elif right == None: # self.layoutBoxPanel.setMargin(left, top, left, top) # return self.layoutBoxPanel.setMargin(value) except: str0 = "You must set the magin of frame with the int type." QMessageBox.warning(self, "Warning", str0) Margin = property(None, set_Margin, None, None) def set_Add(self, widget): self.layoutBoxPanel.addWidget(widget) Add = property(None, set_Add, None, None) def get_Enabled(self): return self.isEnabled() def set_Enabled(self, bool): self.setEnabled(bool) Enabled = property(get_Enabled, set_Enabled, None, None) def get_Visible(self): return self.isVisible() def set_Visible(self, bool): self.setVisible(bool) Visible = property(get_Visible, set_Visible, None, None) def set_Spacing(self, val): self.layoutBoxPanel.setSpacing(val) Spacing = property(None, set_Spacing, None, None)
class TrackRadialBoxPanel(QWidget): def __init__(self, parent, alwwaysShowString=None): QWidget.__init__(self, parent) while not isinstance(parent, QDialog): parent = parent.parent() self.setObjectName("TrackRadialBoxPanel" + str(len(parent.findChildren(TrackRadialBoxPanel)))) self.parentP = parent sizePolicy = QSizePolicy(QSizePolicy.Fixed, QSizePolicy.Fixed) sizePolicy.setHorizontalStretch(0) sizePolicy.setVerticalStretch(0) sizePolicy.setHeightForWidth(self.sizePolicy().hasHeightForWidth()) self.setSizePolicy(sizePolicy) self.hLayoutBoxPanel = QHBoxLayout(self) self.hLayoutBoxPanel.setSpacing(0) self.hLayoutBoxPanel.setContentsMargins(0, 0, 0, 0) self.hLayoutBoxPanel.setObjectName(("hLayoutBoxPanel")) self.frameBoxPanel = QFrame(self) self.frameBoxPanel.setFrameShape(QFrame.NoFrame) self.frameBoxPanel.setFrameShadow(QFrame.Raised) self.frameBoxPanel.setObjectName(("frameBoxPanel")) self.hLayoutframeBoxPanel = QHBoxLayout(self.frameBoxPanel) self.hLayoutframeBoxPanel.setSpacing(0) self.hLayoutframeBoxPanel.setMargin(0) self.hLayoutframeBoxPanel.setObjectName(("hLayoutframeBoxPanel")) self.captionLabel = QLabel(self.frameBoxPanel) # sizePolicy = QSizePolicy(QSizePolicy.Fixed, QSizePolicy.Fixed) # sizePolicy.setHorizontalStretch(0) # sizePolicy.setVerticalStretch(0) # sizePolicy.setHeightForWidth(self.captionLabel.sizePolicy().hasHeightForWidth()) # self.captionLabel.setSizePolicy(sizePolicy) self.captionLabel.setMinimumSize(QSize(200, 0)) self.captionLabel.setMaximumSize(QSize(200, 16777215)) font = QFont() font.setBold(False) font.setWeight(50) self.captionLabel.setFont(font) self.captionLabel.setObjectName(("captionLabel")) self.hLayoutframeBoxPanel.addWidget(self.captionLabel) self.frameBoxPanelIn = Frame(self.frameBoxPanel, "HL") self.frameBoxPanelIn.layoutBoxPanel.setSpacing(5) sizePolicy = QSizePolicy(QSizePolicy.Fixed, QSizePolicy.Fixed) sizePolicy.setHorizontalStretch(0) sizePolicy.setVerticalStretch(0) sizePolicy.setHeightForWidth( self.frameBoxPanelIn.sizePolicy().hasHeightForWidth()) self.frameBoxPanelIn.setSizePolicy(sizePolicy) self.txtRadialPlan = NumberBoxPanel(self.frameBoxPanelIn) self.txtRadialPlan.Caption = "Plan" self.txtRadialPlan.LabelWidth = 50 self.frameBoxPanelIn.Add = self.txtRadialPlan self.txtRadialGeodetic = NumberBoxPanel(self.frameBoxPanelIn) self.txtRadialGeodetic.Caption = "Geodetic" self.txtRadialGeodetic.LabelWidth = 70 self.frameBoxPanelIn.Add = self.txtRadialGeodetic self.btnCaptureRadial = QToolButton(self.frameBoxPanelIn) self.btnCaptureRadial.setText(("")) icon = QIcon() icon.addPixmap(QPixmap(("Resource/coordinate_capture.png")), QIcon.Normal, QIcon.Off) self.btnCaptureRadial.setIcon(icon) self.btnCaptureRadial.setObjectName(("btnCaptureRadial")) self.frameBoxPanelIn.Add = self.btnCaptureRadial self.hLayoutframeBoxPanel.addWidget(self.frameBoxPanelIn) self.hLayoutBoxPanel.addWidget(self.frameBoxPanel) spacerItem = QSpacerItem(0, 10, QSizePolicy.Minimum, QSizePolicy.Minimum) self.hLayoutBoxPanel.addItem(spacerItem) self.connect(self.txtRadialPlan, SIGNAL("Event_0"), self.txtRadialPlanChanged) self.connect(self.txtRadialGeodetic, SIGNAL("Event_0"), self.txtRadialGeodeticChanged) self.btnCaptureRadial.clicked.connect(self.btnCaptureRadialClicked) self.captionUnits = unicode("°", "utf-8") self.flag = 0 self.startPoint = None self.endPoint = None self.alwwaysShowString = alwwaysShowString # self.txtRadialGeodetic.setText("0.0") def method_6(self, string_0): return "%s%s\t%f %s" % (string_0, self.Caption, self.Value, self.captionUnits) def txtRadialPlanChanged(self): try: if self.flag == 0: self.flag = 1 if self.flag == 2: self.flag = 0 if self.flag == 1: try: self.txtRadialGeodetic.Value = round( self.otherBearingCalc(self.txtRadialPlan.Value, QGis.Meters), 4) except: self.txtRadialGeodetic.Value = 0.0 self.emit(SIGNAL("Event_0"), self) except: str0 = "You must input the float type in \"%s\"." % (self.Caption) QMessageBox.warning(self, "Warning", str0) self.txtRadialGeodetic.Value = 0.0 def txtRadialGeodeticChanged(self): try: if self.flag == 0: self.flag = 2 if self.flag == 1: self.flag = 0 if self.flag == 2: try: self.txtRadialPlan.Value = round( self.otherBearingCalc(self.txtRadialGeodetic.Value, QGis.DecimalDegrees), 4) except: self.txtRadialPlan.Value = 0.0 self.emit(SIGNAL("Event_0"), self) except: str0 = "You must input the float type in \"%s\"." % (self.Caption) QMessageBox.warning(self, "Warning", str0) self.txtRadialPlan.Value = 0.0 def otherBearingCalc(self, basicAngle, basicUnit): positionPanelOfParent = None existPositionPanelValid = False if len(self.parentP.findChildren(PositionPanel)) > 0: for pnl in self.parentP.findChildren(PositionPanel): if pnl.IsValid(): positionPanelOfParent = pnl existPositionPanelValid = True break basicBearing = Unit.ConvertDegToRad(basicAngle) unit = positionPanelOfParent.getUnit() basicPoint3d = None if existPositionPanelValid: basicPoint3d = positionPanelOfParent.Point3d else: if basicUnit == QGis.Meters: basicPoint3d = Point3D(656565, 6565656) else: basicPoint3d = Point3D(17, 59) resultBearing = None if unit == None: return elif unit == QGis.Meters: if basicUnit == QGis.Meters: point3dStart = basicPoint3d point3dEnd = MathHelper.distanceBearingPoint( point3dStart, basicBearing, 500, QGis.Meters) point3dStartGeo = MathHelper.CrsTransformPoint( point3dStart.get_X(), point3dStart.get_Y(), define._xyCrs, define._latLonCrs, point3dStart.get_Z()) point3dEndGeo = MathHelper.CrsTransformPoint( point3dEnd.get_X(), point3dEnd.get_Y(), define._xyCrs, define._latLonCrs, point3dEnd.get_Z()) resultBearing = MathHelper.getBearing(point3dStartGeo, point3dEndGeo, QGis.DecimalDegrees) else: point3dStart = basicPoint3d point3dStartGeo = MathHelper.CrsTransformPoint( point3dStart.get_X(), point3dStart.get_Y(), define._xyCrs, define._latLonCrs, point3dStart.get_Z()) point3dEndGeo = MathHelper.distanceBearingPoint( point3dStartGeo, basicBearing, 500, QGis.DecimalDegrees) point3dEnd = MathHelper.CrsTransformPoint( point3dEndGeo.get_X(), point3dEndGeo.get_Y(), define._latLonCrs, define._xyCrs, point3dEndGeo.get_Z()) resultBearing = MathHelper.getBearing(point3dStart, point3dEnd, QGis.Meters) else: if basicUnit == QGis.Meters: point3dStartGeo = basicPoint3d point3dStart = MathHelper.CrsTransformPoint( point3dStartGeo.get_X(), point3dStartGeo.get_Y(), define._latLonCrs, define._xyCrs, point3dStartGeo.get_Z()) point3dEnd = MathHelper.distanceBearingPoint( point3dStart, basicBearing, 500, QGis.Meters) point3dEndGeo = MathHelper.CrsTransformPoint( point3dEnd.get_X(), point3dEnd.get_Y(), define._xyCrs, define._latLonCrs, point3dEnd.get_Z()) resultBearing = MathHelper.getBearing(point3dStartGeo, point3dEndGeo, QGis.DecimalDegrees) else: point3dStartGeo = basicPoint3d point3dEndGeo = MathHelper.distanceBearingPoint( point3dStartGeo, basicBearing, 500, QGis.DecimalDegrees) point3dStart = MathHelper.CrsTransformPoint( point3dStartGeo.get_X(), point3dStartGeo.get_Y(), define._latLonCrs, define._xyCrs, point3dStartGeo.get_Z()) point3dEnd = MathHelper.CrsTransformPoint( point3dEndGeo.get_X(), point3dEndGeo.get_Y(), define._latLonCrs, define._xyCrs, point3dEndGeo.get_Z()) resultBearing = MathHelper.getBearing(point3dStart, point3dEnd, QGis.Meters) return Unit.ConvertRadToDeg(resultBearing) def btnCaptureRadialClicked(self): self.captureRadialTool = CaptureBearingTool(define._canvas, self.txtRadialPlan, self.txtRadialGeodetic) define._canvas.setMapTool(self.captureRadialTool) self.emit(SIGNAL("Event_1"), self) def get_CaptionUnits(self): return self.captionUnits def set_CaptionUnits(self, captionUnits): self.captionUnits = captionUnits CaptionUnits = property(get_CaptionUnits, set_CaptionUnits, None, None) def get_Caption(self): caption = self.captionLabel.text() findIndex = caption.indexOf("(") if findIndex > 0: val = caption.left(findIndex) return val return caption def set_Caption(self, captionStr): value = captionStr + "(" + self.captionUnits + "):" self.captionLabel.setText(value) Caption = property(get_Caption, set_Caption, None, None) def get_Visible(self): return self.isVisible() def set_Visible(self, bool): self.setVisible(bool) Visible = property(get_Visible, set_Visible, None, None) def get_Value(self): try: if self.alwwaysShowString == "Geo": return float(self.txtRadialGeodetic.Value) else: if define._units == QGis.Meters: return float(self.txtRadialPlan.Value) else: return float(self.txtRadialGeodetic.Value) except: return 0.0 def set_Value(self, val): if val == None: self.txtRadialPlan.Value = 0.0 self.txtRadialGeodetic.Value = 0.0 return try: test = float(val) if define._units == QGis.Meters: self.txtRadialPlan.Value = val else: self.txtRadialGeodetic.Value = val except: str0 = "You must put the float type in \"%s\"." % (self.Caption) QMessageBox.warning(self, "Warning", str0) self.txtRadialPlan.Value = 0.0 self.txtRadialGeodetic.Value = 0.0 pass Value = property(get_Value, set_Value, None, None) def get_IsEmpty(self): return False # return self.txtRadialPlan.Value == "" or self.txtRadialPlan.text() == None IsEmpty = property(get_IsEmpty, None, None, None) def set_LabelWidth(self, width): self.captionLabel.setMinimumSize(QSize(width, 0)) self.captionLabel.setMaximumSize(QSize(width, 16777215)) LabelWidth = property(None, set_LabelWidth, None, None) def get_ReadOnly(self): return self.txtRadialPlan.isReadOnly() def set_ReadOnly(self, bool): self.txtRadialPlan.setReadOnly(bool) self.txtRadialGeodetic.setReadOnly(bool) ReadOnly = property(get_ReadOnly, set_ReadOnly, None, None) def get_Enabled(self): return self.txtRadialPlan.isEnabled() def set_Enabled(self, bool): self.txtRadialPlan.setEnabled(bool) # self.btnCaptureRadial.setEnabled(bool) self.txtRadialGeodetic.setEnabled(bool) Enabled = property(get_Enabled, set_Enabled, None, None) def set_Button(self, imageName): if imageName == None or imageName == "": self.btnCaptureRadial.setVisible(False) return icon = QIcon() icon.addPixmap(QPixmap(("Resource/" + imageName)), QIcon.Normal, QIcon.Off) self.btnCaptureRadial.setIcon(icon) self.btnCaptureRadial.setVisible(True) Button = property(None, set_Button, None, None)
class CheckedListBox(QWidget): def __init__(self, parent): QWidget.__init__(self, parent) while not isinstance(parent, QDialog): parent = parent.parent() self.setObjectName("CheckedListBox" + str(len(parent.findChildren(CheckedListBox)))) self.setObjectName("checkBoxWidget") self.hLayout = QHBoxLayout(self) self.hLayout.setObjectName("hLayout") sizePolicy = QSizePolicy(QSizePolicy.Preferred, QSizePolicy.Preferred) sizePolicy.setHorizontalStretch(0) sizePolicy.setVerticalStretch(0) sizePolicy.setHeightForWidth(self.sizePolicy().hasHeightForWidth()) self.setSizePolicy(sizePolicy) # self.frame = Frame() self.listView = QListView(self) self.hLayout.addWidget(self.listView) self.stdModel = QStandardItemModel() self.listView.setModel(self.stdModel) self.hasObject = False self.objList = [] self.checkBoxList = [] self.listView.pressed.connect(self.listView_clicked) def listView_clicked(self, index): self.emit(SIGNAL("ItemCheck"), self.stdModel.itemFromIndex(index)) def mouseMoveEvent(self, mouseEvent): pt = mouseEvent.pos() pass def Clear(self): self.stdModel.clear() self.hasObject = False self.objList = [] def Add(self, caption, isCheckedFlag=False): captionStr = "" if isinstance(caption, str) or isinstance(caption, QString): captionStr = caption else: captionStr = caption.ToString() self.hasObject = True self.objList.append([self.stdModel.rowCount(), caption]) item = QStandardItem(captionStr) item.setCheckable(True) if isCheckedFlag: item.setCheckState(Qt.Checked) else: item.setCheckState(Qt.Unchecked) self.stdModel.setItem(self.stdModel.rowCount(), item) # checkBox = QCheckBox(self) # checkBox.setText(captionStr) # checkBox.setChecked(isCheckedFlag) # checkBox.clicked.connect(self.checkBox_clicked) # self.hLayout.addWidget(checkBox) def GetItemChecked(self, index): if self.stdModel.rowCount() > 0: item = self.stdModel.item(index) if item.checkState() == Qt.Unchecked: return False return True return False def get_CheckedItems(self): if not self.stdModel.rowCount() > 0: return [] resultCheckedItems = [] for i in range(self.stdModel.rowCount()): item = self.stdModel.item(i) if item.checkState() == Qt.Checked: flag = False if self.hasObject: for obj in self.objList: if obj[0] == i: resultCheckedItems.append(obj) flag = True break if not flag: resultCheckedItems.append(item) return resultCheckedItems CheckedItems = property(get_CheckedItems, None, None, None) def get_Items(self): if not self.stdModel.rowCount() > 0: return None resultItems = [] for i in range(self.stdModel.rowCount()): item = self.stdModel.item(i) flag = False if self.hasObject: for obj in self.objList: if obj[0] == i: resultItems.append(obj) flag = True break if not flag: resultItems.append(item.text()) return resultItems Items = property(get_Items, None, None, None) def get_Enabled(self): return self.isEnabled() def set_Enabled(self, bool): self.setEnabled(bool) Enabled = property(get_Enabled, set_Enabled, None, None) def get_Visible(self): return self.isVisible() def set_Visible(self, bool): self.setVisible(bool) Visible = property(get_Visible, set_Visible, None, None)
class SpeedBoxPanel(QWidget): def __init__(self, parent, speedUnits=SpeedUnits.KTS): QWidget.__init__(self, parent) while not isinstance(parent, QDialog): parent = parent.parent() self.setObjectName("SpeedBoxPanel" + str(len(parent.findChildren(SpeedBoxPanel)))) self.hLayoutBoxPanel = QHBoxLayout(self) self.hLayoutBoxPanel.setSpacing(0) self.hLayoutBoxPanel.setContentsMargins(0, 0, 0, 0) self.hLayoutBoxPanel.setObjectName(("hLayoutBoxPanel")) self.frameBoxPanel = QFrame(self) sizePolicy = QSizePolicy(QSizePolicy.Fixed, QSizePolicy.Fixed) sizePolicy.setHorizontalStretch(0) sizePolicy.setVerticalStretch(0) sizePolicy.setHeightForWidth( self.frameBoxPanel.sizePolicy().hasHeightForWidth()) self.frameBoxPanel.setSizePolicy(sizePolicy) self.frameBoxPanel.setFrameShape(QFrame.NoFrame) self.frameBoxPanel.setFrameShadow(QFrame.Raised) self.frameBoxPanel.setObjectName(("frameBoxPanel")) self.hLayoutframeBoxPanel = QHBoxLayout(self.frameBoxPanel) self.hLayoutframeBoxPanel.setSpacing(0) self.hLayoutframeBoxPanel.setMargin(0) self.hLayoutframeBoxPanel.setObjectName(("hLayoutframeBoxPanel")) self.captionLabel = QLabel(self.frameBoxPanel) sizePolicy = QSizePolicy(QSizePolicy.Fixed, QSizePolicy.Fixed) sizePolicy.setHorizontalStretch(0) sizePolicy.setVerticalStretch(0) sizePolicy.setHeightForWidth( self.captionLabel.sizePolicy().hasHeightForWidth()) self.captionLabel.setSizePolicy(sizePolicy) self.captionLabel.setMinimumSize(QSize(200, 0)) self.captionLabel.setMaximumSize(QSize(200, 16777215)) font = QFont() font.setBold(False) font.setWeight(50) self.captionLabel.setFont(font) self.captionLabel.setObjectName(("captionLabel")) self.hLayoutframeBoxPanel.addWidget(self.captionLabel) self.textBox = QLineEdit(self.frameBoxPanel) self.textBox.setEnabled(True) font = QFont() font.setBold(False) font.setWeight(50) self.textBox.setFont(font) self.textBox.setObjectName(("textBox")) self.textBox.setText("0.0") self.textBox.setMinimumWidth(70) self.textBox.setMaximumWidth(70) self.hLayoutframeBoxPanel.addWidget(self.textBox) self.imageButton = QToolButton(self.frameBoxPanel) self.imageButton.setText(("")) icon = QIcon() icon.addPixmap(QPixmap(("Resource/convex_hull.png")), QIcon.Normal, QIcon.Off) self.imageButton.setIcon(icon) self.imageButton.setObjectName(("imageButton")) self.imageButton.setVisible(False) self.hLayoutframeBoxPanel.addWidget(self.imageButton) self.hLayoutBoxPanel.addWidget(self.frameBoxPanel) spacerItem = QSpacerItem(10, 10, QSizePolicy.Expanding, QSizePolicy.Minimum) self.hLayoutBoxPanel.addItem(spacerItem) self.textBox.textChanged.connect(self.textBoxChanged) self.textBox.editingFinished.connect(self.textBoxEditingFinished) self.imageButton.clicked.connect(self.imageButtonClicked) self.textBox.setText("0.0") self.captionUnits = speedUnits def textBoxEditingFinished(self): self.emit(SIGNAL("editingFinished"), self) def method_6(self, string_0): if self.CaptionUnits == SpeedUnits.KMH: unit = "kmh" elif self.CaptionUnits == SpeedUnits.KTS: unit = "kts" else: unit = "" value = self.textBox.text() + unit return "%s%s\t%s" % (string_0, self.Caption, value) def textBoxChanged(self): try: test = float(self.textBox.text()) self.emit(SIGNAL("Event_0"), self) except: str0 = "You must input the float type in \"%s\"." % (self.Caption) QMessageBox.warning(self, "Warning", str0) self.textBox.setText("0.0") def imageButtonClicked(self): self.emit(SIGNAL("Event_1"), self) def get_Caption(self): caption = self.captionLabel.text() findIndex = caption.indexOf("(") if findIndex > 0: val = caption.left(findIndex) return val return caption def set_Caption(self, captionStr): if self.CaptionUnits == SpeedUnits.KTS: self.captionLabel.setText(captionStr + "(kts)" + ":") elif self.CaptionUnits == SpeedUnits.KMH: self.captionLabel.setText(captionStr + "(kmh)" + ":") else: self.captionLabel.setText(captionStr + ":") Caption = property(get_Caption, set_Caption, None, None) def get_CaptionUnits(self): return self.captionUnits def set_CaptionUnits(self, captionUnits): self.captionUnits = captionUnits CaptionUnits = property(get_CaptionUnits, set_CaptionUnits, None, None) def set_ButtonVisible(self, bool): self.imageButton.setVisible(bool) ButtonVisible = property(None, set_ButtonVisible, None, None) def get_Value(self): try: return Speed(float(self.textBox.text()), self.CaptionUnits) except: return Speed(None) def set_Value(self, speed): if speed == None: self.textBox.setText("0.0") return try: if self.CaptionUnits == SpeedUnits.KMH: self.textBox.setText(str(round(speed.KilometresPerHour, 4))) elif self.CaptionUnits == SpeedUnits.KTS: self.textBox.setText(str(round(speed.Knots, 4))) else: self.textBox.setText("0.0") except: self.textBox.setText("0.0") Value = property(get_Value, set_Value, None, None) def get_IsEmpty(self): return self.textBox.text() == "" or self.textBox.text() == None IsEmpty = property(get_IsEmpty, None, None, None) def get_ReadOnly(self): return self.textBox.isReadOnly() def set_ReadOnly(self, bool): self.textBox.setReadOnly(bool) ReadOnly = property(get_ReadOnly, set_ReadOnly, None, None) def set_LabelWidth(self, width): self.captionLabel.setMinimumSize(QSize(width, 0)) self.captionLabel.setMaximumSize(QSize(width, 16777215)) LabelWidth = property(None, set_LabelWidth, None, None) def get_Enabled(self): return self.textBox.isEnabled() def set_Enabled(self, bool): self.textBox.setEnabled(bool) Enabled = property(get_Enabled, set_Enabled, None, None) def get_Visible(self): return self.isVisible() def set_Visible(self, bool): self.setVisible(bool) Visible = property(get_Visible, set_Visible, None, None)
class AngleGradientBoxPanel(QWidget): def __init__(self, parent, resoution=None): QWidget.__init__(self, parent) while not isinstance(parent, QDialog): parent = parent.parent() self.setObjectName( "AngleGradientBoxPanel" + str(len(parent.findChildren(AngleGradientBoxPanel)))) sizePolicy = QSizePolicy(QSizePolicy.Fixed, QSizePolicy.Fixed) sizePolicy.setHorizontalStretch(0) sizePolicy.setVerticalStretch(0) sizePolicy.setHeightForWidth(self.sizePolicy().hasHeightForWidth()) self.setSizePolicy(sizePolicy) self.hLayoutBoxPanel = QHBoxLayout(self) self.hLayoutBoxPanel.setSpacing(0) self.hLayoutBoxPanel.setContentsMargins(0, 0, 0, 0) self.hLayoutBoxPanel.setObjectName(("hLayoutBoxPanel")) self.frameBoxPanel = QFrame(self) sizePolicy = QSizePolicy(QSizePolicy.Preferred, QSizePolicy.Fixed) sizePolicy.setHorizontalStretch(0) sizePolicy.setVerticalStretch(0) sizePolicy.setHeightForWidth( self.frameBoxPanel.sizePolicy().hasHeightForWidth()) self.frameBoxPanel.setSizePolicy(sizePolicy) self.frameBoxPanel.setFrameShape(QFrame.NoFrame) self.frameBoxPanel.setFrameShadow(QFrame.Raised) self.frameBoxPanel.setObjectName(("frameBoxPanel")) self.hLayoutframeBoxPanel = QHBoxLayout(self.frameBoxPanel) self.hLayoutframeBoxPanel.setSpacing(0) self.hLayoutframeBoxPanel.setMargin(0) self.hLayoutframeBoxPanel.setObjectName(("hLayoutframeBoxPanel")) self.captionLabel = QLabel(self.frameBoxPanel) sizePolicy = QSizePolicy(QSizePolicy.Fixed, QSizePolicy.Fixed) sizePolicy.setHorizontalStretch(0) sizePolicy.setVerticalStretch(0) sizePolicy.setHeightForWidth( self.captionLabel.sizePolicy().hasHeightForWidth()) self.captionLabel.setSizePolicy(sizePolicy) self.captionLabel.setMinimumSize(QSize(200, 0)) self.captionLabel.setMaximumSize(QSize(200, 16777215)) font = QFont() font.setBold(False) font.setWeight(50) self.captionLabel.setFont(font) self.captionLabel.setObjectName(("captionLabel")) self.hLayoutframeBoxPanel.addWidget(self.captionLabel) self.frameBoxPanelIn = QFrame(self.frameBoxPanel) self.frameBoxPanelIn.setFrameShape(QFrame.StyledPanel) self.frameBoxPanelIn.setFrameShadow(QFrame.Raised) self.frameBoxPanelIn.setObjectName(("frameBoxPanelIn")) self.hLayoutframeBoxPanelIn = QHBoxLayout(self.frameBoxPanelIn) self.hLayoutframeBoxPanelIn.setSpacing(0) self.hLayoutframeBoxPanelIn.setMargin(0) self.hLayoutframeBoxPanelIn.setObjectName(("hLayoutframeBoxPanelIn")) self.txtDegree = QLineEdit(self.frameBoxPanelIn) self.txtDegree.setEnabled(True) font = QFont() font.setBold(False) font.setWeight(50) self.txtDegree.setFont(font) self.txtDegree.setObjectName(self.objectName() + "_txtDegree") self.txtDegree.setText("0.0") self.txtDegree.setMinimumWidth(70) self.txtDegree.setMaximumWidth(70) self.hLayoutframeBoxPanelIn.addWidget(self.txtDegree) self.labelDegree = QLabel(self.frameBoxPanelIn) self.labelDegree.setObjectName(("labelDegree")) self.labelDegree.setText(" " + define._degreeStr + " ") self.hLayoutframeBoxPanelIn.addWidget(self.labelDegree) self.txtPercent = QLineEdit(self.frameBoxPanelIn) self.txtPercent.setEnabled(True) font = QFont() font.setBold(False) font.setWeight(50) self.txtPercent.setFont(font) self.txtPercent.setObjectName(self.objectName() + "_txtPercent") self.txtPercent.setText("0.0") self.txtPercent.setMinimumWidth(70) self.txtPercent.setMaximumWidth(70) self.hLayoutframeBoxPanelIn.addWidget(self.txtPercent) self.labelPercent = QLabel(self.frameBoxPanelIn) self.labelPercent.setObjectName(("labelPercent")) self.labelPercent.setText(" %") self.hLayoutframeBoxPanelIn.addWidget(self.labelPercent) self.hLayoutframeBoxPanel.addWidget(self.frameBoxPanelIn) # self.angleGradientBox = QLineEdit(self.frameBoxPanel) # self.angleGradientBox.setEnabled(True) # font = QFont() # font.setBold(False) # font.setWeight(50) # self.angleGradientBox.setFont(font) # self.angleGradientBox.setObjectName(("angleGradientBox")) # self.angleGradientBox.setText("0.0") # self.angleGradientBox.setMinimumWidth(70) # self.angleGradientBox.setMaximumWidth(70) # self.hLayoutframeBoxPanel.addWidget(self.angleGradientBox) self.imageButton = QPushButton(self.frameBoxPanel) self.imageButton.setText(("")) icon = QIcon() icon.addPixmap(QPixmap(("Resource/convex_hull.png")), QIcon.Normal, QIcon.Off) self.imageButton.setIcon(icon) self.imageButton.setObjectName(("imageButton")) self.imageButton.setVisible(False) self.hLayoutframeBoxPanel.addWidget(self.imageButton) self.hLayoutBoxPanel.addWidget(self.frameBoxPanel) spacerItem = QSpacerItem(0, 0, QSizePolicy.Minimum, QSizePolicy.Minimum) self.hLayoutBoxPanel.addItem(spacerItem) self.txtDegree.textChanged.connect(self.txtDegreeChanged) self.txtPercent.textChanged.connect(self.txtPercentChanged) self.imageButton.clicked.connect(self.imageButtonClicked) self.numberResolution = resoution str0 = String.Number2String(6.6788, "0.00000") self.captionUnits = "" self.hidePercentBox() self.flag = 0 def txtPercentChanged(self): try: test = float(self.txtPercent.text()) if self.flag == 0: self.flag = 1 if self.flag == 2: self.flag = 0 if self.flag == 1: try: self.txtDegree.setText( str( round( AngleGradientSlope( float(self.txtPercent.text()), AngleGradientSlopeUnits.Percent).Degrees, 4))) except: self.txtDegree.setText("0.0") self.emit(SIGNAL("Event_0"), self) except: str0 = "You must input the float type in \"%s\"." % (self.Caption) QMessageBox.warning(self, "Warning", str0) self.txtDegree.setText("0.0") def txtDegreeChanged(self): try: test = float(self.txtDegree.text()) if self.flag == 0: self.flag = 2 if self.flag == 1: self.flag = 0 if self.flag == 2: try: self.txtPercent.setText( str( round( AngleGradientSlope(float( self.txtDegree.text())).Percent, 4))) except: self.txtPercent.setText("0.0") self.emit(SIGNAL("Event_0"), self) except: str0 = "You must input the float type in \"%s\"." % (self.Caption) QMessageBox.warning(self, "Warning", str0) self.txtPercent.setText("0.0") def hidePercentBox(self): self.txtPercent.setVisible(False) self.labelPercent.setVisible(False) def showPercentBox(self): self.txtPercent.setVisible(True) self.labelPercent.setVisible(True) def imageButtonClicked(self): self.emit(SIGNAL("Event_1"), self) def method_6(self, string_0): return "%s%s\t%f %s" % (string_0, self.Caption, self.Value, self.CaptionUnits) def ToString(self): caption = self.captionLabel.text() value = self.txtDegree.text() return "{0}, {1}".format(caption, value) def get_CaptionUnits(self): return self.captionUnits def set_CaptionUnits(self, captionUnits): self.captionUnits = captionUnits CaptionUnits = property(get_CaptionUnits, set_CaptionUnits, None, None) def get_Caption(self): caption = self.captionLabel.text() # findIndex = caption.indexOf("(") # if findIndex > 0: # val = caption.left(findIndex) # return val return caption def set_Caption(self, captionStr): self.captionLabel.setText(captionStr + ":") # value = "" # if self.captionUnits == AngleGradientSlopeUnits.Degrees: # value = captionStr + "(" + define._degreeStr + ")" # elif self.captionUnits == AngleGradientSlopeUnits.Percent: # value = captionStr + "(%)" # elif self.captionUnits == AngleGradientSlopeUnits.Slope: # value = captionStr + "(1:)" # self.captionLabel.setText(value + ":") Caption = property(get_Caption, set_Caption, None, None) def get_Visible(self): return self.isVisible() def set_Visible(self, bool): self.setVisible(bool) Visible = property(get_Visible, set_Visible, None, None) # def get_IsEmpty(self): # return self.angleGradientBox.text() == "" # IsEmpty = property(get_IsEmpty, None, None, None) def get_Value(self): return AngleGradientSlope(float(self.txtDegree.text())) # if self.captionUnits == AngleGradientSlopeUnits.Degrees: # try: # return AngleGradientSlope(float(self.angleGradientBox.text())) # except: # return None # elif self.captionUnits == AngleGradientSlopeUnits.Percent: # try: # return AngleGradientSlope(float(self.angleGradientBox.text()), AngleGradientSlopeUnits.Percent) # except: # return None # elif self.captionUnits == AngleGradientSlopeUnits.Slope: # try: # return AngleGradientSlope(float(self.angleGradientBox.text()), AngleGradientSlopeUnits.Slope) # except: # return None def set_Value(self, value): if isinstance(value, AngleGradientSlope): self.txtDegree.setText(str(round(value.Degrees, 4))) return # if self.captionUnits == AngleGradientSlopeUnits.Degrees: # rStr = String.Number2String(value.Degrees, self.numberResolution) # self.angleGradientBox.setText(rStr) # elif self.captionUnits == AngleGradientSlopeUnits.Percent: # rStr = String.Number2String(value.Percent, self.numberResolution) # self.angleGradientBox.setText(rStr) # elif self.captionUnits == AngleGradientSlopeUnits.Slope: # rStr = String.Number2String(value.Slope, self.numberResolution) # self.angleGradientBox.setText(rStr) # return try: test = float(value) rStr = String.Number2String(test, self.numberResolution) self.txtDegree.setText(rStr) except: str0 = "You must put the float type in \"%s\"." % (self.Caption) QMessageBox.warning(self, "Warning", str0) # rStr = String.Number2String(0, self.numberResolution) self.txtDegree.setText("0.0") Value = property(get_Value, set_Value, None, None) # def get_IsEmpty(self): # return self.angleGradientBox.text() == "" or self.angleGradientBox.text() == None # IsEmpty = property(get_IsEmpty, None, None, None) def get_ReadOnly(self): return self.txtDegree.isReadOnly() def set_ReadOnly(self, bool): self.txtDegree.setReadOnly(bool) self.txtPercent.setReadOnly(bool) ReadOnly = property(get_ReadOnly, set_ReadOnly, None, None) def set_LabelWidth(self, width): self.captionLabel.setMinimumSize(QSize(width, 0)) self.captionLabel.setMaximumSize(QSize(width, 16777215)) LabelWidth = property(None, set_LabelWidth, None, None) def get_Enabled(self): return self.isEnabled() def set_Enabled(self, bool): self.setEnabled(bool) Enabled = property(get_Enabled, set_Enabled, None, None) def set_Button(self, imageName): if imageName == None or imageName == "": self.imageButton.setVisible(False) return icon = QIcon() icon.addPixmap(QPixmap(("Resource/" + imageName)), QIcon.Normal, QIcon.Off) self.imageButton.setIcon(icon) self.imageButton.setVisible(True) Button = property(None, set_Button, None, None)
class OCAHPanel(QFrame): def __init__(self, parent): QFrame.__init__(self, parent) while not isinstance(parent, QDialog): parent = parent.parent() self.setObjectName("OCAHPanel" + str(len(parent.findChildren(OCAHPanel)))) # self.frame_WindIA = QFrame(parent) sizePolicy = QSizePolicy(QSizePolicy.Minimum, QSizePolicy.Preferred) sizePolicy.setHorizontalStretch(0) sizePolicy.setVerticalStretch(0) sizePolicy.setHeightForWidth(self.sizePolicy().hasHeightForWidth()) self.setSizePolicy(sizePolicy) self.setFrameShape(QFrame.StyledPanel) self.setFrameShadow(QFrame.Raised) self.setObjectName(("frame_WindIA")) self.hLayout = QHBoxLayout(self) self.hLayout.setSpacing(0) self.hLayout.setMargin(0) self.hLayout.setObjectName(("hLayout")) self.basicFrame = Frame(self, "HL") self.basicFrame.layoutBoxPanel.setSpacing(0) # self.basicFrame.layoutBoxPanel.setMargin(0) self.hLayout.addWidget(self.basicFrame) self.lblIA = QLabel(self.basicFrame) self.lblIA.setMinimumSize(QSize(200, 0)) self.lblIA.setMaximumSize(QSize(200, 16777215)) font = QFont() font.setFamily(("Arial")) font.setBold(False) font.setWeight(50) self.lblIA.setFont(font) self.lblIA.setObjectName(("lblIA")) self.basicFrame.Add = self.lblIA self.cmbType = QComboBox(self.basicFrame) self.cmbType.setMinimumSize(QSize(70, 0)) self.cmbType.setMaximumWidth(70) font = QFont() font.setFamily(("Arial")) font.setBold(False) font.setWeight(50) self.cmbType.setFont(font) self.cmbType.setObjectName(("cmbType")) self.basicFrame.Add = self.cmbType self.txtAltitudeM = QLineEdit(self.basicFrame) self.txtAltitudeM.setEnabled(True) font = QFont() font.setBold(False) font.setWeight(50) self.txtAltitudeM.setFont(font) self.txtAltitudeM.setObjectName(self.objectName() + "_txtAltitudeM") self.txtAltitudeM.setText("0.0") self.txtAltitudeM.setMinimumWidth(70) self.txtAltitudeM.setMaximumWidth(70) self.basicFrame.Add = self.txtAltitudeM labelM = QLabel(self.basicFrame) labelM.setObjectName(("labelM")) labelM.setText(" m ") self.basicFrame.Add = labelM self.txtAltitude = QLineEdit(self.basicFrame) sizePolicy = QSizePolicy(QSizePolicy.MinimumExpanding, QSizePolicy.Fixed) sizePolicy.setHorizontalStretch(0) sizePolicy.setVerticalStretch(0) sizePolicy.setHeightForWidth(self.txtAltitude.sizePolicy().hasHeightForWidth()) self.txtAltitude.setSizePolicy(sizePolicy) self.txtAltitude.setMinimumSize(QSize(70, 0)) self.txtAltitude.setMaximumSize(QSize(70, 16777215)) font = QFont() font.setFamily(("Arial")) font.setBold(False) font.setWeight(50) self.txtAltitude.setFont(font) self.txtAltitude.setObjectName(self.objectName() + "_txtAltitude") self.basicFrame.Add = self.txtAltitude labelFt = QLabel(self.basicFrame) labelFt.setObjectName(("labelFt")) labelFt.setText(" ft") self.basicFrame.Add = labelFt spacerItem = QSpacerItem(10,10,QSizePolicy.Expanding, QSizePolicy.Minimum) self.hLayout.addItem(spacerItem) self.altitude = Altitude.NaN() self.customValue = Speed(30).Knots self.cmbType.addItems(["OCA", "OCH"]) # self.cmbType.currentIndexChanged.connect(self.changeType) self.cmbType.setCurrentIndex(0) self.lblIA.setText("Intermediate Segment Minimum:") # self.txtAltitude.setEnabled(False) self.txtAltitudeM.textChanged.connect(self.txtAltitudeMChanged) self.txtAltitude.textChanged.connect(self.txtAltitudeChanged) self.captionUnits = "ft" self.flag = 0 self.txtAltitudeM.setText("0.0") self.txtAltitude.setText("0.0") def txtAltitudeChanged(self): try: test = float(self.txtAltitude.text()) if self.flag==0: self.flag=1; if self.flag==2: self.flag=0; if self.flag==1: try: self.txtAltitudeM.setText(str(round(Unit.ConvertFeetToMeter(float(self.txtAltitude.text())), 4))) except: self.txtAltitudeM.setText("0.0") self.emit(SIGNAL("Event_0"), self) except: str0 = "You must input the float type in \"%s\"."%(self.Caption) QMessageBox.warning(self, "Warning" , str0) self.txtAltitudeM.setText("0.0") self.txtAltitude.setText("0.0") def txtAltitudeMChanged(self): try: test = float(self.txtAltitudeM.text()) if self.flag==0: self.flag=2; if self.flag==1: self.flag=0; if self.flag==2: try: self.txtAltitude.setText(str(round(Unit.ConvertMeterToFeet(float(self.txtAltitudeM.text())), 4))) except: self.txtAltitude.setText("0.0") self.emit(SIGNAL("Event_0"), self) except: str0 = "You must input the float type in \"%s\"."%(self.Caption) QMessageBox.warning(self, "Warning" , str0) self.txtAltitude.setText("0.0") self.txtAltitudeM.setText("0.0") try: self.altitude = Altitude(float(self.txtAltitude.text()), AltitudeUnits.FT) except: self.altitude = Altitude.NaN() # def txtAltitudeChanged(self): # try: # self.altitude = Altitude(float(self.txtAltitude.text()), AltitudeUnits.FT) # except: # self.altitude = Altitude.NaN() # def setAltitude(self, value): # self.altitude = value # def getValue(self, SpeedUnits_0 = SpeedUnits.KTS): # return Speed(float(self.txtAltitude.text()), SpeedUnits_0) def method_2(self, altitude_0): altitude = Altitude(0) try: altitude = Altitude(float(self.txtAltitude.text()), AltitudeUnits.FT) except: altitude = Altitude(0) if (self.cmbType.currentIndex() == 0): return altitude return Altitude(altitude.Feet + altitude_0.Feet, AltitudeUnits.FT); def method_3(self, altitude_0): altitude = Altitude(0) try: altitude = Altitude(float(self.txtAltitude.text()), AltitudeUnits.FT) except: altitude = Altitude(0) if (self.cmbType.currentIndex() != 0): return altitude return Altitude(altitude.Feet - altitude_0.Feet, AltitudeUnits.FT); def changeType(self): pass # def get_altitude(self): # return self.altitude # Value = property(get_altitude, setAltitude, None, None) def get_isEmpty(self): try: num = float(self.txtAltitude.text()) return False except: return True IsEmpty = property(get_isEmpty, None, None, None) def get_CaptionUnits(self): return self.captionUnits def set_CaptionUnits(self, captionUnits): self.captionUnits = captionUnits CaptionUnits = property(get_CaptionUnits, set_CaptionUnits, None, None) def get_Caption(self): caption = self.lblIA.text() val = caption.left(caption.length() - 1) return val def set_Caption(self, captionStr): self.lblIA.setText(captionStr + ":") Caption = property(get_Caption, set_Caption, None, None) def get_Value(self): try: return Altitude(float(self.txtAltitudeM.text())) except: return Altitude(0.0) def set_Value(self, altitude): if isinstance(altitude, Altitude): if self.captionUnits == "m": self.txtAltitudeM.setText(str(altitude.Metres)) else: self.txtAltitude.setText(str(altitude.Feet)) else: str0 = "You must input the type \"Altitude\" in \"%s\"."%(self.Caption) QMessageBox.warning(self, "Warning" , str0) self.txtAltitudeM.setText("0.0") Value = property(get_Value, set_Value, None, None) def set_LabelWidth(self, width): self.lblIA.setMinimumSize(QSize(width, 0)) self.lblIA.setMaximumSize(QSize(width, 16777215)) LabelWidth = property(None, set_LabelWidth, None, None) def get_ReadOnly(self): return self.txtAltitudeM.isReadOnly() def set_ReadOnly(self, bool): self.txtAltitudeM.setReadOnly(bool) self.txtAltitude.setReadOnly(bool) ReadOnly = property(get_ReadOnly, set_ReadOnly, None, None) def get_Enabled(self): return self.txtAltitudeM.isEnabled() def set_Enabled(self, bool): self.txtAltitudeM.setEnabled(bool) self.txtAltitude.setEnabled(bool) Enabled = property(get_Enabled, set_Enabled, None, None)
class SimpleConnectWidget(QWidget): """ this widget displays a combobox with a list of instruments which the user can connect to, it also has a refresh button """ def __init__(self, parent=None): super(SimpleConnectWidget, self).__init__(parent) # main layout of the form is the verticallayout self.verticalLayout = QVBoxLayout() self.verticalLayout.setObjectName("verticalLayout") # moved the script stuff to a separate widget that lives in the toolbar self.labelLayout = QHBoxLayout() self.labelLayout.setObjectName("labelLayout") self.portLabel = QLabel(self) self.portLabel.setText("Availiable Ports") self.instrLabel = QLabel(self) self.instrLabel.setText("Instruments") self.labelLayout.addWidget(self.portLabel) self.labelLayout.addWidget(self.instrLabel) self.verticalLayout.addLayout(self.labelLayout) self.ports = QComboBox(self) self.ports.addItems(refresh_device_port_list()) self.ports.setObjectName("cbb_ports") self.instruments = QComboBox(self) self.instruments.addItems(utils.list_drivers(interface="real")[0]) self.ports.setObjectName("cbb_instrs") self.cbbLayout = QHBoxLayout() self.cbbLayout.setObjectName("cbbLayout") self.cbbLayout.addWidget(self.ports) self.cbbLayout.addWidget(self.instruments) self.verticalLayout.addLayout(self.cbbLayout) self.connectButton = QPushButton(self) self.connectButton.setText("Connect the instrument") self.connectButton.setObjectName("connectButton") self.refreshButton = QPushButton(self) self.refreshButton.setText("refresh the port list") self.refreshButton.setObjectName("refreshButton") self.verticalLayout.addWidget(self.connectButton) self.verticalLayout.addWidget(self.refreshButton) self.headerTextEdit = QPlainTextEdit("") fontsize = self.headerTextEdit.fontMetrics() pal = QPalette() textc = QColor(245, 245, 240) pal.setColor(QPalette.Base, textc) self.headerTextEdit.setPalette(pal) # d3d3be # self.headerTextEdit.ba self.headerTextEdit.setFixedHeight(fontsize.lineSpacing() * 8) self.verticalLayout.addWidget(self.headerTextEdit) # moved the start stop button to the toolbar only self.setLayout(self.verticalLayout) self.connect(self.connectButton, SIGNAL('clicked()'), self.on_connectButton_clicked) self.connect(self.refreshButton, SIGNAL('clicked()'), self.on_refreshButton_clicked) def on_connectButton_clicked(self): """Connect a given instrument through a given port""" port = self.ports.currentText() instrument_name = self.instruments.currentText() # load the module which contains the instrument's driver if __name__ == "__main__": class_inst = import_module(instrument_name) else: class_inst = import_module("." + instrument_name, package=utils.LABDRIVER_PACKAGE_NAME) msg = "" # msg.append("example") # msg.append("</span>") self.headerTextEdit.appendHtml(msg) # self.headerTextEdit.appendPlainText(msg) try: i = class_inst.Instrument(port) self.headerTextEdit.appendPlainText("%s" % (i.identify())) self.headerTextEdit.appendHtml( "The connection to the instrument %s through the port %s <span style=\" color:#009933;\" >WORKED</span>\n" % (instrument_name, port)) i.close() except: self.headerTextEdit.appendHtml( "The connection to the instrument %s through the port %s <span style=\" color:#ff0000;\" >FAILED</span>\n" % (instrument_name, port)) def on_refreshButton_clicked(self): """Refresh the list of the availiable ports""" self.ports.clear() self.ports.addItems(refresh_device_port_list())
def __init__(self, parent = None): QDialog.__init__(self, parent) self.resize(290, 136); self.setWindowTitle("Reference Positions") sizePolicy = QSizePolicy(QSizePolicy.Fixed, QSizePolicy.Fixed); sizePolicy.setHorizontalStretch(0); sizePolicy.setVerticalStretch(0); sizePolicy.setHeightForWidth(self.sizePolicy().hasHeightForWidth()); self.setSizePolicy(sizePolicy); verticalLayoutDlg = QVBoxLayout(self) verticalLayoutDlg.setObjectName(("verticalLayoutDlg")); frameDate = QFrame(self); frameDate.setObjectName(("frameDate")); frameDate.setFrameShape(QFrame.StyledPanel); frameDate.setFrameShadow(QFrame.Raised); horizontalLayoutDate = QHBoxLayout(frameDate); horizontalLayoutDate.setObjectName(("horizontalLayoutDate")); labelDate = QLabel(frameDate); labelDate.setObjectName(("labelDate")); labelDate.setMinimumSize(QSize(70, 0)); labelDate.setMaximumSize(QSize(70, 16777215)); labelDate.setText("Date:") horizontalLayoutDate.addWidget(labelDate); self.dtpDate = QDateEdit(frameDate); self.dtpDate.setObjectName(("dtpDate")); horizontalLayoutDate.addWidget(self.dtpDate); self.btnDtpDate = QToolButton(frameDate); self.btnDtpDate.setObjectName(("btnDtpDate")); sizePolicy.setHeightForWidth(self.btnDtpDate.sizePolicy().hasHeightForWidth()); self.btnDtpDate.setSizePolicy(sizePolicy); self.btnDtpDate.setMinimumSize(QSize(25, 0)); self.btnDtpDate.setMaximumSize(QSize(25, 16777215)); icon = QIcon() icon.addPixmap(QPixmap(("Resource/calender.png")), QIcon.Normal, QIcon.Off) self.btnDtpDate.setIcon(icon) horizontalLayoutDate.addWidget(self.btnDtpDate); verticalLayoutDlg.addWidget(frameDate); frameModel = QFrame(self); frameModel.setObjectName(("frameModel")); frameModel.setFrameShape(QFrame.StyledPanel); frameModel.setFrameShadow(QFrame.Raised); horizontalLayoutModel = QHBoxLayout(frameModel); horizontalLayoutModel.setObjectName(("horizontalLayoutModel")); labelModel = QLabel(frameModel); labelModel.setObjectName(("labelModel")); labelModel.setMinimumSize(QSize(70, 0)); labelModel.setMaximumSize(QSize(70, 16777215)); labelModel.setText("Model:") horizontalLayoutModel.addWidget(labelModel); self.cmbModel = QComboBox(frameModel); self.cmbModel.setObjectName(("cmbModel")); horizontalLayoutModel.addWidget(self.cmbModel); verticalLayoutDlg.addWidget(frameModel); self.buttonBox = QDialogButtonBox(self); self.buttonBox.setObjectName(("buttonBox")); self.buttonBox.setStandardButtons(QDialogButtonBox.Cancel|QDialogButtonBox.Ok); self.connect(self.buttonBox, SIGNAL("accepted()"), self.accept) self.connect(self.buttonBox, SIGNAL("rejected()"), self.reject) verticalLayoutDlg.addWidget(self.buttonBox); self.calendar = QCalendarWidget() self.calendar.clicked.connect(self.calendar_clicked) self.menu = QMenu() layout = QVBoxLayout(self.menu) layout.addWidget(self.calendar) self.btnDtpDate.clicked.connect(self.btnDtpDate_clicked) self.cmbModel.addItems(["WMM2015", "WMM2010" , "WMM2005", "WMM2000", "WMM95", "WMM90", "WMM85", "IGRF2000", "IGRF95", "IGRF90"])
class CheckBox(QWidget): def __init__(self, parent): QWidget.__init__(self, parent) while not isinstance(parent, QDialog): parent = parent.parent() self.setObjectName("CheckBox" + str(len(parent.findChildren(CheckBox)))) self.hLayout = QHBoxLayout(self) self.hLayout.setObjectName("hLayout") self.hLayout.setSpacing(0) self.hLayout.setContentsMargins(0, 0, 0, 0) sizePolicy = QSizePolicy(QSizePolicy.Preferred, QSizePolicy.Preferred) sizePolicy.setHorizontalStretch(0) sizePolicy.setVerticalStretch(0) sizePolicy.setHeightForWidth(self.sizePolicy().hasHeightForWidth()) self.setSizePolicy(sizePolicy) self.checkBox = QCheckBox(self) sizePolicy = QSizePolicy(QSizePolicy.Preferred, QSizePolicy.Preferred) sizePolicy.setHorizontalStretch(0) sizePolicy.setVerticalStretch(0) self.checkBox.setObjectName(self.objectName() + "_checkbox") sizePolicy.setHeightForWidth( self.checkBox.sizePolicy().hasHeightForWidth()) self.checkBox.setSizePolicy(sizePolicy) self.hLayout.addWidget(self.checkBox) self.checkBox.setChecked(True) self.checkBox.clicked.connect(self.clicked) def clicked(self): self.emit(SIGNAL("Event_0"), self) def get_Caption(self): return self.checkBox.text() def set_Caption(self, captionStr): self.checkBox.setText(captionStr) Caption = property(get_Caption, set_Caption, None, None) def get_Enabled(self): return self.isEnabled() def set_Enabled(self, bool): self.setEnabled(bool) Enabled = property(get_Enabled, set_Enabled, None, None) def get_Visible(self): return self.isVisible() def set_Visible(self, bool): self.setVisible(bool) Visible = property(get_Visible, set_Visible, None, None) def get_Checked(self): return self.checkBox.isChecked() def set_Checked(self, bool): self.checkBox.setChecked(bool) Checked = property(get_Checked, set_Checked, None, None) def set_LabelWidth(self, width): self.checkBox.setMinimumSize(QSize(width, 0)) self.checkBox.setMaximumSize(QSize(width, 16777215)) LabelWidth = property(None, set_LabelWidth, None, None)
class TextBoxPanel(QWidget): def __init__(self, parent, isArea=False): QWidget.__init__(self, parent) while not isinstance(parent, QDialog): parent = parent.parent() self.setObjectName("TextBoxPanel" + str(len(parent.findChildren(TextBoxPanel)))) self.hLayoutBoxPanel = QHBoxLayout(self) self.hLayoutBoxPanel.setSpacing(0) self.hLayoutBoxPanel.setContentsMargins(0, 0, 0, 0) self.hLayoutBoxPanel.setObjectName(("hLayoutBoxPanel")) self.frameBoxPanel = QFrame(self) sizePolicy = QSizePolicy(QSizePolicy.Preferred, QSizePolicy.Fixed) sizePolicy.setHorizontalStretch(0) sizePolicy.setVerticalStretch(0) sizePolicy.setHeightForWidth( self.frameBoxPanel.sizePolicy().hasHeightForWidth()) self.frameBoxPanel.setSizePolicy(sizePolicy) self.frameBoxPanel.setFrameShape(QFrame.NoFrame) self.frameBoxPanel.setFrameShadow(QFrame.Raised) self.frameBoxPanel.setObjectName(("frameBoxPanel")) self.hLayoutframeBoxPanel = QHBoxLayout(self.frameBoxPanel) self.hLayoutframeBoxPanel.setSpacing(0) self.hLayoutframeBoxPanel.setMargin(0) self.hLayoutframeBoxPanel.setObjectName(("hLayoutframeBoxPanel")) self.captionLabel = QLabel(self.frameBoxPanel) sizePolicy = QSizePolicy(QSizePolicy.Fixed, QSizePolicy.Fixed) sizePolicy.setHorizontalStretch(0) sizePolicy.setVerticalStretch(0) sizePolicy.setHeightForWidth( self.captionLabel.sizePolicy().hasHeightForWidth()) self.captionLabel.setSizePolicy(sizePolicy) self.captionLabel.setMinimumSize(QSize(200, 0)) self.captionLabel.setMaximumSize(QSize(200, 16777215)) font = QFont() font.setBold(False) font.setWeight(50) self.captionLabel.setFont(font) self.captionLabel.setObjectName(("captionLabel")) self.hLayoutframeBoxPanel.addWidget(self.captionLabel) if not isArea: self.textBox = QLineEdit(self.frameBoxPanel) self.textBox.setEnabled(True) font = QFont() font.setBold(False) font.setWeight(50) self.textBox.setFont(font) self.textBox.setObjectName(("textBox")) self.textBox.setMinimumWidth(70) self.textBox.setMaximumWidth(70) # self.textBox.setText("0.0") self.hLayoutframeBoxPanel.addWidget(self.textBox) else: self.textBox = QTextEdit(self.frameBoxPanel) self.textBox.setEnabled(True) font = QFont() font.setBold(False) font.setWeight(50) self.textBox.setFont(font) self.textBox.setObjectName(("textBox")) # self.textBox.setText("0.0") self.textBox.setMaximumHeight(60) self.hLayoutframeBoxPanel.addWidget(self.textBox) self.imageButton = QPushButton(self.frameBoxPanel) self.imageButton.setText(("")) icon = QIcon() icon.addPixmap(QPixmap(("Resource/convex_hull.png")), QIcon.Normal, QIcon.Off) self.imageButton.setIcon(icon) self.imageButton.setObjectName(("imageButton")) self.imageButton.setVisible(False) self.hLayoutframeBoxPanel.addWidget(self.imageButton) self.hLayoutBoxPanel.addWidget(self.frameBoxPanel) self.spacerItem = QSpacerItem(0, 0, QSizePolicy.Expanding, QSizePolicy.Minimum) self.hLayoutframeBoxPanel.addItem(self.spacerItem) self.textBox.textChanged.connect(self.textBoxChanged) self.imageButton.clicked.connect(self.imageButtonClicked) self.textBox.setText("") self.captionUnits = "" self.isArea = isArea def method_2(self, string0): self.textBox.setText(string0) def method_8(self, string_0): return "%s%s\t%s" % (string_0, self.Caption, self.Value) def textBoxChanged(self): self.emit(SIGNAL("Event_0"), self) def imageButtonClicked(self): self.emit(SIGNAL("Event_1"), self) def get_Caption(self): caption = self.captionLabel.text() findIndex = caption.indexOf("(") if findIndex > 0: val = caption.left(findIndex) return val return caption def set_Caption(self, captionStr): if captionStr == "": self.captionLabel.setText("") self.LabelWidth = 0 return if self.CaptionUnits != "" and self.CaptionUnits != None: self.captionLabel.setText(captionStr + "(" + str(self.CaptionUnits) + ")" + ":") else: self.captionLabel.setText(captionStr + ":") Caption = property(get_Caption, set_Caption, None, None) def get_CaptionUnits(self): return self.captionUnits def set_CaptionUnits(self, captionUnits): self.captionUnits = captionUnits CaptionUnits = property(get_CaptionUnits, set_CaptionUnits, None, None) def set_ButtonVisible(self, bool): self.imageButton.setVisible(bool) ButtonVisible = property(None, set_ButtonVisible, None, None) def get_Value(self): if not self.isArea: return self.textBox.text() else: return self.textBox.toPlainText() def set_Value(self, valueStr): try: self.textBox.setText(valueStr) except: self.textBox.setText("") Value = property(get_Value, set_Value, None, None) Text = property(get_Value, set_Value, None, None) def get_IsEmpty(self): return self.textBox.text() == "" or self.textBox.text() == None IsEmpty = property(get_IsEmpty, None, None, None) def get_ReadOnly(self): return self.textBox.isReadOnly() def set_ReadOnly(self, bool): self.textBox.setReadOnly(bool) ReadOnly = property(get_ReadOnly, set_ReadOnly, None, None) def set_LabelWidth(self, width): self.captionLabel.setMinimumSize(QSize(width, 0)) self.captionLabel.setMaximumSize(QSize(width, 16777215)) LabelWidth = property(None, set_LabelWidth, None, None) def get_Enabled(self): return self.textBox.isEnabled() def set_Enabled(self, bool): self.textBox.setEnabled(bool) Enabled = property(get_Enabled, set_Enabled, None, None) def get_Visible(self): return self.isVisible() def set_Visible(self, bool): self.setVisible(bool) Visible = property(get_Visible, set_Visible, None, None) def set_Button(self, imageName): if imageName == None or imageName == "": self.imageButton.setVisible(False) return icon = QIcon() icon.addPixmap(QPixmap(("Resource/" + imageName)), QIcon.Normal, QIcon.Off) self.imageButton.setIcon(icon) self.imageButton.setVisible(True) Button = property(None, set_Button, None, None) def set_Width(self, val): try: self.textBox.setMaximumWidth(val) self.textBox.setMinimumWidth(val) except: pass Width = property(None, set_Width, None, None) def set_EchoMode(self, value): if value == "Password": self.textBox.setEchoMode(QLineEdit.Password) EchoMode = property(None, set_EchoMode, None, None)
class MCAHPanel(QWidget): def __init__(self, parent, altitudeUnit=AltitudeUnits.FT): QWidget.__init__(self, parent) while not isinstance(parent, QDialog): parent = parent.parent() self.setObjectName("MCAHPanel" + str(len(parent.findChildren(MCAHPanel)))) sizePolicy = QSizePolicy(QSizePolicy.Fixed, QSizePolicy.Fixed) sizePolicy.setHorizontalStretch(0) sizePolicy.setVerticalStretch(0) sizePolicy.setHeightForWidth(self.sizePolicy().hasHeightForWidth()) self.setSizePolicy(sizePolicy) self.hLayout = QHBoxLayout(self) self.hLayout.setSpacing(0) self.hLayout.setMargin(0) self.hLayout.setObjectName("hLayout") self.basicFrame = Frame(self, "HL") self.basicFrame.Spacing = 0 self.hLayout.addWidget(self.basicFrame) self.lblMCAH = QLabel(self.basicFrame) self.lblMCAH.setMinimumSize(QSize(250, 0)) font = QFont() font.setWeight(50) font.setBold(False) self.lblMCAH.setFont(font) self.lblMCAH.setObjectName(("lblMCAH")) self.basicFrame.Add = self.lblMCAH self.cmbMCAH = QComboBox(self.basicFrame) font = QFont() font.setWeight(50) font.setBold(False) self.cmbMCAH.setFont(font) self.cmbMCAH.setObjectName(self.objectName() + "_cmbMCAH") self.basicFrame.Add = self.cmbMCAH self.txtMCAH = QLineEdit(self.basicFrame) font = QFont() font.setWeight(50) font.setBold(False) self.txtMCAH.setFont(font) self.txtMCAH.setObjectName(self.objectName() + "_txtMCAH") self.txtMCAH.setMinimumWidth(70) self.txtMCAH.setMaximumWidth(70) self.basicFrame.Add = self.txtMCAH self.setLayout(self.hLayout) spacerItem = QSpacerItem(0, 10, QSizePolicy.Minimum, QSizePolicy.Minimum) self.hLayout.addItem(spacerItem) self.cmbMCAH.addItems([MCAHType.MCA, MCAHType.MCH]) # self.txtMCAH.textChanged.connect(self.txtAltitude_TextChanged) self.altitudeUnit = altitudeUnit def setValue(self, altitude_0): if self.altitudeUnit == AltitudeUnits.FT: value1 = altitude_0.Feet elif self.altitudeUnit == AltitudeUnits.M: value1 = altitude_0.Metres self.txtMCAH.setText(str(value1)) def set_Value(self, altitude_0): if self.altitudeUnit == AltitudeUnits.FT: value1 = altitude_0.Feet elif self.altitudeUnit == AltitudeUnits.M: value1 = altitude_0.Metres self.txtMCAH.setText(str(value1)) def get_Value(self): try: return Altitude(float(self.txtMCAH.text()), self.altitudeUnit) except: raise UserWarning, self.lblMCAH.text() + " is invalid!" Value = property(get_Value, set_Value, None, None) def IsEmpty(self): if self.txtMCAH.text() == "": return True else: return False def method_2(self, altitude_0): if (self.cmbMCAH.currentIndex() == 0): return self.Value return self.Value + (altitude_0) def method_3(self, altitude_0): if (self.cmbMCAH.currentIndex() != 0): return self.Value return self.Value - (altitude_0)
class Window(QMainWindow): def __init__(self,parent = None): QMainWindow.__init__(self,parent) self.setObjectName("self") self.resize(758, 673) self.setWindowTitle("Sabel") self.setWindowIcon(Icons.sabel) self.centralwidget = QWidget(self) self.centralwidget.setObjectName("centralwidget") self.horizontalLayout = QHBoxLayout(self.centralwidget) self.horizontalLayout.setObjectName("horizontalLayout") self.horizontalLayout.setMargin(0) self.styleIndex = styleIndex #TabWidgets self.tab_1 = QWidget(self) self.tab_1.setObjectName("tab_1") self.tab_1.setMinimumWidth(800) self.tabWidget = Tab(self.tab_1) self.tabWidget.setObjectName("tabWidget") self.VericalLayout = QVBoxLayout(self.tab_1) self.VericalLayout.setMargin(0) self.VericalLayout.setObjectName("VericalLayout") self.VericalLayout.addWidget(self.tabWidget) self.tabWidget_2 = QTabWidget(self) #self.tabWidget_2.setMaximumWidth(200) self.tabWidget_2.setObjectName("tabWidget_2") self.tabWidget_3 = QTabWidget(self) self.tabWidget_3.setMaximumHeight(260) self.tabWidget_3.setObjectName("tabWidget_3") #Tree self.tab_5 = QWidget() self.tab_5.setObjectName("tab_5") #self.tab_5.setMaximumWidth(200) self.VerticalLayout_2 = QVBoxLayout(self.tab_5)#QHBoxLayout(self.tab_5) self.VerticalLayout_2.setMargin(0) self.VerticalLayout_2.setObjectName("horizontalLayout_3") self.treeWidget = Tree(self.tab_5) self.treeWidget.setObjectName("treeWidget") self.treeWidget.setHorizontalScrollBarPolicy(Qt.ScrollBarAlwaysOn) self.treeWidget.horizontalScrollBar().show() self.treebar = QToolBar() action_Folder = QAction(Icons.newfolder,'New Folder', self) action_Folder.triggered.connect(self.about) action_Android = QAction(Icons.android,'Android', self) action_Android.triggered.connect(self.android) action_Ant = QAction(Icons.ant_view,'Ant', self) action_Ant.triggered.connect(self.ant) self.treebar.addAction(action_Folder) self.treebar.addAction(action_Android) self.treebar.addAction(action_Ant) self.treebar.setIconSize(QSize(16,16)) self.VerticalLayout_2.addWidget(self.treebar) self.VerticalLayout_2.addWidget(self.treeWidget) #Outline self.tab_2 = QWidget() self.tab_2.setObjectName("tab_2") #self.tab_2.setMaximumWidth(200) self.VerticalLayout_3 = QVBoxLayout(self.tab_2) self.VerticalLayout_3.setMargin(0) self.VerticalLayout_3.setObjectName("VerticalLayout_3") self.outlineWidget = Tree(self.tab_2) self.outlineWidget.setObjectName("outlineWidget") self.VerticalLayout_3.addWidget(self.outlineWidget) #Output self.tab_6 = QWidget() self.tab_6.setObjectName("tab_6") #GGGGGGGGGGGGGGGGGGGG AWESOME self.horizontalLayout_2 = QVBoxLayout(self.tab_6) self.horizontalLayout_2.setMargin(0) self.horizontalLayout_2.setObjectName("horizontalLayout_2") self.textEdit = QTextEdit(self.tab_6) self.textEdit.setObjectName("textEdit") self.lineeEdit = QLineEdit(self.tab_6) self.lineeEdit.setObjectName("lineeEdit") self.label = QLabel(self.tab_6) self.label.setText("Input:") self.horizontalLayout_2.addWidget(self.textEdit) self.horizontalLayout_2.addWidget(self.label) self.horizontalLayout_2.addWidget(self.lineeEdit) #Error self.tab_7 = QWidget() self.tab_7.setObjectName("tab_7") self.horizontalLayout_4 = QHBoxLayout(self.tab_7) self.horizontalLayout_4.setMargin(0) self.horizontalLayout_4.setObjectName("horizontalLayout_4") self.textEdit_2 = QTextEdit(self.tab_7) self.textEdit_2.setObjectName("textEdit_2") self.horizontalLayout_4.addWidget(self.textEdit_2) #Find self.tab_8 = QWidget() self.tab_8.setObjectName("tab_8") self.horizontalLayout_5 = QHBoxLayout(self.tab_8) self.horizontalLayout_5.setObjectName("horizontalLayout_5") self.lineEdit = QLineEdit(self.tab_8) self.lineEdit.setObjectName("lineEdit") self.lineEdit_2 = QLineEdit(self.tab_8) self.lineEdit_2.setObjectName("lineEdit_2") self.findClose = QPushButton(self.tab_8) self.findClose.setIcon(Icons.close_view) self.findClose.setFlat(True) self.findClose.clicked.connect(self.findBarShow) self.find = QPushButton(self.tab_8) self.find.setText("Find") self.find.clicked.connect(self.findCurrentText) self.replacefind = QPushButton(self.tab_8) self.replacefind.setText("Replace/Find") self.replace = QPushButton(self.tab_8) self.replace.setText("Replace") self.replace.clicked.connect(self.replaceCurrentText) self.replaceAll = QPushButton(self.tab_8) self.replaceAll.setText("Replace All") self.replaceAll.clicked.connect(self.replaceAllText) self.caseSensitive = QToolButton(self.tab_8) self.caseSensitive.setText("cs") self.caseSensitive.setCheckable(True) self.wholeWord = QToolButton(self.tab_8) self.wholeWord.setText("ww") self.wholeWord.setCheckable(True) self.regex = QToolButton(self.tab_8) self.regex.setText("re") self.regex.setCheckable(True) self.backward = QToolButton(self.tab_8) self.backward.setText("bk") self.backward.setCheckable(True) self.backward.setDisabled(True) self.horizontalLayout_5.addWidget(self.findClose) self.horizontalLayout_5.addWidget(self.find) self.horizontalLayout_5.addWidget(self.lineEdit) self.horizontalLayout_5.addWidget(self.lineEdit_2) self.horizontalLayout_5.addWidget(self.caseSensitive) self.horizontalLayout_5.addWidget(self.wholeWord) self.horizontalLayout_5.addWidget(self.regex) self.horizontalLayout_5.addWidget(self.backward) self.horizontalLayout_5.addWidget(self.replacefind) self.horizontalLayout_5.addWidget(self.replace) self.horizontalLayout_5.addWidget(self.replaceAll) self.horizontalLayout_5.setMargin(0) self.tab_8.setMaximumHeight(25) self.VericalLayout.addWidget(self.tab_8) self.tab_8.hide() self.tabWidget_2.addTab(self.tab_5,"Projects") self.tabWidget_2.addTab(self.tab_2,"Outline") self.tabWidget_3.addTab(self.tab_7,"Error") self.tabWidget_3.addTab(self.tab_6,"Output") self.tabWidget_3.setTabIcon(0,Icons.error) self.tabWidget_3.setTabIcon(1,Icons.console_view) self.tabWidget.setTabsClosable(True) self.tabWidget.setTabShape(0) #Splitters self.split1 = QSplitter(Qt.Horizontal) self.split1.addWidget(self.tabWidget_2) self.split1.addWidget(self.tab_1) #self.split1.addWidget(self.tab_5) self.split2 = QSplitter(Qt.Vertical) self.split2.addWidget(self.split1) self.split2.addWidget(self.tabWidget_3) self.tabWidget_3.hide() self.horizontalLayout.addWidget(self.split2) #Status self.statusbar = QStatusBar(self) self.statusbar.setObjectName("statusbar") self.aboutButton = QPushButton(self) self.aboutButton.setFlat(True) self.aboutButton.setIcon(Icons.anchor) self.aboutButton.clicked.connect(self.about) self.cmdButton = QPushButton(self) self.cmdButton.setFlat(True) self.cmdButton.setIcon(Icons.console_view) self.cmdButton.clicked.connect(self.cmd) self.cmdButton.setShortcut('Ctrl+O') self.findButton = QPushButton(self) self.findButton.setFlat(True) self.findButton.setIcon(Icons.find) self.findButton.setShortcut("Ctrl+F") self.findButton.clicked.connect(self.findBarShow) self.zoominButton = QPushButton(self) self.zoominButton.setFlat(True) self.zoominButton.setIcon(Icons.zoomplus) self.zoominButton.clicked.connect(self.zoomin) self.zoomoutButton = QPushButton(self) self.zoomoutButton.setFlat(True) self.zoomoutButton.setIcon(Icons.zoomminus) self.zoomoutButton.clicked.connect(self.zoomout) self.fontButton = QPushButton(self) self.fontButton.setFlat(True) self.fontButton.setIcon(Icons.font) self.fontButton.clicked.connect(self.setFont) self.statusbar.addWidget(self.aboutButton) self.statusbar.addWidget(self.cmdButton) self.statusbar.addWidget(self.findButton) self.statusbar.addWidget(self.zoominButton) self.statusbar.addWidget(self.zoomoutButton) self.statusbar.addWidget(self.fontButton) #self.statusbar.setFixedHeight(18) #Init colorstyling self.colorStyle = None self.initColorStyle() #Init self.setCentralWidget(self.centralwidget) self.setStatusBar(self.statusbar) self.textEdit.setReadOnly(True) self.fontName = fontName #QtGui.QApplication.setStyle(QtGui.QStyleFactory.create('Cleanlooks')) def findBarShow(self): if(self.tab_8.isHidden()): self.tab_8.show() else: self.tab_8.hide() def initToolBar(self): self.action_NewProject = QAction(Icons.newprj, 'Project', self) self.action_NewProject.setShortcut('Ctrl+P') self.action_NewProject.triggered.connect(self.newProject) self.action_NewProject.setToolTip("Create a New Project") self.action_NewProject.setStatusTip("Create a New Project") self.action_Open = QAction(Icons.open, 'Open', self) self.action_Open.setShortcut('Ctrl+O') self.action_Open.triggered.connect(self.fileOpen) self.action_Open.setToolTip("Open File") self.action_Open.setStatusTip("Open File") self.action_Save = QAction(Icons.save, 'Save', self) self.action_Save.setShortcut('Ctrl+S') self.action_Save.triggered.connect(self.fileSave) self.action_Save.setToolTip("Save Current File") self.action_SaveAll = QAction(Icons.saveall, 'SaveAll', self) self.action_SaveAll.setShortcut('Ctrl+A') self.action_SaveAll.triggered.connect(self.fileSaveAll) self.action_SaveAll.setToolTip("Save All Files") self.action_Help = QAction(Icons.toc_open, 'Help', self) self.action_Help.triggered.connect(self.help) self.action_Run = QAction(Icons.run, 'Run', self) self.action_Run.setShortcut('Ctrl+R') self.action_Run.triggered.connect(self.adb.run) self.action_RunFile = QAction(Icons.go, 'File', self) self.action_RunFile.triggered.connect(self.command.setCmd) self.lineeEdit.returnPressed.connect(self.command.setCmdLine) self.action_Stop = QAction(Icons.stop, 'Stop', self) self.action_Stop.setShortcut('Ctrl+Q') self.action_Stop.triggered.connect(self.adb.stop) self.action_Design = QAction(Icons.task_set, 'Design', self) self.action_Todo = QAction(Icons.task_set, 'Todo', self) #self.action_Todo.triggered.connect(self.stop) #Only variation CHeck Later men = QMenu() self.threshSlider = QSlider() self.threshSlider.setTickPosition(QSlider.TicksLeft) self.threshSlider.setOrientation(Qt.Horizontal) self.threshSlider.setValue(threshold) self.threshSlider.setMinimum(0) self.threshSlider.setMaximum(5) self.threshSlider.valueChanged.connect(self.setThreshold) #self.threshSlider.setInvertedAppearance(True) self.threshSliderAction = QWidgetAction(men) self.threshSliderAction.setDefaultWidget(self.threshSlider) men.addAction(QAction("Ident",self)) men.addAction(QAction("Edit",self)) men.addAction(QAction("Paste",self)) men.addAction(QAction("Tabs",self)) men.addSeparator() men.addAction(QAction("Threshold",self)) men.addAction(self.threshSliderAction) self.action_Options = QAction(Icons.thread_view, 'Options', self) self.action_Options.setMenu(men) self.action_Options.triggered.connect(self.options) self.action_Full = QAction(Icons.fullscreen, 'Full', self) self.action_Full.setShortcut('Shift+Enter') self.action_Full.triggered.connect(self.full) self.action_Style = QAction(Icons.style, 'Style', self) men1 = QMenu() self.styleslist = [] self.style1 = QAction("All Hallow's Eve",self) self.style1.triggered.connect(lambda:self.style_clicked(1)) self.style1.setCheckable(True) self.style2 = QAction("Amy",self) self.style2.triggered.connect(lambda:self.style_clicked(2)) self.style2.setCheckable(True) self.style3 = QAction("Aptana Studio",self) self.style3.triggered.connect(lambda:self.style_clicked(3)) self.style3.setCheckable(True) self.style4 = QAction("Bespin",self) self.style4.triggered.connect(lambda:self.style_clicked(4)) self.style4.setCheckable(True) self.style5 = QAction("Blackboard",self) self.style5.triggered.connect(lambda:self.style_clicked(5)) self.style5.setCheckable(True) self.style6 = QAction("Choco",self) self.style6.triggered.connect(lambda:self.style_clicked(6)) self.style6.setCheckable(True) self.style7 = QAction("Cobalt",self) self.style7.triggered.connect(lambda:self.style_clicked(7)) self.style7.setCheckable(True) self.style8 = QAction("Dawn",self) self.style8.triggered.connect(lambda:self.style_clicked(8)) self.style8.setCheckable(True) self.style9 = QAction("Eclipse",self) self.style9.triggered.connect(lambda:self.style_clicked(9)) self.style9.setCheckable(True) self.styleslist.append(self.style1) self.styleslist.append(self.style2) self.styleslist.append(self.style3) self.styleslist.append(self.style4) self.styleslist.append(self.style5) self.styleslist.append(self.style6) self.styleslist.append(self.style7) self.styleslist.append(self.style8) self.styleslist.append(self.style9) men1.addActions(self.styleslist) self.action_Style.setMenu(men1) self.styleslist[self.styleIndex].setChecked(True) self.action_Stop.setDisabled(True) self.toolbar = self.addToolBar('ToolBar') self.toolbar.setIconSize(QSize(16,16)) self.setToolButtonStyle(Qt.ToolButtonTextUnderIcon) self.toolbar.setAllowedAreas(Qt.AllToolBarAreas) #self.toolbar.setFixedHeight(40) self.toolbar.addAction(self.action_NewProject) self.toolbar.addAction(self.action_Open) self.toolbar.addAction(self.action_Save) self.toolbar.addAction(self.action_SaveAll) self.toolbar.addSeparator() self.toolbar.addAction(self.action_Run) self.toolbar.addAction(self.action_RunFile) self.toolbar.addAction(self.action_Stop) self.toolbar.addSeparator() self.toolbar.addAction(self.action_Design) self.toolbar.addAction(self.action_Todo) self.toolbar.addAction(self.action_Options) self.toolbar.addAction(self.action_Style) self.toolbar.addSeparator() self.toolbar.addAction(self.action_Help) self.toolbar.addAction(self.action_Full) def about(self): QMessageBox.about(self, "About Sabel IDE", """ <b>Sabel</b> v%s <p> All rights reserved in accordance with GPL v3 or later. <p>This application can be used for Squirrel and EmoFramework Projects. <p>Squirrel Shell Copyright (c) 2006-2011, Constantin Makshin <p>Squirrel Copyright (c) Alberto Demichelis <p>zlib Copyright (c) Jean-loup Gailly and Mark Adler <p>Icons Copyright (c) Eclipse EPL <p>Emo-Framework Copyright (c) 2011 Kota Iguchi <p>Python %s - Qt %s - PyQt %s on %s <p>Created By: pyros2097 <p>THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES,INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. """ % ( __version__,PY_VERSION, QT_VERSION_STR, PYQT_VERSION_STR,OS_NAME)) def help(self): QMessageBox.about(self, "About Simple Editor","This is The Help") def full(self): if not self.isFull: self.setWindowState(Qt.WindowFullScreen) self.isFull = True else: self.setWindowState(Qt.WindowMaximized) self.isFull = False def android(self): form = DialogAndroid(self) form.show() def ant(self): pass def cmd(self): if(self.tabWidget_3.isHidden()): self.tabWidget_3.show() else: self.tabWidget_3.hide() def findCurrentText(self): edt = self.tabWidget.widget(self.tabWidget.currentIndex()) edt.findText(self.lineEdit.text(),self.regex.isChecked(),self.caseSensitive.isChecked(),self.wholeWord.isChecked(),self.backward.isChecked()) def replaceCurrentText(self): edt = self.tabWidget.widget(self.tabWidget.currentIndex()) done = edt.findText(self.lineEdit.text(),self.regex.isChecked(),self.caseSensitive.isChecked(),self.wholeWord.isChecked(),self.backward.isChecked()) if(done): edt.replaceText(self.lineEdit_2.text()) else: QMessageBox.about(self, "About Sabel IDE","Could Not Find Text") return done def replaceAllText(self): edt = self.tabWidget.widget(self.tabWidget.currentIndex()) while(edt.findText(self.lineEdit.text(),self.regex.isChecked(),self.caseSensitive.isChecked(),self.wholeWord.isChecked(),self.backward.isChecked())): edt.replaceText(self.lineEdit_2.text()) def zoomin(self): for i in range(len(self.files)): self.tabWidget.widget(i).zoomin() def zoomout(self): for i in range(len(self.files)): self.tabWidget.widget(i).zoomout() def setFont(self): font = QFont() font.setFamily(self.fontName) fdialog = QFontDialog(self) fdialog.show() fdialog.setCurrentFont(font) fdialog.accepted.connect(lambda:self.setFontName(fdialog.currentFont())) def setFontName(self,font): #print "accepted" #print font.family() self.fontName = str(font.family()) config.setFontName(self.fontName) for i in range(len(self.files)): self.tabWidget.widget(i).setFontName(self.fontName) def setThreshold(self,val): config.setThresh(val) for i in range(len(self.files)): self.tabWidget.widget(i).setThreshold(val) def initColorStyle(self): self.colorStyle = Styles[self.styleIndex] pal = QPalette(self.tabWidget_2.palette()) #print pal.color(QPalette.Base).name() #print pal.color(QPalette.Window).name() pal.setColor(QPalette.Base,self.colorStyle.paper) pal.setColor(QPalette.Text,self.colorStyle.color) self.tabWidget_2.setPalette(pal) self.tabWidget_3.setPalette(pal) def style_clicked(self,no): self.styleIndex = no -1 #print self.styleIndex for i in self.styleslist: if self.styleslist.index(i) == self.styleIndex: i.setChecked(True) else: i.setChecked(False) config.setstyleIndex(self.styleIndex) #self.initColorStyle() for i in range(len(self.files)): pass #self.tabWidget. #self.tabWidget.widget(i).setColorStyle(self.colorStyle)