Skip to content
Snippets Groups Projects
Commit c0b5ff87 authored by Andreas Bolin's avatar Andreas Bolin
Browse files

workspace dump

parent 5c07b468
No related branches found
No related tags found
1 merge request!78Add scheduler GUI
Pipeline #73040 passed
......@@ -31,7 +31,8 @@ from b_asic.schedule import Schedule
# class ComponentItem(QGraphicsItemGroup, QGraphicsLayoutItem):
class ComponentItem(QGraphicsLayoutItem, QGraphicsItem):
class ComponentItem(QGraphicsItemGroup, QGraphicsLayoutItem):
# class ComponentItem(QGraphicsLayoutItem, QGraphicsItemGroup):
# class ComponentItem(QGraphicsLayoutItem, QGraphicsItem):
_scale: float
......@@ -40,48 +41,45 @@ class ComponentItem(QGraphicsLayoutItem, QGraphicsItem):
_item_group: QGraphicsItemGroup
# def __init__(self, scale: float, *args, **kwargs):
def __init__(self, scale: float, *args, **kwargs):
# def __init__(self, scale: float):
super().__init__(*args, **kwargs)
# QGraphicsLayoutItem.__init__()
# QGraphicsItem.__init__(parent = parent)
self._scale = scale
def __init__(self, scale: float, parent: QGraphicsWidget = None):
QGraphicsItemGroup.__init__(self)
QGraphicsLayoutItem.__init__(self, parent = parent)
self.setGraphicsItem(self)
print('!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!')
self._scale = scale
print('!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! A')
self._item_group = QGraphicsItemGroup()
# self._item_group.setParentItem(self)
# print('!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!')
print('!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! B')
self._populate()
# print(self.boundingRect().size())
def _populate(self):
# brush = QBrush(Qt.lightGray, bs=Qt.SolidPattern)
brush = QBrush(Qt.lightGray)
# brush.setStyle(Qt.SolidPattern)
pen = QPen(Qt.SolidLine)
pen.setWidthF(2/self._scale)
pen.setWidthF(1/self._scale)
pen.setBrush(Qt.darkGray)
# pen.setCapStyle(Qt.RoundCap) # Qt.FlatCap, Qt.SquareCap (default), Qt.RoundCap
pen.setJoinStyle(Qt.RoundJoin) # Qt.MiterJoin, Qt.BevelJoin (default), Qt.RoundJoin, Qt.SvgMiterJoin
# component path
component_path = QPainterPath(QPoint(0,0))
component_path.lineTo(0, 10)
component_path.lineTo(40, 10)
component_path.lineTo(40, 0)
component_path.lineTo(0, 1)
component_path.lineTo(4, 1)
component_path.lineTo(4, 0)
component_path.closeSubpath()
# component item
self._component_item = QGraphicsPathItem(component_path)
self._component_item.setPen(pen)
self._component_item.setBrush(brush)
self._component_item.setPos(5,0) # in parent (i.e. item_group) coordinates
self._component_item.setPos(0.5,0) # in parent (i.e. item_group) coordinates
# execution time square
execution_time_path = QPainterPath(QPoint(0,0))
execution_time_path.addRect(0, 0, 10.0, 10.0)
execution_time_path.addRect(0, 0, 1.0, 1.0)
# execution time item
green_color = QColor(Qt.magenta)
......@@ -97,9 +95,16 @@ class ComponentItem(QGraphicsLayoutItem, QGraphicsItem):
# print(graphics_item)
# self._item_group = graphics_item.childItems()[0]
# print(self._item_group)
# item_group.setScale(self._scale)
self._item_group.addToGroup(self._component_item)
self._item_group.addToGroup(self._execution_time_item)
# # item_group.setScale(self._scale)
# print('############################# 1')
# self._item_group.addToGroup(self._component_item)
# print('############################# 2')
# self._item_group.addToGroup(self._execution_time_item)
print('############################# 1')
self.addToGroup(self._component_item)
print('############################# 2')
self.addToGroup(self._execution_time_item)
# self.setGraphicsItem(self)
# QGraphicsItemGroup
......@@ -110,8 +115,15 @@ class ComponentItem(QGraphicsLayoutItem, QGraphicsItem):
# reimplement QGraphicsLayoutItem virtual functions
def setGeometry(rect):
print(f'setGeometry({rect})')
def updateGeometry(self):
print('updateGeometry()')
QGraphicsLayoutItem.updateGeometry(self)
def setGeometry(self, geom: QRectF) -> None:
print(f'setGeometry({geom})')
self.prepareGeometryChange()
QGraphicsLayoutItem.setGeometry(self, geom)
self.setPos(geom.topLeft())
def sizeHint(self, which: Qt.SizeHint, constraint: QSizeF = QSizeF()) -> QSizeF:
print(f'sizeHint(which={which}, constraint={constraint}')
......@@ -123,19 +135,29 @@ class ComponentItem(QGraphicsLayoutItem, QGraphicsItem):
switch = {
Qt.MinimumSize: self.boundingRect().size(),
Qt.PreferredSize: self.boundingRect().size(),
# Qt.MinimumSize: self.geometry().size(),
# Qt.PreferredSize: self.geometry().size(),
Qt.MaximumSize: QSizeF(float("inf"), float("inf"))
# Qt.MaximumSize: self.parentItem().boundingRect().size()
}
ret = switch.get(which, constraint)
print(f'ret: {ret}')
return switch.get(which, constraint)
def minimumSize(self):
print('minimumSize()')
# reimplement QGraphicsItem virtual functions
def boundingRect(self) -> QRectF:
print('boundingRect()')
return self._item_group.boundingRect()
# # reimplement QGraphicsItem virtual functions
# def boundingRect(self) -> QRectF:
# print('boundingRect()')
# # return self._item_group.boundingRect()
# return QRectF(QPointF(0,0), self.geometry().size())
def paint(self, painter: QPainter, option: QStyleOptionGraphicsItem, widget: Optional[QWidget]= None) -> None:
print(f'paint(painter={painter}, option={option}, widget={widget})')
return self._item_group.paint(painter, option, widget)
# def paint(self, painter: QPainter, option: QStyleOptionGraphicsItem, widget: Optional[QWidget]= None) -> None:
# print(f'paint(painter={painter}, option={option}, widget={widget})')
# painter.drawRoundedRect(-10, -10, 20, 20, 5, 5)
# # self._item_group.paint(painter, option, widget)
# print("MRO:")
# pprint(ComponentItem.__mro__)
\ No newline at end of file
......@@ -29,11 +29,11 @@ from qtpy.QtCore import QCoreApplication, Qt, Slot, QSettings, QStandardPaths
from qtpy.QtGui import QCloseEvent
from qtpy.QtWidgets import (
QApplication, QMainWindow, QMessageBox, QFileDialog, QInputDialog, QCheckBox, QAbstractButton,
QTableWidgetItem)
QTableWidgetItem, QSizePolicy)
# QGraphics and QPainter imports
from qtpy.QtCore import (
QRect, QPoint, QSize, QByteArray)
QRect, QRectF, QPoint, QSize, QByteArray)
from qtpy.QtGui import (
QPaintEvent, QPainter, QPainterPath, QColor, QBrush, QPen, QFont, QPolygon, QIcon, QPixmap,
QLinearGradient)
......@@ -125,13 +125,13 @@ class MainWindow(QMainWindow, Ui_MainWindow):
self._scene_count = 0
self._diagram_count = 0
self._open_file_dialog_opened = False
self._scale = 10.0
self._scale = 100.0
QIcon.setThemeName('breeze')
log.debug('themeName: \'{}\''.format(QIcon.themeName()))
log.debug('themeSearchPaths: {}'.format(QIcon.themeSearchPaths()))
self._init_ui()
self._init_graphics_view()
self._init_graphics()
self._read_settings()
......@@ -170,13 +170,13 @@ class MainWindow(QMainWindow, Ui_MainWindow):
self.splitter_center.setCollapsible(0, False)
self.splitter_center.setCollapsible(1, True)
def _init_graphics_view(self) -> None:
def _init_graphics(self) -> None:
"""Initialize the QGraphics framework"""
# scene = GraphicsScene(0, parent=self)
# self.graphic_view.setScene(scene)
# self.graphic_view.setRenderHint(QPainter.Antialiasing)
# self.graphic_view.setGeometry(20, 20, self.width(), self.height())
# self.graphic_view.setDragMode(QGraphicsView.RubberBandDrag)
self.graphics_view.setDragMode(QGraphicsView.RubberBandDrag)
self.graphics_view.scale(self._scale, self._scale)
self._scene = QGraphicsScene()
self.graphics_view.setScene(self._scene)
......@@ -270,27 +270,37 @@ class MainWindow(QMainWindow, Ui_MainWindow):
# self._scene_count += 1
windowLayout = QGraphicsLinearLayout(Qt.Vertical)
# vertical = QGraphicsLinearLayout(Qt.Vertical)
linear1 = QGraphicsLinearLayout(windowLayout)
# linear1 = QGraphicsLinearLayout(Qt.Vertical)
# linear2 = QGraphicsLinearLayout(Qt.Horizontal)
# windowLayout = QGraphicsLinearLayout(Qt.Vertical)
vertical = QGraphicsLinearLayout(Qt.Vertical)
# linear1 = QGraphicsLinearLayout(windowLayout)
linear1 = QGraphicsLinearLayout(Qt.Horizontal)
# linear1.setAlignment(Qt.AlignLeft| Qt.AlignTop)
linear2 = QGraphicsLinearLayout(Qt.Horizontal)
linear1.setMaximumSize(linear1.minimumSize())
linear2.setMaximumSize(linear2.minimumSize())
vertical.setMaximumSize(vertical.minimumSize())
linear1.setSizePolicy(QSizePolicy.Preferred, QSizePolicy.Preferred, QSizePolicy.DefaultType)
linear2.setSizePolicy(QSizePolicy.Preferred, QSizePolicy.Preferred, QSizePolicy.DefaultType)
vertical.setSizePolicy(QSizePolicy.Preferred, QSizePolicy.Preferred, QSizePolicy.DefaultType)
widget = QGraphicsWidget()
item1 = ComponentItem(10.0)
# item2 = ComponentItem(10.0)
# item3 = ComponentItem(10.0)
item1 = ComponentItem(self._scale)
item2 = ComponentItem(self._scale)
item3 = ComponentItem(self._scale)
linear1.addItem(item1)
linear1.setStretchFactor(item1, 1)
# linear1.addItem(item2)
# linear2.addItem(item3)
linear1.addItem(item2)
linear2.addItem(item3)
print('!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! 1')
# vertical.addItem(linear1)
# vertical.addItem(linear2)
vertical.addItem(linear1)
vertical.addItem(linear2)
print('!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! 2')
print(f'boundingRect: {item1.boundingRect()}')
print(f'vertical.getContentsMargins(): {vertical.getContentsMargins()}')
print(f'linear1.getContentsMargins(): {linear1.getContentsMargins()}')
print(f'linear2.getContentsMargins(): {linear2.getContentsMargins()}')
widget.setLayout(windowLayout)
# widget.setLayout(linear1)
# widget.setLayout(windowLayout)
widget.setLayout(vertical)
widget.setWindowTitle(self.tr("Basic Graphics Layouts Example"))
print('!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! 3')
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment