只是一个简单的问题。
我正在使用Qt构建我的应用程序界面。 我为主页设置了一个背景图像,我使用stackedWIdgets从一个窗口滑动到另一个窗口。
setStyleSheet("background-image: url(:/spherebackground.png);"
"background-repeat: no-repeat;"
"background-position: center center");
当应用程序启动时,会出现一个由3个布局组成的页面:
1)包含带有QPushButtons的topToolbar Widget和显示PageTitle的标签 2)在中间,包含SlidingStackedWidgets的mainPageLayout 3)BottomToolBar
mainFrameWidget包含一个mainFrameLayout:
mainPageWidget = new 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()));
}
问题是我正在尝试移植我为iPhone创建的应用程序,我希望它具有相同的“外观和感觉”,但是当我从一个页面滑动到另一个页面时......
1)动画闪烁 2)我希望滑动小部件是透明的,除了控件(QPushButtons ...) 但它们的球体背景与我在代码开头设置的球体背景相同 3)当我希望它们成为标准时,我的标签和控件也具有相同的背景图像 (例如:标签应该有白色背景)
我无法弄清楚为什么......
希望这能让你更好地了解正在发生的事情......
答案 0 :(得分:0)
到目前为止2)和3)go,这是因为小部件默认继承了父级的调色板。要解决此问题,您可以显式设置它们的样式,或者在创建它们之后将其调色板指定为默认应用程序调色板。我不知道如何处理第一个问题。