2011-05-05 51 views
0

只是一個簡單的問題。Qt透明小工具

我正在用Qt構建我的應用程序界面。 我爲主頁設置了背景圖片,我使用stackedWidget從一個窗口滑動到另一個窗口。

setStyleSheet("background-image: url(:/spherebackground.png);" 
         "background-repeat: no-repeat;" 
         "background-position: center center"); 

應用程序啓動時,一個頁面出現,其由3個佈局:

1)一個包含一topToolbar窗口小部件與QPushButtons,並顯示在中間的PageTitle 2)的標籤,包含SlidingStackedWidgets 3)BottomToolBar一個mainPageLayout

的mainFrameWidget包含mainFrameLayout:

mainPageWidget =新QWidget的();

mainPageLayout = new QVBoxLayout();

//I add the buttons and others 
mainPageLayout->addWidget(addEntryButton); 
mainPageLayout->addWidget(vocaButton); 
mainPageLayout->addWidget(exprButton); 
mainPageLayout->addWidget(rulesButton); 
mainPageLayout->addWidget(learnButton); 

mainPageWidget->setLayout(mainPageLayout); 

然後,我有一個頁面添加到slidingStacked

void MainWindow::createSlidingStackedWidget() { 
//the slidingStacked is the Widget that contains the subslidingWidgets 

slidingStacked= new SlidingStackedWidget(this); 
slidingStacked->addWidget(mainPageWidget); 
quickAddView = new QuickAddController(); //which is a UI widget 
slidingStacked->addWidget(quickAddView); 

} 

然後與設計師

然後一個函數創建的其他頁面,當mainLayout一個按鈕它觸發這樣的功能

void MainWindow::slideInAdd(){ 
topToolBar->clear(); 
slidingStacked->setVerticalMode(true); 
slidingStacked->slideInIdx(1); 
setupTopToolBar("Terminer","Ajout Entrée","Modifier"); 
bottomToolBar->hide(); 
QObject::connect(goBackButton,SIGNAL(clicked()),this,SLOT(backFromAdd())); 
} 

事情是, M試圖移植我爲iPhone創建的應用程序,我希望它具有相同的「外觀和感覺」,但是當我從一個頁面滑動到另一個時...

1)動畫閃爍 2)就像滑動窗口小部件除了控件(QPushButtons ...) 以外都是透明的,但它們的球體背景與我在代碼開頭設置的球體背景相同。3)我的標籤和控件也具有相同的背景圖像當我想他們是標準 (如:標籤應該有一個白色背景)

我想不通爲什麼...

希望這會給你一個更好的想法發生了什麼...

+0

Mike,您可以發佈更多代碼,以便我們瞭解如何構建堆疊小部件,以及您將樣式表應用於哪些小部件。 – jsherer 2011-05-05 21:28:04

+0

@Jordan:你在這裏,更多的代碼。希望它能幫助你理解。 – 2011-05-06 12:47:05

回答

0

到2)和3)去,這是因爲小部件默認繼承父母的調色板。爲了解決這個問題,你可以明確地設計它們的樣式,或者在它們被創建後將它們的調色板分配爲默認的應用程序調色板。我不知道如何處理第一個問題。

+0

「或將其調色板分配爲創建後的默認應用程序調色板」。你能讓我知道這在代碼中看起來像什麼嗎?我是Qt新手,我不知道該怎麼做?謝謝你的幫助。 – 2011-05-06 16:01:24