Beispiel #1
0
    def addControls(self, gridbox):
        """ Construct all the widgets in this Item Inspector """
        # selection box and label
        font = QtGui.QFont()
        font.setBold(True)
        label = QtGui.QLabel(self.name, self)
        label.setFont(font)
        label.setAlignment(QtCore.Qt.AlignCenter)
        gridbox.addWidget(label, 0, 0, 1, 1)
        databox = QtGui.QHBoxLayout()
        self.boundingbox = None
        if self.item3d().boundingboxsize:
            self.boundingbox = QtGui.QLabel(
                "Size: " + self.item3d().boundingboxsize, self)
            databox.addWidget(self.boundingbox)
        gridbox.addLayout(databox, 1, 0, 1, 1)
        # angluar controls
        xformframe = QtGui.QFrame()
        xformframe.setFrameShape(QtGui.QFrame.StyledPanel)
        xformbox = QtGui.QGridLayout()
        xformlabel = QtGui.QLabel("Transformation", xformframe)
        xformlabel.setFont(font)
        xformlabel.setAlignment(QtCore.Qt.AlignCenter)
        xformbox.addWidget(xformlabel, 0, 0, 1, 2)
        # Rotations
        self.rotcombobox = QtGui.QComboBox()
        xformbox.addWidget(self.rotcombobox, 1, 0, 1, 2)
        self.rotstackedwidget = QtGui.QStackedWidget()
        self.addRotationWidgets()
        xformbox.addWidget(self.rotstackedwidget, 2, 0, 1, 2)
        #translations
        txlabel = QtGui.QLabel("TX", xformframe)
        txlabel.setAlignment(QtCore.Qt.AlignCenter)
        xformbox.addWidget(txlabel, 3, 0, 1, 1)
        tylabel = QtGui.QLabel("TY", xformframe)
        tylabel.setAlignment(QtCore.Qt.AlignCenter)
        xformbox.addWidget(tylabel, 3, 1, 1, 1)
        self.tx = EMSpinWidget(0.0, 1.0)
        self.ty = EMSpinWidget(0.0, 1.0)
        xformbox.addWidget(self.tx, 4, 0, 1, 1)
        xformbox.addWidget(self.ty, 4, 1, 1, 1)
        tzlabel = QtGui.QLabel("TZ", xformframe)
        tzlabel.setAlignment(QtCore.Qt.AlignCenter)
        xformbox.addWidget(tzlabel, 5, 0, 1, 1)
        zoomlabel = QtGui.QLabel("Zoom", xformframe)
        zoomlabel.setAlignment(QtCore.Qt.AlignCenter)
        xformbox.addWidget(zoomlabel, 5, 1, 1, 1)
        self.tz = EMSpinWidget(0.0, 1.0)
        self.zoom = EMSpinWidget(1.0, 0.1, postivemode=True, wheelstep=0.1)
        xformbox.addWidget(self.tz, 6, 0, 1, 1)
        xformbox.addWidget(self.zoom, 6, 1, 1, 1)
        self.resetbuttontx = QtGui.QPushButton("Reset Tx")
        self.resetbuttonrot = QtGui.QPushButton("Reset Rot")
        xformbox.addWidget(self.resetbuttontx, 7, 0, 1, 1)
        xformbox.addWidget(self.resetbuttonrot, 7, 1, 1, 1)
        xformframe.setLayout(xformbox)
        xformframe.setMaximumWidth(350)

        xformframe.setMaximumHeight(self.transfromboxmaxheight)
        xformframe.setLayout(xformbox)
        gridbox.addWidget(xformframe, 2, 0, 1, 1)

        # set to default, but run only as a base class
        if type(self) == EMItem3DInspector: self.updateItemControls()

        QtCore.QObject.connect(self.tx, QtCore.SIGNAL("valueChanged(int)"),
                               self._on_translation)
        QtCore.QObject.connect(self.ty, QtCore.SIGNAL("valueChanged(int)"),
                               self._on_translation)
        QtCore.QObject.connect(self.tz, QtCore.SIGNAL("valueChanged(int)"),
                               self._on_translation)
        QtCore.QObject.connect(self.zoom, QtCore.SIGNAL("valueChanged(int)"),
                               self._on_scale)
        QtCore.QObject.connect(self.resetbuttontx, QtCore.SIGNAL("clicked()"),
                               self._on_resettx)
        QtCore.QObject.connect(self.resetbuttonrot, QtCore.SIGNAL("clicked()"),
                               self._on_resetrot)