Not : sudo apt install python3-pyqt5 -y paketini yüklemeniz gerekebilir . Bu paket eksik olduğunda . Uygulamayı tıklarsın hiç tepki vermez . Çalışmaz . Öyle olursa bu paketi kurun .
1 : Belgeler içerisine Yeni Metin Belgesi açın . İsimi TurnOff.py olsun
İçine Aşağıdaki kodları yapıştırın .
import sys
from PyQt5.QtWidgets import QApplication, QWidget, QLabel, QPushButton, QLineEdit, QVBoxLayout, QMessageBox
from PyQt5.QtCore import QTimer, Qt
from PyQt5.QtGui import QFont, QIntValidator
import os
class TurnOffApp(QWidget):
def __init__(self):
super().__init__()
self.setWindowTitle("TurnOff")
self.setGeometry(500, 200, 420, 350)
self.setStyleSheet("background-color: #2c3e50;") # Koyu arka plan
self.remaining_seconds = 0
layout = QVBoxLayout()
# Saat/Dakika girişleri
tk_label_hours = QLabel("Saat:")
tk_label_hours.setFont(QFont("Arial", 12, QFont.Bold))
tk_label_hours.setStyleSheet("color: #ecf0f1;")
layout.addWidget(tk_label_hours, alignment=Qt.AlignCenter)
self.entry_hours = QLineEdit()
self.entry_hours.setValidator(QIntValidator(0,24))
self.entry_hours.setPlaceholderText("Saat")
self.entry_hours.setFixedWidth(80)
self.entry_hours.setStyleSheet("background-color: white; color: black; font-size: 12pt;")
layout.addWidget(self.entry_hours, alignment=Qt.AlignCenter)
tk_label_minutes = QLabel("Dakika:")
tk_label_minutes.setFont(QFont("Arial", 12, QFont.Bold))
tk_label_minutes.setStyleSheet("color: #ecf0f1;")
layout.addWidget(tk_label_minutes, alignment=Qt.AlignCenter)
self.entry_minutes = QLineEdit()
self.entry_minutes.setValidator(QIntValidator(0,59))
self.entry_minutes.setPlaceholderText("Dakika")
self.entry_minutes.setFixedWidth(80)
self.entry_minutes.setStyleSheet("background-color: white; color: black; font-size: 12pt;")
layout.addWidget(self.entry_minutes, alignment=Qt.AlignCenter)
# Başlat butonu
self.start_button = QPushButton("Başlat")
self.start_button.setStyleSheet(
"background-color: #27ae60; color: white; font-weight: bold; font-size: 14pt; padding: 12px; border-radius: 6px;")
self.start_button.setFixedWidth(150)
self.start_button.clicked.connect(self.start_timer)
layout.addWidget(self.start_button, alignment=Qt.AlignCenter)
# İptal Et butonu
self.cancel_button = QPushButton("İptal Et")
self.cancel_button.setStyleSheet(
"background-color: #ff0000; color: white; font-weight: bold; font-size: 14pt; padding: 12px; border-radius: 6px;")
self.cancel_button.setFixedWidth(150)
self.cancel_button.clicked.connect(self.cancel_timer)
layout.addWidget(self.cancel_button, alignment=Qt.AlignCenter)
# Durum etiketi
self.label_status = QLabel("Durum: Beklemede")
self.label_status.setStyleSheet("color: #ecf0f1; font-size: 12pt;")
self.label_status.setAlignment(Qt.AlignCenter)
layout.addWidget(self.label_status)
# Geri sayım etiketi
self.label_time = QLabel("00:00:00")
self.label_time.setFont(QFont("Arial", 36, QFont.Bold))
self.label_time.setStyleSheet("color: #ff0000;")
self.label_time.setAlignment(Qt.AlignCenter)
layout.addWidget(self.label_time)
self.setLayout(layout)
# Timer
self.timer = QTimer()
self.timer.timeout.connect(self.update_timer)
def start_timer(self):
try:
hours = int(self.entry_hours.text() or 0)
minutes = int(self.entry_minutes.text() or 0)
except ValueError:
QMessageBox.warning(self, "Hata", "Saat ve dakika sayıları geçerli olmalıdır!")
return
self.remaining_seconds = hours*3600 + minutes*60
if self.remaining_seconds <= 0:
QMessageBox.warning(self, "Hata", "Süre 0 olamaz!")
return
if self.remaining_seconds > 24*3600:
QMessageBox.warning(self, "Hata", "Maksimum süre 24 saat!")
return
self.label_status.setText(f"Zamanlayıcı başladı: {hours} saat {minutes} dakika")
self.timer.start(1000)
def update_timer(self):
if self.remaining_seconds <= 0:
self.timer.stop()
self.label_status.setText("Bilgisayar kapanıyor...")
os.system("systemctl poweroff")
return
hours = self.remaining_seconds // 3600
mins = (self.remaining_seconds % 3600) // 60
secs = self.remaining_seconds % 60
self.label_time.setText(f"{hours:02d}:{mins:02d}:{secs:02d}")
self.remaining_seconds -= 1
def cancel_timer(self):
self.timer.stop()
self.remaining_seconds = 0
self.label_time.setText("00:00:00")
self.label_status.setText("Kapanma iptal edildi")
self.entry_hours.clear()
self.entry_minutes.clear()
if __name__ == "__main__":
app = QApplication(sys.argv)
window = TurnOffApp()
window.show()
sys.exit(app.exec_())
2 : Masaüstüne Yeni Metin Belgesi açıp isimi TurnOff.Desktop olsun .
İçine Aşağıdaki Kodlar yazalım . Kullanıcı Adı Yazan Kısıma Kendi Kullanıcı adınızı Yazın
[Desktop Entry]
Name=Otmatik Kapatma Zamanlayıcı
Comment=Bilgisayarı zamanlayıcı ile kapat
Exec=python3 /home/KENDİ_KULLANICI_ADINIZ/Belgeler/TurnOff.py
Icon=system-shutdown
Terminal=false
Type=Application
Categories=Utility;
ve oluşan dosyanın üzerine sağ tıklayıp Başlamasına izin ver işaretleyin .
Başlamasına izin ver seçeneği çıkmazsa masaüstündeki dosyayı komple silip tekrar 2. Aşamadan başlayın .





