Miojo Notepad 0.3
Publicado por Artur Gaspar (última atualização em 08/01/2010)
[ Hits: 6.079 ]
Download miojo-notepad-0.3.tar.gz
Um pequeno editor de textos em Python/PyQt4. Requer Python 2.6, PyQt4 e KDE (para o instalador). Descompacte em uma pasta e execute o install.sh
#!/usr/bin/python
# -*- coding: iso-8859-15 -*-
import sys, codecs
from PyQt4 import QtGui, QtCore
class Notepad(QtGui.QMainWindow):
def __init__(self):
QtGui.QMainWindow.__init__(self)
self.resize(350, 250)
self.setWindowTitle('Miojo Notepad')
caixa_texto = QtGui.QTextEdit()
self.setCentralWidget(caixa_texto)
self.setWindowIcon(QtGui.QIcon('/usr/share/pixmaps/miojo.jpg'))
botao_abrir = QtGui.QAction(QtGui.QIcon('/usr/share/icons/default.kde4/32x32/actions/document-open.png'), 'Abrir', self)
botao_abrir.setShortcut('Ctrl+O')
botao_abrir.setStatusTip('Abre um arquivo')
botao_salvar = QtGui.QAction(QtGui.QIcon('/usr/share/icons/default.kde4/32x32/actions/document-save.png'), 'Salvar', self)
botao_salvar.setShortcut('Ctrl+S')
botao_salvar.setStatusTip('Salva o arquivo aberto')
botao_fechar = QtGui.QAction(QtGui.QIcon('/usr/share/icons/default.kde4/32x32/actions/application-exit.png'), 'Fechar', self)
botao_fechar.setShortcut('Ctrl+Q')
botao_fechar.setStatusTip('Fecha')
self.statusBar()
menubar = self.menuBar()
menu = menubar.addMenu('&Arquivo')
menu.addAction(botao_abrir)
menu.addAction(botao_salvar)
menu.addSeparator()
menu.addAction(botao_fechar)
toolbar = self.addToolBar('Barra de Ferramentas')
toolbar.addAction(botao_abrir)
toolbar.addAction(botao_salvar)
self.watcher = QtCore.QFileSystemWatcher(self)
self.connect(botao_fechar, QtCore.SIGNAL('triggered()'), QtCore.SLOT('close()'))
self.connect(botao_abrir, QtCore.SIGNAL('triggered()'), self.abrir)
self.connect(botao_fechar, QtCore.SIGNAL('triggered()'), self.salvar)
self.connect(caixa_texto, QtCore.SIGNAL("textChanged()"), self.habilita_salvar)
self.connect(self.watcher, QtCore.SIGNAL("fileChanged(const QString&)"), self.arquivo_alterado)
def msgbox(self, li = [], texto = ""):
mensagem = QtGui.QMessageBox(self)
mensagem.setText(texto)
for i in range(0, len(li)):
mensagem.addButton(li[int(i)], QtGui.QMessageBox.ActionRole)
mensagem.exec_()
self.resposta = mensagem.clickedButton().text()
def abrir(self):
self.resposta = False
SALVAR = "Salvar"
DESCARTAR = "Descartar"
CANCELAR = "Cancelar"
if self.botao_salvar.isEnabled() and self.nomearquivo:
msgbox(li = [SALVAR, DESCARTAR, CANCELAR], texto = "O documento '" + str(self.nomearquivo) + "' foi modificado.\n Deseja salvar as mudanças ou descartá-las?", titulo = "Miojo Notepad")
if self.resposta == SALVAR:
self.salvar
if self.resposta != CANCELAR:
try:
self.arquivo = QtGui.QFileDialog(self)
self.nomearquivo = self.arquivo.getOpenFileName()
self.texto = codecs.open(self.nomearquivo, 'r', 'utf-8').read()
self.ui.caixa_texto.setPlainText(self.texto)
self.ui.botao_salvar.setEnabled(False)
self.watcher.addPath(self.nomearquivo)
except:
pass
def salvar(self):
textow = codecs.open(self.nomearquivo, 'w', 'utf-8')
textow.write(self.ui.caixa_texto.toPlainText())
textow.close
self.ui.botao_salvar.setEnabled(False)
def habilita_salvar(self):
self.ui.botao_salvar.setEnabled(True)
def arquivo_alterado(self):
self.resposta = False
SOBREESCREVER = "Sobreescrever"
IGNORAR = "Ignorar"
RECARREGAR = "Recarregar"
msgbox(li = [SOBREESCREVER, IGNORAR, RECARREGAR], texto = "O documento '" + str(self.nomearquivo) + "' foi modificado por outro programa.\n O que você deseja fazer?", titulo = "Miojo Notepad")
if self.resposta == SOBREESCREVER:
self.salvar
elif resposta == RECARREGAR:
self.ui.caixa_texto.setPlainText(self.texto)
self.ui.botao_salvar.setEnabled(False)
app = QtGui.QApplication(sys.argv)
main = Notepad()
main.show()
sys.exit(app.exec_())
Leitor de arquivo via linha de comandoEs
Organizando suas músicas com Python
IA Turbina o Desktop Linux enquanto distros renovam forças
Como extrair chaves TOTP 2FA a partir de QRCODE (Google Authenticator)
Linux em 2025: Segurança prática para o usuário
Desktop Linux em alta: novos apps, distros e privacidade marcam o sábado
IA chega ao desktop e impulsiona produtividade no mundo Linux
Atualizando o Fedora 42 para 43
Como saber se o seu e-mail já teve a senha vazada?
Como descobrir se a sua senha já foi vazada na internet?
Programa fora de escala na tela do pc (33)
Eu queria adicionar a incon do wifi e deixa transparente no fluxbox no... (0)









