diff options
author | Blaine | 2020-04-20 18:52:25 +0530 |
---|---|---|
committer | Blaine | 2020-04-20 18:52:25 +0530 |
commit | 59fed433c9fd8af5738f5ae7199e517a34da9e55 (patch) | |
tree | 9a86d6973b9ac48b9227f664a47d9310b6fad67a /src | |
parent | bf7fef5bca9044a8faec498eaa54889f0a9fe57b (diff) | |
download | Chemical-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.py | 81 | ||||
-rw-r--r-- | src/main/python/utils/__init__.py | 0 | ||||
-rw-r--r-- | src/main/python/utils/sizes.py | 32 |
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 |