示例#1
0
    def __init__(self, parser_result):
        QWidget.__init__(self)
        self._parser_result = parser_result

        layout = QHBoxLayout()
        layout.setContentsMargins(0, 0, 0, 0)
        layout.setSizeConstraint(QHBoxLayout.SetMinimumSize)

        self.table_widget = QTableWidget()
        self.table_widget.setSelectionMode(QAbstractItemView.NoSelection)
        self.table_widget.setRowCount(2)
        self.table_widget.setColumnCount(2)
        self.table_widget.horizontalHeader().setResizeMode(QHeaderView.Stretch)
        self.table_widget.setHorizontalHeaderLabels(["Dimension", "Choice"])
        self.table_widget.verticalHeader().setVisible(False)
        self.table_widget.verticalHeader().setResizeMode(QHeaderView.Fixed)
        self.table_widget.verticalHeader().setDefaultSectionSize(20)
        sp_table = QSizePolicy(QSizePolicy.Preferred, QSizePolicy.Preferred)
        sp_table.setHorizontalStretch(1)
        self.table_widget.setSizePolicy(sp_table)

        layout.addWidget(self.table_widget)

        self.text_widget = QTextEdit()
        sp_text = QSizePolicy(QSizePolicy.Preferred, QSizePolicy.Preferred)
        sp_text.setHorizontalStretch(4)
        self.text_widget.setReadOnly(True)
        self.text_widget.setSizePolicy(sp_text)
        self.text_widget.setStyleSheet('font: 9pt "Courier";')
        self.text_widget.setText(self._parser_result.get_text())

        layout.addWidget(self.text_widget)

        self.setLayout(layout)

        self._fill_table()
    def createToolsButtons(self):
        buttonsFrame = QFrame()
        buttonsLayout = QHBoxLayout(buttonsFrame)
        buttonsLayout.setSizeConstraint(QLayout.SetDefaultConstraint)

        iconPath = filePath('icons/')
        self.penButton = QToolButton(
            self,
            icon=QIcon(iconPath + 'pen_w.png'))
        self.penButton.setToolTip('freehand drawing')
        self.penButton.clicked.connect(lambda: self.PaintArea.setTool('pen'))
        buttonsLayout.addWidget(self.penButton)

        self.lineButton = QToolButton(
            self,
            icon=QIcon(iconPath + 'line_w.png'))
        self.lineButton.setToolTip('draw lines')
        self.lineButton.clicked.connect(lambda: self.PaintArea.setTool('line'))
        buttonsLayout.addWidget(self.lineButton)

        self.rect = QToolButton(
            self,
            icon=QIcon(iconPath + 'rect_w.png'))
        self.rect.setToolTip('create rectangle')
        self.rect.clicked.connect(lambda: self.PaintArea.setTool('rect'))
        buttonsLayout.addWidget(self.rect)

        self.roundRect = QToolButton(
            self,
            icon=QIcon(iconPath + 'roundrect_w.png'))
        self.roundRect.setToolTip('create a round-corner rectanlge')
        self.roundRect.clicked.connect(
            lambda: self.PaintArea.setTool('roundRect'))
        buttonsLayout.addWidget(self.roundRect)

        self.circle = QToolButton(
            self,
            icon=QIcon(iconPath + 'ellipse_w.png'))
        self.circle.setToolTip('create circle')
        self.circle.clicked.connect(lambda: self.PaintArea.setTool('circle'))
        buttonsLayout.addWidget(self.circle)

        self.eraser = QToolButton(
            self,
            icon=QIcon(iconPath + 'eraser_w.png'))
        self.eraser.setToolTip('erase parts of the drawing')
        self.eraser.clicked.connect(lambda: self.PaintArea.setTool('eraser'))
        buttonsLayout.addWidget(self.eraser)

        self.mirror_w = QToolButton(
            self,
            icon=QIcon(iconPath + 'mirror-w_w.png'))
        self.mirror_w.setToolTip('vertical symmetric inversion')
        self.mirror_w.clicked.connect(self.PaintArea.mirror_w)
        buttonsLayout.addWidget(self.mirror_w)

        self.mirror_h = QToolButton(
            self,
            icon=QIcon(iconPath + 'mirror-h_w.png'))
        self.mirror_h.setToolTip('horizontal symmetric inversion')
        self.mirror_h.clicked.connect(self.PaintArea.mirror_h)
        buttonsLayout.addWidget(self.mirror_h)

        self.rotate = QToolButton(
            self,
            icon=QIcon(iconPath + 'rotate_w.png'))
        self.rotate.setToolTip('rotate')
        self.rotate.clicked.connect(self.PaintArea.rotate)
        buttonsLayout.addWidget(self.rotate)

        self.grid.addWidget(buttonsFrame, 0, 0, QtCore.Qt.AlignLeft)