コード例 #1
0
 def createWidgets(self):
     """
     Create some widgets to be placed inside
     """        
     self.btn = QtGui.QPushButton('press me')
     self.text = QtGui.QLineEdit('enter text')
     self.listw = QtGui.QListWidget()
     self.plot = pg.PlotWidget()
コード例 #2
0
    def __init__(self, **kwargs):
        self.holograms = list()

        super(TimeSeriesCreator, self).__init__(**kwargs)
        self.setModal(True)
        self.setWindowTitle('Create hologram time series')

        # Create reorderable list
        # Example from http://www.walletfox.com/course/qtreorderablelist.php
        self.hologram_table = QtGui.QListWidget(parent=self)
        self.hologram_table.setDragDropMode(
            QtGui.QAbstractItemView.InternalMove)

        self.assembly_progress_bar = QtGui.QProgressBar(parent=self)
        self.assembly_progress_bar.setRange(0, 100)
        self._assembly_update_signal.connect(
            self.assembly_progress_bar.setValue)
        self.assembly_progress_bar.hide()

        # Wavelength widgets as spinboxes
        # wavelength 2 and 3 are hidden with a default of None
        self.wavelength1_widget = QtGui.QSpinBox(parent=self)
        self.wavelength2_widget = QtGui.QSpinBox(parent=self)
        self.wavelength3_widget = QtGui.QSpinBox(parent=self)

        self.wavelength2_widget.hide()
        self.wavelength3_widget.hide()

        for widget in (self.wavelength1_widget, self.wavelength2_widget,
                       self.wavelength3_widget):
            widget.setSuffix(' nm')
            widget.setMinimum(0)  # value of 0  -> not to be counted
            widget.setMaximum(999)

        self.wavelength1_widget.setValue(405)
        self.wavelength1_widget.setMinimum(
            1)  # At least one wavelength must be given

        # Create an exclusive button group in which only one-wavelength or three-wavelengths
        # can be active at one time
        self.one_wavelength_mode_btn = QtGui.QPushButton(
            'Single-wavelength time-series', self)
        self.one_wavelength_mode_btn.setCheckable(True)
        self.one_wavelength_mode_btn.setChecked(True)
        self.three_wavelength_mode_btn = QtGui.QPushButton(
            'Three-wavelength time-series', self)
        self.three_wavelength_mode_btn.setCheckable(True)
        self.three_wavelength_mode_btn.setChecked(False)

        self.wavelength_btns = QtGui.QButtonGroup(parent=self)
        self.wavelength_btns.addButton(self.one_wavelength_mode_btn, id=1)
        self.wavelength_btns.addButton(self.three_wavelength_mode_btn, id=3)
        self.wavelength_btns.setExclusive(True)
        self.wavelength_btns.buttonClicked[int].connect(
            self.set_wavelength_mode)

        file_search_btn = QtGui.QPushButton('Add hologram', self)
        file_search_btn.clicked.connect(self.add_hologram_file)

        clear_btn = QtGui.QPushButton('Clear holograms', self)
        clear_btn.clicked.connect(self.clear)

        accept_btn = QtGui.QPushButton('Create', self)
        accept_btn.clicked.connect(self.accept)

        reject_btn = QtGui.QPushButton('Cancel', self)
        reject_btn.clicked.connect(self.reject)
        reject_btn.setDefault(True)

        hologram_btns = QtGui.QHBoxLayout()
        hologram_btns.addWidget(file_search_btn)
        hologram_btns.addWidget(clear_btn)

        wavelength_mode_layout = QtGui.QHBoxLayout()
        wavelength_mode_layout.addWidget(self.one_wavelength_mode_btn)
        wavelength_mode_layout.addWidget(self.three_wavelength_mode_btn)

        wavelength_layout = QtGui.QHBoxLayout()
        wlabel = QtGui.QLabel('Wavelength(s):')
        wlabel.setAlignment(QtCore.Qt.AlignCenter)
        wavelength_layout.addWidget(wlabel)
        wavelength_layout.addWidget(self.wavelength1_widget)
        wavelength_layout.addWidget(self.wavelength2_widget)
        wavelength_layout.addWidget(self.wavelength3_widget)

        btns = QtGui.QHBoxLayout()
        btns.addWidget(accept_btn)
        btns.addWidget(reject_btn)

        explanation = QtGui.QLabel(
            'Add holograms and order them by drag-and-drop')
        explanation.setAlignment(QtCore.Qt.AlignCenter)

        layout = QtGui.QVBoxLayout()
        layout.addWidget(explanation)
        layout.addLayout(hologram_btns)
        layout.addWidget(self.hologram_table)
        layout.addLayout(wavelength_mode_layout)
        layout.addLayout(wavelength_layout)
        layout.addWidget(self.assembly_progress_bar)
        layout.addLayout(btns)
        self.setLayout(layout)