Advertisement
Guest User

Untitled

a guest
May 30th, 2017
72
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 21.32 KB | None | 0 0
  1. #! /usr/bin/env python
  2. # *-* coding: utf8 *-*
  3.  
  4. import sys
  5. import threading
  6. import time
  7. from PyQt4.QtCore import *
  8. from PyQt4.QtGui import *
  9.  
  10. from main_interface import *
  11. from profil_dialog import *
  12. from error_dialog import *
  13. from step1_frame import *
  14. from step2_frame import *
  15. from dev_api import *
  16. from fonction_api import *
  17. from otherclass import *
  18.        
  19. class EasyPicture(QMainWindow, Ui_easypicture):
  20.     global gestimage
  21.    
  22.     def __init__(self):
  23.         self.gestimage = GestImage()
  24.         QMainWindow.__init__(self)
  25.         Ui_easypicture.__init__(self)
  26.         self.setupUi(self)
  27.         self.connect(self.pushButton, SIGNAL("clicked()"), self.gesture_profile)
  28.         self.connect(self.ui1.pushButton_1, SIGNAL("clicked()"), self.dirbrowseA)
  29.         self.connect(self.ui2.pushButton_1, SIGNAL("clicked()"), self.dirbrowseB)
  30.         self.connect(self.ui4.pushButton, SIGNAL("clicked()"), self.gobrowser)
  31.         self.connect(self.pushButton_2, SIGNAL("clicked()"), self.step1_resizing)
  32.         self.connect(self.pushButton_3, SIGNAL("clicked()"), self.closeapp)
  33.         self.connect(self.pushButton_4, SIGNAL("clicked()"), self.backstep)
  34.         self.connect(self.ui1.radioButton_2, SIGNAL("clicked()"), self.disablewatermark)
  35.         self.connect(self.ui1.radioButton_3, SIGNAL("clicked()"), self.disablethumbnail)
  36.         self.connect(self.ui1.radioButton, SIGNAL("clicked()"), self.enablewatermark)
  37.         self.connect(self.ui1.radioButton_4, SIGNAL("clicked()"), self.enablethumbnail)
  38.         self.connect(self.ui1.pushButton_5, SIGNAL("clicked()"), self.waterbrowse)
  39.         self.connect(self.ui1.checkBox, SIGNAL("clicked()"), self.keepdim)
  40.         self.connect(self.ui1.checkBox_2, SIGNAL("clicked()"), self.keeplarg)
  41.         self.connect(self.ui1.checkBox_3, SIGNAL("clicked()"), self.keeplong)
  42.         self.a = A()
  43.         self.b = A()
  44.         self.a.start()
  45.         self.connect(self.a, SIGNAL("asignal"), self.ChangeFrameA, Qt.QueuedConnection)
  46.         self.connect(self.b, SIGNAL("asignal"), self.ChangeFrameB, Qt.QueuedConnection)
  47.         self.ui1.textBrowser.setPlainText(unicode("Cliquer sur Parcourir pour sélectionner un dossier...","utf-8"))
  48.         self.ui1.textBrowser_2.setPlainText(unicode("Cliquer sur Parcourir pour sélectionner votre watermark...","utf-8"))
  49.         self.ui1.radioButton_2.setChecked(True)
  50.         self.disablewatermark()
  51.         self.ui1.radioButton_3.setChecked(True)
  52.         self.disablethumbnail()
  53.         self.ui1.checkBox_3.setChecked(True)
  54.         self.ui1.checkBox_2.setChecked(True)
  55.  
  56.     def gesture_profile(self):
  57.        self.EasyPicture_profil = QtGui.QDialog()
  58.        self.ui3 = Ui_EasyPicture_profil()
  59.        self.ui3.setupUi(self.EasyPicture_profil)
  60.        self.connect(self.ui3.pushButton_4, SIGNAL("clicked()"), self.generate_action)
  61.        self.connect(self.ui3.pushButton_5, SIGNAL("clicked()"), self.load_action)
  62.        self.EasyPicture_profil.exec_()
  63.  
  64.     def generate_action(self):
  65.         tmp = QFileDialog.getSaveFileName(self, unicode("Sélectionner un profil :", "utf-8"), "c:/", ("Profil (*.xml)"))
  66.         if tmp:
  67.            profile = unicode(convertQt.qstr2str(tmp),"utf-8")
  68.            generate_profile(self, profile)
  69.         self.EasyPicture_profil.close()
  70.    
  71.     def load_action(self):
  72.         tmp = QFileDialog.getOpenFileName(self, unicode("Sélectionner un profil :", "utf-8"), "c:/", ("Profil (*.xml)"))
  73.         if tmp:
  74.            profile = unicode(convertQt.qstr2str(tmp),"utf-8")
  75.            load_profile(self, profile)
  76.         self.EasyPicture_profil.close()
  77.        
  78.     def ChangeFrameA(self):
  79.         self.label_2.setText(unicode("> Upload d'images (Etape 2/2) :","utf-8"))
  80.         self.ui2.textBrowser.setPlainText(self.gestimage.scandir)
  81.         self.pushButton_4.setEnabled(True)
  82.         self.frame_2.hide()
  83.         self.frame_3.show()
  84.         self.frame_4.hide()
  85.         pass
  86.    
  87.     def ChangeFrameB(self):
  88.         self.pushButton_2.setEnabled(False)
  89.         self.frame_2.hide()
  90.         self.frame_3.hide()
  91.         self.frame_4.show()
  92.  
  93.     def backstep(self):
  94.         self.frame_4.hide()
  95.         self.frame_3.hide()
  96.         self.pushButton_2.setEnabled(True)
  97.         self.label_2.setText(QtGui.QApplication.translate("easypicture", "> Redimentionnement d\'images (Etape 1/2) :", None, QtGui.QApplication.UnicodeUTF8))
  98.         if self.gestimage.scandir:
  99.             if self.gestimage.scandir[-1] != "/" :
  100.                self.gestimage.scandir += "/"
  101.             self.ui1.textBrowser.setPlainText(self.gestimage.scandir)
  102.         else:
  103.             self.ui1.textBrowser.setPlainText(unicode("Cliquer sur Parcourir pour sélectionner un dossier...","utf-8"))
  104.         self.pushButton_4.setEnabled(False)
  105.         self.gestimage.finish = False
  106.         self.frame_2.show()
  107.        
  108.     def dirbrowseA(self):
  109.         tmp = QFileDialog.getExistingDirectory(self, unicode("Sélectionner un dossier d\'image(s) :", "utf-8"), "c:/", QFileDialog.ShowDirsOnly)
  110.         self.gestimage.scandir = unicode(convertQt.qstr2str(tmp),"utf-8")
  111.         if self.gestimage.scandir:
  112.             if self.gestimage.scandir[-1] != "/" :
  113.                self.gestimage.scandir += "/"
  114.             self.ui1.textBrowser.setPlainText(self.gestimage.scandir)
  115.         else:
  116.             self.ui1.textBrowser.setPlainText(unicode("Cliquer sur Parcourir pour sélectionner un dossier...","utf-8"))
  117.  
  118.     def dirbrowseB(self):
  119.         tmp = QFileDialog.getExistingDirectory(self, unicode("Sélectionner un dossier d\'image(s) :", "utf-8"), "c:/", QFileDialog.ShowDirsOnly)
  120.         self.gestimage.scandir = unicode(convertQt.qstr2str(tmp),"utf-8")
  121.         if self.gestimage.scandir:
  122.             if self.gestimage.scandir[-1] != "/" :
  123.                self.gestimage.scandir += "/"
  124.             self.ui2.textBrowser.setPlainText(self.gestimage.scandir)
  125.         else:
  126.             self.ui2.textBrowser.setPlainText(unicode("Cliquer sur Parcourir pour sélectionner un dossier...","utf-8"))
  127.  
  128.     def waterbrowse(self):
  129.         tmp = QFileDialog.getOpenFileName(self, unicode("Sélectionner une watermark :", "utf-8"), "c:/", ("Images (*.png)"))
  130.         self.gestimage.watermarksrc = unicode(convertQt.qstr2str(tmp),"utf-8")
  131.         if self.gestimage.watermarksrc:
  132.             self.ui1.textBrowser_2.setPlainText(self.gestimage.watermarksrc)
  133.         else:
  134.             self.ui1.textBrowser_2.setPlainText(unicode("Cliquer sur Parcourir pour sélectionner votre watermark...","utf-8"))
  135.            
  136.     def gobrowser(self):
  137.         url = unicode(convertQt.qstr2str(self.ui4.textEdit_7.toPlainText()),"utf-8")
  138.         if not url:
  139.            self.EasyPicture_error = QtGui.QDialog()
  140.            self.ui5 = Ui_error()
  141.            self.ui5.setupUi(self.EasyPicture_error)
  142.            self.ui5.label.setText(unicode("- Erreur, aucune adresse de site internet n'a été saisi, entrer une adresse valide...","utf-8"))
  143.            self.EasyPicture_error.exec_()
  144.         openwebsite(url)
  145.        
  146.     def step1_resizing(self):
  147.         if self.gestimage.finish == False :
  148.            if self.gestimage.scandir:
  149.               resizelarg = self.ui1.textEdit_3.toPlainText()
  150.               resizelong = self.ui1.textEdit_4.toPlainText()
  151.               resizedqty = self.ui1.textEdit_5.toPlainText()
  152.               if resizedqty:
  153.                  self.gestimage.resizedquality = int(resizedqty);
  154.                  if (self.gestimage.resizedquality > 100):
  155.                      self.gestimage.resizedquality = 100
  156.               else:
  157.                  self.gestimage.resizedquality = 75
  158.               if self.ui1.checkBox.isChecked():
  159.                  if resizelarg and resizelong:
  160.                     self.gestimage.resizedsize = (int(resizelarg), int(resizelong))
  161.                     self.gestimage.keepsize = True
  162.                  else:
  163.                      self.EasyPicture_error = QtGui.QDialog()
  164.                      self.ui5 = Ui_error()
  165.                      self.ui5.setupUi(self.EasyPicture_error)
  166.                      self.ui5.label.setText(unicode("- Erreur, vous n'avez pas saisie de dimension pour le redimentionnement...","utf-8"))
  167.                      self.EasyPicture_error.exec_()
  168.                      return
  169.                      self.gestimage.keepsize = False
  170.                  self.gestimage.keeppropheight = False
  171.                  self.gestimage.keeppropwidth = False
  172.               else:
  173.                  self.gestimage.keepsize = False
  174.                  if self.ui1.checkBox_3.isChecked() or self.ui1.checkBox_2.isChecked():
  175.                     if self.ui1.checkBox_3.isChecked():
  176.                        if resizelong:
  177.                           self.gestimage.resizedsize = (self.gestimage.resizedsize[0], int(resizelong))
  178.                           self.gestimage.keeppropheight = True
  179.                        else:
  180.                           self.EasyPicture_error = QtGui.QDialog()
  181.                           self.ui5 = Ui_error()
  182.                           self.ui5.setupUi(self.EasyPicture_error)
  183.                           self.ui5.label.setText(unicode("- Erreur, vous n'avez pas saisie de dimension pour le redimentionnement...","utf-8"))
  184.                           self.EasyPicture_error.exec_()
  185.                           return
  186.                           self.gestimage.keeppropheight = False
  187.                     if self.ui1.checkBox_2.isChecked():
  188.                        if resizelarg:
  189.                           self.gestimage.resizedsize = (int(resizelarg), self.gestimage.resizedsize[1])
  190.                           self.gestimage.keeppropwidth = True
  191.                        else:
  192.                           self.EasyPicture_error = QtGui.QDialog()
  193.                           self.ui5 = Ui_error()
  194.                           self.ui5.setupUi(self.EasyPicture_error)
  195.                           self.ui5.label.setText(unicode("- Erreur, vous n'avez pas saisie de dimension pour le redimentionnement...","utf-8"))
  196.                           self.EasyPicture_error.exec_()
  197.                           return
  198.                           self.gestimage.keeppropwidth = False
  199.                  else:
  200.                     self.EasyPicture_error = QtGui.QDialog()
  201.                     self.ui5 = Ui_error()
  202.                     self.ui5.setupUi(self.EasyPicture_error)
  203.                     self.ui5.label.setText(unicode("- Erreur, vous n'avez pas saisie de dimension pour le redimentionnement...","utf-8"))
  204.                     self.EasyPicture_error.exec_()
  205.                     pass
  206.               self.gestimage.verrou = True
  207.               if self.ui1.radioButton.isChecked():
  208.                   self.gestimage.watermarkmod = True
  209.                   if not self.gestimage.watermarksrc:
  210.                      self.ui1.radioButton_2.setChecked(True)
  211.                      self.disablewatermark()
  212.                      self.gestimage.watermarkmod = False
  213.                   else:
  214.                      if os.path.isfile(self.gestimage.watermarksrc) == False:
  215.                         self.ui1.radioButton_2.setChecked(True)
  216.                         self.disablewatermark()
  217.                         self.gestimage.watermarkmod = False      
  218.               else:
  219.                   self.gestimage.watermarkmod = False
  220.               if self.ui1.radioButton_4.isChecked():
  221.                   self.gestimage.thumbmod = True
  222.                   thumblarg = self.ui1.textEdit.toPlainText();
  223.                   thumblong = self.ui1.textEdit_2.toPlainText();
  224.                   if not thumblarg or not thumblong:
  225.                      self.ui1.radioButton_3.setChecked(True)
  226.                      self.disablethumbnail()
  227.                      self.gestimage.thumbmod = False
  228.                   else:
  229.                      self.gestimage.thumbsize = (int(thumblarg), int(thumblong))
  230.                      thumbqty = self.ui1.textEdit_6.toPlainText()
  231.                      if thumbqty:
  232.                         self.gestimage.thumbquality = int(thumbqty);
  233.                         if (self.gestimage.thumbquality > 100):
  234.                             self.gestimage.thumbquality = 100
  235.                      else:
  236.                         self.gestimage.thumbquality = 75
  237.               else:
  238.                   self.gestimage.thumbmod = False
  239.               a = threading.Thread(None, makepicture, None, (self.gestimage,), {})
  240.               b = threading.Thread(None, self.incrembarA, None, (self.gestimage,), {})
  241.               self.pushButton_2.setEnabled(False)
  242.               self.gestimage.verroubis = True
  243.               self.progressBar.setEnabled(True)
  244.               a.start()
  245.               b.start()
  246.            else:
  247.               self.EasyPicture_error = QtGui.QDialog()
  248.               self.ui5 = Ui_error()
  249.               self.ui5.setupUi(self.EasyPicture_error)
  250.               self.ui5.label.setText(unicode("- Erreur, vous n'avez pas sélectionner de répertoire d'image(s)...","utf-8"))
  251.               self.EasyPicture_error.exec_()
  252.               return
  253.         else:
  254.            self.step2_upload()
  255.         pass
  256.  
  257.     def step2_upload(self):
  258.         if not self.gestimage.scandir:
  259.            self.EasyPicture_error = QtGui.QDialog()
  260.            self.ui5 = Ui_error()
  261.            self.ui5.setupUi(self.EasyPicture_error)
  262.            self.ui5.label.setText(unicode("- Erreur, vous n'avez pas sélectionner de répertoire d'image(s)...","utf-8"))
  263.            self.EasyPicture_error.exec_()
  264.            return
  265.         address = unicode(convertQt.qstr2str(self.ui2.textEdit_3.toPlainText()),"utf-8")
  266.         username = unicode(convertQt.qstr2str(self.ui2.textEdit_4.toPlainText()),"utf-8")
  267.         password = unicode(convertQt.qstr2str(self.ui2.textEdit_5.toPlainText()),"utf-8")
  268.         destination = unicode(convertQt.qstr2str(self.ui2.textEdit_7.toPlainText()),"utf-8")
  269.         c = threading.Thread(None, uploadpicture, None, (self.gestimage, address, username, password, destination,), {})
  270.         d = threading.Thread(None, self.incrembarB, None, (self.gestimage,), {})
  271.         if address and username and password and destination:
  272.            self.pushButton_2.setEnabled(False)
  273.            self.pushButton_4.setEnabled(False)
  274.            self.progressBar.setEnabled(True)
  275.            self.gestimage.verroubis = True
  276.            c.start()
  277.            d.start()
  278.         else:
  279.            self.EasyPicture_error = QtGui.QDialog()
  280.            self.ui5 = Ui_error()
  281.            self.ui5.setupUi(self.EasyPicture_error)
  282.            self.ui5.label.setText(unicode("- Erreur, vous n'avez pas rempli le/les champ(s) correctement...","utf-8"))
  283.            self.EasyPicture_error.exec_()
  284.            
  285.     def incrembarA(self, GestImage):
  286.         while (GestImage.verroubis):
  287.             pass
  288.         while (GestImage.posimage < GestImage.nbimage):
  289.             time.sleep(1)
  290.             self.progressBar.setValue(GestImage.posimage * GestImage.timebar)
  291.         time.sleep(1)
  292.         GestImage.reset()
  293.         self.progressBar.setValue(100)
  294.         time.sleep(1)
  295.         self.progressBar.setEnabled(False)
  296.         time.sleep(1)
  297.         self.progressBar.setValue(0)
  298.         while (self.gestimage.verrou):
  299.             pass
  300.         self.pushButton_2.setEnabled(True)
  301.         GestImage.finish = True
  302.         self.a.afunc()
  303.         pass
  304.        
  305.     def incrembarB(self, GestImage):
  306.         while (GestImage.verroubis):
  307.             pass
  308.         while (GestImage.posimage < GestImage.nbimage):
  309.             time.sleep(1)
  310.             self.progressBar.setValue(GestImage.posimage * GestImage.timebar)
  311.         if (GestImage.error_connexion == True):
  312.                 self.EasyPicture_error = QtGui.QDialog()
  313.                 self.ui5 = Ui_error()
  314.                 self.ui5.setupUi(self.EasyPicture_error)
  315.                 self.ui5.label.setText(unicode("- Erreur, vous n'avez pas rempli le/les champ(s) correctement...","utf-8"))
  316.                 self.EasyPicture_error.exec_()
  317.         time.sleep(1)
  318.         GestImage.reset()
  319.         self.progressBar.setValue(100)
  320.         time.sleep(1)
  321.         self.progressBar.setEnabled(False)
  322.         time.sleep(1)
  323.         self.progressBar.setValue(0)
  324.         self.pushButton_2.setEnabled(True)
  325.         self.pushButton_4.setEnabled(True)
  326.         GestImage.finish = True
  327.         self.b.afunc()
  328.         pass
  329.        
  330.     def enablewatermark(self):
  331.         self.ui1.label_10.setEnabled(True)
  332.         self.ui1.textBrowser_2.setEnabled(True)
  333.         self.ui1.pushButton_5.setEnabled(True)
  334.        
  335.     def disablewatermark(self):
  336.         self.ui1.label_10.setEnabled(False)
  337.         self.ui1.textBrowser_2.setEnabled(False)
  338.         self.ui1.pushButton_5.setEnabled(False)
  339.        
  340.     def enablethumbnail(self):
  341.         self.ui1.label_7.setEnabled(True)
  342.         self.ui1.label_8.setEnabled(True)
  343.         self.ui1.label_9.setEnabled(True)
  344.         self.ui1.label_18.setEnabled(True)
  345.         self.ui1.label_19.setEnabled(True)
  346.         self.ui1.textEdit.setEnabled(True)
  347.         self.ui1.textEdit_2.setEnabled(True)
  348.         self.ui1.textEdit_6.setEnabled(True)
  349.         self.ui1.label_17.setEnabled(True)
  350.         self.ui1.label_25.setEnabled(True)
  351.        
  352.     def disablethumbnail(self):
  353.         self.ui1.label_7.setEnabled(False)
  354.         self.ui1.label_8.setEnabled(False)
  355.         self.ui1.label_9.setEnabled(False)
  356.         self.ui1.label_18.setEnabled(False)
  357.         self.ui1.label_19.setEnabled(False)
  358.         self.ui1.textEdit.setEnabled(False)
  359.         self.ui1.textEdit_2.setEnabled(False)
  360.         self.ui1.textEdit_6.setEnabled(False)
  361.         self.ui1.label_17.setEnabled(False)
  362.         self.ui1.label_25.setEnabled(False)
  363.        
  364.     def keepdim(self):
  365.         if self.ui1.checkBox.isChecked():
  366.             self.pushButton_2.setEnabled(True)
  367.             self.ui1.label_12.setEnabled(True)
  368.             self.ui1.textEdit_5.setEnabled(True)
  369.             self.ui1.label_24.setEnabled(True)
  370.             self.ui1.label_16.setEnabled(True)
  371.             self.disablelarg()
  372.             self.disablelong()
  373.             self.enablelarg()
  374.             self.enablelong()
  375.             self.ui1.label_13.setEnabled(False)
  376.             self.ui1.checkBox_2.setEnabled(False)
  377.             self.ui1.checkBox_3.setEnabled(False)
  378.         else:
  379.             if (self.ui1.checkBox_2.isChecked() == False and self.ui1.checkBox_3.isChecked() == False):
  380.                self.pushButton_2.setEnabled(False)
  381.                self.ui1.label_12.setEnabled(False)
  382.                self.ui1.textEdit_5.setEnabled(False)
  383.                self.ui1.label_24.setEnabled(False)
  384.                self.ui1.label_16.setEnabled(False)
  385.             self.ui1.label_13.setEnabled(True)
  386.             self.keeplarg()
  387.             self.keeplong()
  388.             self.ui1.checkBox_2.setEnabled(True)
  389.             self.ui1.checkBox_3.setEnabled(True)
  390.        
  391.     def keeplarg(self):
  392.         if self.ui1.checkBox_2.isChecked():
  393.             self.pushButton_2.setEnabled(True)
  394.             self.ui1.label_12.setEnabled(True)
  395.             self.ui1.textEdit_5.setEnabled(True)
  396.             self.ui1.label_24.setEnabled(True)
  397.             self.ui1.label_16.setEnabled(True)
  398.             if self.ui1.checkBox_3.isChecked():
  399.                 self.enablelarg()
  400.                 self.enablelong()
  401.             else:
  402.                 self.enablelarg()
  403.                 self.disablelong()
  404.         else:
  405.            if (self.ui1.checkBox.isChecked() == False and self.ui1.checkBox_3.isChecked() == False):
  406.                 self.pushButton_2.setEnabled(False)
  407.                 self.ui1.label_12.setEnabled(False)
  408.                 self.ui1.textEdit_5.setEnabled(False)
  409.                 self.ui1.label_24.setEnabled(False)
  410.                 self.ui1.label_16.setEnabled(False)
  411.            self.disablelarg()
  412.        
  413.        
  414.     def keeplong(self):
  415.         if self.ui1.checkBox_3.isChecked():
  416.             self.pushButton_2.setEnabled(True)
  417.             self.ui1.label_12.setEnabled(True)
  418.             self.ui1.textEdit_5.setEnabled(True)
  419.             self.ui1.label_24.setEnabled(True)
  420.             self.ui1.label_16.setEnabled(True)
  421.             if self.ui1.checkBox_2.isChecked():
  422.                 self.enablelarg()
  423.                 self.enablelong()
  424.             else:
  425.                 self.enablelong()
  426.                 self.disablelarg()
  427.         else:
  428.            if (self.ui1.checkBox.isChecked() == False and self.ui1.checkBox_2.isChecked() == False):
  429.                 self.pushButton_2.setEnabled(False)
  430.                 self.ui1.label_12.setEnabled(False)
  431.                 self.ui1.textEdit_5.setEnabled(False)
  432.                 self.ui1.label_24.setEnabled(False)
  433.                 self.ui1.label_16.setEnabled(False)
  434.            self.disablelong()
  435.    
  436.     def enablelarg(self):
  437.         self.ui1.textEdit_3.setEnabled(True)
  438.         self.ui1.label_14.setEnabled(True)
  439.         self.ui1.label_22.setEnabled(True)
  440.        
  441.     def disablelarg(self):
  442.         self.ui1.textEdit_3.setText("")
  443.         self.ui1.textEdit_3.setEnabled(False)
  444.         self.ui1.label_14.setEnabled(False)
  445.         self.ui1.label_22.setEnabled(False)
  446.        
  447.     def enablelong(self):
  448.         self.ui1.textEdit_4.setEnabled(True)
  449.         self.ui1.label_15.setEnabled(True)
  450.         self.ui1.label_23.setEnabled(True)
  451.        
  452.     def disablelong(self):
  453.         self.ui1.textEdit_4.setText("")
  454.         self.ui1.textEdit_4.setEnabled(False)
  455.         self.ui1.label_15.setEnabled(False)
  456.         self.ui1.label_23.setEnabled(False)      
  457.  
  458.     def closeapp(self):
  459.         return sys.exit()
  460.        
  461. if __name__ == "__main__":
  462.     app = QApplication(sys.argv)
  463.     window = EasyPicture()
  464.    
  465.     window.show()
  466.     sys.exit(app.exec_())
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement