Menubardaki “Cikis” secenegine tiklandiginda bir message-box aciliyor ve evet veya hayir ile kullanicinin cikma kararini soruyor. Evet calisiyor ve programi kapatiyor. Hayir da calisiyor ama message-box kapandiktan 3-4 saniye sonra Cikis’i cagirdigimiz pencere de kapaniyor. Calismaya devam icin bu pencerenin acik kalmasi gerek. Neyi yanlis yapiyorum? Menünün diger elemanlari düzgün calisiyor.
Bir de menu üzerinden kapali duran yeni bir pencereyi acamiyorum. Pencere QMainwindow sinifindan. Ne yapmam lazim?
Merhaba dünde bahsettiğim üzere kodunuzu düzgün paylaşmamışsınız ki düzgün paylaşsanız dahi bazı parçalar eksik olcağı için cevaplamamız zor olur bu mesajıma yanıt vermeden önce şu linki okursanız sevinirim. https://forum.yazbel.com/t/soru-sorarken-sikca-dusulen-hatalar/14968
Kodunuzu çalıştıramadığım için sorunu anlamadım. Ama ilk bakıştada çok büyük hatalar var bir scriptte birden fazla QApplication olması başta olmak üzere.
Sizinle kapatılmaya çalışıldığında onay isteyen bir kod paylaşıyorum.
Cok tesekkür ederim. Örnek codu hemen benim koda entegre etmeye calisacagim.
Diger soru:
Tüm pencerelerin tepesinde tüm pencerelerin linklerini iceren bir menu bar var. Bu menu barda da “Ana menu” adli bir menü elemani var. Herhangi bir pencereden buna tiklandiginda kullaniciyi yönlendiren ana menü sayfasinin acilmasini istiyorum, ama bunu beceremiyorum.
Büyük hatalar:
QApplication’un ayni codda birden fazla kullanilmasini düzeltiyorum. Ancak bir coda tepede import yoluyla baska pencerelerin codlarini ekliyorsak (örnegin from AnaSayfaUI import Ui_MainWindow) QApplication’un bu import edilen codlarda da buundugu icin tekrarlanmasinda bir sakinca yok sanirim.
Bunun disinda gözünüze carpan air büyük hatalari bildiriseniz sevinirim, init 'ler vardi. Bunlari init olarak düzelttim. Yazbel forumun bir yapistirma hatasi.
from AnaSayfaUI import Ui_MainWindow
Şeklinde import yapıyorsanız ve __main__ içinde QApplicationu çağırıyorsanız burdaki QApplication ana kodunuza dahil olmaz. O yüzden sorun yok o konuda. Yoksa başka bir dosyadan da olsa gerekmediği sürece 2. bir QApplication oluşturmanız tavsiye edilmez.
Örnek menü tam hayal ettigim isi yapiyor. Aslinda hayal ettigimin de ötesinde kullanim sagliyor. Kullanicilar cok rahat calisacak. Sanirim zorluk cekmeden hemen kendi koduma entegre edebilecegim. Menuden cagrilan tüm pencereler stacked widget’lerden olusuyor. Bunun bir zorluk cikarmayacagini saniyorum.
Zahmetleriniz icin cok ama cok tesekkür ederim.
Pencere kapama icin gönderdiginiz örnek codu benim codlarima entegre ettim. Mükemmel calisiyor. Sizin code cagrildigi pencerenin codundan bagimsiz calistigi icin kolaylikla entegre edilebilecek pratik ve saglam bir cözüm. Bana düsünmedigim veya beceremedigim yeni olanaklar da sagladi.
Menu programinda kücük bir aksaklik cikti.
Asagidaki siraya göre menü elemanlarina tiklarsaniz
Ana menü
Child 1 (mesela)
Ana menü
Ana menü
child 1
karsiniza “Ana menü” yazisi yerine >> isareti cikiyor. Bunun üzerine tiklarsaniz gerisi olmasi gerektigi gibi calismaya devvam ediyor.
isareti kod icinde gecmiyor. Bunu kod kendi yaratiyor. Bu iaretin yerine “Ana menü” yazilmasini nasil saglarim?
Bu bir sorun değil bahsettiğiniz durumun oluşma sebebi widgetın Ana Menu yazılamayacak kadar küçük olmasıdır. ChildWindow a minumumSize atarsanız bu durum çözülecektir.