def __init__(self, parent=None): super(MyFrame,self).__init__(parent) self.ui = Ui_MainFrame() self.ui.setupUi(self) #size of your screen screen = QtGui.QDesktopWidget().screenGeometry() self.width = screen.width() self.height = screen.height() self.resize(self.width, self.height) #self.ui.listWidget.setStyleSheet('''background-color:black;''') #Bottom Button self.connect(self.ui.btnAddSlide, QtCore.SIGNAL("clicked()"), self.addSlide) self.connect(self.ui.btnDelSlide, QtCore.SIGNAL("clicked()"), self.deleteSlide) self.connect(self.ui.btnSure, QtCore.SIGNAL("clicked()"), self.loginDialog) self.connect(self.ui.btnPreview, QtCore.SIGNAL("clicked()"), self.previewDialog) self.connect(self.ui.comboxPlugin, QtCore.SIGNAL("currentIndexChanged(int)"), self.downloadDialog) self.connect(self.ui.comboxDiandian, QtCore.SIGNAL("currentIndexChanged(int)"), self.uploadDialog) #QListWidget self.connect(self.ui.listWidget, QtCore.SIGNAL("itemDoubleClicked (QListWidgetItem *)"), self.deleteSlide) ##right click menu self.contextMeunuEvent() #QDial self.connect(self.ui.DialSlideDur, QtCore.SIGNAL("valueChanged(int)"), self.setSlideDur) self.connect(self.ui.DialTransDur, QtCore.SIGNAL("valueChanged(int)"), self.setTransDur) #menu ##File self.connect(self.ui.actionOpen, QtCore.SIGNAL("triggered()"), self.addSlide) self.connect(self.ui.actionExit, QtCore.SIGNAL("triggered()"), self.close) ##Help self.connect(self.ui.actionAbout, QtCore.SIGNAL("triggered()"), self.aboutDialog) self.connect(self.ui.actionContent, QtCore.SIGNAL("triggered()"), self.openHelpPage) ##setting self.connect(self.ui.actionDiandian, QtCore.SIGNAL("triggered()"), self.accountDialog) #init the dialog self.preview = Preview(parent=self) self.login = LoginDialog(parent=self) self.dlg_upload = UploadDialog()
class MyFrame(QtGui.QMainWindow): def __init__(self, parent=None): super(MyFrame,self).__init__(parent) self.ui = Ui_MainFrame() self.ui.setupUi(self) #size of your screen screen = QtGui.QDesktopWidget().screenGeometry() self.width = screen.width() self.height = screen.height() self.resize(self.width, self.height) #self.ui.listWidget.setStyleSheet('''background-color:black;''') #Bottom Button self.connect(self.ui.btnAddSlide, QtCore.SIGNAL("clicked()"), self.addSlide) self.connect(self.ui.btnDelSlide, QtCore.SIGNAL("clicked()"), self.deleteSlide) self.connect(self.ui.btnSure, QtCore.SIGNAL("clicked()"), self.loginDialog) self.connect(self.ui.btnPreview, QtCore.SIGNAL("clicked()"), self.previewDialog) self.connect(self.ui.comboxPlugin, QtCore.SIGNAL("currentIndexChanged(int)"), self.downloadDialog) self.connect(self.ui.comboxDiandian, QtCore.SIGNAL("currentIndexChanged(int)"), self.uploadDialog) #QListWidget self.connect(self.ui.listWidget, QtCore.SIGNAL("itemDoubleClicked (QListWidgetItem *)"), self.deleteSlide) ##right click menu self.contextMeunuEvent() #QDial self.connect(self.ui.DialSlideDur, QtCore.SIGNAL("valueChanged(int)"), self.setSlideDur) self.connect(self.ui.DialTransDur, QtCore.SIGNAL("valueChanged(int)"), self.setTransDur) #menu ##File self.connect(self.ui.actionOpen, QtCore.SIGNAL("triggered()"), self.addSlide) self.connect(self.ui.actionExit, QtCore.SIGNAL("triggered()"), self.close) ##Help self.connect(self.ui.actionAbout, QtCore.SIGNAL("triggered()"), self.aboutDialog) self.connect(self.ui.actionContent, QtCore.SIGNAL("triggered()"), self.openHelpPage) ##setting self.connect(self.ui.actionDiandian, QtCore.SIGNAL("triggered()"), self.accountDialog) #init the dialog self.preview = Preview(parent=self) self.login = LoginDialog(parent=self) self.dlg_upload = UploadDialog() #------------QDial-------------# def setSlideDur(self, num): self.ui.labSlideDur.setNum(num) def setTransDur(self, num): self.ui.labTransDur.setNum(num/10.0) def getSlideDur(self): return int(self.ui.labSlideDur.text()) def getTransDur(self): return float(self.ui.labTransDur.text()) #-----------QLCD---------------# def picCounter(self): nItems = self.getPicCount() self.ui.lcdPictures.display(nItems) #------function for listWidget------# ##right click menu def contextMeunuEvent(self): """this is for right click menu""" self.ui.listWidget.setContextMenuPolicy(QtCore.Qt.CustomContextMenu) self.ui.listWidget.customContextMenuRequested.connect(self.showContextMenu) self.contextMenu = QtGui.QMenu(self) self.actionAdd = self.contextMenu.addAction('Add Slide') self.actionDel = self.contextMenu.addAction('Del Slide') self.solidColor= self.contextMenu.addAction('Pure Color') self.actionAdd.triggered.connect(self.addSlide) self.actionDel.triggered.connect(self.deleteSlide) self.solidColor.triggered.connect(self.colorDialog) def showContextMenu(self, pos): self.contextMenu.move(self.pos() + pos) self.contextMenu.show() ##get the item number in listWidget def getPicCount(self): return self.ui.listWidget.count() ##add slides def addPixmap(self, pixmap): item = QListWidgetItem() icon = QIcon(pixmap) item.setIcon(icon) self.ui.listWidget.addItem(item) def _addFileToList(self, filename): if not filename.isEmpty(): pixmap = QtGui.QPixmap(filename) pixmap = pixmap.scaled(200,140) self.addPixmap(pixmap) self.picCounter() def addSlide(self): files = QtGui.QFileDialog.getOpenFileNames(self, 'Add slide', os.path.expanduser("~"), "Image Files (*.png *.jpg *.bmp *.jpeg)") files = files[:MAX_COUNT] #limit the max count for f in files: self._addFileToList(f) self.preview.imgList.insert(0,f) return files ##delete slides def deleteSlide(self): selectedList = self.ui.listWidget.selectedItems() for i in selectedList: index = self.ui.listWidget.row(i) self.ui.listWidget.takeItem(index) self.preview.imgList.removeAt(index) self.picCounter() #------------exact dialogs----------------# def accountDialog(self): myapp = AccountDialog(parent=self) myapp.show() def loginDialog(self): if len(self.preview.imgList) < 1: self.ui.statusbar.showMessage('Error: one picture at lest!') notify.Notify('Error: one picture at lest!') return self.login.show() self.login.imgList = list(self.preview.imgList) self.login.slideDur = self.getSlideDur() self.login.transInterval = self.getTransDur() def aboutDialog(self): myapp = AboutDialog(parent=self) myapp.show() def previewDialog(self): self.preview.curIndex = 0 if len(self.preview.imgList) < 1: self.ui.statusbar.showMessage("Error: no picture to be previewed!!!") notify.Notify('Error: no picture to be previewed!!!!') return self.preview.show() self.preview.setImage() def colorDialog(self): col = QtGui.QColorDialog.getColor() cname = col.name() pixmap = QPixmap(200,140) pixmap = QPixmap(self.width,self.height) pixmap.fill(QColor(cname)) save_name = conf.DIRS.get('colorDir', os.path.expanduser("~/.gwaller/colors")) + '/' + cname + '.png' if not os.path.exists(save_name): pixmap.save(save_name) self._addFileToList(save_name) self.preview.imgList.insert(0, save_name) return save_name def downloadDialog(self): curItem = self.ui.comboxPlugin.currentIndex() fname = '' if curItem == 1: link, fname = bing.download() save_name = conf.DIRS.get('bingDir', os.path.expanduser('~/.gwaller/bing')) + '/' + fname if not os.path.exists(save_name): urllib.urlretrieve(link, save_name) save_name = QtCore.QString(save_name) self._addFileToList(save_name) self.preview.imgList.insert(0, save_name) return save_name def uploadDialog(self): curItem = self.ui.comboxDiandian.currentIndex() if curItem == 0: return if len(self.preview.imgList) < 1: self.ui.statusbar.showMessage("Error: no picture to be uploaded!!!") notify.Notify('Error: no picture to be uploaded!!!') return self.dlg_upload.pbar.reset() self.dlg_upload.show() self.dlg_upload.post_type = curItem self.dlg_upload.imgList = self.preview.imgList #-----------open link in browser----------# def openHelpPage(self): openLink(__help_link__) def openSoftwarePage(self): openLink(__software_link__)