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:
designer6Yeni bir:
Main Window
oluşturunuz.
Pencere başlığını:
Sinema Bilet Sistemiolarak belirleyiniz.
Ana pencereye uygun bir Layout uygulayınız.
Örneğin:
Vertical Layoutkullanabilirsiniz.
5. İkinci Aşama — Film Bilgileri
Bir:
QGroupBoxoluşturunuz.
Başlığı:
Film Bilgileriolsun.
Bu grubun içine aşağıdaki Widget'ları yerleştiriniz.
Film
QLabelQComboBox
Film seçenekleri:
ÇağrıDirilişKuruluşFetih 1453AlparslanOrhan
Salon
Başka bir:
QLabelQComboBox
kullanınız.
Seçenekler:
Salon 1Salon 2Salon 3VIP Salon
Tarih
QLabelQDateEdit
kullanınız.
6. Üçüncü Aşama — Seans Seçimi
Yeni bir:
QGroupBoxoluşturunuz.
Başlığı:
Seans Seçimiolsun.
İç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:
QGroupBoxoluşturunuz.
Başlığı:
Bilet Bilgileriolsun.
Bilet Türü
Üç adet QRadioButton:
○ Tam○ Öğrenci○ Çocuk
Kişi Sayısı
Bir:
QSpinBoxekleyiniz.
Ayarlar:
Minimum: 1Maximum: 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:
QGroupBoxoluşturunuz.
Başlığı:
Müşteri Bilgileriolsun.
Aşağıdaki alanları oluşturunuz:
Ad Soyad
QLabelQLineEdit
E-posta
QLabelQLineEdit
Telefon
QLabelQLineEdit
Not
QLabelQTextEdit
kullanınız.
9. Alt Bölüm — Rezervasyon Özeti
Formun altına bir:
QGroupBoxekleyiniz.
Başlığı:
Rezervasyon Özetiolsun.
İçerisine aşağıdaki Label'ları yerleştiriniz:
Film : Avatar 3Salon : Salon 1Tarih : 15.10.2026Seans : 19:00Bilet : ÖğrenciKiş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:
QProgressBarekleyiniz.
Üzerine:
Salon Doluluk Oranışeklinde bir QLabel koyunuz.
ProgressBar değerini örneğin:
65olarak 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 Layoutekleyiniz.
İçerisine:
[ REZERVASYON YAP ][ TEMİZLE ][ İPTAL ]
olmak üzere üç adet:
QPushButtonekleyiniz.
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:
QVBoxLayoutQHBoxLayoutQFormLayoutQGridLayout
Ö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:
lblBaslikcmbFilmcmbSalondateTarihrdo1330rdo1600rdo1900rdo2130rdoTamrdoOgrencirdoCocukspnKisichk3DchkMısırchkVIPchkMenutxtAdSoyadtxtEmailtxtTelefontxtNotprogressDolulukbtnRezervasyonbtnTemizlebtnIptal
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:
QSliderQDialQListWidgetQTableWidgetQCalendarWidgetQToolButtonQPlainTextEdit
Örneğin sinema salonlarının listesini:
SalonlarSalon 1Salon 2Salon 3VIP 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 BilgileriBilet ile ilgili bilgiler:
Bilet BilgileriMüş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:
QLabelekleyerek 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 ] dakikaYaş 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
Yorum Gönder