Path: blob/master/PyQt5 - Arayüz Geliştirme/Videolarda Kullanılan Kodlar/notepad.py
765 views
import sys1import os23from PyQt5.QtWidgets import QWidget,QApplication,QTextEdit,QLabel,QPushButton,QVBoxLayout,QFileDialog,QHBoxLayout45from PyQt5.QtWidgets import QAction,qApp,QMainWindow67class Notepad(QWidget):8def __init__(self):910super().__init__()1112self.init_ui()13def init_ui(self):1415self.yazi_alani = QTextEdit()1617self.temizle = QPushButton("Temizle")18self.ac = QPushButton("Aç")19self.kaydet = QPushButton("Kaydet")2021h_box = QHBoxLayout()2223h_box.addWidget(self.temizle)24h_box.addWidget(self.ac)25h_box.addWidget(self.kaydet)2627v_box = QVBoxLayout()2829v_box.addWidget(self.yazi_alani)3031v_box.addLayout(h_box)3233self.setLayout(v_box)3435self.setWindowTitle("NotePad")36self.temizle.clicked.connect(self.yaziyi_temizle)37self.ac.clicked.connect(self.dosya_ac)38self.kaydet.clicked.connect(self.dosya_kaydet)3940414243def yaziyi_temizle(self):44self.yazi_alani.clear()4546def dosya_ac(self):47dosya_ismi = QFileDialog.getOpenFileName(self,"Dosya Aç",os.getenv("HOME"))4849with open(dosya_ismi[0],"r") as file:50self.yazi_alani.setText(file.read())5152def dosya_kaydet(self):53dosya_ismi = QFileDialog.getSaveFileName(self,"Dosya Kaydet",os.getenv("HOME"))5455with open(dosya_ismi[0],"w") as file:5657file.write(self.yazi_alani.toPlainText())5859class Menu(QMainWindow):6061def __init__(self):6263super().__init__()646566self.pencere = Notepad()6768self.setCentralWidget(self.pencere)697071self.menuleri_olustur()72def menuleri_olustur(self):7374menubar = self.menuBar()7576dosya = menubar.addMenu("Dosya")7778dosya_ac = QAction("Dosya Aç",self)79dosya_ac.setShortcut("Ctrl+O")8081dosya_kaydet = QAction("Dosya Kaydet",self)8283dosya_kaydet.setShortcut("Ctrl+S")8485temizle = QAction("Dosyayı Temizle",self)86temizle.setShortcut("Ctrl+D")8788cikis = QAction("Çıkış",self)8990cikis.setShortcut("Ctrl+Q")9192dosya.addAction(dosya_ac)93dosya.addAction(dosya_kaydet)94dosya.addAction(temizle)95dosya.addAction(cikis)9697dosya.triggered.connect(self.response)9899100self.setWindowTitle("Metin Editörü")101102self.show()103104def response(self,action):105106if action.text() == "Dosya Aç":107self.pencere.dosya_ac()108109elif action.text() == "Dosya Kaydet":110self.pencere.dosya_kaydet()111elif action.text() == "Dosyayı Temizle":112self.pencere.yaziyi_temizle()113114elif action.text() == "Çıkış":115qApp.quit()116117118119120121122123124app = QApplication(sys.argv)125126menu = Menu()127128129sys.exit(app.exec_())130131