Add graphic layout
parent
caa3077499
commit
67a15141aa
|
@ -1,10 +1,10 @@
|
||||||
from PyQt5.QtGui import QPainter, QBrush, QPen, QColor, QFont
|
from PyQt5.QtGui import QPainter, QBrush, QPen, QColor, QFont
|
||||||
from PyQt5.Qt import QApplication, QTimer
|
from PyQt5.Qt import QApplication, QTimer
|
||||||
from PyQt5.QtWidgets import (QGraphicsScene, QGraphicsView, QGraphicsItem,
|
from PyQt5.QtWidgets import (QGraphicsScene, QGraphicsWidget, QGraphicsItem,
|
||||||
QGraphicsLineItem, QGraphicsRectItem, QGraphicsObject,
|
QGraphicsLineItem, QGraphicsRectItem, QGraphicsObject,
|
||||||
QGraphicsItemGroup, QGraphicsPathItem)
|
QGraphicsItemGroup, QGraphicsPathItem)
|
||||||
from PyQt5.QtCore import (QAbstractAnimation, QObject, QPointF, Qt, QRectF, QLineF,
|
from PyQt5.QtCore import (QAbstractAnimation, QObject, QPointF, Qt, QRectF, QLineF,
|
||||||
QPropertyAnimation, pyqtProperty, pyqtSignal)
|
QPropertyAnimation, pyqtProperty, pyqtSignal, QSizeF)
|
||||||
from graphic_components import buttons
|
from graphic_components import buttons
|
||||||
from general.extras import bound_value
|
from general.extras import bound_value
|
||||||
from gameplay import sudoku_gameplay as sdk
|
from gameplay import sudoku_gameplay as sdk
|
||||||
|
@ -12,7 +12,7 @@ import numpy as np
|
||||||
import sys, math
|
import sys, math
|
||||||
|
|
||||||
|
|
||||||
class BoxBoard(QGraphicsObject):
|
class BoxBoard(QGraphicsWidget):
|
||||||
|
|
||||||
# Initialisation
|
# Initialisation
|
||||||
def __init__(self, width, height, parent = None):
|
def __init__(self, width, height, parent = None):
|
||||||
|
@ -45,6 +45,8 @@ class BoxBoard(QGraphicsObject):
|
||||||
if line.length() > 1:
|
if line.length() > 1:
|
||||||
painter.drawLine(line)
|
painter.drawLine(line)
|
||||||
|
|
||||||
|
def sizeHint(self, which, constraint=None):
|
||||||
|
return(QSizeF(self.width+10, self.height+10))
|
||||||
|
|
||||||
class SudokuGrid(QGraphicsObject):
|
class SudokuGrid(QGraphicsObject):
|
||||||
# Prepare the signal
|
# Prepare the signal
|
||||||
|
|
25
main.py
25
main.py
|
@ -2,7 +2,7 @@ from PyQt5.QtGui import QPainter, QBrush, QPen, QColor, QFont
|
||||||
from PyQt5.Qt import QApplication, QTimer
|
from PyQt5.Qt import QApplication, QTimer
|
||||||
from PyQt5.QtWidgets import (QGraphicsScene, QGraphicsView, QGraphicsItem,
|
from PyQt5.QtWidgets import (QGraphicsScene, QGraphicsView, QGraphicsItem,
|
||||||
QGraphicsLineItem, QGraphicsRectItem, QGraphicsObject,
|
QGraphicsLineItem, QGraphicsRectItem, QGraphicsObject,
|
||||||
QGraphicsItemGroup, QGraphicsPathItem)
|
QGraphicsItemGroup, QGraphicsWidget, QGraphicsLinearLayout)
|
||||||
from PyQt5.QtCore import (QAbstractAnimation, QObject, QPoint, QPointF, Qt, QRectF,QLineF,
|
from PyQt5.QtCore import (QAbstractAnimation, QObject, QPoint, QPointF, Qt, QRectF,QLineF,
|
||||||
QPropertyAnimation, pyqtProperty, pyqtSignal)
|
QPropertyAnimation, pyqtProperty, pyqtSignal)
|
||||||
import sys, math
|
import sys, math
|
||||||
|
@ -16,18 +16,28 @@ class SudokuWindow(QGraphicsView):
|
||||||
super().__init__()
|
super().__init__()
|
||||||
|
|
||||||
# Set up the Scene to manage the GraphicItems
|
# Set up the Scene to manage the GraphicItems
|
||||||
self.scene = QGraphicsScene(0, 0, 500, 500, self)
|
self.scene = QGraphicsScene(0, 0, 400, 500, self)
|
||||||
|
|
||||||
|
|
||||||
self.setScene(self.scene)
|
self.setScene(self.scene)
|
||||||
self.setSceneRect(self.scene.sceneRect())
|
self.setSceneRect(self.scene.sceneRect())
|
||||||
|
self.gameboard = board.BoxBoard(400, 400)
|
||||||
|
self.menuboard = board.BoxBoard(400, 50)
|
||||||
|
self.gamegrid = board.SudokuGrid(450, 450)
|
||||||
|
self.numring = board.NumberRing()
|
||||||
|
|
||||||
|
self.layout = QGraphicsLinearLayout(Qt.Vertical)
|
||||||
|
self.layout.addItem(self.gameboard)
|
||||||
|
self.layout.addItem(self.menuboard)
|
||||||
|
self.form = QGraphicsWidget()
|
||||||
|
self.form.setLayout(self.layout)
|
||||||
|
#self.layout.addItem(self.gamegrid)
|
||||||
#self.button1 = buttons.animBox(0, 0, 20, 20, 'a')
|
#self.button1 = buttons.animBox(0, 0, 20, 20, 'a')
|
||||||
#self.scene.addItem(self.button1)
|
#self.scene.addItem(self.button1)
|
||||||
|
|
||||||
self.gameboard = board.BoxBoard(450, 450)
|
|
||||||
self.menuboard = board.BoxBoard(400, 100)
|
#self.scene.addItem(self.gameboard)
|
||||||
self.gamegrid = board.SudokuGrid(450, 450)
|
self.scene.addItem(self.form)
|
||||||
self.numring = board.NumberRing()
|
|
||||||
self.scene.addItem(self.gameboard)
|
|
||||||
self.scene.addItem(self.gamegrid)
|
self.scene.addItem(self.gamegrid)
|
||||||
self.scene.addItem(self.numring)
|
self.scene.addItem(self.numring)
|
||||||
self.setBackgroundBrush(QBrush(Qt.black))
|
self.setBackgroundBrush(QBrush(Qt.black))
|
||||||
|
@ -36,7 +46,6 @@ class SudokuWindow(QGraphicsView):
|
||||||
|
|
||||||
self.gamegrid.buttonClicked.connect(self.show_number_ring)
|
self.gamegrid.buttonClicked.connect(self.show_number_ring)
|
||||||
self.numring.connect_button_signals(self.select_ring_number)
|
self.numring.connect_button_signals(self.select_ring_number)
|
||||||
self.gameboard
|
|
||||||
|
|
||||||
self.ensureVisible(self.scene.sceneRect(), 50, 50)
|
self.ensureVisible(self.scene.sceneRect(), 50, 50)
|
||||||
self.fitInView(self.gameboard.boundingRect(), Qt.KeepAspectRatio)
|
self.fitInView(self.gameboard.boundingRect(), Qt.KeepAspectRatio)
|
||||||
|
|
Loading…
Reference in New Issue