2011-10-18 62 views
0

我有一個應用程序在Qt中運行,我基本上試圖重新皮膚。我提供了用於背景,按鈕等的圖形。該項目中沒有當前的圖形。它沒有背景,只是使用QPushButtons的默認外觀。我使用的是Qt的UI設計編輯器,因爲它不會讓我只修改編輯器之外的mainwindow.ui文件。Qt - 在應用程序中顯示圖形

所以我能夠通過將樣式表應用於MainWindow對象來設置應用程序的背景。 background-image:url("/path/to/bg.png")和那工作。涼。但是現在應用程序中的所有QLabel都具有完全相同的背景。看起來QWidget的所有成員都繼承了父類的樣式表信息。我如何阻止?

我遇到的另一件事是我需要在應用程序的隨機位置顯示圖形。我成功做到這一點的唯一方法是添加另一個QWidget並將樣式表設置爲該樣式。這是一個合適的方法嗎?什麼是顯示非交互式圖像的最佳方式?

感謝

回答

1

添加樣式表到的QApplication並指明要什麼風格QWidgets。

這裏就是你要找的內容:

#include <QtGui> 

int main(int argc, char *argv[]) 
{ 
    QApplication app(argc, argv); 
    QMainWindow wnd; 

    QString style("QMainWindow{ background: red;} QPushButton{ background: blue }"); 

    app.setStyleSheet(style); 

    QPushButton *btn = new QPushButton("Hello", &wnd); 

    wnd.show(); 

    return app.exec(); 
} 
+0

正是我一直在尋找。謝謝! – linsek

相關問題