Прозрачные виджеты Qt - PullRequest
0 голосов
/ 05 мая 2011

Просто быстрый вопрос.

Сейчас я создаю интерфейс моего приложения с помощью Qt.Я установил фоновое изображение для главной страницы и использую stackedWIdgets для перемещения из одного окна в другое.

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

Когда приложение запускается, появляется страница, которая состоит из 3 макетов:

1) Тот, который содержит виджет topToolbar с QPushButtons и метку, отображающую PageTitle 2) в центре, mainPageLayout, который содержит SlidingStackedWidgets 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);

Затем у меня есть другие страницы, созданные с помощью дизайнера

И затемфункция, которая добавляет страницы к slideStacked

 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, и я хочу, чтобы оно имело тот же "Look and Feel", но когда я перемещаюсь с одной страницы на другую ...

1) анимация мерцает 2) Мне бы хотелось, чтобы скользящие виджеты были прозрачными, за исключением элементов управления (QPushButtons ...), но они имеют тот же фон сферы, что и тот, который я установил в начале кода 3) Мои меткии элементы управления также имеют такое же фоновое изображение, когда я хотел бы, чтобы они были стандартными (например, метка должна иметь белый фон)

Я не могу понять, почему ...

Надеюсьэто даст вам лучшее представление о том, что происходит ...

1 Ответ

0 голосов
/ 06 мая 2011

Что касается 2) и 3), то это потому, что виджеты наследуют палитру своих родителей по умолчанию.Чтобы это исправить, вы можете явно их стилизовать или назначить их палитру в качестве палитры приложений по умолчанию после их создания.Я не знаю, как справиться с первой проблемой.

...