Python Kodlarınını Programa Nasıl Çeviririm?

Ctrl +E içinde atarsanıx girintileride görürüz

Yani böyle
from PyQt5.QtWidgets import QApplication, QLabel, QLineEdit, QPushButton, QVBoxLayout, QHBoxLayout, QGroupBox, QFileDialog, QComboBox, QTextEdit, QSpinBox, QDateEdit, QMainWindow
from PyQt5.QtGui import QFont
import sys
from docx import Document

class MainWindow(QMainWindow):
    def __init__(self):
        super().__init__()


        # Arayüz özellikleri
        self.setWindowTitle("Sınav Bilgi Girişi")
        self.setGeometry(300, 300, 500, 600)

        # Ana Widget
        widget = QWidget(self)
        self.setCentralWidget(widget)

        # Ana layout
        vbox = QVBoxLayout()

        # Grup kutusu 1
        groupbox1 = QGroupBox("Sınav Bilgileri")
        vbox.addWidget(groupbox1)
        vbox1 = QVBoxLayout()

        # Sınav kodu
        hbox1 = QHBoxLayout()
        label1 = QLabel("Sınav Kodu: ")
        self.code = QLineEdit()
        hbox1.addWidget(label1)
        hbox1.addWidget(self.code)
        vbox1.addLayout(hbox1)

        # Tarih ve saat
        hbox2 = QHBoxLayout()
        label2 = QLabel("Tarih ve Saat: ")
        self.date_time = QDateTimeEdit()
        self.date_time.setDateTime(QDateTime.currentDateTime())
        hbox2.addWidget(label2)
        hbox2.addWidget(self.date_time)
        vbox1.addLayout(hbox2)

        # Sınav yeri
        hbox3 = QHBoxLayout()
        label3 = QLabel("Sınav Yeri: ")
        self.place = QLineEdit()
        hbox3.addWidget(label3)
        hbox3.addWidget(self.place)
        vbox1.addLayout(hbox3)

        # Sınav türü
        hbox4 = QHBoxLayout()
        label4 = QLabel("Sınav Türü: ")
        self.exam_type = QComboBox()
        self.exam_type.addItems(["Seçmeli", "Zorunlu"])
        hbox4.addWidget(label4)
        hbox4.addWidget(self.exam_type)
        vbox1.addLayout(hbox4)

        # MYK sınav yeri kodu
        hbox5 = QHBoxLayout()
        label5 = QLabel("MYK Sınav Yeri Kodu: ")
        self.myk_code = QLineEdit()
        hbox5.addWidget(label5)
        hbox5.addWidget(self.myk_code)
        vbox1.addLayout(hbox5)

        groupbox1.setLayout(vbox1)

        # Grup kutusu 2
        groupbox2 = QGroupBox("Adaylar")
        vbox.addWidget(groupbox2)
        vbox2 = QVBoxLayout()

        # Adayları girin
        label6 = QLabel("Adayların Adı ve Soyadı:")
        self.textbox = QTextEdit()
        vbox2.addWidget(label6)
        vbox2.addWidget(self.textbox)

        groupbox2.setLayout(vbox2)

        # Grup kutusu 3
        groupbox3 = QGroupBox("Değerlendirici ve Gözetmen Bilgileri")
        vbox.addWidget(groupbox3)
        vbox3 = QVBoxLayout()

        # Değerlendirici adı
    hbox6 = QHBoxLayout()
    label6 = QLabel("Değerlendirici Adı Soyadı: ")
    self.evaluator_name = QLineEdit()
    hbox6.addWidget(label6)
    hbox6.addWidget(self.evaluator_name)
    vbox3.addLayout(hbox6)

	# Gözetmen adı
    hbox7 = QHBoxLayout()
    label7 = QLabel("Gözetmen Adı Soyadı: ")
    self.proctor_name = QLineEdit()
    hbox7.addWidget(label7)
    hbox7.addWidget(self.proctor_name)
    vbox3.addLayout(hbox7)

    groupbox3.setLayout(vbox3)
    # Grup kutusu 4
    groupbox4 = QGroupBox("Sınav Süresi")
    vbox.addWidget(groupbox4)
    vbox4 = QVBoxLayout()

    hbox8 = QHBoxLayout()
    label8 = QLabel("Sınav Süresi (dakika): ")
    self.exam_duration = QSpinBox()
    self.exam_duration.setMinimum(0)
    hbox8.addWidget(label8)
    hbox8.addWidget(self.exam_duration)
    vbox4.addLayout(hbox8)

    groupbox4.setLayout(vbox4)

    # Kaydet butonu
    save_button = QPushButton("Kaydet")
    save_button.setFont(QFont('Arial', 12))
    save_button.clicked.connect(self.save)
    vbox.addWidget(save_button)

    widget.setLayout(vbox)

def save(self):
    # Sınav bilgilerini al
    code = self.code.text()
    date_time = self.date_time.dateTime().toString("dd.MM.yyyy hh:mm")
    place = self.place.text()
    exam_type = self.exam_type.currentText()
    myk_code = self.myk_code.text()
    exam_duration = self.exam_duration.value()

    # Aday bilgilerini al
    candidates = self.textbox.toPlainText().split("\n")

    # Değerlendirici ve gözetmen bilgilerini al
    evaluator_name = self.evaluator_name.text()
    proctor_name = self.proctor_name.text()

    # Dosya ismini ve kaydedilecek yeri seç
    file_dialog = QFileDialog(self)
    file_dialog.setDefaultSuffix(".docx")
    file_dialog.setAcceptMode(QFileDialog.AcceptSave)
    file_dialog.setNameFilter("Word dosyası (*.docx)")
    file_path = file_dialog.getSaveFileName(parent=self, caption="Kaydet", directory="./")[0]

        # Eğer dosya yolu seçilmediyse kaydetme işlemini iptal et
    if not file_path:
     return
 
        # Dosyayı oluştur
     document = Document()
 
        # Başlık ekle
    heading = document.add_heading("Sınav Bilgileri", level=0)
    heading.alignment = 1
 
        # Sınav bilgilerini ekle
    document.add_paragraph(f"Sınav Kodu: {code}")
    document.add_paragraph(f"Tarih ve Saat: {date_time}")
    document.add_paragraph(f"Sınav Yeri: {place}")
    document.add_paragraph(f"Sınav Türü: {exam_type}")
    document.add_paragraph(f"MYK Sınav Yeri Kodu: {myk_code}")

     # Aday bilgilerini ekle
    document.add_heading("Adaylar", level=1)
    for candidate in candidates:
         document.add_paragraph(candidate)
 
# Değerlendirici ve gözetmen bilgilerini ekle
document.add_heading("Değerlendirici ve Gözetmen Bilgileri", level=1)
document.add_paragraph(f"Değerlendirici Adı Soyadı: {evaluator_name}")
document.add_paragraph(f"Gözetmen Adı Soyadı: {proctor_name}")

     # Sınav süresini ekle
document.add_heading("Sınav Süresi", level=1)
document.add_paragraph(f"Sınav Süresi (dakika): {exam_duration}")
 # Dosyayı kaydet
document.save(file_path)
 
 # Başarıyla kaydedildi mesajı ver

adam yapay zekaya kod yazdırmış şldaskfngşlsdkfn. senin slider sorununu da yapay zekaya yaptırsana çözer belki :smiley:

Chatgptyi kastediyosan denedim başka bir yapay zeka biliyorsan söyle onuda deneyim

Kodda 30 tane hata var çoğu import hatası ama o yüzden çalışmıyordur.

Komik mi hocam? deniyoruz bişiler bu sayede programı anlamaya çalışıyorum? sorun tam olarak nedir yada gülünmesi gereken şey? Yardımcı olmayacaksanız boş yorum yapıp kendinizi küçük düşürmeyin bari

hocam deniyorum hala bende 37 hata çıktı hataları araştırıyorum.

Bana komik geldi :smiley: Yani niye bu kadar alınganlık yaptın anlamadım ama hakaret olsun diye yazmadım.

Başarılarının devamını dilerim.

Valla ne sorunu yaşıyosun anlamadımki. pyinstaller ile exe yaptın mı ? Hangi aşamada hata alıyosun ve ne hatası ?

Hocam exelden yapıcaktım araştırıyorum pek bilgim yok ama bana sınav bilgilerini otomatik olarak word dosyalarına değişkenlerle aktarmak için bir program yada excel kodu lazıım. Yapay zekada bana bir fikir verdi verdiği kodları deniyorum. Şuan self hatası alıyorum program çalışır mı çalışmaz mı bilmiyorum deniyorum. bu kodlar için “self” is not defined hatası alıyorum 16 tane hocam Visual Studio Code programından. Program açılıyor ama içerik yok

from PyQt5.QtWidgets import QApplication, QLabel, QLineEdit, QPushButton, QVBoxLayout, QHBoxLayout, QGroupBox, QFileDialog, QComboBox, QTextEdit, QSpinBox, QDateEdit, QDateTimeEdit, QMainWindow, QWidget, QMessageBox
from PyQt5.QtGui import QFont
import sys
from docx import Document

class MainWindow(QMainWindow):
    def __init__(self):
        super().__init__()
        self.setWindowTitle("Sınav Bilgi Girişi")
        self.setGeometry(300, 300, 500, 600)
        widget = QWidget(self)
        self.setCentralWidget(widget)

if __name__ == "__main__":
    app = QApplication(sys.argv)
    window = MainWindow()
    window.show()
    sys.exit(app.exec_())

    # Ana Widget
    widget = QWidget(self)
    self.setCentralWidget(widget)

    # Ana layout
    vbox = QVBoxLayout()

    # Grup kutusu 1
    groupbox1 = QGroupBox("Sınav Bilgileri")
    vbox.addWidget(groupbox1)
    vbox1 = QVBoxLayout()

    # Sınav kodu
    hbox1 = QHBoxLayout()
    label1 = QLabel("Sınav Kodu: ")
    self.code = QLineEdit()
    hbox1.addWidget(label1)
    hbox1.addWidget(self.code)
    vbox1.addLayout(hbox1)

    # Tarih ve saat
    hbox2 = QHBoxLayout()
    label2 = QLabel("Tarih ve Saat: ")
    self.date_time = QDateTimeEdit()
    self.date_time.setDateTime(QDateTime.currentDateTime())
    hbox2.addWidget(label2)
    hbox2.addWidget(self.date_time)
    vbox1.addLayout(hbox2)
    # Sınav yeri
hbox3 = QHBoxLayout()
label3 = QLabel("Sınav Yeri: ")
self.place = QLineEdit()
hbox3.addWidget(label3)
hbox3.addWidget(self.place)
vbox1.addLayout(hbox3)

# Sınav türü
hbox4 = QHBoxLayout()
label4 = QLabel("Sınav Türü: ")
self.exam_type = QComboBox()
self.exam_type.addItems(["Seçmeli", "Zorunlu"])
hbox4.addWidget(label4)
hbox4.addWidget(self.exam_type)
vbox1.addLayout(hbox4)

# MYK sınav yeri kodu
hbox5 = QHBoxLayout()
label5 = QLabel("MYK Sınav Yeri Kodu: ")
self.myk_code = QLineEdit()
hbox5.addWidget(label5)
hbox5.addWidget(self.myk_code)
vbox1.addLayout(hbox5)

groupbox1.setLayout(vbox1)

# Grup kutusu 2
groupbox2 = QGroupBox("Adaylar")
vbox.addWidget(groupbox2)
vbox2 = QVBoxLayout()

# Adayları girin
label6 = QLabel("Adayların Adı ve Soyadı:")
self.textbox = QTextEdit()
vbox2.addWidget(label6)
vbox2.addWidget(self.textbox)

groupbox2.setLayout(vbox2)

# Grup kutusu 3
groupbox3 = QGroupBox("Değerlendirici ve Gözetmen Bilgileri")
vbox.addWidget(groupbox3)
vbox3 = QVBoxLayout()

# Değerlendirici adı
hbox6 = QHBoxLayout()
label6 = QLabel("Değerlendirici Adı Soyadı: ")
self.evaluator_name = QLineEdit()
hbox6.addWidget(label6)
hbox6.addWidget(self.evaluator_name)
vbox3.addLayout(hbox6)

# Gözetmen adı
hbox7 = QHBoxLayout()
label7 = QLabel("Gözetmen Adı Soyadı: ")
self.proctor_name = QLineEdit()
hbox7.addWidget(label7)
hbox7.addWidget(self.proctor_name)
vbox3.addLayout(hbox7)

groupbox3.setLayout(vbox3)

# Grup kutusu 4
groupbox4 = QGroupBox("Sınav Süresi")
vbox.addWidget(groupbox4)
vbox4 = QVBoxLayout()

hbox8 = QHBoxLayout()
label8 = QLabel("Sınav Süresi (dakika): ")
self.exam_duration = QSpinBox()
self.exam_duration.setMinimum(0)
hbox8.addWidget(label8)
hbox8.addWidget(self.exam_duration)
vbox4.addLayout(hbox8)

groupbox4.setLayout(vbox4)
def save(self):

   def save(self):
    # Sınav bilgilerini al
    code = self.code.text()
    date_time = self.date_time.dateTime().toString("dd.MM.yyyy hh:mm")
    place = self.place.text()
    exam_type = self.exam_type.currentText()
    myk_code = self.myk_code.text()
    exam_duration = self.exam_duration.value()

    # Aday bilgilerini al
    candidates = self.textbox.toPlainText().split("\n")

    # Değerlendirici ve gözetmen bilgilerini al
    evaluator_name = self.evaluator_name.text()
    proctor_name = self.proctor_name.text()

    # Dosya ismini ve kaydedilecek yeri seç
    file_dialog = QFileDialog(self)
    file_dialog.setDefaultSuffix(".docx")
    file_dialog.setAcceptMode(QFileDialog.AcceptSave)
    file_dialog.setNameFilter("Word dosyası (*.docx)")
    file_path, _ = file_dialog.getSaveFileName(parent=self, caption="Kaydet", directory="./")

    # Eğer dosya yolu seçilmediyse kaydetme işlemini iptal et
    if not file_path:
        return

    # Dosyayı oluştur
    document = Document()

    # Başlık ekle
    heading = document.add_heading("Sınav Bilgileri", level=0)
    from docx.enum.text import WD_ALIGN_PARAGRAPH

    # Sınav bilgilerini ekle
    document.add_paragraph(f"Sınav Kodu: {code}")
    document.add_paragraph(f"Tarih ve Saat: {date_time}")
    document.add_paragraph(f"Sınav Yeri: {place}")
    document.add_paragraph(f"Sınav Türü: {exam_type}")
    document.add_paragraph(f"MYK Sınav Yeri Kodu: {myk_code}")

    # Aday bilgilerini ekle
    document.add_heading("Adaylar", level=1)
    for candidate in candidates:
        document.add_paragraph(candidate)

    # Değerlendirici ve gözetmen bilgilerini ekle
    document.add_heading("Değerlendirici ve Gözetmen Bilgileri", level=1)
    document.add_paragraph(f"Değerlendirici Adı Soyadı: {evaluator_name}")
    document.add_paragraph(f"Gözetmen Adı Soyadı: {proctor_name}")

    # Sınav süresini ekle
    document.add_heading("Sınav Süresi", level=1)
    document.add_paragraph(f"Sınav Süresi (dakika): {exam_duration}")

    # Dosyayı kaydet
    document.save(file_path)

    # Başarıyla kaydedildi mesajı ver
    QMessageBox.information(self, "Başarılı", "Dosya başarıyla kaydedildi.")

Yapay zeka yazdırmışta bir sürü hata var ben baktım mesela classın içinde ama fonksiyon dışında self kullanmış yada yukarda import etmediği şeyleri aşağıda çağırmış.Müsait zamanımda bakıcağım

2 Beğeni

Evet komik. Eğer mevzu kodu anlamaksa onda bir şey yok. For ne işte, “x’in içindeki her y için” demek falan filan diye diye kodu az biraz herkes anlar zaten.

Önemli olan programı anlamak değil, aynı programı hiçbir referans almadan yazabilmek.

Anladığım kadarı ile olay şu mu ? Sınav puanın var. Programa bu puanı yazacaksın ve tabloya kaydedecek ? Eğer böyleyse çok basit yapılır. Yapay zeka Qt ile yazmış o kütüphaneyi bilmiyorum o yüzden okuyamıyorum :smiley: :smiley:

Öğreniyoruz işte hocam size komik geliyorsa gülün geçin boş yorum yapmayın. Ben anlamadığım bir konuyu anlamaya çalışıyorum.

Hayır hocam elimde sınav evrakları var atıyorum aday listesi yoklama listesi sınav kitapçıkları senaryolar vs. bu formların içerisinde sınav yeri saati kodu ID aday isimleri gibi bölümler var bu formlardan her sınav için en az 100 sayfa manuel değiştirmem gerekiyor. Bunu otomatik olarak verileri formlara aktarmak istiyorum.

Aslında database kullansan dediğin oluyo galiba. Basit bi örnek.

from tkinter import *
import sqlite3

root = Tk()

db = sqlite3.connect("db.db")
im = db.cursor()
def create_table(*args):
    im.execute("CREATE TABLE IF NOT EXISTS Users (ad, soyad)")

def add_data(*args):
    im.execute("INSERT INTO Users (ad, soyad) VALUES ({},{})".format(args[0], args[1]),)
    db.commit()

def select_data():
    im.execute("SELECT * FROM Users")
    print(im.fetchall())

adLabel = Label(root, text="ad")
adLabel.grid(row=0, column=0)

ad = Entry(root)
ad.grid(row=0, column=1)

soyadLabel = Label(root, text="soyad")
soyadLabel.grid(row=1, column=0)

soyad = Entry(root)
soyad.grid(row=1, column=1)

kayit = Button(root, text="kayıt", command=lambda: add_data(ad.get(), soyad.get()))
kayit.grid(row=2, column=2)

create_table()
root.mainloop()

Buna dair herhangi bir isaret vermis olsaydiniz, daha cok saygi gorebilirdiniz.

Su anda kotu yaptirdiginiz bir isi bedavaya duzelttirmeye calisiyorsunuz gibi duruyor: “Manava web sitesi yaptirdim, bozuk, bi gelip bakar misin”.

Ustune ustluk girdiginiz kod bozuk, donup “soru nasil gozukuyor”, “insan tarafindan cevaplanabilir mi” diye bakmamissiniz bile. bkz: Soru Sorarken Sıkça Düşülen Hatalar #2 ve #1

Her seye ragmen bakip yardim edeyim diyorum ama dort degisik kod var, ne olduklari hakkinda bir bilgi yok. [Ogrenmeye calisan birinin] sorulari yok, dert yanma var.

Yaklasimin yanlis oldugunu kabul edip sifirdan ne yapmak istediginizi (ve ne icin), ne denediginizi duzgun bir dille anlatip yardim isteyen bir soru yaratirsaniz cok daha faydali olacaktir.

Böyle öğrenildiğini hiç görüp duymadım doğrusu, hazır kod parçaları alıp okuyarak aynı seviyede kod yazabilecek duruma gelirsiniz umarım, ne diyeyim.

Hocam bunu okuyup okumadıklarını anlamanın bir özelliği var mı forumda ?

1 tane örnek yapar mısınız ona göre yardım edelim bu attığınız kodun orasını tutsan elinde kalıyor diyeceğim ama tutamıyoruz ki elimizde kalsın

1 Beğeni