2011-05-05 49 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