def __init__(self, parent=None, name=None, fl=0): qt.QWidget.__init__(self, parent, name, fl) self.mainLayout = qt.QVBoxLayout(self) self.table = qttable.QTable(self) self.table.setSelectionMode(qttable.QTable.Multi) self.table.setFocusStyle(qttable.QTable.FollowStyle) #self.table.setFocusStyle(qttable.QTable.SpreadSheet) #self.table.setReadOnly(1) self.table.setColumnReadOnly(0, 1) self.table.setColumnReadOnly(2, 1) self.table.verticalHeader().setResizeEnabled(0, -1) self.table.horizontalHeader().setResizeEnabled(0, -1) self.cnt = 0 self.cntlist = [] # --- selection in case of a single MCA by scan self.firstCnt = qttable.QTableSelection() self.firstCnt.init(0, 0) self.firstCnt.expandTo(0, 0) self.mainLayout.addWidget(self.table) #do not use double click #self.connect(self.table, qt.SIGNAL("doubleClicked(int,int,int,const qt.QPoint&)"), self.__doubleClicked) self.connect(self.table, qt.SIGNAL("clicked(int,int,int,const QPoint&)"), self.__Clicked) self.connect(self.table, qt.SIGNAL("selectionChanged()"), self.__selectionChanged) self.reset()
def __init__(self, parent=None, name=None, fl=0): qt.QWidget.__init__(self, parent, name, fl) self.mainLayout = qt.QVBoxLayout(self) self.table = qttable.QTable(self) self.table.setSelectionMode(qttable.QTable.Multi) self.table.setFocusStyle(qttable.QTable.FollowStyle) self.table.setReadOnly(1) self.table.verticalHeader().setResizeEnabled(0, -1) self.table.horizontalHeader().setResizeEnabled(0, -1) # --- selection in case of a single MCA by scan self.firstMca = qttable.QTableSelection() self.firstMca.init(0, 0) self.firstMca.expandTo(0, 0) self.mainLayout.addWidget(self.table) #self.connect(self.table, qt.SIGNAL("selectionChanged()"), self.__selectionChanged) # XXX: do not work correctly anymore !!! (after qt.Qt upgrade) self.connect(self.table, qt.SIGNAL("doubleClicked(int,int,int,const QPoint&)"), self.__doubleClicked) self.reset()
def buildInterface(self): vlayout = qt.QVBoxLayout(self) title = qt.QLabel("<B>Beam Position<B>", self) title.setSizePolicy(qt.QSizePolicy(qt.QSizePolicy.Expanding, qt.QSizePolicy.Fixed)) vlayout.addWidget(title) self.calibFrame = qt.QFrame(self) self.calibFrame.setFrameShape(qt.QFrame.Box) self.calibFrame.setFrameShadow(qt.QFrame.Sunken) vlayout.addWidget(self.calibFrame) vlayout1 = qt.QVBoxLayout(self.calibFrame) vlayout1.setMargin(10) self.table = qttable.QTable(0, 3, self.calibFrame) self.table.setFocusPolicy(qt.QWidget.NoFocus) self.table.setSelectionMode(qttable.QTable.NoSelection) self.table.setSizePolicy(qt.QSizePolicy(qt.QSizePolicy.Minimum, qt.QSizePolicy.Minimum)) self.table.verticalHeader().hide() self.table.setLeftMargin(0) self.table.setReadOnly(True) header = self.table.horizontalHeader() header.setLabel(0, "Zoom") header.setLabel(1, "Y Beam (pix.)") header.setLabel(2, "Z Beam (pix.)") self.table.clearSelection(True) vlayout1.addWidget(self.table) vlayout1.addSpacing(10) f1 = qt.QFrame(self.calibFrame) f1.setFrameShape(qt.QFrame.HLine) f1.setFrameShadow(qt.QFrame.Sunken) vlayout1.addWidget(f1) vlayout1.addSpacing(10) self.saveButton = qt.QPushButton("Save Current Beam Pos.", self.calibFrame) self.connect(self.saveButton, qt.SIGNAL("clicked()"), self.saveCalibration) vlayout1.addWidget(self.saveButton) vlayout1.addStretch(1)
def __init__(self, parent): QWidget.__init__(self, parent) self.lastSpecReady = False self.queueList = [] self.table = qttable.QTable(0, 18, self) self.table.setLeftMargin(0) # self.table.setColumnMovingEnabled(True) # self.table.setRowMovingEnabled(True) self.connect( self.table, SIGNAL("contextMenuRequested ( int, int, const QPoint & )"), self.queueContextMenu, ) self.validDict = {} self.lastValid = True self.buttonsContainer = QHBox(self) HorizontalSpacer(self.buttonsContainer) self.collectButton = QToolButton(self.buttonsContainer) self.collectButton.setUsesTextLabel(True) self.collectButton.setTextPosition(QToolButton.BesideIcon) self.collectButton.setTextLabel("Collect queue") self.collectButton.setSizePolicy(QSizePolicy.Fixed, QSizePolicy.Fixed) self.collectButton.setEnabled(False) QObject.connect(self.collectButton, SIGNAL("clicked()"), self.collectQueue) det_mode_list = QStringList() DataCollectQueueWidget.PARAMETERS["detector_mode"][3][1] = det_mode_list for param_name in DataCollectQueueWidget.PARAMETERS: param = DataCollectQueueWidget.PARAMETERS[param_name] param_index = param[0] param_label = param[1] param_readonly = param[2] param_type = param[3] self.table.horizontalHeader().setLabel(param_index, param_label) if param_readonly: self.table.setColumnReadOnly(param_index, True) self.table.setLeftMargin(4 * self.table.leftMargin()) QVBoxLayout(self, 1, 2) self.layout().addWidget(self.table) self.layout().addWidget(self.buttonsContainer)
def buildInterface(self): vlayout = qt.QVBoxLayout(self) title = qt.QLabel("<B>Pixel Size Calibration<B>", self) title.setSizePolicy( qt.QSizePolicy(qt.QSizePolicy.Expanding, qt.QSizePolicy.Fixed)) vlayout.addWidget(title) self.calibFrame = qt.QFrame(self) self.calibFrame.setFrameShape(qt.QFrame.Box) self.calibFrame.setFrameShadow(qt.QFrame.Sunken) vlayout.addWidget(self.calibFrame) vlayout1 = qt.QVBoxLayout(self.calibFrame) vlayout1.setMargin(10) self.table = qttable.QTable(0, 3, self.calibFrame) self.table.setFocusPolicy(qt.QWidget.NoFocus) self.table.setSelectionMode(qttable.QTable.NoSelection) self.table.setSizePolicy( qt.QSizePolicy(qt.QSizePolicy.Minimum, qt.QSizePolicy.Minimum)) self.table.verticalHeader().hide() self.table.setLeftMargin(0) self.table.setReadOnly(True) header = self.table.horizontalHeader() header.setLabel(0, "Zoom") header.setLabel(1, "Y Size (nm)") header.setLabel(2, "Z Size (nm)") self.table.clearSelection(True) vlayout1.addWidget(self.table) vlayout1.addSpacing(10) f1 = qt.QFrame(self.calibFrame) f1.setFrameShape(qt.QFrame.HLine) f1.setFrameShadow(qt.QFrame.Sunken) vlayout1.addWidget(f1) vlayout1.addSpacing(10) self.saveButton = qt.QPushButton("Save Current Calibration", self.calibFrame) self.connect(self.saveButton, qt.SIGNAL("clicked()"), self.saveCalibration) vlayout1.addWidget(self.saveButton) vlayout1.addSpacing(10) f1 = qt.QFrame(self.calibFrame) f1.setFrameShape(qt.QFrame.HLine) f1.setFrameShadow(qt.QFrame.Sunken) vlayout1.addWidget(f1) vlayout1.addSpacing(10) hlayout1 = qt.QHBoxLayout(vlayout1) self.relYLabel = qt.QLabel("Y Move:", self.calibFrame) hlayout1.addWidget(self.relYLabel) self.relYText = qt.QLineEdit("0.1", self.calibFrame) hlayout1.addWidget(self.relYText) hlayout2 = qt.QHBoxLayout(vlayout1) self.relZLabel = qt.QLabel("Z Move:", self.calibFrame) hlayout2.addWidget(self.relZLabel) self.relZText = qt.QLineEdit("0.1", self.calibFrame) hlayout2.addWidget(self.relZText) vlayout1.addSpacing(5) self.calibButton = qt.QPushButton("Start New Calibration", self.calibFrame) self.connect(self.calibButton, qt.SIGNAL("clicked()"), self.calibrationAction) vlayout1.addWidget(self.calibButton) vlayout1.addStretch(1)
def build(self, comments="True", height=3): layout = qt.QVBoxLayout(self) layout.setMargin(0) layout.setSpacing(0) self.__comments = comments commentsHBox = qt.QWidget(self) layout.addWidget(commentsHBox) commentsHBoxLayout = qt.QHBoxLayout(commentsHBox) commentsHBoxLayout.setMargin(0) commentsHBoxLayout.setSpacing(0) tableContainer = qt.QWidget(commentsHBox) commentsHBoxLayout.addWidget(tableContainer) tableContainerLayout = qt.QVBoxLayout(tableContainer) tableContainerLayout.setMargin(0) tableContainerLayout.setSpacing(0) self.__hboxTableContainer = qt.QWidget(tableContainer) hbox = self.__hboxTableContainer tableContainerLayout.addWidget(hbox) hboxLayout = qt.QHBoxLayout(hbox) hboxLayout.setMargin(0) hboxLayout.setSpacing(0) numberLabel = qt.QLabel(hbox) hboxLayout.addWidget(numberLabel) numberLabel.setText("Number of Compounds:") if QTVERSION < '4.0.0': numberLabel.setAlignment(qt.QLabel.WordBreak | qt.QLabel.AlignVCenter) else: numberLabel.setAlignment(qt.Qt.AlignVCenter) self.__numberSpin = qt.QSpinBox(hbox) hboxLayout.addWidget(self.__numberSpin) if QTVERSION < '4.0.0': self.__numberSpin.setMinValue(1) self.__numberSpin.setMaxValue(100) else: self.__numberSpin.setMinimum(1) self.__numberSpin.setMaximum(100) self.__numberSpin.setValue(1) if QTVERSION < '4.0.0': self.__table = qttable.QTable(tableContainer) self.__table.setNumRows(1) self.__table.setNumCols(2) else: self.__table = qt.QTableWidget(tableContainer) self.__table.setRowCount(1) self.__table.setColumnCount(2) tableContainerLayout.addWidget(self.__table) self.__table.setMinimumHeight( (height) * self.__table.horizontalHeader().sizeHint().height()) self.__table.setMaximumHeight( (height) * self.__table.horizontalHeader().sizeHint().height()) self.__table.setMinimumWidth(1 * self.__table.sizeHint().width()) self.__table.setMaximumWidth(1 * self.__table.sizeHint().width()) #self.__table.setSizePolicy(qt.QSizePolicy(qt.QSizePolicy.Fixed,qt.QSizePolicy.Fixed)) if QTVERSION < '4.0.0': self.__table.setVScrollBarMode(self.__table.AlwaysOn) self.__table.horizontalHeader().setClickEnabled(False) qt.QHeader.setLabel(self.__table.horizontalHeader(), 0, "Material") qt.QHeader.setLabel(self.__table.horizontalHeader(), 1, "Mass Fraction") self.__table.verticalHeader().hide() self.__table.setLeftMargin(0) else: labels = ["Material", "Mass Fraction"] for i in range(len(labels)): item = self.__table.horizontalHeaderItem(i) if item is None: item = qt.QTableWidgetItem(labels[i], qt.QTableWidgetItem.Type) self.__table.setHorizontalHeaderItem(i, item) if QTVERSION < '4.1.0': self.__table.setSelectionMode(qttable.QTable.NoSelection) else: self.__table.setSelectionMode(qt.QTableWidget.NoSelection) if self.__comments: vbox = qt.QWidget(commentsHBox) commentsHBoxLayout.addWidget(vbox) vboxLayout = qt.QVBoxLayout(vbox) #default thickness and density self.__gridVBox = qt.QWidget(vbox) grid = self.__gridVBox vboxLayout.addWidget(grid) if QTVERSION < '4.0.0': gridLayout = qt.QGridLayout(grid, 2, 2, 11, 4) else: gridLayout = qt.QGridLayout(grid) gridLayout.setMargin(11) gridLayout.setSpacing(4) densityLabel = qt.QLabel(grid) gridLayout.addWidget(densityLabel, 0, 0) densityLabel.setText("Default Density (g/cm3):") if QTVERSION < '4.0.0': densityLabel.setAlignment(qt.QLabel.WordBreak | qt.QLabel.AlignVCenter) self.__densityLine = MyQLineEdit(grid) else: densityLabel.setAlignment(qt.Qt.AlignVCenter) self.__densityLine = qt.QLineEdit(grid) validator = qt.QDoubleValidator(self.__densityLine) self.__densityLine.setValidator(validator) self.__densityLine.setReadOnly(False) gridLayout.addWidget(self.__densityLine, 0, 1) thicknessLabel = qt.QLabel(grid) gridLayout.addWidget(thicknessLabel, 1, 0) thicknessLabel.setText("Default Thickness (cm):") if QTVERSION < '4.0.0': thicknessLabel.setAlignment(qt.QLabel.WordBreak | qt.QLabel.AlignVCenter) self.__thicknessLine = MyQLineEdit(grid) else: thicknessLabel.setAlignment(qt.Qt.AlignVCenter) self.__thicknessLine = qt.QLineEdit(grid) validator = qt.QDoubleValidator(self.__thicknessLine) self.__thicknessLine.setValidator(validator) gridLayout.addWidget(self.__thicknessLine, 1, 1) self.__thicknessLine.setReadOnly(False) if QTVERSION < '4.0.0': self.connect(self.__densityLine, qt.SIGNAL('returnPressed()'), self.__densitySlot) self.connect(self.__thicknessLine, qt.SIGNAL('returnPressed()'), self.__thicknessSlot) else: self.connect(self.__densityLine, qt.SIGNAL('editingFinished()'), self.__densitySlot) self.connect(self.__thicknessLine, qt.SIGNAL('editingFinished()'), self.__thicknessSlot) if QTVERSION > '4.0.0': self.__transmissionButton = qt.QPushButton(grid) self.__transmissionButton.setText('Material Transmission') gridLayout.addWidget(self.__transmissionButton, 2, 0) self.__massAttButton = qt.QPushButton(grid) self.__massAttButton.setText('Mass Att. Coefficients') gridLayout.addWidget(self.__massAttButton, 2, 1) self.__transmissionButton.setAutoDefault(False) self.__massAttButton.setAutoDefault(False) self.connect(self.__transmissionButton, qt.SIGNAL('clicked()'), self.__transmissionSlot) self.connect(self.__massAttButton, qt.SIGNAL('clicked()'), self.__massAttSlot) vboxLayout.addWidget(qt.VerticalSpacer(vbox)) if self.__comments: #comment nameHBox = qt.QWidget(self) nameHBoxLayout = qt.QHBoxLayout(nameHBox) nameLabel = qt.QLabel(nameHBox) nameHBoxLayout.addWidget(nameLabel) nameLabel.setText("Material Name/Comment:") if QTVERSION < '4.0.0': nameLabel.setAlignment(qt.QLabel.WordBreak | qt.QLabel.AlignVCenter) else: nameLabel.setAlignment(qt.Qt.AlignVCenter) nameHBoxLayout.addWidget(qt.HorizontalSpacer(nameHBox)) if QTVERSION < '4.0.0': self.__nameLine = MyQLineEdit(nameHBox) self.connect(self.__nameLine, qt.SIGNAL('returnPressed()'), self.__nameLineSlot) else: self.__nameLine = qt.QLineEdit(nameHBox) self.connect(self.__nameLine, qt.SIGNAL('editingFinished()'), self.__nameLineSlot) nameHBoxLayout.addWidget(self.__nameLine) self.__nameLine.setReadOnly(False) longtext = "En un lugar de La Mancha, de cuyo nombre no quiero acordarme ..." self.__nameLine.setFixedWidth( self.__nameLine.fontMetrics().width(longtext)) layout.addWidget(nameHBox) self.connect(self.__numberSpin, qt.SIGNAL("valueChanged(int)"), self.__numberSpinChanged) if QTVERSION < '4.0.0': self.connect(self.__table, qt.SIGNAL("valueChanged(int,int)"), self.__tableSlot) self.connect(self.__table, qt.SIGNAL("currentChanged(int,int)"), self.__tableSlot2) else: self.connect(self.__table, qt.SIGNAL("cellChanged(int,int)"), self.__tableSlot) self.connect(self.__table, qt.SIGNAL("cellEntered(int,int)"), self.__tableSlot2)
def testwidget(): def change(list): logger.info("New selection:", list) a = QApplication(sys.argv) if QTVERSION > '5.0.0': a.lastWindowClosed.connect(a.quit) else: QObject.connect(a, SIGNAL("lastWindowClosed()"), a, SLOT("quit()")) w = QTabWidget() if QTVERSION < '4.0.0': f = QPeriodicTable(w) else: f = QPeriodicTable() if QTVERSION < '4.0.0': o = QWidget(w) ol = QVBoxLayout(o) #ol.setAutoAdd(1) tlabel = QLabel("QPeriodicCombo", o) ol.addWidget(tlabel) c = QPeriodicCombo(o) ol.addWidget(c) t = QLabel("QPeriodicList", o) ol.addWidget(t) l = QPeriodicList(o) ol.addWidget(l) else: o = QWidget() ol = QVBoxLayout(o) #ol.setAutoAdd(1) tlabel = QLabel("QPeriodicCombo", o) ol.addWidget(tlabel) c = QPeriodicCombo(o) ol.addWidget(c) t = QLabel("QPeriodicList", o) ol.addWidget(t) l = QPeriodicList(o) ol.addWidget(l) if QTVERSION < '4.0.0': tab = qttable.QTable(w) tab.setNumRows(2) tab.setNumCols(1) tab.setItem(0, 0, QPeriodicComboTableItem(tab, addnone=0)) tab.setItem(1, 0, QPeriodicComboTableItem(tab)) else: tab = QTableWidget() tab.setRowCount(2) tab.setColumnCount(1) tab.setCellWidget(0, 0, QPeriodicCombo(tab, detailed=0)) tab.setCellWidget(1, 0, QPeriodicCombo(tab, detailed=0)) w.addTab(f, "QPeriodicTable") if QTVERSION < '4.0.0': w.addTab(o, "QPeriodicList/Combo") w.addTab(tab, "QPeriodicComboTableItem") else: w.addTab(o, "QPeriodicList/Combo") w.addTab(tab, "QPeriodicComboTableItem") f.setSelection(['H', 'Fe', 'Si']) if QTVERSION < '4.0.0': QObject.connect(f, PYSIGNAL("elementClicked"), f.elementToggle) QObject.connect(l, PYSIGNAL("selectionChanged"), change) QObject.connect(c, PYSIGNAL("selectionChanged"), change) elif QTVERSION > '5.0.0': f.elementClickedSignal.connect(f.elementToggle) l.selectionChanged.connect(change) c.selectionChanged.connect(change) else: QObject.connect(f, SIGNAL("elementClicked"), f.elementToggle) QObject.connect(l, SIGNAL("selectionChanged"), change) QObject.connect(c, SIGNAL("selectionChanged"), change) if QTVERSION < '4.0.0': a.setMainWidget(w) w.show() if QTVERSION < '4.0.0': a.exec_loop() else: a.exec_()