summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorBlaine2020-04-20 18:52:25 +0530
committerBlaine2020-04-20 18:52:25 +0530
commit59fed433c9fd8af5738f5ae7199e517a34da9e55 (patch)
tree9a86d6973b9ac48b9227f664a47d9310b6fad67a /src
parentbf7fef5bca9044a8faec498eaa54889f0a9fe57b (diff)
downloadChemical-PFD-59fed433c9fd8af5738f5ae7199e517a34da9e55.tar.gz
Chemical-PFD-59fed433c9fd8af5738f5ae7199e517a34da9e55.tar.bz2
Chemical-PFD-59fed433c9fd8af5738f5ae7199e517a34da9e55.zip
resizeable window
Diffstat (limited to 'src')
-rw-r--r--src/main/python/main.py81
-rw-r--r--src/main/python/utils/__init__.py0
-rw-r--r--src/main/python/utils/sizes.py32
3 files changed, 106 insertions, 7 deletions
diff --git a/src/main/python/main.py b/src/main/python/main.py
index 18c8d38..88fc48b 100644
--- a/src/main/python/main.py
+++ b/src/main/python/main.py
@@ -1,12 +1,79 @@
from fbs_runtime.application_context.PyQt5 import ApplicationContext
-from PyQt5.QtWidgets import QMainWindow
-
+from PyQt5.QtCore import Qt
+from PyQt5.QtGui import (QBrush, QColor, QImage, QPainter,
+ QPalette)
+from PyQt5.QtWidgets import (QApplication, QComboBox, QDialog, QGraphicsScene,
+ QGraphicsView, QGridLayout, QHBoxLayout, QLabel,
+ QMessageBox, QPushButton, QStyleFactory)
+from utils.sizes import paperSizes
import sys
+class appWindow(QDialog):
+ def __init__(self, parent=None):
+ super(appWindow, self).__init__(parent)
+
+ self._ppi = 72
+ self._canvasSize = "A0"
+ self.resize(1280, 720)
+
+
+ self.painter = QGraphicsScene(0, 0, *paperSizes[self.canvasSize][self.ppi])
+ self.painter.setBackgroundBrush(QBrush(Qt.white))
+
+ self.createToolbar()
+ self.canvas = QGraphicsView(self.painter)
+ mainLayout = QGridLayout()
+ mainLayout.addLayout(self.topLayout, 0, 0, 1, -1)
+ mainLayout.addWidget(self.canvas, 1, 0, -1, -1)
+ self.setLayout(mainLayout)
+
+ def createToolbar(self):
+ self.topLayout = QHBoxLayout()
+ sizeComboBox = QComboBox()
+ sizeComboBox.addItems([f'A{i}' for i in range(5)])
+ sizeComboBox.activated[str].connect(self.setCanvasSize)
+ sizeLabel = QLabel("Canvas Size")
+ sizeLabel.setBuddy(sizeComboBox)
+ self.topLayout.addWidget(sizeLabel)
+ self.topLayout.addWidget(sizeComboBox)
+
+ ppiComboBox = QComboBox()
+ ppiComboBox.addItems(["72", "96", "150", "300"])
+ ppiComboBox.activated[str].connect(self.setCanvasPPI)
+ ppiLabel = QLabel("Canvas ppi")
+ ppiLabel.setBuddy(ppiComboBox)
+ self.topLayout.addWidget(ppiLabel)
+ self.topLayout.addWidget(ppiComboBox)
+
+ def setCanvasSize(self, size):
+ self.canvasSize = size
+
+ def setCanvasPPI(self, ppi):
+ self.ppi = ppi
+
+ @property
+ def canvasSize(self):
+ return self._canvasSize
+ @property
+ def ppi(self):
+ return self._ppi
+
+ @canvasSize.setter
+ def canvasSize(self, size):
+ self._canvasSize = size
+ if self.painter:
+ self.painter.setSceneRect(0, 0, *paperSizes[self.canvasSize][self.ppi])
+ print(*paperSizes[self.canvasSize][self.ppi])
+ @ppi.setter
+ def ppi(self, ppi):
+ self._ppi = int(ppi)
+ if self.painter:
+ self.painter.setSceneRect(0, 0, *paperSizes[self.canvasSize][self.ppi])
+ print(*paperSizes[self.canvasSize][self.ppi])
+
if __name__ == '__main__':
- appctxt = ApplicationContext() # 1. Instantiate ApplicationContext
- window = QMainWindow()
- window.resize(250, 150)
- window.show()
- exit_code = appctxt.app.exec_() # 2. Invoke appctxt.app.exec_()
+ app = ApplicationContext() # 1. Instantiate ApplicationContext
+ test = appWindow()
+ test.show()
+ exit_code = app.app.exec_() # 2. Invoke appctxt.app.exec_()
sys.exit(exit_code) \ No newline at end of file
diff --git a/src/main/python/utils/__init__.py b/src/main/python/utils/__init__.py
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/src/main/python/utils/__init__.py
diff --git a/src/main/python/utils/sizes.py b/src/main/python/utils/sizes.py
new file mode 100644
index 0000000..fc444cf
--- /dev/null
+++ b/src/main/python/utils/sizes.py
@@ -0,0 +1,32 @@
+paperSizes = {
+ "A0": {
+ 72: {2384, 3370},
+ 96: {3179, 4494},
+ 150: {4967, 7022},
+ 300: {9933, 14043}
+ },
+ "A1": {
+ 72: {1684, 2384},
+ 96: {2245, 3179},
+ 150: {3508, 4967},
+ 300: {7016, 9933}
+ },
+ "A2": {
+ 72: {1191, 1684},
+ 96: {1587, 2245},
+ 150: {2480, 3508},
+ 300: {4960, 7016}
+ },
+ "A3": {
+ 72: {842, 1191},
+ 96: {1123, 1587},
+ 150: {1754, 2480},
+ 300: {3508, 4960}
+ },
+ "A4": {
+ 72: {595, 842},
+ 96: {794, 1123},
+ 150: {1240, 1754},
+ 300: {2480, 3508}
+ }
+} \ No newline at end of file