2008-11-25 16 views
19

QMainWindow, Qt uygulamasında ana penceredir. Yani genellikle sadece bir tane olurdu, ancak uygulamanızda birden çok QMainWindow örneğinin olması mümkün mü? Başka bir Qt tabanlı GUI uygulaması bir içine Qt tabanlı GUI uygulamasını B entegre etmeye çalışıyorumBirden çok QMainWindow örneği mi?

. Bu uygulamaların her ikisi de QMainWindow var ve sekmelerde hem eski QMainWindows olan yeni bir QMainWindow oluşturmak için ilk adım olarak düşünüyordum. Bu şekilde, kullanıcı arayüzünün kendisindeki herhangi bir şeyi değiştirmek zorunda kalmadan GUI B arka ucunun A arka ucuna bağlanmasına konsantre olmamı sağladı. Bu uygulanabilir bir yaklaşım mı yoksa başka önerileriniz var mı?

+0

2 QMainWindows'a ihtiyacım olan oldukça benzer bir durumdayım. Bu rotayı bitirmiş olmanız halinde, @ caleb-huitt-cjhuitt tarafından işaret edilen uyarıya bir cevabınız var mı? Mac’deki menü çubuğuna ne oluyor? –

cevap

28

İstediğiniz kadar çok QMainWindow örneğiniz olabilir. Bir QMainWindow, bir menü çubuğu, araç çubuğu, durum çubuğu ve yerleştirme çerçevesi sağlayan bir QWidget'dur. Ama temel olarak sadece bir QWidget bu yüzden istediğiniz kadar çok sahip olabilirsiniz.

Normalde GUI tasarım nedenleriyle tek bir QMainWindow ürününüz vardır, çünkü birden fazla ana pencereye sahip olması kafa karıştırıcı olabilir. Ancak, yeni bir örnek açabilen QtAssistant gibi uygulamaları uygularken, bir işlemin birden fazla ana penceresi vardır.

Önerileriniz işe yaramalı. Bu pencereye bir araç çubuğu da eklemek istemediğiniz sürece, sekmelerin bulunduğu pencerenin QMainWindow olması gerekmez.

+2

Ekleyeceğim tek uyarı, menüler OS X için bağlantı noktası olsaydı biraz korkak alabilirsiniz.Onlar ekranın üst kısmında çalışmak için bazı özel işlem var ve nasıl bilmiyorum Bu, gerçek bir pencerede iki ana pencere ile çalışırdı. –

+1

Uygulamada birden fazla QMainWindow olabileceğini göz önünde bulundurarak, yerleştirme çerçevesini Mdi SubWindow içinde kullanabilir misiniz? Bu iyi bir uygulama olur mu? – Anonymous

+0

@Anonymous: güzel fikir! – CapelliC