Miojo Notepad 0.3
Publicado por Artur Gaspar (última atualização em 08/01/2010)
[ Hits: 5.724 ]
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
hicon - Criador de ícones desktop e aplicações do Gnome
Crie alias para as tarefas que possuam longas linhas de comando - bash e zsh
Criando um gateway de internet com o Debian
Configuração básica do Conky para mostrar informações sobre a sua máquina no Desktop
Aprenda a criar músicas com Inteligência Artificial usando Suno AI
Entendendo o que é URI, URL, URN e conhecendo as diferenças entre POST e GET
Criando um Pen Drive Bootável no Linux
Instalando Discord no Fedora 40
Instalando Discord no Ubuntu 24.04 LTS
Como instalar o XFCE4-terminal na sua distribuição Linux e integrá-lo ao sistema
Como instalar o Tilix Terminal no Gnome e usá-lo como menu drop-down ao estilo Quake
problemas com artefatos na instalação (20)
Google chrome e opera fechando (1)
Alguém do ramo de educação por aqui? (7)
Como instalar/atua... o Ubuntu sem formatar o HD? [RESOLVIDO] (3)