123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186 |
- #!/usr/bin/env python3
- # -*- coding: utf-8 -*-
- from PyQt5.QtWidgets import QDesktopWidget, QSizePolicy, QSpacerItem, QMainWindow, QApplication, QLabel, QWidget, QVBoxLayout, QHBoxLayout, QStackedWidget, QPushButton, QDialog, qApp
- from PyQt5.QtGui import QIcon, QPixmap, QFont
- from PyQt5.QtCore import Qt
- import sys,os, subprocess
- from kutuphane import asamacizimi,hosgeldiniz,klavye,konum,kullanici,disk,bilgi,kurulum,son
- class MerkezPencere(QMainWindow):
- def __init__(self, ebeveyn=None):
- super(MerkezPencere, self).__init__(ebeveyn)
- self.setStyleSheet("font: 11pt Dejavu Sans")
- ##################################
- #Yükleyici için temel değişkenler
- self.toplam_asama_sayisi = 8
- self.bulunulan_asama = 1
- self.s_d = "Türkçe"#secili_dil
- self.d = {}#diller
- self.milis_ayarlar = {}#Milis kurulumu için ayar kaydı
- self.disk = None#disk üzerindeki değişiklikleri uygulamak için sanal olarak kaydediyoruz
- ##################################
- #Yükleyici dilleri tespit ediyor
- self.dil_tespit()
- #Pencere iconumuzu ekledik
- self.setWindowIcon(QIcon("resimler/miliskurlogo.svg"))
- #Penceremize merkez widget tanımladık ve ekledik
- merkez_widget = QWidget()
- self.setCentralWidget(merkez_widget)
- merkez_layout = QVBoxLayout()
- merkez_layout.setContentsMargins(0,0,0,0)
- merkez_widget.setLayout(merkez_layout)
- #Hangi aşamada bulunduğumuzu gösteren bar yukarıya eklendi ve 1.aşama çizildi
- self.asama_label = QLabel()
- merkez_layout.addWidget(self.asama_label)
- self.asama_label.setPixmap(QPixmap(asamacizimi.asama_ciz(self.bulunulan_asama, self.toplam_asama_sayisi)))
- #Asamalarımızı oluşturalım
- self.asamalar = QStackedWidget()
- merkez_layout.addWidget(self.asamalar)
- #ileri ve geri düğmeleri
- dugmeler_kutu = QHBoxLayout()
- dugmeler_kutu.addSpacerItem(QSpacerItem(10, 40, QSizePolicy.Minimum, QSizePolicy.Minimum))
- merkez_layout.addLayout(dugmeler_kutu)
- self.geri_dugme = QPushButton()
- self.geri_dugme.setFont(QFont('SansSerif', 10))
- self.geri_dugme.clicked.connect(self.asama_geri)
- self.geri_dugme.setFixedWidth(150)
- dugmeler_kutu.addWidget(self.geri_dugme)
- dugmeler_kutu.addSpacerItem(QSpacerItem(20,40,QSizePolicy.Expanding,QSizePolicy.Minimum))
- self.ileri_dugme = QPushButton()
- self.ileri_dugme.setFont(QFont('SansSerif', 10))
- self.ileri_dugme.clicked.connect(self.asama_ileri)
- self.ileri_dugme.setFixedWidth(150)
- dugmeler_kutu.addWidget(self.ileri_dugme)
- dugmeler_kutu.addSpacerItem(QSpacerItem(10, 40, QSizePolicy.Minimum, QSizePolicy.Minimum))
- #Aşamalarımızı ekleyelim
- self.asamalar.addWidget(hosgeldiniz.Hosgeldiniz(self))
- self.asamalar.addWidget(klavye.Klavye(self))
- self.asamalar.addWidget(konum.Konum(self))
- self.asamalar.addWidget(kullanici.Kullanici(self))
- self.asamalar.addWidget(disk.Disk(self))
- self.asamalar.addWidget(bilgi.Bilgi(self))
- self.asamalar.addWidget(kurulum.Kurulum(self))
- self.son_asama = son.Son(self)
- self.asamalar.addWidget(self.son_asama)
- self.asama_degistir(self.bulunulan_asama)
- def asama_ileri(self):
- self.bulunulan_asama += 1
- if self.bulunulan_asama == 7:
- self.kurulum_baslat = KurulumBaslat(self)
- self.kurulum_baslat.show()
- else:
- self.asama_degistir(self.bulunulan_asama)
- def asama_geri(self):
- self.bulunulan_asama -= 1
- self.asama_degistir(self.bulunulan_asama)
- def asama_degistir(self,asama):
- self.bulunulan_asama = asama
- if asama == 1:
- self.geri_dugme.setDisabled(True)
- else:
- self.geri_dugme.setDisabled(False)
- if asama == 8:
- self.geri_dugme.setDisabled(True)
- self.ileri_dugme.setText(self.d[self.s_d]["Son"])
- self.ileri_dugme.setDisabled(False)
- if asama == 9:
- if self.son_asama.kapanacak_mi:
- os.system("shutdown -r now")
- else:
- qApp.closeAllWindows()
- else:
- self.asamalar.setCurrentIndex(asama-1)
- self.asama_label.setPixmap(QPixmap(asamacizimi.asama_ciz(self.bulunulan_asama,self.toplam_asama_sayisi)))
- def dil_tespit(self):
- _dil_uzanti="txt"
- diller = os.listdir("diller")
- for dil in diller:
- eklenecek_dil = {}
- if dil.endswith('.' + _dil_uzanti):
- dil_adi = os.path.splitext(dil)[0]
- dosya = open("diller/" + dil,"r")
- okunan = dosya.read()
- dosya.close()
- for satirlar in okunan.split("\n"):
- bol = satirlar.split("::")
- varmi = eklenecek_dil.get(bol[0], "yok")
- if varmi == "yok" and len(bol) == 2:
- eklenecek_dil[bol[0]] = bol[1]
- self.d[dil_adi] = eklenecek_dil
- def komutCalistirFonksiyon(self, komut):
- try:
- out = subprocess.check_output(komut, stderr=subprocess.STDOUT, shell=True, universal_newlines=True)
- return out.replace("\b", "")
- except subprocess.CalledProcessError as e:
- return e.output
- class KurulumBaslat(QDialog):
- def __init__(self, ebeveyn=None):
- super(KurulumBaslat, self).__init__(ebeveyn)
- self.e = ebeveyn
- self.setFixedWidth(400)
- kutu = QVBoxLayout()
- self.setLayout(kutu)
- dugme_kutu = QHBoxLayout()
- kutu.addLayout(dugme_kutu)
- label_icon = QLabel()
- label_icon.setPixmap(QPixmap("resimler/tehlike.svg"))
- label_icon.setFixedSize(50,50)
- dugme_kutu.addWidget(label_icon)
- label = QLabel()
- label.setWordWrap(True)
- label.setText(self.e.d[self.e.s_d]["Devam etmeniz halinde değişiklikler disklere uygulanacaktır. Devam etmek istiyormusunuz?"])
- dugme_kutu.addWidget(label)
- dugme_kutu = QHBoxLayout()
- dugme_kutu.setAlignment(Qt.AlignRight)
- kutu.addLayout(dugme_kutu)
- dugme_tamam = QPushButton()
- dugme_tamam.setFixedWidth(100)
- dugme_tamam.clicked.connect(self.kurulum_baslat)
- dugme_tamam.setText(self.e.d[self.e.s_d]["Devam Et"])
- dugme_kutu.addWidget(dugme_tamam)
- dugme_vazgec = QPushButton()
- dugme_vazgec.setFixedWidth(100)
- dugme_vazgec.clicked.connect(self.vazgec)
- dugme_vazgec.setText(self.e.d[self.e.s_d]["Vazgeç"])
- dugme_kutu.addWidget(dugme_vazgec)
- def kurulum_baslat(self):
- self.e.bulunulan_asama = 7
- self.e.asama_degistir(7)
- QDialog.accept(self)
- def vazgec(self):
- self.e.bulunulan_asama -= 1
- QDialog.accept(self)
- if __name__ == "__main__":
- uygulama = QApplication(sys.argv)
- uygulama.setOrganizationName('Milis Linux')
- uygulama.setApplicationName('Milis Yukleyici')
- merkezPencere = MerkezPencere()
- ekran_yuksekligi = QDesktopWidget().screenGeometry().height()
- if ekran_yuksekligi > 600:
- #Pencere boyutunu 950 ye 600 olarak ayarladık
- merkezPencere.setFixedWidth(950)
- merkezPencere.setFixedHeight(600)
- merkezPencere.show()
- else:
- merkezPencere.showFullScreen()
- sys.exit(uygulama.exec_())
|