Qt透明小部件

Qt透明小部件,qt,overlay,widget,transparent,Qt,Overlay,Widget,Transparent,只是一个简单的问题 我正在用Qt构建我的应用程序界面。 我为主页设置了一个背景图像,并使用stackedWIdgets从一个窗口滑动到另一个窗口 setStyleSheet("background-image: url(:/spherebackground.png);" "background-repeat: no-repeat;" "background-position: center cente

只是一个简单的问题

我正在用Qt构建我的应用程序界面。 我为主页设置了一个背景图像,并使用stackedWIdgets从一个窗口滑动到另一个窗口

setStyleSheet("background-image: url(:/spherebackground.png);"
                        "background-repeat: no-repeat;"
                        "background-position: center center");
当应用程序启动时,将出现一个由3个布局组成的页面:

1) 一个包含带有QPushButtons的topToolbar小部件和显示页面标题的标签的小部件 2)在中间,包含StimeStkkEdWIDs的主页面 3) 底部工具栏

mainFrameWidget包含一个mainFrameLayout:

mainPageWidget=新的QWidget()

mainPageLayout=新的QVBoxLayout()

然后,我用设计器创建了其他页面

然后是一个将页面添加到幻灯片的函数

 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);

 }
然后,当按下主布局中的一个按钮时,它会触发如下功能

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()));
}
问题是,我正在尝试移植我为IPhone创建的应用程序,我希望它具有相同的“外观”,但当我从一个页面滑到另一个页面时

1) 动画闪烁 2) 我希望滑动部件是透明的,除了控件(QPushButtons…) 但它们的球体背景与我在代码开头设置的相同 3) 当我希望标签和控件成为标准时,它们也具有相同的背景图像 (例如:标签应具有白色背景)

我不明白为什么


希望这能让您更好地了解正在发生的事情……

至于2)和3)go,这是因为小部件默认情况下会继承其父组件的调色板。要解决此问题,可以显式设置它们的样式,或者在创建它们之后将它们的调色板指定为默认应用程序调色板。我不知道如何处理第一个问题。

Mike,你能发布更多的代码吗?这样我们就可以了解你是如何构造堆叠的小部件的,以及你将样式表应用到哪些小部件上的。@Jordan:给你,更多的代码。希望它能帮助您理解“或在创建它们之后将它们的调色板指定为默认应用程序调色板”。你能告诉我这是什么样子的代码吗?我是Qt新手,不知道怎么做?谢谢你的帮助。
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()));
}