2011-02-05 13 views
10

Qt yaratıcısı, bir widget'ı temel widget'tan türetilen özel olarak oluşturulan sınıfla tanıtma seçeneğine sahiptir - Bunu, mevcut projede sınıfa yükseltmek için kullanmak istiyorum. Qt yaratıcısı bana sınıf adı ve üstbilgi dosya adı sorar ve bu değer doğrudan * .ui dosyasına ve daha sonra ui_myform.h'a gider - sorun şu ki bu dosya kaynak ağacın dışında (ve genellikle üretilir) olabilir isteğe bağlı bir yerde olabilen (yapı ağacında), bu nedenle tanıtım penceresindeki yolun doğrudan belirtimi yardımcı olmaz. QtCreator/uic'nin doğru başlığı nerede arayacağını bilmesine nasıl izin verilir? Bu mümkün mü?Qt Creator'da widget'ların tanıtımı

Belki de kaynak dosya ağacının yerini belirten bazı Qt değişkeni var, başlık dosya adı alanına ekleyebilir miyim?

Kendi kendine derlenmiş QtCreator 2.0.1 + kendi derlenmiş Qt 4.7.1 kullanıyorum.

DÜZENLEME:

Neden sadece başlık dosyasının tam yol ismini yazamaz?

Ne kaynak ağacını taşımak, hatta web'de paylaşmak eğer - her ikisi de kabul edilemez - Qt yaratıcısı, ister kaynak dosyalarında ya bu yolu düzenlemek zorunda kalacak projemi derlemek istiyor sonra herkes.

+0

Neden başlık dosyasının tam yol adını yazamıyorsunuz? – TonyK

cevap

18

Tasarımcı promosyon iletişim özel bir widget değil, üretilen ui _ *. H dosya tanımlamak SİZİN kendi başlık dosyasıdır içinde sormaktadır başlık dosyası.

HEADERS += MyCustomWidget.h 

Ve de:

bir düz QWidget MyCustomWidget için tanıtmak isteyen Say, zaten bu gibi .pro dosyasına dahil sizin MyCustomWidget sınıfını tanımlayan bir MyCustomWidget.h olmalıdır Widget tanıtım iletişim kutusu, sadece MyCustomWidget.h yazın. Bunun amacı, oluşturulan ui başlık dosyasının (nerede ise) YOUR sınıf tanımını içerebilmesidir.

2

Bu şeyi zaten çözdüm - Sınıfıma terfi ediyordum ve kendi yazdığı başlık adını veriyordum, bu doğruydu.

sorun dosyası, ben

SOURCES += src/myWidget.cpp 
gibi eklemeden sadece altklasörlere şablonu kullanarak, ama değilim (aynı zamanda tüm diğerleri kaynaklarıdır olduğu) proje dizininde ama src alt dizininde doğrudan değildi bu (kendi yazılı) olmasıydı

Yükseltme seçeneği tam yol gerektirmez, ancak *.pro dosyasında göründüğü gibi buna gereksinim duyar - bu durumda myWidget.h - src/myWidget.h arasında geçiş yapmanın hilesidir - ve hareket ettirir veya paylaşırsam çalışır. terfi Widget formu (.ui) ve sınıf dosyaları (.cpp, .h) bir Qt Creator proje alt dizin ve hata ("foo.h not found") gösteriyor yardımcı olmuyor j_kubik en çözeltide ise

1

, tanıtım için sadece başlık dosya adını kullanmak ve INCLUDEPATH olarak yolunu sunmaya çalışıyoruz .pro dosyasında.

+0

Ben çok işe yarıyor. Alt dizinleriniz varsa .ui ve .cpp/.hpp dosyalarınızı yerleştirdiyseniz, sınıfın başlığına sahip olmak için INCLUDEPATH eklemeniz gerekir. – Zardoz89