myQtApp.py 3.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139
  1. # import
  2. # ------------------------------------------------------------------------------------------
  3. import os, sys, math
  4. import multiprocessing as mp
  5. import matplotlib.pyplot as plt
  6. import numpy as np
  7. import easygui
  8. import colour
  9. # import Qt
  10. from PyQt5.QtWidgets import QMainWindow, QAction, QApplication, QMenu
  11. from PyQt5.QtWidgets import QWidget, QLabel, QFileDialog
  12. from PyQt5.QtWidgets import QHBoxLayout # QSlider
  13. from PyQt5.QtGui import QIcon, QPixmap, QImage
  14. from PyQt5 import QtCore
  15. # miam import
  16. import miam.image.Image as MIMG
  17. import miam.aesthetics.Palette as MPAL
  18. import miam.utils
  19. # new import
  20. import gui.guiView.ImageWidget as gIW
  21. # ------------------------------------------------------------------------------------------
  22. # MIAM project 2020
  23. # ------------------------------------------------------------------------------------------
  24. # author: remi.cozot@univ-littoral.fr
  25. # ------------------------------------------------------------------------------------------
  26. def getScreenSize():
  27. app = QApplication(sys.argv)
  28. screens = app.screens()
  29. for s in screens:
  30. n = s.name()
  31. size = s.size()
  32. x = size.width()
  33. y = size.height()
  34. print("screen(",n,"):",x,"x",y)
  35. app.quit()
  36. return None
  37. def testQt():
  38. getScreenSize()
  39. pass
  40. class QMainApp(QMainWindow):
  41. def __init__(self):
  42. super().__init__()
  43. self.initUI()
  44. def initUI(self):
  45. menubar = self.menuBar()
  46. # file menu
  47. fileMenu = menubar.addMenu('&File')
  48. # Create Open action
  49. openAction = QAction('&Open', self)
  50. openAction.setShortcut('Ctrl+N')
  51. openAction.setStatusTip('Open image')
  52. openAction.triggered.connect(self._open)
  53. fileMenu.addAction(openAction)
  54. # Create Save action
  55. saveAction = QAction('&Save', self)
  56. saveAction.setShortcut('Ctrl+S')
  57. saveAction.setStatusTip('Save image')
  58. saveAction.triggered.connect(self._save)
  59. fileMenu.addAction(saveAction)
  60. # Create Quit action
  61. quitAction = QAction('&Quit', self)
  62. quitAction.setShortcut('Alt+F4')
  63. quitAction.setStatusTip('Quit')
  64. quitAction.triggered.connect(self._quit)
  65. fileMenu.addAction(quitAction)
  66. # status bar
  67. self.statusBar().showMessage('Welcome to MIAM: Multidimensional Image Aesthetics Model!')
  68. # geometry
  69. base, ratio, scale= 1920, 16/9, 0.5
  70. self.setGeometry(0, 0, math.floor(base*scale), math.floor(base/ratio*scale))
  71. # title
  72. self.setWindowTitle('miam')
  73. #
  74. self.img0 = gIW.ImageWidget(None,filename= '../images/DSC01314-HDR.jpg', mother=self)
  75. self.img1 = gIW.ImageWidget(None,filename= '../images/DSC01314.JPG', mother=self)
  76. imgLayout = QHBoxLayout()
  77. imgLayout.addWidget(self.img0)
  78. imgLayout.addWidget(self.img1)
  79. widget = QWidget()
  80. widget.setLayout(imgLayout)
  81. self.setCentralWidget(widget)
  82. # show
  83. self.show()
  84. def _statusMessage(self, s): self.statusBar().showMessage(s)
  85. def _open(self):
  86. self._statusMessage('open!!')
  87. fname = QFileDialog.getOpenFileName(self, 'Open file', '../images/')
  88. print(fname[0])
  89. self.centralWidget()._new(fname[0])
  90. def _save(self):
  91. self._statusMessage('save!!')
  92. def _quit(self):
  93. self._statusMessage('quit!!')
  94. sys.exit()
  95. def resizeEvent(self, event):
  96. self.img0._resize()
  97. self.img1._resize()
  98. pass
  99. def qtTest2():
  100. app = QApplication(sys.argv)
  101. ex = QMainApp()
  102. sys.exit(app.exec_())