Uygulama : Qt 6 Designer ile Sinema Bilet Rezervasyon Arayüzü

Ders

Grafik Kullanıcı Arayüzü Tasarımı

Seviye

Orta

İşletim Sistemi

Pardus 25.2 Cinnamon

Kullanılacak Program

Qt 6 Designer

Kodlama

Bu çalışmada Python kullanılmayacaktır.


1. Ödevin Konusu

Bir sinema salonunda kullanılacak Sinema Bilet Rezervasyon Sistemi için kullanıcı arayüzü tasarlayınız.

Amacınız çalışan bir program yapmak değil, Qt 6 Designer kullanarak profesyonel bir arayüz tasarlamaktır.

Tasarlayacağınız uygulamada kullanıcı;

  • film seçebilmeli,

  • salon seçebilmeli,

  • tarih seçebilmeli,

  • seans seçebilmeli,

  • koltuk türünü belirleyebilmeli,

  • bilet türünü seçebilmeli,

  • kişi sayısını belirleyebilmeli,

  • ek hizmetleri seçebilmeli,

  • rezervasyon bilgilerini görebilmelidir.


2. Örnek Tasarım

Tasarlayacağınız ekranın genel yapısı aşağıdaki gibi olabilir:

┌──────────────────────────────────────────────────────────────┐
│ SİNEMA BİLET SİSTEMİ │
├──────────────────────────────────────────────────────────────┤
│ │
│ Film : [ Çağrı ▼ ] │
│ │
│ Salon : [ Salon 1 ▼ ] │
│ │
│ Tarih : [ 15.10.2026 ] │
│ │
│ Seans : ○ 13:30 ○ 16:00 ○ 19:00 ○ 21:30 │
│ │
├──────────────────── BİLET BİLGİLERİ ─────────────────────────┤
│ │
│ Bilet Türü : ○ Tam ○ Öğrenci ○ Çocuk │
│ │
│ Kişi Sayısı : [ 2 ] │
│ │
│ ☐ 3D Gözlük │
│ ☐ Mısır + İçecek │
│ ☐ VIP Koltuk │
│ │
├──────────────────── REZERVASYON ─────────────────────────────┤
│ │
│ Ad Soyad : [________________________________________] │
│ │
│ E-posta : [________________________________________] │
│ │
│ Not : │
│ ┌──────────────────────────────────────────────────────────┐ │
│ │ │ │
│ │ │ │
│ └──────────────────────────────────────────────────────────┘ │
│ │
│ [ REZERVASYON YAP ] [ TEMİZLE ] │
│ │
└──────────────────────────────────────────────────────────────┘

Bu sadece örnek tasarımdır. Kendi tasarımınızı oluşturmanız beklenmektedir.


3. Kullanılması Zorunlu Widget'lar

Ödevinizde aşağıdaki Widget'ların tamamını kullanınız.

Widget        Kullanım
QLabel        Açıklama ve başlıklar
QLineEdit        Ad, e-posta vb.
QComboBox        Film ve salon seçimi
QRadioButton        Seans ve bilet türü
QCheckBox        Ek hizmetler
QSpinBox        Bilet sayısı
QDateEdit        Film tarihi
QTextEdit        Açıklama/not
QPushButton        İşlem butonları
QGroupBox        Alanları gruplamak
QFrame        Bölümleri düzenlemek
QProgressBar        Salon doluluk göstergesi

4. Birinci Aşama — Ana Pencere

Qt 6 Designer'ı açınız:

designer6

Yeni bir:

Main Window

oluşturunuz.

Pencere başlığını:

Sinema Bilet Sistemi

olarak belirleyiniz.

Ana pencereye uygun bir Layout uygulayınız.

Örneğin:

Vertical Layout

kullanabilirsiniz.


5. İkinci Aşama — Film Bilgileri

Bir:

QGroupBox

oluşturunuz.

Başlığı:

Film Bilgileri

olsun.

Bu grubun içine aşağıdaki Widget'ları yerleştiriniz.

Film

QLabel
QComboBox

Film seçenekleri:

Çağrı
Diriliş
Kuruluş
Fetih 1453
Alparslan
Orhan

Salon

Başka bir:

QLabel
QComboBox

kullanınız.

Seçenekler:

Salon 1
Salon 2
Salon 3
VIP Salon

Tarih

QLabel
QDateEdit

kullanınız.


6. Üçüncü Aşama — Seans Seçimi

Yeni bir:

QGroupBox

oluşturunuz.

Başlığı:

Seans Seçimi

olsun.

İçerisine en az dört QRadioButton ekleyiniz:

○ 13:30
○ 16:00
○ 19:00
○ 21:30

Öğrencinin amacı burada RadioButton kullanımını ve gruplandırmayı doğru şekilde gerçekleştirmektir.


7. Dördüncü Aşama — Bilet Bilgileri

Yeni bir:

QGroupBox

oluşturunuz.

Başlığı:

Bilet Bilgileri

olsun.

Bilet Türü

Üç adet QRadioButton:

○ Tam
○ Öğrenci
○ Çocuk

Kişi Sayısı

Bir:

QSpinBox

ekleyiniz.

Ayarlar:

Minimum: 1
Maximum: 10

Ek Hizmetler

En az dört adet QCheckBox kullanınız:

☐ 3D Gözlük
☐ Mısır + İçecek
☐ VIP Koltuk
☐ Büyük Menü

8. Beşinci Aşama — Müşteri Bilgileri

Yeni bir:

QGroupBox

oluşturunuz.

Başlığı:

Müşteri Bilgileri

olsun.

Aşağıdaki alanları oluşturunuz:

Ad Soyad

QLabel
QLineEdit

E-posta

QLabel
QLineEdit

Telefon

QLabel
QLineEdit

Not

QLabel
QTextEdit

kullanınız.


9. Alt Bölüm — Rezervasyon Özeti

Formun altına bir:

QGroupBox

ekleyiniz.

Başlığı:

Rezervasyon Özeti

olsun.

İçerisine aşağıdaki Label'ları yerleştiriniz:

Film : Avatar 3
Salon : Salon 1
Tarih : 15.10.2026
Seans : 19:00
Bilet : Öğrenci
Kişi Sayısı: 2

Bu bilgiler şimdilik sabit metin olarak gösterilecektir.

Herhangi bir Python kodu yazılmayacaktır.


10. Salon Doluluk Göstergesi

Rezervasyon özetinin altına:

QProgressBar

ekleyiniz.

Üzerine:

Salon Doluluk Oranı

şeklinde bir QLabel koyunuz.

ProgressBar değerini örneğin:

65

olarak ayarlayınız.

Böylece:

Salon Doluluk Oranı
████████████████░░░░░░ 65%

gibi bir görünüm elde edebilirsiniz.


11. İşlem Butonları

Formun en altına bir:

Horizontal Layout

ekleyiniz.

İçerisine:

[ REZERVASYON YAP ]
[ TEMİZLE ]
[ İPTAL ]

olmak üzere üç adet:

QPushButton

ekleyiniz.

Bu butonların henüz herhangi bir işlevi olmayacaktır.


12. Tasarımı Düzenleme

Şimdi formun görsel düzenini profesyonel hale getiriniz.

Aşağıdaki Layout'ları uygun yerlerde kullanınız:

  • QVBoxLayout

  • QHBoxLayout

  • QFormLayout

  • QGridLayout

Örneğin:

Ana Pencere
│
└── Vertical Layout
│
├── Başlık
│
├── Film Bilgileri
│
├── Seans Seçimi
│
├── Bilet Bilgileri
│
├── Müşteri Bilgileri
│
├── Rezervasyon Özeti
│
└── Butonlar

13. ObjectName Düzenleme

Widget'ların objectName özelliklerini anlamlı isimlerle değiştiriniz.

Örneğin:

lblBaslik
cmbFilm
cmbSalon
dateTarih
rdo1330
rdo1600
rdo1900
rdo2130
rdoTam
rdoOgrenci
rdoCocuk
spnKisi
chk3D
chkMısır
chkVIP
chkMenu
txtAdSoyad
txtEmail
txtTelefon
txtNot
progressDoluluk
btnRezervasyon
btnTemizle
btnIptal

Not: Türkçe karakter kullanmamanız ileride programlama aşamasında avantaj sağlayacaktır.


14. Tasarımda Kullanılacak İleri Widget

Temel tasarımı tamamladıktan sonra aşağıdaki Widget'lardan en az üç tanesini ekleyiniz:

  • QSlider

  • QDial

  • QListWidget

  • QTableWidget

  • QCalendarWidget

  • QToolButton

  • QPlainTextEdit

Örneğin sinema salonlarının listesini:

Salonlar
Salon 1
Salon 2
Salon 3
VIP Salon

şeklinde bir QListWidget ile gösterebilirsiniz.


15. Tasarım Kuralı

Ödevinizde Widget'ları rastgele yerleştirmeyiniz.

Aşağıdaki prensiplere dikkat ediniz:

Grup oluşturun

Film ile ilgili bilgiler:

Film Bilgileri

Bilet ile ilgili bilgiler:

Bilet Bilgileri

Müşteri ile ilgili bilgiler:

Müşteri Bilgileri

şeklinde gruplanmalıdır.

Hizalama yapın

Örneğin:

Film : [......................]
Salon : [......................]
Tarih : [......................]
Kişi Sayısı: [......................]

gibi düzgün hizalama yapınız.

Layout kullanın

Widget'ları tek tek sürükleyip sabit konumlandırmak yerine mümkün olduğunca Layout kullanınız.


16. Tasarımda Ek Özellik

Formunuzun üst bölümüne bir:

QLabel

ekleyerek aşağıdaki gibi bir başlık oluşturunuz:

🎬 SİNEMA BİLET REZERVASYON SİSTEMİ

Altına küçük bir açıklama:

Film seçiminizi yaparak rezervasyon bilgilerinizi oluşturunuz.

ekleyebilirsiniz.


17. Öğrencinin Özgün Tasarımı

Buradan sonrası tamamen size ait.

Aşağıdaki özelliklerden en az 3 tanesini kendi tasarımınıza ekleyiniz:

  • Sinema salonu seçimi

  • Film afiş alanı

  • Film açıklaması

  • Film türü

  • Film süresi

  • Yaş sınırı

  • Yönetmen

  • Oyuncular

  • Seans kapasitesi

  • Koltuk tipi

  • Öğrenci indirimi

  • Kampanya seçeneği

  • Bilet fiyatı

  • Ödeme yöntemi

Örneğin:

Film Türü : [ Bilim Kurgu ▼ ]
Film Süresi : [ 148 ] dakika
Yaş Sınırı : [ 13+ ▼ ]
Ödeme : ○ Nakit ○ Kart

şeklinde yeni alanlar ekleyebilirsiniz.


18. Teslim Öncesi Kontrol Listesi

Çalışmanızı teslim etmeden önce kontrol ediniz.

Ana yapı

  • Main Window oluşturuldu.

  • Pencere başlığı değiştirildi.

  • Layout kullanıldı.

Film bilgileri

  • Film ComboBox

  • Salon ComboBox

  • Tarih DateEdit

Seans

  • En az 4 RadioButton

Bilet

  • Bilet türü RadioButton

  • SpinBox

  • En az 4 CheckBox

Müşteri

  • Ad Soyad

  • E-posta

  • Telefon

  • QTextEdit

Sonuç

  • Rezervasyon özeti

  • ProgressBar

  • İşlem butonları

Tasarım

  • QGroupBox kullanıldı.

  • Layout kullanıldı.

  • ObjectName değerleri düzenlendi.

  • Widget'lar hizalandı.

  • Tasarım düzenli görünüyor.


19. Teslim Edilecek Dosya

Sadece Qt Designer dosyası teslim edilecektir.

Dosya adı:

SinemaRezervasyon_AdSoyad.ui

Örneğin:

SinemaRezervasyon_AhmetYilmaz.ui

Önemli

Bu ödevde:

❌ Python dosyası
❌ PyQt6 kodu
❌ Veritabanı
❌ Programlama
❌ Signal-Slot bağlantısı

istenmemektedir.

Sadece Qt Designer ile arayüz tasarımı yapılacaktır.


20. Değerlendirme Rubriği

Değerlendirme        Puan
Ana pencere ve genel tasarım        10
Layout kullanımı        15
Zorunlu Widget'ların kullanılması        20
Widget özelliklerinin doğru ayarlanması        10
QGroupBox ile gruplandırma        10
ObjectName düzeni        10
Görsel düzen ve hizalama        10
Ek Widget kullanımı        5
Özgün tasarım        10
TOPLAM        100

21. Öğrenciden Beklenen Sonuç

Çalışmanın sonunda ortaya çıkan uygulama çalışan bir program olmak zorunda değildir.

Önemli olan öğrencinin:

Fikri belirle
↓
Formu planla
↓
Widget seç
↓
Widget özelliklerini ayarla
↓
Layout kullan
↓
Widget'ları grupla
↓
ObjectName ver
↓
Profesyonel arayüz oluştur
↓
.ui dosyasını kaydet

sürecini doğru uygulamasıdır.


Öğretmen Notu

Bu ödev özellikle Qt Designer'ın ilk aşamasını ölçmek için uygundur. Öğrencinin “hangi ihtiyaca hangi Widget'ı seçmeliyim?” sorusuna cevap verebilmesini hedefler.

Daha sonra aynı ödevin ikinci aşaması olarak, öğrencilerin teslim ettiği .ui dosyalarını Python/PyQt6 ile çalışır hale getirme çalışması yapılabilir. Böylece tasarım ödevi doğrudan sonraki programlama laboratuvarına bağlanabilir.

Yorumlar

Bu blogdaki popüler yayınlar

Pardus Üzerine Django Kurulumu

Mini Lab Uygulamaları (Python Temelleri)

Python ile Web Geliştirme: Django App Oluşturma