def initIcons(self): self.Icons = {} for (name, icon) in IconDict.items(): pixmap = qt.QPixmap(icon) if QTVERSION < '4.0.0': self.Icons[name] = qt.QIconSet(pixmap) else: self.Icons[name] = qt.QIcon(pixmap)
def focusOutEvent(self, event): # TODO remove ? if 0: self.setPaletteBackgroundColor(qt.QColor('white')) if QTVERSION < '4.0.0': self.emit(qt.SIGNAL("returnPressed()"), ()) else: self.emit(qt.SIGNAL("returnPressed()"))
def closeEvent(self, event): qt.QWidget.closeEvent(self, event) ddict = {} ddict['event'] = 'closed' if QTVERSION < '4.0.0': self.emit(qt.PYSIGNAL('closed'), (ddict,)) else: self.emit(qt.SIGNAL('closed'), ddict)
def closeEvent(self, event): QTable.closeEvent(self, event) ddict = {} ddict['event'] = 'closed' if qt.qVersion() < '4.0.0': self.emit(qt.PYSIGNAL('closed'), (ddict, )) else: self.emit(qt.SIGNAL('closed'), ddict)
def __init__(self, parent=None, name=None): qt.QLineEdit.__init__(self, parent) if QTVERSION < '4.0.0': qt.QObject.connect(self, qt.SIGNAL("returnPressed()"), self._mySignal) else: qt.QObject.connect(self, qt.SIGNAL("editingFinished()"), self._mySignal)
def _addGraphDialogButton(self): self.graphDialog.okButton = qt.QPushButton(self.graphDialog) self.graphDialog.okButton.setText('OK') self.graphDialog.okButton.setAutoDefault(True) self.graphDialog.mainLayout.addWidget(self.graphDialog.okButton) self.graphDialog.connect(self.graphDialog.okButton, qt.SIGNAL('clicked()'), self.graphDialog.accept)
def _mySignal(self): self.setPaletteBackgroundColor(qt.QColor('white')) ddict = {} ddict['event'] = "returnPressed" if QTVERSION < '4.0.0': self.emit(qt.PYSIGNAL("MyQLineEditSignal"), (ddict,)) else: self.emit(qt.SIGNAL("MyQLineEditSignal"), ddict)
def _sliderChanged(self, value): if DEBUG: print("DoubleSlider._sliderChanged()") ddict = self.__getDict() if QTVERSION < '4.0.0': self.emit(qt.PYSIGNAL("doubleSliderValueChanged"), (ddict, )) else: self.emit(qt.SIGNAL("doubleSliderValueChanged"), ddict)
def __init__(self, parent=None, initdict = None): if qt.qVersion() < '4.0.0': qt.QWidget.__init__(self, parent, "TubeWidget",0) else: qt.QWidget.__init__(self, parent) self.l = qt.QVBoxLayout(self) self.l.setMargin(0) self.l.setSpacing(0) self.tubeWidget = TubeWidget(self, initdict = initdict) self.setParameters = self.tubeWidget.setParameters self.getParameters = self.tubeWidget.getParameters label = qt.QLabel(self) hbox = qt.QWidget(self) hboxl = qt.QHBoxLayout(hbox) hboxl.setMargin(0) hboxl.setSpacing(0) self.plotButton = qt.QPushButton(hbox) self.plotButton.setText("Plot Continuum") self.exportButton = qt.QPushButton(hbox) self.exportButton.setText("Export to Fit") #grid.addWidget(self.plotButton, 7, 1) #grid.addWidget(self.exportButton, 7, 3) hboxl.addWidget(self.plotButton) hboxl.addWidget(self.exportButton) self.l.addWidget(self.tubeWidget) f = label.font() f.setItalic(1) label.setFont(f) label.setAlignment(qt.Qt.AlignRight) label.setText("H. Ebel, X-Ray Spectrometry 28 (1999) 255-266 ") self.l.addWidget(label) self.l.addWidget(hbox) self.graph = None if HAS_QWT: self.connect(self.plotButton, qt.SIGNAL("clicked()"), self.plot) else: self.connect(self.plotButton, qt.SIGNAL("clicked()"), self.noQwtError) self.connect(self.exportButton, qt.SIGNAL("clicked()"), self._export)
def display(self, model): app = qt.QApplication.instance() if not app: # create QApplication if it doesnt exist app = qt.QApplication(sys.argv) tree = qt.QTreeView() tree.setModel(model) tree.show() app.exec_() return tree
def __selection(self, peak): selection = [] for key in self.peaklist: if self.buttondict[key].isSelected(): selection.append(key) if QTVERSION < '4.0.0': self.emit(qt.PYSIGNAL("selectionChanged"), (selection, )) else: self.emit(qt.SIGNAL("selectionChanged"), (selection))
def __init__(self, *args, **kw): QTable.__init__(self, *args) if QTVERSION < '4.0.0': self.setNumRows(1) self.setNumCols(1) else: self.setRowCount(1) self.setColumnCount(1) self.labels = [ 'Parameter', 'Estimation', 'Fit Value', 'Sigma', 'Restrains', 'Min/Parame', 'Max/Factor/Delta/' ] self.code_options = [ "FREE", "POSITIVE", "QUOTED", "FIXED", "FACTOR", "DELTA", "SUM", "IGNORE", "ADD", "SHOW" ] i = 0 if 'labels' in kw: self.labels = [] for label in kw['labels']: self.labels.append(label) else: self.labels = [ 'Position', 'Fit Area', 'MCA Area', 'Sigma', 'Fwhm', 'Chisq', 'Region', 'XBegin', 'XEnd' ] if QTVERSION < '4.0.0': self.setNumCols(len(self.labels)) for label in self.labels: qt.QHeader.setLabel(self.horizontalHeader(), i, label) self.adjustColumn(i) i = i + 1 else: self.setColumnCount(len(self.labels)) for label in self.labels: item = self.horizontalHeaderItem(i) if item is None: item = qt.QTableWidgetItem(self.labels[i], qt.QTableWidgetItem.Type) self.setHorizontalHeaderItem(i, item) item.setText(self.labels[i]) self.resizeColumnToContents(i) i = i + 1 self.regionlist = [] self.regiondict = {} if QTVERSION < '4.0.0': self.verticalHeader().setClickEnabled(1) self.connect(self.verticalHeader(), qt.SIGNAL('clicked(int)'), self.__myslot) else: if DEBUG: print("MCATABLE click on vertical header items?") self.connect(self, qt.SIGNAL('cellClicked(int, int)'), self.__myslot) self.connect(self, qt.SIGNAL("selectionChanged()"), self.__myslot)
def noQwtError(self): msg = qt.QMessageBox(self) msg.setIcon(qt.QMessageBox.Critical) msg.setText("This function needs PyQwt5 installed") if qt.qVersion() < '4.0.0': msg.exec_loop() else: msg.exec_() return
def printFile(): painter = qt.QPainter(printer) scene.render( painter, qt.QRectF(0, 0, printer.width(), printer.height()), qt.QRectF(page.rect().x(), page.rect().y(), page.rect().width(), page.rect().height()), qt.Qt.KeepAspectRatio) painter.end()
def __init__(self, parent=None, name=None, fl=0, keys=(), params=()): if QTVERSION < '4.0.0': qt.QWidget.__init__(self, parent, name, fl) if name == None: self.setName("RadioField") #self.resize(166,607) self.setSizePolicy( qt.QSizePolicy(1, 1, 0, 0, self.sizePolicy().hasHeightForWidth())) self.setCaption(str("RadioField")) RadioFieldLayout = qt.QHBoxLayout(self, 11, 6, "RadioFieldLayout") else: qt.QWidget.__init__(self, parent) RadioFieldLayout = qt.QHBoxLayout(self) RadioFieldLayout.setMargin(11) RadioFieldLayout.setSpacing(6) self.RadioFieldBox = qt.QButtonGroup(self) if QTVERSION < '4.0.0': self.RadioFieldBox.setSizePolicy( qt.QSizePolicy( 1, 1, 0, 0, self.RadioFieldBox.sizePolicy().hasHeightForWidth())) self.RadioFieldBox.setTitle(str("")) self.RadioFieldBox.setColumnLayout(0, qt.Qt.Vertical) self.RadioFieldBox.layout().setSpacing(6) self.RadioFieldBox.layout().setMargin(11) RadioFieldBoxLayout = qt.QVBoxLayout(self.RadioFieldBox.layout()) RadioFieldBoxLayout.setAlignment(qt.Qt.AlignTop) Layout1 = qt.QVBoxLayout(None, 0, 6, "Layout1") self.dict = {} if type(keys) == TupleType: for key in keys: self.dict[key] = 1 else: self.dict[keys] = 1 self.RadioButton = [] i = 0 for text in params: self.RadioButton.append( qt.QRadioButton(self.RadioFieldBox, "RadioButton" + "%d" % i)) self.RadioButton[-1].setSizePolicy( qt.QSizePolicy( 1, 1, 0, 0, self.RadioButton[-1].sizePolicy().hasHeightForWidth())) self.RadioButton[-1].setText(str(text)) Layout1.addWidget(self.RadioButton[-1]) i = i + 1 RadioFieldBoxLayout.addLayout(Layout1) RadioFieldLayout.addWidget(self.RadioFieldBox) self.RadioButton[0].setChecked(1) self.connect(self.RadioFieldBox, qt.SIGNAL("clicked(int)"), self.setvalue)
def test(): a = qt.QApplication(sys.argv) qt.QObject.connect(a, qt.SIGNAL("lastWindowClosed()"), a, qt.SLOT("quit()")) w = ParametersTab() if QTVERSION < '4.0.0': a.setMainWidget(w) w.show() if 1: import specfile import Specfit import numpy sf = specfile.Specfile('02021201.dat') scan = sf.select('14') #sf=specfile.Specfile('02022101.dat') #scan=sf.select('11') mcadata = scan.mca(1) y = numpy.array(mcadata) #x=numpy.arange(len(y)) x = numpy.arange(len(y)) * 0.0200511 - 0.003186 fit = Specfit.Specfit() fit.setdata(x=x, y=y) fit.importfun("SpecfitFunctions.py") fit.settheory('Hypermet') fit.configure(Yscaling=1., WeightFlag=1, PosFwhmFlag=1, HeightAreaFlag=1, FwhmPoints=50, PositionFlag=1, HypermetTails=1) fit.setbackground('Linear') if 0: # build a spectrum array f = open("spec.arsp", 'r') #read the spectrum data x = numpy.array([], numpy.float) y = numpy.array([], numpy.float) tmp = f.readline()[:-1] while (tmp != ""): tmpSeq = tmp.split() x = numpy.concatenate((x, [float(tmpSeq[0])])) y = numpy.concatenate((y, [float(tmpSeq[1])])) tmp = f.readline()[:-1] fit.setdata(x=x, y=y) if 1: mcaresult = fit.mcafit(x=x, xmin=x[70], xmax=x[500]) w.fillfrommca(mcaresult) else: fit.estimate() fit.startfit() w.fillfromfit(fit.paramlist, current='Fit') w.removeview(view='Region 1') if QTVERSION < '4.0.0': a.exec_loop() else: a.exec_()
def mouseDoubleClickEvent(self, event): if DEBUG: print("Double Click Event") ddict = {} ddict['event'] = "DoubleClick" ddict['data'] = event if qt.qVersion() < '4.0.0': self.emit(qt.PYSIGNAL("LineDoubleClickEvent"), (ddict, )) else: self.emit(qt.SIGNAL("LineDoubleClickEvent"), ddict)
def test(): app = qt.QApplication([]) w = QSelectorWidget() w.show() qt.QObject.connect(app, qt.SIGNAL("lastWindowClosed()"), app, qt.SLOT("quit()")) if QTVERSION < '4.0.0': app.exec_loop() else: app.exec_()
def mousePressEvent(self, event): if DEBUG: print("Mouse Press Event") ddict = {} ddict['event'] = "MousePress" ddict['data'] = event if qt.qVersion() < '4.0.0': self.emit(qt.PYSIGNAL("PixmapLabelMousePressEvent"), (ddict, )) else: self.emit(qt.SIGNAL("PixmapLabelMousePressEvent"), ddict)
def start(self): self.emit(qt.SIGNAL("started"), ()) import time for idx in range(30): self.logText.append("%d" % idx) qt.qApp.processEvents() time.sleep(.5) print(idx) self.emit(qt.SIGNAL("finished"), ())
def recurse_dic_to_item(self, dic, parent): for k in dic: v = dic[k] if isinstance(v, dict): item = qt.QStandardItem(k + ':' + str(v)) parent.appendRow(self.recurse_dic_to_item(v, item)) else: item = qt.QStandardItem(k + ': ' + str(v)) parent.appendRow(item) return parent
def __setup(self): """ """ if self.printer is None: self.printer = qt.QPrinter() if self.printDialog is None: self.printDialog = qt.QPrintDialog(self.printer, self) if self.printDialog.exec_(): self.printer.setFullPage(True) self.updatePrinter()
def test(): app = qt.QApplication([]) w = qt.QTextEdit() if len(sys.argv) > 1: log = ChangeLog(textfile=sys.argv[-1]) else: log = ChangeLog(textfile='changelog.txt') w.setDocument(log) w.show() app.exec_()
def __printps(self,text): printer = qt.QPrinter() if printer.setup(self): painter = qt.QPainter() if not(painter.begin(printer)): return 0 metrics = qt.QPaintDeviceMetrics(printer) dpiy = metrics.logicalDpiY() margin = int((2/2.54) * dpiy) #2cm margin body = qt.QRect(0.5*margin, margin, metrics.width()- 1 * margin, metrics.height() - 2 * margin) #text = self.mcatable.gettext() #html output -> print text richtext = qt.QSimpleRichText(text, qt.QFont(), qt.QString(""), #0, qt.QStyleSheet.defaultSheet(), qt.QMimeSourceFactory.defaultFactory(), body.height()) view = qt.QRect(body) richtext.setWidth(painter,view.width()) page = 1 while(1): richtext.draw(painter,body.left(),body.top(), view,qt.QColorGroup()) view.moveBy(0, body.height()) painter.translate(0, -body.height()) painter.drawText(view.right() - painter.fontMetrics().width(qt.QString.number(page)), view.bottom() - painter.fontMetrics().ascent() + 5,qt.QString.number(page)) if view.top() >= richtext.height(): break printer.newPage() page += 1 #painter.flush() painter.end()
def __init__(self, parent=None, stack=False, actions=True): qt.QWidget.__init__(self, parent) if stack in [None, False]: file_browser = False else: file_browser = True self.mainLayout = qt.QVBoxLayout(self) self.mainLayout.setMargin(2) self.mainLayout.setSpacing(2) self.parametersWidget = SimpleFitBatchParameters(self) self.getParameters = self.parametersWidget.getParameters self.mainLayout.addWidget(self.parametersWidget) if actions: self.actionsBox = qt.QWidget(self) self.actionsBox.mainLayout = qt.QHBoxLayout(self.actionsBox) self.actionsBox.mainLayout.setMargin(2) self.actionsBox.mainLayout.setSpacing(2) self.closeButton = qt.QPushButton(self.actionsBox) self.closeButton.setText("Close") self.startButton = qt.QPushButton(self.actionsBox) self.startButton.setText("Start") self.actionsBox.mainLayout.addWidget( qt.HorizontalSpacer(self.actionsBox)) self.actionsBox.mainLayout.addWidget(self.closeButton) self.actionsBox.mainLayout.addWidget( qt.HorizontalSpacer(self.actionsBox)) self.actionsBox.mainLayout.addWidget(self.startButton) self.actionsBox.mainLayout.addWidget( qt.HorizontalSpacer(self.actionsBox)) self.mainLayout.addWidget(self.actionsBox) self.connect(self.closeButton, qt.SIGNAL('clicked()'), self.close)
def _build(self): i = 0 for key in self.keyList: label = qt.QLabel(self) label.setText(key) line = qt.QLineEdit(self) line.setReadOnly(True) self.mainLayout.addWidget(label, i, 0) self.mainLayout.addWidget(line, i, 1) self.keyDict[key] = (label, line) i += 1
def _removeClicked(self): if DEBUG: print("Overwritten _removeClicked method") #get selected scan keys if QTVERSION < '4.0.0': scan_sel= [sn for sn in self.scans if self.list.findItem(sn,1).isSelected()] else: itemlist = self.list.selectedItems() scan_sel = [str(item.text(1)) for item in itemlist] #get selected counter keys cnt_sel = self.cntTable.getCounterSelection() mca_sel = self.mcaTable.getCurrentlySelectedMca() sel_list = [] #build the appropriate selection for mca's for scan in scan_sel: for mca in mca_sel: sel = {} sel['SourceName'] = self.data.sourceName sel['SourceType'] = self.data.sourceType sel['Key'] = scan sel['Key'] += "."+mca sel['selection'] = None #for the future #sel['scanselection'] = False sel['legend'] = os.path.basename(sel['SourceName'][0]) +" "+sel['Key'] sel_list.append(sel) if len(cnt_sel['cntlist']): if len(cnt_sel['y']): #if there is something to plot sel = {} sel['SourceName'] = self.data.sourceName sel['SourceType'] = self.data.sourceType sel['Key'] = scan sel['selection'] = {} if self.forceMcaBox.isChecked(): sel['scanselection'] = "MCA" else: sel['scanselection'] = True sel['selection']['x'] = cnt_sel['x'] if len(sel['selection']['x']) == 2: if self.meshBox.isChecked(): sel['selection']['selectiontype'] = "2D" sel['selection']['y'] = cnt_sel['y'] sel['selection']['m'] = cnt_sel['m'] sel['selection']['cntlist'] = cnt_sel['cntlist'] sel['legend'] = os.path.basename(sel['SourceName'][0]) +" "+ sel['Key'] sel_list.append(sel) if len(sel_list): if QTVERSION < '4.0.0': self.emit(qt.PYSIGNAL("removeSelection"), (sel_list,)) else: self.emit(qt.SIGNAL("removeSelection"), sel_list)
def __init__(self, parent=None, name=None, fl=0): qt.QComboBox.__init__(self, parent) self.setEditable(True) self._lineEdit = MyQLineEdit() self.setLineEdit(self._lineEdit) if QTVERSION < '4.0.0': self.connect(self._lineEdit, qt.PYSIGNAL("MyQLineEditSignal"), self._mySlot) else: self.connect(self._lineEdit, qt.SIGNAL("MyQLineEditSignal"), self._mySlot)
def drawEllipse(self,x,y,r): self.Item = qt.QGraphicsEllipseItem(x-r/2,y-r/2,r,r) self.Item.setFlag(qt.QGraphicsItem.ItemIsMovable) pen = qt.QPen(qt.Qt.blue) pen.setWidth( 3 ) brush = qt.QBrush(qt.QColor(0xFF, 0, 0, 0x00)) self.Item.setBrush(brush) self.Item.setPen(pen) self.scene.addItem(self.Item)
def __init__(self, parent=None, name=None, modal=1, fl=0, sheets=(), default=None, nohelp=1, nodefaults=1): TabSheets.TabSheets.__init__(self, parent, name, modal, fl, nohelp, nodefaults) if QTVERSION < '4.0.0': if name is not None: self.setCaption(str(name)) else: if name is not None: self.setWindowTitle(str(name)) self.sheets = {} self.sheetslist = [] self.default = default self.output = {} self.output.update(self.default) ntabs = self.tabWidget.count() #remove anything not having to do with my sheets for i in range(ntabs): if QTVERSION < '4.0.0': page = self.tabWidget.page(0) self.tabWidget.removePage(page) else: self.tabWidget.setCurrentIndex(0) self.tabWidget.removeTab(self.tabWidget.currentIndex()) for sheet in sheets: name = sheet['notetitle'] a = FieldSheet(fields=sheet['fields']) self.sheets[name] = a a.setdefaults(self.default) self.sheetslist.append(name) self.tabWidget.addTab(self.sheets[name], str(name)) if QTVERSION < '4.0.0': self.tabWidget.showPage(self.sheets[name]) else: if QTVERSION < '4.2.0': i = self.tabWidget.indexOf(self.sheets[name]) self.tabWidget.setCurrentIndex(i) else: self.tabWidget.setCurrentWidget(self.sheets[name]) #perform the binding to the buttons self.connect(self.buttonOk, qt.SIGNAL("clicked()"), self.myaccept) self.connect(self.buttonCancel, qt.SIGNAL("clicked()"), self.myreject) if not nodefaults: self.connect(self.buttonDefaults, qt.SIGNAL("clicked()"), self.defaults) if not nohelp: self.connect(self.buttonHelp, qt.SIGNAL("clicked()"), self.myhelp)
def getSaveFileName(parent, caption, directory, typeFilter=None, selectedFilter=None, options=None): dial = RixsSaveSpectraDialog(parent, caption, directory) dial.setAcceptMode(qt.QFileDialog.AcceptSave) singleFile = None comment = None fileNameList = [] if dial.exec_(): singleFile = dial.singleFile.isChecked() fileNameList = [qt.safe_str(fn) for fn in dial.selectedFiles()] return fileNameList, singleFile, comment