コード例 #1
0
    def __init__(self, def_pixmap=None, parent=None):
        QtWidgets.QWidget.__init__(self, parent)
        self.signals = self.Signals()
        self.pre = "NLineCrossingVideoWidget : "
        self.lay = QtWidgets.QVBoxLayout(self)
        self.canvas = NLineCrossingCanvasWidget(self.signals,
                                                def_pixmap,
                                                parent=self)
        self.lay.addWidget(self.canvas)
        # WARNING: the numerical constants are reversed between min/max...!
        self.canvas.setSizePolicy(QtWidgets.QSizePolicy.Minimum,
                                  QtWidgets.QSizePolicy.Minimum)
        self.buttons = QtWidgets.QWidget(self)
        self.lay.addWidget(self.buttons)

        self.button1 = QtWidgets.QPushButton("Set 1", self.buttons)
        self.linedef1 = QtWidgets.QSpinBox(self.buttons)
        self.cbutton1 = QtWidgets.QPushButton("Clear 1", self.buttons)

        self.button2 = QtWidgets.QPushButton("Set 2", self.buttons)
        self.linedef2 = QtWidgets.QSpinBox(self.buttons)
        self.cbutton2 = QtWidgets.QPushButton("Clear 2", self.buttons)

        self.label1 = QtWidgets.QLabel("Min object size:")
        self.sizedef = QtWidgets.QSpinBox(self.buttons)

        self.linedef1.setRange(4, 60)
        self.linedef2.setRange(4, 60)
        self.sizedef.setRange(0, 200 * 200)
        self.sizedef.setValue(50 * 100)  # a nice predefined value
        self.sizedef.setSingleStep(500)

        for b in [
                self.buttons, self.button1, self.linedef1, self.button2,
                self.linedef2
        ]:
            b.setSizePolicy(QtWidgets.QSizePolicy.Maximum,
                            QtWidgets.QSizePolicy.Maximum)

        self.button_lay = QtWidgets.QHBoxLayout(self.buttons)
        self.button_lay.addWidget(self.button1)
        self.button_lay.addWidget(self.cbutton1)
        self.button_lay.addWidget(self.linedef1)
        self.button_lay.addWidget(self.button2)
        self.button_lay.addWidget(self.cbutton2)
        self.button_lay.addWidget(self.linedef2)
        self.button_lay.addWidget(self.label1)
        self.button_lay.addWidget(self.sizedef)

        self.button1.clicked.connect(lambda: self.canvas.define_line_slot(0))
        self.button2.clicked.connect(lambda: self.canvas.define_line_slot(1))

        self.cbutton1.clicked.connect(lambda: self.canvas.clear_line_slot(0))
        self.cbutton2.clicked.connect(lambda: self.canvas.clear_line_slot(1))

        self.linedef1.valueChanged.connect(
            lambda i: self.canvas.set_line_width_slot(0, i))
        self.linedef2.valueChanged.connect(
            lambda i: self.canvas.set_line_width_slot(1, i))
        self.sizedef.valueChanged.connect(self.canvas.set_object_size_slot)
コード例 #2
0
    def __init__(self, ip, slot=1, max_slot=32, parent=None):
        """
        ip corresponds to slot
        
        max ip = ip + (max_slot - slot)
        
        """
        super().__init__(parent)
        self.setWindowTitle("Configuration Copy")
        
        self.max_dn = max_slot - slot
        
        assert(isinstance(slot, int))
        ip_nums=[]
        for part in ip.split("."):
            ip_nums.append(int(part))
            
        self.start_ip_text = ip
    
        self.min_num = ip_nums.pop(-1) # take the last number
        self.max_num = self.min_num + self.max_dn
        self.min_slot = slot
    
        self.stop_ip_text =""
        for part in ip_nums:
            self.stop_ip_text += str(part)+"."
    
        self.lay = QtWidgets.QVBoxLayout(self)
    
        self.field = QtWidgets.QWidget(self)
        self.buttons = QtWidgets.QWidget(self)
        
        self.lay.addWidget(self.field)
        self.lay.addWidget(self.buttons)
    
        self.field_lay = QtWidgets.QGridLayout(self.field)
        self.buttons_lay = QtWidgets.QHBoxLayout(self.buttons)
        
        self.ip_label = QtWidgets.QLabel("IP range", self.field)
        self.slot_label = QtWidgets.QLabel("Slot range", self.field)
        self.field_lay.addWidget(self.ip_label, 0, 0)
        self.field_lay.addWidget(self.slot_label, 1, 0)
        
        self.ip_field = QtWidgets.QWidget(self.field)
        self.slot_field = QtWidgets.QWidget(self.field)
        self.field_lay.addWidget(self.ip_field, 0, 1)
        self.field_lay.addWidget(self.slot_field, 1, 1)
        
        self.write_button = QtWidgets.QPushButton("Overwrite slots", self.buttons)
        self.cancel_button = QtWidgets.QPushButton("Cancel", self.buttons)
        # self.buttons_lay.addWidget(self.write_button, 2, 0)
        # self.buttons_lay.addWidget(self.cancel_button, 3, 0)
        self.buttons_lay.addWidget(self.write_button)
        self.buttons_lay.addWidget(self.cancel_button)

        self.ip_field_lay = QtWidgets.QHBoxLayout(self.ip_field)
        self.slot_field_lay = QtWidgets.QHBoxLayout(self.slot_field)

        self.ip_field_label = QtWidgets.QLabel(
            self.start_ip_text + 
            " - " + 
            self.stop_ip_text)
        
        
        self.ip_field_input = QtWidgets.QSpinBox(self.ip_field)
        self.ip_field_lay.addWidget(self.ip_field_label)
        self.ip_field_lay.addWidget(self.ip_field_input)
        self.ip_field_input.setMinimum(self.min_num)
        self.ip_field_input.setMaximum(self.max_num)
        
        self.slot_field_label = QtWidgets.QLabel(self.slot_field) 
        self.slot_field_lay.addWidget(self.slot_field_label)
        
        self.ip_field_input.valueChanged.connect(self.update_ip_slot)
        self.write_button.clicked.connect(lambda: self.done(1))
        self.cancel_button.clicked.connect(lambda: self.done(0))

        self.update_ip_slot(self.min_num)