From 822d47f684f60e9624046b93373e8508cea3e0a9 Mon Sep 17 00:00:00 2001 From: En Yi Date: Mon, 9 Jul 2018 16:14:46 +0800 Subject: [PATCH] Give up on Understanding layouts???? --- graphic_components/board.py | 13 ++++++------- graphic_components/menu_graphics.py | 29 +++++++++++++++++++++++++++++ main.py | 2 +- 3 files changed, 36 insertions(+), 8 deletions(-) diff --git a/graphic_components/board.py b/graphic_components/board.py index cfe43e4..7face84 100644 --- a/graphic_components/board.py +++ b/graphic_components/board.py @@ -87,15 +87,14 @@ class MenuBoard(BoxBoard): super().__init__(width, height, parent) self.layout = QGraphicsLinearLayout(Qt.Horizontal) - self.layout.setMaximumWidth(width) - self.layout.setMaximumHeight(height) + self.layout.setMinimumWidth(width) + self.layout.setMinimumWidth(height) + self.diff_display = menu_grap.DifficultyDisplayer(parent=self) + self.layout.addItem(self.diff_display) self.timer_display = menu_grap.TimerDisplayer(parent=self) - self.timer_display2 = menu_grap.TimerDisplayer(parent=self) - self.timer_display3 = menu_grap.TimerDisplayer(parent=self) self.layout.addItem(self.timer_display) - self.layout.addItem(self.timer_display2) - self.layout.addItem(self.timer_display3) - self.layout.setSpacing(0) + self.layout.setItemSpacing(0, 50) + self.layout.setItemSpacing(1, 0) self.setLayout(self.layout) diff --git a/graphic_components/menu_graphics.py b/graphic_components/menu_graphics.py index 68cac6d..f9f15d1 100644 --- a/graphic_components/menu_graphics.py +++ b/graphic_components/menu_graphics.py @@ -35,3 +35,32 @@ class TimerDisplayer(QGraphicsWidget): painter.drawRect(box) painter.drawText(box, Qt.AlignCenter, "00:00") +class DifficultyDisplayer(QGraphicsWidget): + + def __init__(self, parent=None): + super().__init__(parent) + + self.width = 100 + self.height = 50 + + self.box_pen = QPen() + self.box_pen.setColor(Qt.white) + self.pen_width = 3 + self.box_pen.setWidth(self.pen_width) + + + self.timer_box = QRectF(0, 0, self.width, self.height) + self.setMinimumSize(QSizeF(self.width, self.height)) + self.setMaximumSize(QSizeF(self.width, self.height)) + + self.size_policy = QSizePolicy(QSizePolicy.Minimum, QSizePolicy.Minimum) + self.size_policy.setHeightForWidth(True) + self.setSizePolicy(self.size_policy) + + def paint(self, painter, style, widget=None): + box = self.timer_box + #print(self.size().width()) + painter.setPen(self.box_pen) + painter.drawRect(box) + painter.drawText(box, Qt.AlignCenter, "Normal") + diff --git a/main.py b/main.py index 8589e58..dba9a3e 100644 --- a/main.py +++ b/main.py @@ -16,7 +16,7 @@ class SudokuWindow(QGraphicsView): super().__init__() # Set up the Scene to manage the GraphicItems - self.scene = QGraphicsScene(0, 0, 420, 500, self) + self.scene = QGraphicsScene(0, 0, 420, 510, self) self.setScene(self.scene) self.setSceneRect(self.scene.sceneRect())