PyQt5, QTextEdit, QFileDialog, Notepad Project

Kategori: Python , 10 Eylül 2019 , JanFranco


Textbox oluşturmayı görmüştük. Textbox sadece bir satır barındırır. Çoklu satır için QTextEdit sınıfını kullanabiliriz. Dosya işlemleri için ise QFileDialog sınıfını kullanarak kullanıcıya dosya seçtirebilir, kaydettirebiliriz. Bu objeler ile bir Notepad uygulaması yapalım:


import sys
import os
from PyQt5.QtWidgets import QWidget, QApplication, QPushButton, QHBoxLayout, QTextEdit, QVBoxLayout, QFileDialog


class Notepad(QWidget):
    def __init__(self):
        super().__init__()
        self.init_ui()

    def init_ui(self):
        self.txt_area_txt_edit = QTextEdit("")
        self.clear_button = QPushButton("Clear")
        self.open_button = QPushButton("Open File")
        self.save_button = QPushButton("Save File")

        h_box = QHBoxLayout()
        h_box.addWidget(self.clear_button)
        h_box.addWidget(self.open_button)
        h_box.addWidget(self.save_button)

        v_box = QVBoxLayout()
        v_box.addLayout(h_box)
        v_box.addWidget(self.txt_area_txt_edit)

        self.setLayout(v_box)
        self.clear_button.clicked.connect(self.clear)
        self.open_button.clicked.connect(self.open_file)
        self.save_button.clicked.connect(self.save_file)
        self.setWindowTitle("Notepad")
        self.show()

    def clear(self):
        self.txt_area_txt_edit.clear()

    def open_file(self):
        file_name = QFileDialog.getOpenFileName(self, "Open File", os.getenv("HOME"))
        with open(file_name[0], "r") as file:
            self.txt_area_txt_edit.setText(file.read())

    def save_file(self):
        file_name = QFileDialog.getSaveFileName(self, "Save File", os.getenv("HOME"))
        with open(file_name[0], "w") as file:
            file.write(self.txt_area_txt_edit.toPlainText())


if __name__ == "__main__":
    app = QApplication(sys.argv)
    notepad = Notepad()
    sys.exit(app.exec_())
Ezberleyecek duruma geldik, tek tek açıklamayacağım fakat QFileDialog sınıfının nasıl kullanıldığından bahsedeyim. getOpenFileName methodu ile kullanıcıya dosya seçtirebiliriz. Method seçilen dosyanın yolunu return eder. Parametre olarak self, buton yazısını göndermeliyiz. Ekstra olarak ilk gösterilecek yerin neresi olduğunu belirtebiliriz. getSaveFileName methodu ile dosyanın nereye kaydedileceği bilgisini kullanıcıdan alabiliriz. PyQt5 QTextEdit QFileDialog Notepad


Sonraki Yazı: PyQt5, Notepad Application with Menu
Yorumlar

Henüz bir yorum bulunmuyor.
Yorum bırakın