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.”)