[PYTHON] Ich habe mit PyQt einen einfachen Texteditor erstellt

Ich habe mit PyQt einen einfachen Texteditor erstellt.

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

Ich habe mit PyQt einen einfachen Texteditor erstellt
Ich habe ein ○ ✕ Spiel mit TensorFlow gemacht
Ich habe eine Stoppuhr mit tkinter mit Python gemacht
Ich habe versucht, Azure Speech to Text zu verwenden.
Ich habe versucht, Text mit TensorFlow zu klassifizieren
Ich habe eine Web-API erstellt
Ich habe versucht, mit Python einen regulären Ausdruck von "Zeit" zu erstellen
Ich habe versucht, mit Python einen regulären Ausdruck von "Datum" zu erstellen
[Python] Ich habe versucht, mit argparse ein einfaches Programm zu erstellen, das in der Befehlszeile funktioniert
Ich habe versucht, einen "verdammt großen Literaturkonverter" zu machen.
Ich habe versucht, ein Konfigurationsdiagramm mit Diagrammen zu zeichnen
Ich habe eine einfache Mail-Sendeanwendung mit tkinter von Python erstellt
Ich habe versucht, eine verdächtige Person mithilfe von Geolonia-Adressdaten schnell zu einem MAP zu machen
Ich habe versucht, eine einfache Bilderkennungs-API mit Fast API und Tensorflow zu erstellen
Ich habe Watson Voice Authentication (Speech to Text) ausprobiert.
Ich habe versucht, [eine bestimmte Aufgabe] mit einem Raspeltorte zu automatisieren
[Git] Ich habe versucht, anhand eines konkreten Beispiels zu verstehen, wie man Git Stash verwendet.
Ich habe versucht, mit Kendra, das bei re: Invent 2019 angekündigt wurde, sofort einen Befehl zum Durchsuchen der Dokumentensuche auszuführen
Ich habe versucht, mit OpenCV eine Bewegungserkennungsüberwachungskamera mit einer WEB-Kamera mit Raspberry Pi herzustellen
Ich habe versucht, mit Pandas eine Pferderenn-Datenbank zu erstellen
Ich habe versucht, einen einfachen Kredit-Score mit logistischer Regression zu erstellen.
Ich habe versucht, ein System zu erstellen, das nur gelöschte Tweets abruft
[Python] Ich habe versucht, eine stabile Sortierung zu implementieren
[3.] Ich habe versucht, mit Python ein bestimmtes Authenticator-ähnliches Tool zu erstellen
Ich habe versucht, mit Selenium und Python einen regelmäßigen Ausführungsprozess durchzuführen
Ich habe versucht, mit Boto3 eine Liste der AMI-Namen zu erhalten
Ich habe versucht, mit Python eine 2-Kanal-Post-Benachrichtigungsanwendung zu erstellen
[4.] Ich habe versucht, mit Python ein bestimmtes Authenticator-ähnliches Tool zu erstellen
[Python] Einfaches Japanisch ⇒ Ich habe versucht, ein englisches Übersetzungswerkzeug zu erstellen
[1.] Ich habe versucht, mit Python ein bestimmtes Authenticator-ähnliches Tool zu erstellen
Ich habe versucht, Jojo mit LSTM ein seltsames Zitat zu machen
Ich habe versucht, mit Go einen exklusiven Kontrollmechanismus zu erstellen
Ich habe versucht, einen Linebot zu erstellen (Vorbereitung)
Ich habe versucht, ○ ✕ mit TensorFlow zu spielen
Ich habe versucht, mit einer Schildkröte eine Linie zu ziehen
Ich habe versucht, pipenv zu verwenden, machen Sie sich also eine Notiz
Ich habe versucht, eine Gesichtsdiagnose-KI für professionelle Golferinnen zu erstellen ①
Ich habe versucht, eine Gesichtsdiagnose-KI für professionelle Golferinnen zu erstellen ②
Ich habe das Schaben mit Selen gelernt, um ein Vorhersagemodell für Pferderennen zu erstellen.
Ich habe versucht, "Sakurai-san" LINE BOT mit API Gateway + Lambda zu erstellen
Ich habe versucht, mit Raspeye 4 (Python Edition) ein signalähnliches Signal zu erzeugen.
Ich habe versucht, eine Clusteranalyse von Kunden anhand von Kaufdaten durchzuführen
Ich habe ein Beispiel für den Zugriff auf Salesforce mit Python und Bottle erstellt
Ich habe versucht, einen URL-Verkürzungsdienst mit AWS CDK serverlos zu machen
Ich möchte eine Webanwendung mit React und Python Flask erstellen
Ich möchte Matplotlib zu einem dunklen Thema machen
Ich habe versucht, eine Super-Resolution-Methode / ESPCN zu erstellen
Ich habe versucht, eine Super-Resolution-Methode / SRCNN build zu erstellen
Ich habe versucht, WAV-Dateien mit Pydub zu synthetisieren.
Ich möchte ein Spiel mit Python machen
Ich habe versucht, KI für Smash Bra zu machen
Ich habe versucht, Pythonect, eine Programmiersprache für den Datenfluss, zu verwenden.
Ich habe versucht, eine CSV-Datei mit Python zu lesen
Beispiel zum Zeichnen einer einfachen Uhr mit ebiten
Ich las "Wie man ein Hacking Lab macht"