2010-12-16 24 views
6

'da arka plan resmi ayarlanamıyor Qt uygulamamı -stylesheet parametresiyle komut satırı üzerinden çalıştırıyorum. MainWindow için bir arka plan resmi yüklemeye çalıştığımda değil, denetimleri stilleri çalışır. Denedim: ":" Arka planda, ama bir fark yapmaz Qt Stil Sayfası

QMainWindow{ 
background-image:url(:image_256_8bit_latest_back.png); 
} 

Ayrıca çıkarmadan çalıştı. Birisi bana bu StyleSheet ile neyin yanlış olduğunu söyleyebilir mi?

cevap

12

Kullanmaya çalıştığınız görüntü nerede bulunuyor?

Uygulamanızın bir resource mu?

Kaynaklarınızın bir bölümünü kullanmak isterseniz, projenizde bir kaynak dosyanız (*.qrc) olmalıdır. Eğer QMainWindow yapıcısı Bu kodu yazabilirim Sonra

<RCC> 
    <qresource prefix="/images"> 
     <file alias="sunset.jpg">sunset.jpg</file> 
    </qresource> 
</RCC> 

: Bu dosya böyle bir şey içermelidir Eğer Qt resource system kullanmak istemiyorsanız

setStyleSheet("background-image: url(:/images/sunset.jpg);"); 

, sadece can Eğer göreli bir yol kullanıyorsanız

setStyleSheet("background-image: url(res/images/sunset.jpg);"); 

Ancak dikkatli olun: diskinizdeki resminizin yolunu koymak Qt hangi might, geçerli konumundan başlayacak Özellikle Qt Creator ile geliştiriyorsanız, değiştirin. Eğer hata ayıklama modunda uygulamanızı çalıştırdığınızda Qt Creator ile

, mevcut yol debug/ içindedir. Uygulamanızı sürüm modunda çalıştırdığınızda, geçerli yol release/ (ayarları değiştirmedikçe) şeklindedir.

+1

bilgi için teşekkürler :). Ancak, ayrı bir QSS dosyası istememin nedeni, kullanıcıların kendi QSS dosyalarını yükleyerek uygulamayı özelleştirebilmelerini istiyorum. Böylece, komut isteminde çalıştırıldığında, QSS dosyasındaki tüm stilleri kodlara dokunmadan kolayca uygulayabilirsiniz ... – Owen

+1

Bu, görüntünün diskte bir yerde olduğu anlamına gelir. Ama yolu ile başlayan: '' Qt'ye görüntüyü bir kaynaktır. Stil sayfanızda mutlak görüntü yolunu koymayı denediniz mi? –

+0

Aşağıdaki gibi bir şey içeren uygulama klasöründe bulunan 'stylesheet.qss' adlı bir dosya oluşturmaya çalıştım: QMainWindow {\t background-image: url (sunset.jpg); } '. Uygulamayı "-stylesheet = stylesheet.qss" argümanı ile çalıştırıyorum ve uygulamamın arka planı gün batımı resmi. Bunun senin için neden çalışmadığını anlamıyorum. –

0

Açıkçası görüntünüzün yolunda bir sorun var. Görüntünün QT tarafından yüklendiğini ve çalıştığını doğrulamak için mutlak bir yol kullanmayı deneyin.

+0

Yolun coz'unda sorun yok, düğmeler için bir görüntü olarak çalışıyor ... :) – Owen

İlgili konular