Skip to content

Commit

Permalink
Project structure updated.
Browse files Browse the repository at this point in the history
  • Loading branch information
nikkonrom committed Nov 7, 2017
1 parent 5502dd7 commit 456eead
Show file tree
Hide file tree
Showing 6 changed files with 133 additions and 49 deletions.
8 changes: 4 additions & 4 deletions python/Boundaries.py
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
from Operation import Operation
from operation import operation

class BoundariesOperation(Operation):
class boundaries_operation(operation):
@staticmethod
def Execute(inputPixmap):
return inputPixmap
def execute(input_pixmap):
return input_pixmap
4 changes: 2 additions & 2 deletions python/Operation.py
Original file line number Diff line number Diff line change
@@ -1,10 +1,10 @@
from PyQt5.Qt import QPixmap

class Operation(object):
class operation(object):
#QPixmap pixmap;

@staticmethod
def Execute(inputPixmap):
def execute(inputPixmap):
return inputPixmap


15 changes: 7 additions & 8 deletions python/ScaledPixmap.py
Original file line number Diff line number Diff line change
Expand Up @@ -8,8 +8,8 @@ class ScaledPixmap(QLabel):
workPixmap = None
originalSize = None

keepAspectRatio = False
overscalingEnabled = False
keepAspectRatio = True
overscalingEnabled = True

loadFinished = QtCore.pyqtSignal()

Expand Down Expand Up @@ -42,26 +42,25 @@ def paintEvent(self, event):
def setScaledPixmap(self, pixmap):
self.workPixmap = pixmap
self.originalSize = pixmap.size()
super().update()
self.update()

@QtCore.pyqtSlot(str, name='loadPixmapData')
def loadPixmapData(self, source):
pixmap = QPixmap(source)
if pixmap is not None:
self.SetScaledPixmap(pixmap)
self.setScaledPixmap(pixmap)

@QtCore.pyqtSlot(QPixmap, name='loadPixmapData')
def loadPixmapData(self, pixmap):
if pixmap is not None:
self.SetScaledPixmap(pixmap)
self.setScaledPixmap(pixmap)

@QtCore.pyqtSlot(int, name='setOverscaleEnabled')
def setOverscaleEnabled(self, enabled):
self.overscalingEnabled = enabled
self.update()

@QtCore.pyqtSlot(int, name='setKeepAspectRatioEnabled')
def setKeepAspectRatioEnabled(self, enabled):
self.keepAspectRatio = enabled

def __init__(self, parent):
super().__init__()
self.update()
27 changes: 16 additions & 11 deletions python/imager.py
Original file line number Diff line number Diff line change
@@ -1,9 +1,8 @@
import sys
# Импортируем наш интерфейс из файла
from mainwindow import *
from PyQt5 import Qt, QtCore, QtGui, QtWidgets
from PyQt5.QtWidgets import QFileDialog
from Boundaries import BoundariesOperation
from boundaries import boundaries_operation


class MyWin(QtWidgets.QMainWindow):
Expand All @@ -12,29 +11,35 @@ def __init__(self, parent=None):
self.ui = Ui_MainWindow()
self.ui.setupUi(self)

# Здесь прописываем событие нажатия на кнопку
self.ui.actionOpen.setShortcut(Qt.QKeySequence.Open)
self.ui.actionOpen.triggered.connect(self.loadImage)

self.ui.loadButton.clicked.connect(self.loadImage)

self.ui.actionOpen.triggered.connect(self.loadImage)
self.ui.actionOpen.setShortcut(Qt.QKeySequence.Open)
self.ui.boundariesButton.clicked.connect(self.getBoundaries)
self.ui.keepAspectRatioCheckBox.stateChanged.connect(self.ui.label.setKeepAspectRatioEnabled)
self.ui.keepAspectRatioCheckBox.stateChanged.connect(self.ui.label_2.setKeepAspectRatioEnabled)
self.ui.ignoreOverscaleCheckBox.stateChanged.connect(self.ui.label.setOverscaleEnabled)
self.ui.ignoreOverscaleCheckBox.stateChanged.connect(self.ui.label_2.setOverscaleEnabled)

self.ui.keepAspectRatioCheckBox.stateChanged.connect(self.ui.inputLabel.setKeepAspectRatioEnabled)
self.ui.keepAspectRatioCheckBox.stateChanged.connect(self.ui.outputLabel.setKeepAspectRatioEnabled)
self.ui.ignoreOverscaleCheckBox.stateChanged.connect(self.ui.inputLabel.setOverscaleEnabled)
self.ui.ignoreOverscaleCheckBox.stateChanged.connect(self.ui.outputLabel.setOverscaleEnabled)

# Пока пустая функция которая выполняется
# при нажатии на кнопку
def loadImage(self):
inputImagePath = QFileDialog.getOpenFileName(self, 'Open image...', '/home')[0]
if inputImagePath:
inputPixmap = Qt.QPixmap(inputImagePath)
self.ui.label.loadPixmapData(inputPixmap)
self.ui.inputLabel.loadPixmapData(inputPixmap)

def getBoundaries(self):
if self.ui.label.getPixmap() is not None:
self.ui.label_2.loadPixmapData(BoundariesOperation.Execute(self.ui.label.getPixmap()))
if self.ui.inputLabel.getPixmap() is not None:
self.ui.outputLabel.loadPixmapData(boundaries_operation.execute(self.ui.inputLabel.getPixmap()))


if __name__ == "__main__":
app = QtWidgets.QApplication(sys.argv)
myapp = MyWin()
myapp.show()
sys.exit(app.exec_())
sys.exit(app.exec_())
72 changes: 50 additions & 22 deletions python/mainwindow.py
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,9 @@ class Ui_MainWindow(object):
def setupUi(self, MainWindow):
MainWindow.setObjectName("MainWindow")
MainWindow.resize(736, 397)
icon = QtGui.QIcon()
icon.addPixmap(QtGui.QPixmap("C:/Users/jeavr/Desktop/unnamed.png"), QtGui.QIcon.Normal, QtGui.QIcon.Off)
MainWindow.setWindowIcon(icon)
self.centralwidget = QtWidgets.QWidget(MainWindow)
self.centralwidget.setObjectName("centralwidget")
self.verticalLayout = QtWidgets.QVBoxLayout(self.centralwidget)
Expand All @@ -20,19 +23,19 @@ def setupUi(self, MainWindow):
self.horizontalLayout.setObjectName("horizontalLayout")
self.gridLayout = QtWidgets.QGridLayout()
self.gridLayout.setObjectName("gridLayout")
self.label_2 = ScaledPixmap(self.centralwidget)
self.outputLabel = ScaledPixmap(self.centralwidget)
sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Expanding)
sizePolicy.setHorizontalStretch(0)
sizePolicy.setVerticalStretch(0)
sizePolicy.setHeightForWidth(self.label_2.sizePolicy().hasHeightForWidth())
self.label_2.setSizePolicy(sizePolicy)
self.label_2.setFrameShape(QtWidgets.QFrame.StyledPanel)
self.label_2.setFrameShadow(QtWidgets.QFrame.Sunken)
self.label_2.setLineWidth(1)
self.label_2.setText("")
self.label_2.setScaledContents(False)
self.label_2.setObjectName("label_2")
self.gridLayout.addWidget(self.label_2, 0, 1, 1, 1)
sizePolicy.setHeightForWidth(self.outputLabel.sizePolicy().hasHeightForWidth())
self.outputLabel.setSizePolicy(sizePolicy)
self.outputLabel.setFrameShape(QtWidgets.QFrame.StyledPanel)
self.outputLabel.setFrameShadow(QtWidgets.QFrame.Sunken)
self.outputLabel.setLineWidth(1)
self.outputLabel.setText("")
self.outputLabel.setScaledContents(False)
self.outputLabel.setObjectName("outputLabel")
self.gridLayout.addWidget(self.outputLabel, 0, 1, 1, 1)
self.groupBox = QtWidgets.QGroupBox(self.centralwidget)
self.groupBox.setObjectName("groupBox")
self.horizontalLayout_3 = QtWidgets.QHBoxLayout(self.groupBox)
Expand All @@ -45,6 +48,8 @@ def setupUi(self, MainWindow):
self.semanticSegmentationButton = QtWidgets.QPushButton(self.groupBox)
self.semanticSegmentationButton.setObjectName("semanticSegmentationButton")
self.verticalLayout_2.addWidget(self.semanticSegmentationButton)
spacerItem = QtWidgets.QSpacerItem(20, 40, QtWidgets.QSizePolicy.Minimum, QtWidgets.QSizePolicy.Expanding)
self.verticalLayout_2.addItem(spacerItem)
self.stackedWidget = QtWidgets.QStackedWidget(self.groupBox)
sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Expanding)
sizePolicy.setHorizontalStretch(0)
Expand Down Expand Up @@ -78,19 +83,19 @@ def setupUi(self, MainWindow):
self.verticalLayout_2.addWidget(self.stackedWidget)
self.horizontalLayout_3.addLayout(self.verticalLayout_2)
self.gridLayout.addWidget(self.groupBox, 0, 2, 1, 1)
self.label = ScaledPixmap(self.centralwidget)
self.inputLabel = ScaledPixmap(self.centralwidget)
sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Expanding)
sizePolicy.setHorizontalStretch(0)
sizePolicy.setVerticalStretch(0)
sizePolicy.setHeightForWidth(self.label.sizePolicy().hasHeightForWidth())
self.label.setSizePolicy(sizePolicy)
self.label.setFrameShape(QtWidgets.QFrame.StyledPanel)
self.label.setFrameShadow(QtWidgets.QFrame.Sunken)
self.label.setLineWidth(1)
self.label.setText("")
self.label.setScaledContents(False)
self.label.setObjectName("label")
self.gridLayout.addWidget(self.label, 0, 0, 1, 1)
sizePolicy.setHeightForWidth(self.inputLabel.sizePolicy().hasHeightForWidth())
self.inputLabel.setSizePolicy(sizePolicy)
self.inputLabel.setFrameShape(QtWidgets.QFrame.StyledPanel)
self.inputLabel.setFrameShadow(QtWidgets.QFrame.Sunken)
self.inputLabel.setLineWidth(1)
self.inputLabel.setText("")
self.inputLabel.setScaledContents(False)
self.inputLabel.setObjectName("inputLabel")
self.gridLayout.addWidget(self.inputLabel, 0, 0, 1, 1)
self.horizontalLayout.addLayout(self.gridLayout)
self.verticalLayout.addLayout(self.horizontalLayout)
self.horizontalLayout_2 = QtWidgets.QHBoxLayout()
Expand All @@ -107,17 +112,34 @@ def setupUi(self, MainWindow):
self.loadButton = QtWidgets.QPushButton(self.centralwidget)
self.loadButton.setObjectName("loadButton")
self.horizontalLayout_2.addWidget(self.loadButton)
spacerItem = QtWidgets.QSpacerItem(40, 20, QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Minimum)
self.horizontalLayout_2.addItem(spacerItem)
spacerItem1 = QtWidgets.QSpacerItem(40, 20, QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Minimum)
self.horizontalLayout_2.addItem(spacerItem1)
self.verticalLayout.addLayout(self.horizontalLayout_2)
MainWindow.setCentralWidget(self.centralwidget)
self.menubar = QtWidgets.QMenuBar(MainWindow)
self.menubar.setGeometry(QtCore.QRect(0, 0, 736, 26))
self.menubar.setObjectName("menubar")
self.menuFile = QtWidgets.QMenu(self.menubar)
self.menuFile.setObjectName("menuFile")
MainWindow.setMenuBar(self.menubar)
self.statusbar = QtWidgets.QStatusBar(MainWindow)
self.statusbar.setObjectName("statusbar")
MainWindow.setStatusBar(self.statusbar)
self.actionOpen = QtWidgets.QAction(MainWindow)
self.actionOpen.setObjectName("actionOpen")
self.actionSave = QtWidgets.QAction(MainWindow)
self.actionSave.setObjectName("actionSave")
self.actionExit = QtWidgets.QAction(MainWindow)
self.actionExit.setObjectName("actionExit")
self.actionOpen_2 = QtWidgets.QAction(MainWindow)
self.actionOpen_2.setObjectName("actionOpen_2")
self.actionOpen_3 = QtWidgets.QAction(MainWindow)
self.actionOpen_3.setObjectName("actionOpen_3")
self.menuFile.addAction(self.actionSave)
self.menuFile.addSeparator()
self.menuFile.addAction(self.actionExit)
self.menuFile.addAction(self.actionOpen_3)
self.menubar.addAction(self.menuFile.menuAction())

self.retranslateUi(MainWindow)
self.stackedWidget.setCurrentIndex(0)
Expand All @@ -134,5 +156,11 @@ def retranslateUi(self, MainWindow):
self.ignoreOverscaleCheckBox.setText(_translate("MainWindow", "Ignore original size"))
self.keepAspectRatioCheckBox.setText(_translate("MainWindow", "Maintain propotions"))
self.loadButton.setText(_translate("MainWindow", "Load"))
self.menuFile.setTitle(_translate("MainWindow", "File"))
self.actionOpen.setText(_translate("MainWindow", "Open"))
self.actionSave.setText(_translate("MainWindow", "Save"))
self.actionExit.setText(_translate("MainWindow", "Exit"))
self.actionOpen_2.setText(_translate("MainWindow", "Open"))
self.actionOpen_3.setText(_translate("MainWindow", "Open"))

from scaledpixmap import ScaledPixmap
56 changes: 54 additions & 2 deletions python/mainwindow.ui
Original file line number Diff line number Diff line change
Expand Up @@ -13,14 +13,18 @@
<property name="windowTitle">
<string>Imager</string>
</property>
<property name="windowIcon">
<iconset>
<normaloff>C:/Users/jeavr/Desktop/unnamed.png</normaloff>C:/Users/jeavr/Desktop/unnamed.png</iconset>
</property>
<widget class="QWidget" name="centralwidget">
<layout class="QVBoxLayout" name="verticalLayout">
<item>
<layout class="QHBoxLayout" name="horizontalLayout">
<item>
<layout class="QGridLayout" name="gridLayout">
<item row="0" column="1">
<widget class="ScaledPixmap" name="label_2">
<widget class="ScaledPixmap" name="outputLabel">
<property name="sizePolicy">
<sizepolicy hsizetype="Expanding" vsizetype="Expanding">
<horstretch>0</horstretch>
Expand Down Expand Up @@ -66,6 +70,19 @@
</property>
</widget>
</item>
<item>
<spacer name="verticalSpacer">
<property name="orientation">
<enum>Qt::Vertical</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>20</width>
<height>40</height>
</size>
</property>
</spacer>
</item>
<item>
<widget class="QStackedWidget" name="stackedWidget">
<property name="sizePolicy">
Expand Down Expand Up @@ -113,7 +130,7 @@
</widget>
</item>
<item row="0" column="0">
<widget class="ScaledPixmap" name="label">
<widget class="ScaledPixmap" name="inputLabel">
<property name="sizePolicy">
<sizepolicy hsizetype="Expanding" vsizetype="Expanding">
<horstretch>0</horstretch>
Expand Down Expand Up @@ -199,8 +216,43 @@
<height>26</height>
</rect>
</property>
<widget class="QMenu" name="menuFile">
<property name="title">
<string>File</string>
</property>
<addaction name="actionSave"/>
<addaction name="separator"/>
<addaction name="actionExit"/>
<addaction name="actionOpen_3"/>
</widget>
<addaction name="menuFile"/>
</widget>
<widget class="QStatusBar" name="statusbar"/>
<action name="actionOpen">
<property name="text">
<string>Open</string>
</property>
</action>
<action name="actionSave">
<property name="text">
<string>Save</string>
</property>
</action>
<action name="actionExit">
<property name="text">
<string>Exit</string>
</property>
</action>
<action name="actionOpen_2">
<property name="text">
<string>Open</string>
</property>
</action>
<action name="actionOpen_3">
<property name="text">
<string>Open</string>
</property>
</action>
</widget>
<customwidgets>
<customwidget>
Expand Down

0 comments on commit 456eead

Please sign in to comment.