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

Merhaba, Yapay zeka ile python programı yazdırdım. Bu kodları nasıl programa çevirebileceğimi bir türlü bulamadım. Kodlarda hatalar vardı düzelttim. Yardımcı olur musunuz?
İlgili Kodlar:
Python 3.11.2 (tags/v3.11.2:878ead1, Feb 7 2023, 16:38:35) [MSC v.1934 64 bit (AMD64)] on win32
Type “help”, “copyright”, “credits” or “license()” for more information.
from PyQt5.QtWidgets import QApplication, QLabel, QLineEdit, QPushButton, QVBoxLayout, QHBoxLayout, QGroupBox, QFileDialog, QComboBox, QTextEdit, QSpinBox, QDateEdit, QMainWindow
from PyQt5.QtGui import QFont
import sys

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.setCentralWidget(widget)

    # Dikey düzenleyici
    vbox = QVBoxLayout()

    # Grup kutuları
    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)

    # Sınav tarihi/saati
    hbox2 = QHBoxLayout()
    label2 = QLabel("Sınav Tarihi/Saati: ")
    self.date_time = QDateTimeEdit()
    self.date_time.setDisplayFormat("dd/MM/yyyy HH:mm")
    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(["MYK Sinav Yeri Kodu", "Diğer"])
    hbox4.addWidget(label4)
    hbox4.addWidget(self.exam_type)
    vbox1.addLayout(hbox4)

    # MYK Sinav Yeri Kodu
    hbox5 = QHBoxLayout()
    label5 = QLabel("MYK Sinav 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()

    # Aday bilgileri
    self.textbox = QTextEdit()
    vbox2.addWidget(self.textbox)

    groupbox2.setLayout(vbox2)

    # Grup kutusu 3
    groupbox3 = QGroupBox("Değerlendirici ve Gözetmen")
    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("Word Dosyası Ayarları")
vbox.addWidget(groupbox4)
vbox4 = QVBoxLayout()

# Word dosyası seçme
hbox8 = QHBoxLayout()
label8 = QLabel("Word Dosyası: ")
self.file_path = QLineEdit()
hbox8.addWidget(label8)
hbox8.addWidget(self.file_path)
button = QPushButton("Dosya Seç")
button.clicked.connect(self.file_dialog)
hbox8.addWidget(button)
vbox4.addLayout(hbox8)

# Başlık sayısı
hbox9 = QHBoxLayout()
label9 = QLabel("Başlık Sayısı: ")
self.title_count = QSpinBox()
self.title_count.setMinimum(1)
hbox9.addWidget(label9)
hbox9.addWidget(self.title_count)
vbox4.addLayout(hbox9)

# Başlık etiketi
hbox10 = QHBoxLayout()
label10 = QLabel("Başlık Etiketi: ")
self.title_label = QLineEdit()
hbox10.addWidget(label10)
hbox10.addWidget(self.title_label)
vbox4.addLayout(hbox10)

groupbox4.setLayout(vbox4)

# Kaydet butonu
button2 = QPushButton("Kaydet")
button2.setFont(QFont("Arial", 16))
button2.clicked.connect(self.save)
vbox.addWidget(button2)

# Widget ayarları
widget.setLayout(vbox)

Dosya seçme işlemi

def file_dialog(self):
file_name, _ = QFileDialog.getOpenFileName(self, “Dosya Seç”, “”, “Word Dosyaları (*.docx *.doc)”)
self.file_path.setText(file_name)

Verileri kaydetme işlemi

def save(self):
# Verileri al
exam_code = self.code.text()
exam_date_time = self.date_time.dateTime().toString(“dd/MM/yyyy HH:mm”)
exam_place = self.place.text()
exam_type = self.exam_type.currentText()
myk_code = self.myk_code.text()
candidates = self.textbox.toPlainText()
evaluator_name = self.evaluator_name.text()
proctor_name = self.proctor_name.text()
file_path = self.file_path.text()
title_count = self.title_count.value()
title_label = self.title_label.text()

# Verileri işle
candidates = candidates.split("\n")
for i in range(len(candidates)):
    candidates[i] = f"{i+1} {candidates[i]}"
candidates = "\n".join(candidates)

# Word dosyasını aç
from docx import Document
document = Document(file_path)

# Başlıkları değiştir
for i in range(title_count):
    document.paragraphs[i].text = f"{title_label} {i+1}"

Verileri değiştir

document.paragraphs[title_count].text = f"SINAV KODU: {exam_code}"
document.paragraphs[title_count+1].text = f"SINAV TARİHİ/SAATİ: {exam_date_time}"
document.paragraphs[title_count+2].text = f"SINAV YERİ: {exam_location}"
document.paragraphs[title_count+3].text = f"SINAV TÜRÜ: {exam_type}"
document.paragraphs[title_count+4].text = f"MYK SINAV YERİ KODU: {myk_exam_location_code}"
document.paragraphs[title_count+5].text = f"Tarih: {exam_date}"

Aday bilgileri

for i in range(8):
if i < len(candidate_data):
document.paragraphs[candidate_count+i].text = f"{i+1} {candidate_data[i]}"
else:
document.paragraphs[candidate_count+i].text = “”

Değerlendirici bilgileri

document.paragraphs[evaluator_count].text = f"TARİH- SAAT: {evaluator_date_time}"
document.paragraphs[evaluator_count+1].text = f"Değerlendirici Adı Soyadı: {evaluator_name}"
document.paragraphs[evaluator_count+2].text = f"Gözetmen Adı Soyadı: {supervisor_name}"

Dosyayı kaydet ve kapat

document.save(file_path)
document.close()

self.statusbar.showMessage(“Word dosyası başarıyla güncellendi.”)

SyntaxError: multiple statements found while compiling a single statement
from PyQt5.QtWidgets import QApplication, QLabel, QLineEdit, QPushButton, QVBoxLayout, QHBoxLayout, QGroupBox, QFileDialog, QComboBox, QTextEdit, QSpinBox, QDateEdit, QMainWindow
from PyQt5.QtGui import QFont
import sys

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.setCentralWidget(widget)

    # Dikey düzenleyici
    vbox = QVBoxLayout()

    # Grup kutuları
    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)

    # Sınav tarihi/saati
    hbox2 = QHBoxLayout()
    label2 = QLabel("Sınav Tarihi/Saati: ")
    self.date_time = QDateTimeEdit()
    self.date_time.setDisplayFormat("dd/MM/yyyy HH:mm")
    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(["MYK Sinav Yeri Kodu", "Diğer"])
    hbox4.addWidget(label4)
    hbox4.addWidget(self.exam_type)
    vbox1.addLayout(hbox4)

    # MYK Sinav Yeri Kodu
    hbox5 = QHBoxLayout()
    label5 = QLabel("MYK Sinav 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()

    # Aday bilgileri
    self.textbox = QTextEdit()
    vbox2.addWidget(self.textbox)

    groupbox2.setLayout(vbox2)

    # Grup kutusu 3
    groupbox3 = QGroupBox("Değerlendirici ve Gözetmen")
    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("Word Dosyası Ayarları")
vbox.addWidget(groupbox4)
vbox4 = QVBoxLayout()

# Word dosyası seçme
hbox8 = QHBoxLayout()
label8 = QLabel("Word Dosyası: ")
self.file_path = QLineEdit()
hbox8.addWidget(label8)
hbox8.addWidget(self.file_path)
button = QPushButton("Dosya Seç")
button.clicked.connect(self.file_dialog)
hbox8.addWidget(button)
vbox4.addLayout(hbox8)

# Başlık sayısı
hbox9 = QHBoxLayout()
label9 = QLabel("Başlık Sayısı: ")
self.title_count = QSpinBox()
self.title_count.setMinimum(1)
hbox9.addWidget(label9)
hbox9.addWidget(self.title_count)
vbox4.addLayout(hbox9)

# Başlık etiketi
hbox10 = QHBoxLayout()
label10 = QLabel("Başlık Etiketi: ")
self.title_label = QLineEdit()
hbox10.addWidget(label10)
hbox10.addWidget(self.title_label)
vbox4.addLayout(hbox10)

groupbox4.setLayout(vbox4)

# Kaydet butonu
button2 = QPushButton("Kaydet")
button2.setFont(QFont("Arial", 16))
button2.clicked.connect(self.save)
vbox.addWidget(button2)

# Widget ayarları
widget.setLayout(vbox)

Dosya seçme işlemi

def file_dialog(self):
file_name, _ = QFileDialog.getOpenFileName(self, “Dosya Seç”, “”, “Word Dosyaları (*.docx *.doc)”)
self.file_path.setText(file_name)

Verileri kaydetme işlemi

def save(self):
# Verileri al
exam_code = self.code.text()
exam_date_time = self.date_time.dateTime().toString(“dd/MM/yyyy HH:mm”)
exam_place = self.place.text()
exam_type = self.exam_type.currentText()
myk_code = self.myk_code.text()
candidates = self.textbox.toPlainText()
evaluator_name = self.evaluator_name.text()
proctor_name = self.proctor_name.text()
file_path = self.file_path.text()
title_count = self.title_count.value()
title_label = self.title_label.text()

# Verileri işle
candidates = candidates.split("\n")
for i in range(len(candidates)):
    candidates[i] = f"{i+1} {candidates[i]}"
candidates = "\n".join(candidates)

# Word dosyasını aç
from docx import Document
document = Document(file_path)

# Başlıkları değiştir
for i in range(title_count):
    document.paragraphs[i].text = f"{title_label} {i+1}"

Verileri değiştir

document.paragraphs[title_count].text = f"SINAV KODU: {exam_code}"
document.paragraphs[title_count+1].text = f"SINAV TARİHİ/SAATİ: {exam_date_time}"
document.paragraphs[title_count+2].text = f"SINAV YERİ: {exam_location}"
document.paragraphs[title_count+3].text = f"SINAV TÜRÜ: {exam_type}"
document.paragraphs[title_count+4].text = f"MYK SINAV YERİ KODU: {myk_exam_location_code}"
document.paragraphs[title_count+5].text = f"Tarih: {exam_date}"

Aday bilgileri

for i in range(8):
if i < len(candidate_data):
document.paragraphs[candidate_count+i].text = f"{i+1} {candidate_data[i]}"
else:
document.paragraphs[candidate_count+i].text = “”

Değerlendirici bilgileri

document.paragraphs[evaluator_count].text = f"TARİH- SAAT: {evaluator_date_time}"
document.paragraphs[evaluator_count+1].text = f"Değerlendirici Adı Soyadı: {evaluator_name}"
document.paragraphs[evaluator_count+2].text = f"Gözetmen Adı Soyadı: {supervisor_name}"

Dosyayı kaydet ve kapat

document.save(file_path)
document.close()

self.statusbar.showMessage(“Word dosyası başarıyla güncellendi.”)

Programa çevirme derken .exe uzantılı dosyayamı çevirmek istiyorsunuz öyleyse pyinstaller modülü ile yapabilirsiniz

Ve yardım isterken kodlarınızı ctrl + E içinde atarsanız daha rahat okunur

evet hocam bu kodların çalışıp çalışmadığını nasıl denetleyeceğim?

Ne demek istediğinizi anlamadım Kodları exe çevirince çalışıp çalışmayacağını mı denetleyeceksiniz

evet hocam yapay zekaya yazdırdım kodları pek bilgim yok. İdle programında f5 yapıyorum hataları düzeltiyorum. Oradan da Visual Studio Code ile işlem yapmamı söylüyor

Python kodu hata vermezse exeye çevrilmiş halide vermez Visual studioda çalıştırdığınızda hata alımıyorsanız pyinstaller modulünü kurun sonra python dosyasının bulunduğu klasörde powershell açın şu kodu yazın pyinstaller --windowed dosyaadi.py Aldığınız çözemediğiniz hata varsa ctrl+e içinde kodu attıktan sonra onuda burada sorabilirsiniz

hocam bir İDLE `Python 3.11.2 (tags/v3.11.2:878ead1, Feb 7 2023, 16:38:35) [MSC v.1934 64 bit (AMD64)] on win32
Type “help”, “copyright”, “credits” or “license()” for more information.

=========== RESTART: C:\Users\Tolga\OneDrive\Masaüstü\belge\belge.py ===========

================================ RESTART: Shell ================================
Böyle bir görüntü verdi. Visual Studio da çalıştırdım. CMD ile py dosyasını spec yaptım. Sonra exe ye dönüştürdüm run.exe isimli dosya verdi fakat açılmadı. Program kodları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

`

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.