コード例 #1
0
ファイル: start.py プロジェクト: kjpolaszek/js_python
    def __init__(self, parent=None):
        QtGui.QWidget.__init__(self, parent)
	self.text = 'Wybierz wpis \n <----'	
	self.setWindowIcon(QtGui.QIcon('./Icon/diary-no2.png'))        
	self.ui = Ui_editor()
        self.ui.setupUi(self)
	self.index = 0
	self.ui.textEdit.setText(self.text)
	self.ui.actionClear.triggered.connect(self.clear)
	self.ui.actionOpen.triggered.connect(self.file_open)
	self.ui.actionSave.triggered.connect(self.file_save)
	self.ui.actionSave_as.triggered.connect(self.file_save_as)		
	self.ui.actionInfo.triggered.connect(self.ShowAboutPopup)	
	self.ui.actionRemove.triggered.connect(self.remove_file)
	self.ui.actionnew_day.triggered.connect(self.next_day)
	self.ui.actionHelp.triggered.connect(self.Help)	
	self.currentDate = QDate.currentDate()	
	self.today = datetime.date.today().strftime('%d-%m-%Y')
	self.today_full = datetime.date.today().strftime('%A %d %B %Y')
	self.ui.label_date.setText('Dzisiaj jest: '+self.today_full.decode('utf-8'))	
    	self.filemodel = QtGui.QFileSystemModel()
	self.filemodel.setFilter(QtCore.QDir.NoDotAndDotDot | QtCore.QDir.Files)
	self.filemodel.sort(3,1)	
	self.ui.listView.setModel(self.filemodel)	
        root_index = self.filemodel.setRootPath('./Data')	
	self.ui.listView.setRootIndex(root_index)
	self.ui.listView.clicked.connect(self.clicked)
	self.ui.listView.activated.connect(self.clicked) 		
コード例 #2
0
ファイル: start.py プロジェクト: kjpolaszek/js_python
class StartQT4(QtGui.QMainWindow):
    def __init__(self, parent=None):
        QtGui.QWidget.__init__(self, parent)
	self.text = 'Wybierz wpis \n <----'	
	self.setWindowIcon(QtGui.QIcon('./Icon/diary-no2.png'))        
	self.ui = Ui_editor()
        self.ui.setupUi(self)
	self.index = 0
	self.ui.textEdit.setText(self.text)
	self.ui.actionClear.triggered.connect(self.clear)
	self.ui.actionOpen.triggered.connect(self.file_open)
	self.ui.actionSave.triggered.connect(self.file_save)
	self.ui.actionSave_as.triggered.connect(self.file_save_as)		
	self.ui.actionInfo.triggered.connect(self.ShowAboutPopup)	
	self.ui.actionRemove.triggered.connect(self.remove_file)
	self.ui.actionnew_day.triggered.connect(self.next_day)
	self.ui.actionHelp.triggered.connect(self.Help)	
	self.currentDate = QDate.currentDate()	
	self.today = datetime.date.today().strftime('%d-%m-%Y')
	self.today_full = datetime.date.today().strftime('%A %d %B %Y')
	self.ui.label_date.setText('Dzisiaj jest: '+self.today_full.decode('utf-8'))	
    	self.filemodel = QtGui.QFileSystemModel()
	self.filemodel.setFilter(QtCore.QDir.NoDotAndDotDot | QtCore.QDir.Files)
	self.filemodel.sort(3,1)	
	self.ui.listView.setModel(self.filemodel)	
        root_index = self.filemodel.setRootPath('./Data')	
	self.ui.listView.setRootIndex(root_index)
	self.ui.listView.clicked.connect(self.clicked)
	self.ui.listView.activated.connect(self.clicked) 		
	
    def next_day(self):
	file_not_exist = True
	dirname=os.path.join('./Data')
	for f in os.listdir(dirname):
		if f == self.today:
			QtGui.QMessageBox.about(self,'Uwaga !','Dzisiejszy wpis już istnieje'.decode('utf-8'))
			file_not_exist = False
	if file_not_exist:
		plik = codecs.open(os.path.join(dirname,self.today),'w','utf-8')
		plik.write(unicode("Mamy dzisiaj ".decode('utf-8')+str(self.today_full).decode('utf-8')+'\n'))
		plik.close()
		
				
    def clicked(self,index):	
	if self.index <> 0 and self.filename == self.today and isfile(self.filepath) and self.text <> unicode(self.ui.textEdit.toPlainText()) :
	   			self.save()
	self.index = index
	self.filename = self.filemodel.fileName(index)
	self.statusBar().showMessage('Wpis z dnia: %s'.decode('utf-8') %self.filename)  
	self.filepath = self.filemodel.filePath(index)  	
	plik = codecs.open(self.filepath,'r','utf-8')
	self.text = plik.read()
	self.ui.textEdit.setText(self.text)
	plik.close()
    
    def file_open(self):
	filepath = QtGui.QFileDialog.getOpenFileName()
	if isfile(filepath):
	    self.filepath=filepath
	    plik = codecs.open(self.filepath,'r','utf-8')
	    self.text = plik.read()
	    self.ui.textEdit.setText(self.text)
	    plik.close()
	    (filepath, filename) = os.path.split(str(filepath))
	    self.statusBar().showMessage('Otworzony plik: %s'.decode('utf-8') %filename)  
    def save(self):
	    plik = codecs.open(self.filepath,'w','utf-8')
            self.text = self.ui.textEdit.toPlainText()
	    plik.write(unicode(self.text))		
	    plik.close()
    def file_save(self):
       	if self.index == 0:
		self.file_save_as()
	else:
	   if self.filemodel.fileName(self.index) <> self.today:
		QtGui.QMessageBox.about(self,"Tylko do odczytu","Ten wpis jest już tylko do odczytu".decode('utf-8')) 	
	   elif isfile(self.filepath):
	    self.save()
	    self.statusBar().showMessage('Zapisano'.decode('utf-8')) 
	   else:
	    self.file_save_as()
    	    
    def file_save_as(self):
	filepath = QtGui.QFileDialog.getSaveFileName()
	if filepath <> '' :
		self.filepath=filepath        	
		self.save()		
		(filepath, filename) = os.path.split(str(filepath))
		self.statusBar().showMessage('Zapisano jako: %s'.decode('utf-8') %filename)  	    
    
   		
    def clear(self):
	if os.path.getsize(self.filemodel.filePath(self.index)) <> 0:
		reply = QtGui.QMessageBox.question(self, 'Czy na pewno?',
            "Czy na pewno chcesz usunąć zawartość wpisu?".decode('utf-8'),
	    QtGui.QMessageBox.Yes| QtGui.QMessageBox.No, QtGui.QMessageBox.No)
		if reply == QtGui.QMessageBox.Yes :
        		self.text = str('')
			self.ui.textEdit.setText(self.text)
			self.file_save()	
	
    def remove_file(self):
	reply = QtGui.QMessageBox.question(self, 'Czy na pewno?',
            "Czy na pewno chcesz usunąć wpis z dnia %s?".decode('utf-8') %self.filemodel.fileName(self.index), 
		QtGui.QMessageBox.Yes| QtGui.QMessageBox.No,QtGui.QMessageBox.No)
        if reply == QtGui.QMessageBox.Yes:
        	filepath = self.filemodel.filePath(self.index)
		os.remove(filepath)
		self.filepath = ''
		self.text = ''
		self.ui.textEdit.setText(self.text)
    def Help(self):
	QtGui.QMessageBox.about(self, "Pomoc Pamiętnik".decode('utf-8'),
		"""I tu jakiś tekst imformujący o tym jak działa
			


		

		""".decode('utf-8'))
		   
    def ShowAboutPopup(self):		
	QtGui.QMessageBox.about(self, "O programie Pamiętnik".decode('utf-8'),
		"""Program <b>'Pamiętnik'</b>. ver 0.94<BR>
		   Zaprojektowany i stworzony przez:<BR>
		   Karol Polaszek<BR>
		   mail: [email protected]""".decode('utf-8'))

    def closeEvent(self, event):
	if self.ui.textEdit.toPlainText() <> self.text:       
		reply = QtGui.QMessageBox.question(self, 'Czy na pewno?',
            "Czy na pewno chcesz zakończyć bez zapisu?".decode('utf-8'), QtGui.QMessageBox.Cancel|
            QtGui.QMessageBox.Discard | QtGui.QMessageBox.Save,
	    QtGui.QMessageBox.Save)
	
		if reply == QtGui.QMessageBox.Discard:
			event.accept()
		elif reply == QtGui.QMessageBox.Save:
			self.file_save()
			event.accept()
		else:
			event.ignore()