Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
mustafamuratcoskun
GitHub Repository: mustafamuratcoskun/Sifirdan-Ileri-Seviyeye-Python-Programlama
Path: blob/master/PyQt5 - Arayüz Geliştirme/Videolarda Kullanılan Kodlar/notepad.py
765 views
1
import sys
2
import os
3
4
from PyQt5.QtWidgets import QWidget,QApplication,QTextEdit,QLabel,QPushButton,QVBoxLayout,QFileDialog,QHBoxLayout
5
6
from PyQt5.QtWidgets import QAction,qApp,QMainWindow
7
8
class Notepad(QWidget):
9
def __init__(self):
10
11
super().__init__()
12
13
self.init_ui()
14
def init_ui(self):
15
16
self.yazi_alani = QTextEdit()
17
18
self.temizle = QPushButton("Temizle")
19
self.ac = QPushButton("Aç")
20
self.kaydet = QPushButton("Kaydet")
21
22
h_box = QHBoxLayout()
23
24
h_box.addWidget(self.temizle)
25
h_box.addWidget(self.ac)
26
h_box.addWidget(self.kaydet)
27
28
v_box = QVBoxLayout()
29
30
v_box.addWidget(self.yazi_alani)
31
32
v_box.addLayout(h_box)
33
34
self.setLayout(v_box)
35
36
self.setWindowTitle("NotePad")
37
self.temizle.clicked.connect(self.yaziyi_temizle)
38
self.ac.clicked.connect(self.dosya_ac)
39
self.kaydet.clicked.connect(self.dosya_kaydet)
40
41
42
43
44
def yaziyi_temizle(self):
45
self.yazi_alani.clear()
46
47
def dosya_ac(self):
48
dosya_ismi = QFileDialog.getOpenFileName(self,"Dosya Aç",os.getenv("HOME"))
49
50
with open(dosya_ismi[0],"r") as file:
51
self.yazi_alani.setText(file.read())
52
53
def dosya_kaydet(self):
54
dosya_ismi = QFileDialog.getSaveFileName(self,"Dosya Kaydet",os.getenv("HOME"))
55
56
with open(dosya_ismi[0],"w") as file:
57
58
file.write(self.yazi_alani.toPlainText())
59
60
class Menu(QMainWindow):
61
62
def __init__(self):
63
64
super().__init__()
65
66
67
self.pencere = Notepad()
68
69
self.setCentralWidget(self.pencere)
70
71
72
self.menuleri_olustur()
73
def menuleri_olustur(self):
74
75
menubar = self.menuBar()
76
77
dosya = menubar.addMenu("Dosya")
78
79
dosya_ac = QAction("Dosya Aç",self)
80
dosya_ac.setShortcut("Ctrl+O")
81
82
dosya_kaydet = QAction("Dosya Kaydet",self)
83
84
dosya_kaydet.setShortcut("Ctrl+S")
85
86
temizle = QAction("Dosyayı Temizle",self)
87
temizle.setShortcut("Ctrl+D")
88
89
cikis = QAction("Çıkış",self)
90
91
cikis.setShortcut("Ctrl+Q")
92
93
dosya.addAction(dosya_ac)
94
dosya.addAction(dosya_kaydet)
95
dosya.addAction(temizle)
96
dosya.addAction(cikis)
97
98
dosya.triggered.connect(self.response)
99
100
101
self.setWindowTitle("Metin Editörü")
102
103
self.show()
104
105
def response(self,action):
106
107
if action.text() == "Dosya Aç":
108
self.pencere.dosya_ac()
109
110
elif action.text() == "Dosya Kaydet":
111
self.pencere.dosya_kaydet()
112
elif action.text() == "Dosyayı Temizle":
113
self.pencere.yaziyi_temizle()
114
115
elif action.text() == "Çıkış":
116
qApp.quit()
117
118
119
120
121
122
123
124
125
app = QApplication(sys.argv)
126
127
menu = Menu()
128
129
130
sys.exit(app.exec_())
131