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:
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.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_())