Пример #1
0
    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()
Пример #2
0
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__)