[PYTHON] J'ai créé un éditeur de texte simple en utilisant PyQt

J'ai créé un éditeur de texte simple en utilisant PyQt.

Simpletextedit.py



# -*- coding:utf-8 -*-
# Very Simple Text Editor

# Initial setting & import library
import sys, codecs
from PyQt4 import QtGui, QtCore, QtWebKit
app = QtGui.QApplication(sys.argv)


# Main Window
class CustomMainWindow(QtGui.QMainWindow):
    def __init__(self, parent=None):
        super(CustomMainWindow, self).__init__(parent)

	# Set Window Style
        self.resize(800, 500)
        self.setWindowTitle("SimpleTextEditor")
        self.setStyleSheet("background-color: white")
	# Enable file drop
        self.setAcceptDrops(True)
	# Add text editer
        self.addtextedit()


        # Tool Bar
        self.file_tool = self.addToolBar("File")
        self.edit_tool = self.addToolBar("Exit")

        newbutton = self.file_tool.addAction("New...")
	self.connect(newbutton, QtCore.SIGNAL('triggered()'), self.addtextedit)

        openbutton = self.file_tool.addAction("Open...")
	self.connect(openbutton, QtCore.SIGNAL('triggered()'), self.showFileDialog)

        closebutton = self.edit_tool.addAction("Save...")
	self.connect(closebutton, QtCore.SIGNAL('triggered()'), self.saveFile)

        closebutton = self.edit_tool.addAction("Close...")
	self.connect(closebutton, QtCore.SIGNAL('triggered()'), QtCore.SLOT('close()'))

        # Add MenuBar
        filemenu = self.menuBar()
        filemenu = filemenu.addMenu('&File')
	filemenu.addMenu("New...")
        filemenu.addMenu("Open...")
        filemenu.addMenu("Save...")

	# Add Open menu
        a = QtGui.QAction('Open', self)
        a.setShortcut('Ctrl+o')
        self.connect(a, QtCore.SIGNAL('triggered()'),
                     self.showFileDialog)
        filemenu.addAction(a)
        
        # Add Exit menu
        a = QtGui.QAction('Exit', self)
        a.setShortcut('Ctrl+w')
        self.connect(a, QtCore.SIGNAL('triggered()'),
                     QtCore.SLOT('close()'))
        filemenu.addAction(a)

	# Add Save menu
        a = QtGui.QAction('Save', self)
        a.setShortcut('Ctrl+s')
        self.connect(a, QtCore.SIGNAL('triggered()'),
                     self.saveFile)
        filemenu.addAction(a)

    # Setting Dialog
    def showFileDialog(self):
        # Add text Editer
        self.textEdit = QtGui.QTextEdit()
        self.setCentralWidget(self.textEdit)

        fname = QtGui.QFileDialog.getOpenFileName(self, 'Open', '.')
        f = open(unicode(fname))
        self.textEdit.setText(f.read())

    # Accept drag of file
    def dragEnterEvent(self, e):
        print("c")
        if e.mimeData().hasUrls():
            e.accept()
        else:
            e.ignore()

    # Drop processing
    def dropEvent(self, e):

        # Add text Editer
        self.textEdit = QtGui.QTextEdit()
        self.setCentralWidget(self.textEdit)

	# Open drop files
        for u in e.mimeData().urls():
            p = unicode(u.toLocalFile())
	    print ("Open file at " + p)
            f = open(unicode(p))
            self.textEdit.setText(f.read())

    # add save file dialog
    def saveFile(self):
        savename = unicode(QtGui.QFileDialog.getSaveFileName(self, 'Save file', ''))
        fname = codecs.open(savename,'w','utf-8')
	fname.write(self.textEdit.toPlainText())

    # add Central Widget => textedit
    def addtextedit(self):
	# Add text Editer
        self.textEdit = QtGui.QTextEdit()
        self.setCentralWidget(self.textEdit)

# Create instance
def main():
    main = CustomMainWindow()
    main.show()
    app.exec_()

if __name__ == '__main__':
    main()

Recommended Posts

J'ai créé un éditeur de texte simple en utilisant PyQt
J'ai créé un jeu ○ ✕ avec TensorFlow
J'ai fait un chronomètre en utilisant tkinter avec python
J'ai essayé d'utiliser Azure Speech to Text.
J'ai essayé de classer le texte en utilisant TensorFlow
J'ai créé une API Web
J'ai essayé de créer une expression régulière de "temps" en utilisant Python
J'ai essayé de créer une expression régulière de "date" en utilisant Python
[Python] J'ai essayé de créer un programme simple qui fonctionne sur la ligne de commande en utilisant argparse
J'ai essayé de faire un "putain de gros convertisseur de littérature"
J'ai essayé de dessiner un diagramme de configuration à l'aide de diagrammes
J'ai fait une application d'envoi de courrier simple avec tkinter de Python
J'ai essayé de faire MAP rapidement une personne suspecte en utilisant les données d'adresse Geolonia
J'ai essayé de créer une API de reconnaissance d'image simple avec Fast API et Tensorflow
J'ai essayé l'authentification vocale Watson (Speech to Text)
J'ai essayé d'automatiser [une certaine tâche] à l'aide d'une tarte à la râpe
[Git] J'ai essayé de faciliter la compréhension de l'utilisation de git stash en utilisant un exemple concret.
J'ai essayé de créer une commande de recherche de documents slack à l'aide de Kendra annoncée immédiatement à re: Invent 2019
J'ai essayé de créer une caméra de surveillance à détection de mouvement avec OpenCV en utilisant une caméra WEB avec Raspberry Pi
J'ai essayé d'obtenir une base de données sur les courses de chevaux en utilisant Pandas
J'ai essayé de créer un pointage de crédit simple avec régression logistique.
J'ai essayé de créer un système qui ne récupère que les tweets supprimés
[Python] J'ai essayé d'implémenter un tri stable, alors notez
[3ème] J'ai essayé de créer un certain outil de type Authenticator avec python
J'ai essayé de faire un processus d'exécution périodique avec Selenium et Python
J'ai essayé d'obtenir une liste de noms AMI en utilisant Boto3
J'ai essayé de créer une application de notification de publication à 2 canaux avec Python
[4th] J'ai essayé de créer un certain outil de type Authenticator avec python
[Python] Japonais simple ⇒ J'ai essayé de créer un outil de traduction en anglais
[1er] J'ai essayé de créer un certain outil de type Authenticator avec python
J'ai essayé de faire une étrange citation pour Jojo avec LSTM
J'ai essayé de créer un mécanisme de contrôle exclusif avec Go
J'ai essayé de créer un linebot (préparation)
J'ai essayé de jouer au jeu ○ ✕ en utilisant TensorFlow
J'ai essayé de dessiner une ligne en utilisant une tortue
J'ai essayé d'utiliser pipenv, alors prenez note
J'ai essayé de faire un diagnostic de visage AI pour les golfeuses professionnelles ①
J'ai essayé de faire un diagnostic de visage AI pour les golfeuses professionnelles ②
J'ai appris le grattage à l'aide de sélénium pour créer un modèle de prédiction de courses de chevaux.
J'ai essayé de créer un LINE BOT "Sakurai-san" avec API Gateway + Lambda
J'ai essayé de faire un signal avec Raspeye 4 (édition Python)
J'ai essayé d'effectuer une analyse de cluster de clients à l'aide des données d'achat
J'ai créé un exemple pour accéder à Salesforce en utilisant Python et Bottle
J'ai essayé de créer un service de raccourcissement d'url sans serveur avec AWS CDK
Je souhaite créer une application Web en utilisant React et Python flask
Je veux faire de matplotlib un thème sombre
J'ai essayé de créer une méthode de super résolution / ESPCN
J'ai essayé de créer une méthode de super résolution / SRCNN ①
J'ai essayé de synthétiser des fichiers WAV en utilisant Pydub.
Je veux faire un jeu avec Python
J'ai essayé de faire de l'IA pour Smash Bra
J'ai essayé d'utiliser Pythonect, un langage de programmation de flux de données.
J'ai essayé de lire un fichier CSV en utilisant Python
Exemple pour dessiner une horloge simple en utilisant ebiten
J'ai lu "Comment créer un laboratoire de piratage"