Bladeren bron

gridviewer now provides a very basic console to run geometry functions

olinox 8 jaren geleden
bovenliggende
commit
c73095fd4a
3 gewijzigde bestanden met toevoegingen van 93 en 43 verwijderingen
  1. 18 6
      gridviewer/GridViewer.py
  2. 50 24
      gridviewer/qt_viewer.ui
  3. 25 13
      gridviewer/viewer.py

+ 18 - 6
gridviewer/GridViewer.py

@@ -2,6 +2,13 @@
 
     ** By Cro-Ki l@b, 2017 **
 '''
+if __name__ == "__main__":
+    import os, sys
+    pypog_path = (os.path.abspath(".."))
+    sys.path.append(pypog_path)
+
+import time
+
 from PyQt5.QtCore import QPointF, QMimeData
 from PyQt5.QtWidgets import QMainWindow, \
     QApplication, QGraphicsScene, QGraphicsView, QMessageBox
@@ -12,11 +19,6 @@ from gridviewer.viewer import Ui_window
 from pypog import geometry
 
 
-if __name__ == "__main__":
-    import os, sys
-    pypog_path = (os.path.abspath("..\\..\\"))
-    sys.path.append(pypog_path)
-
 class GridViewer(QMainWindow):
 
     def __init__(self):
@@ -42,6 +44,7 @@ class GridViewer(QMainWindow):
         self.ui.btn_toClipboard.clicked.connect(self.to_clipboard)
         self.ui.btn_zoom_plus.clicked.connect(self.zoom_plus)
         self.ui.btn_zoom_minus.clicked.connect(self.zoom_minus)
+        self.ui.txt_stdin.returnPressed.connect(self.run_stdin)
 
         self.ui.chk_displayCoords.toggled.connect(self.update_cell_labels)
 
@@ -111,7 +114,16 @@ class GridViewer(QMainWindow):
     def zoom_minus(self):
         self.ui.view.scale(0.9, 0.9)
 
-
+    def run_stdin(self):
+        stdin = self.ui.txt_stdin.text()
+        try:
+            t0 = time.time()
+            result = eval(stdin)
+            self.ui.txt_coords.setText(str(result))
+            self.update_selected_cells()
+            self.ui.txt_stdout.setText("{} ms.".format(1000 * (time.time() - t0)))
+        except Exception as e:
+            self.ui.txt_stdout.setText("{} : {}".format(e.__class__name__, e))
 
 if __name__ == "__main__":
 

+ 50 - 24
gridviewer/qt_viewer.ui

@@ -80,7 +80,7 @@
         <item>
          <widget class="QLabel" name="label">
           <property name="text">
-           <string>Update Grid</string>
+           <string>GRID</string>
           </property>
          </widget>
         </item>
@@ -99,7 +99,7 @@
            </size>
           </property>
           <property name="text">
-           <string>Hexagonal grid</string>
+           <string>Flat Hex</string>
           </property>
           <property name="checked">
            <bool>true</bool>
@@ -121,7 +121,7 @@
            </size>
           </property>
           <property name="text">
-           <string>Square grid</string>
+           <string>Square</string>
           </property>
          </widget>
         </item>
@@ -276,53 +276,53 @@
          <number>0</number>
         </property>
         <item>
-         <spacer name="horizontalSpacer">
-          <property name="orientation">
-           <enum>Qt::Horizontal</enum>
-          </property>
-          <property name="sizeHint" stdset="0">
-           <size>
-            <width>40</width>
-            <height>20</height>
-           </size>
-          </property>
-         </spacer>
-        </item>
-        <item>
-         <widget class="QToolButton" name="btn_updateSelection">
+         <widget class="QToolButton" name="btn_toClipboard">
           <property name="minimumSize">
            <size>
-            <width>132</width>
+            <width>84</width>
             <height>35</height>
            </size>
           </property>
           <property name="maximumSize">
            <size>
-            <width>132</width>
+            <width>84</width>
             <height>1000</height>
            </size>
           </property>
           <property name="text">
-           <string>Update selection</string>
+           <string>To clipboard</string>
           </property>
          </widget>
         </item>
         <item>
-         <widget class="QToolButton" name="btn_toClipboard">
+         <spacer name="horizontalSpacer">
+          <property name="orientation">
+           <enum>Qt::Horizontal</enum>
+          </property>
+          <property name="sizeHint" stdset="0">
+           <size>
+            <width>40</width>
+            <height>20</height>
+           </size>
+          </property>
+         </spacer>
+        </item>
+        <item>
+         <widget class="QToolButton" name="btn_updateSelection">
           <property name="minimumSize">
            <size>
-            <width>84</width>
+            <width>50</width>
             <height>35</height>
            </size>
           </property>
           <property name="maximumSize">
            <size>
-            <width>84</width>
+            <width>50</width>
             <height>1000</height>
            </size>
           </property>
           <property name="text">
-           <string>To clipboard</string>
+           <string>&gt;&gt;</string>
           </property>
          </widget>
         </item>
@@ -338,6 +338,32 @@
         </property>
        </widget>
       </item>
+      <item>
+       <widget class="QLabel" name="label_4">
+        <property name="text">
+         <string>Run:</string>
+        </property>
+       </widget>
+      </item>
+      <item>
+       <widget class="QLineEdit" name="txt_stdin"/>
+      </item>
+      <item>
+       <widget class="QTextEdit" name="txt_stdout">
+        <property name="minimumSize">
+         <size>
+          <width>0</width>
+          <height>120</height>
+         </size>
+        </property>
+        <property name="maximumSize">
+         <size>
+          <width>16777215</width>
+          <height>120</height>
+         </size>
+        </property>
+       </widget>
+      </item>
      </layout>
     </item>
    </layout>

+ 25 - 13
gridviewer/viewer.py

@@ -1,8 +1,8 @@
 # -*- coding: utf-8 -*-
 
-# Form implementation generated from reading ui file 'main.ui'
+# Form implementation generated from reading ui file 'qt_viewer.ui'
 #
-# Created by: PyQt5 UI code generator 5.5.1
+# Created by: PyQt5 UI code generator 5.7.1
 #
 # WARNING! All changes made in this file will be lost!
 
@@ -108,23 +108,34 @@ class Ui_window(object):
         self.horizontalLayout_3 = QtWidgets.QHBoxLayout()
         self.horizontalLayout_3.setContentsMargins(-1, 0, -1, -1)
         self.horizontalLayout_3.setObjectName("horizontalLayout_3")
-        spacerItem1 = QtWidgets.QSpacerItem(40, 20, QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Minimum)
-        self.horizontalLayout_3.addItem(spacerItem1)
-        self.btn_updateSelection = QtWidgets.QToolButton(self.centralwidget)
-        self.btn_updateSelection.setMinimumSize(QtCore.QSize(132, 35))
-        self.btn_updateSelection.setMaximumSize(QtCore.QSize(132, 1000))
-        self.btn_updateSelection.setObjectName("btn_updateSelection")
-        self.horizontalLayout_3.addWidget(self.btn_updateSelection)
         self.btn_toClipboard = QtWidgets.QToolButton(self.centralwidget)
         self.btn_toClipboard.setMinimumSize(QtCore.QSize(84, 35))
         self.btn_toClipboard.setMaximumSize(QtCore.QSize(84, 1000))
         self.btn_toClipboard.setObjectName("btn_toClipboard")
         self.horizontalLayout_3.addWidget(self.btn_toClipboard)
+        spacerItem1 = QtWidgets.QSpacerItem(40, 20, QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Minimum)
+        self.horizontalLayout_3.addItem(spacerItem1)
+        self.btn_updateSelection = QtWidgets.QToolButton(self.centralwidget)
+        self.btn_updateSelection.setMinimumSize(QtCore.QSize(50, 35))
+        self.btn_updateSelection.setMaximumSize(QtCore.QSize(50, 1000))
+        self.btn_updateSelection.setObjectName("btn_updateSelection")
+        self.horizontalLayout_3.addWidget(self.btn_updateSelection)
         self.verticalLayout_2.addLayout(self.horizontalLayout_3)
         self.txt_coords = QtWidgets.QTextEdit(self.centralwidget)
         self.txt_coords.setMinimumSize(QtCore.QSize(183, 0))
         self.txt_coords.setObjectName("txt_coords")
         self.verticalLayout_2.addWidget(self.txt_coords)
+        self.label_4 = QtWidgets.QLabel(self.centralwidget)
+        self.label_4.setObjectName("label_4")
+        self.verticalLayout_2.addWidget(self.label_4)
+        self.txt_stdin = QtWidgets.QLineEdit(self.centralwidget)
+        self.txt_stdin.setObjectName("txt_stdin")
+        self.verticalLayout_2.addWidget(self.txt_stdin)
+        self.txt_stdout = QtWidgets.QTextEdit(self.centralwidget)
+        self.txt_stdout.setMinimumSize(QtCore.QSize(0, 80))
+        self.txt_stdout.setMaximumSize(QtCore.QSize(16777215, 120))
+        self.txt_stdout.setObjectName("txt_stdout")
+        self.verticalLayout_2.addWidget(self.txt_stdout)
         self.horizontalLayout.addLayout(self.verticalLayout_2)
         self.horizontalLayout.setStretch(0, 2)
         window.setCentralWidget(self.centralwidget)
@@ -141,16 +152,17 @@ class Ui_window(object):
         _translate = QtCore.QCoreApplication.translate
         window.setWindowTitle(_translate("window", "GridViewer"))
         self.lbl_title.setText(_translate("window", "Grid Viewer"))
-        self.label.setText(_translate("window", "Update Grid"))
-        self.opt_hex.setText(_translate("window", "Hexagonal grid"))
-        self.opt_square.setText(_translate("window", "Square grid"))
+        self.label.setText(_translate("window", "GRID"))
+        self.opt_hex.setText(_translate("window", "Flat Hex"))
+        self.opt_square.setText(_translate("window", "Square"))
         self.label_2.setText(_translate("window", "X"))
         self.btn_make.setText(_translate("window", ">>"))
         self.label_3.setText(_translate("window", "Zoom"))
         self.btn_zoom_plus.setText(_translate("window", "+"))
         self.btn_zoom_minus.setText(_translate("window", "-"))
         self.chk_displayCoords.setText(_translate("window", "Display coordinates"))
-        self.btn_updateSelection.setText(_translate("window", "Update selection"))
         self.btn_toClipboard.setText(_translate("window", "To clipboard"))
+        self.btn_updateSelection.setText(_translate("window", ">>"))
+        self.label_4.setText(_translate("window", "Run:"))
         self.actionQuitter.setText(_translate("window", "Quitter"))