crossplatform.ru

Здравствуйте, гость ( Вход | Регистрация )

 
Ответить в данную темуНачать новую тему
> Проблема с setPalette при использовании setStyleSheet у родителя
Semich
  опции профиля:
сообщение 25.1.2011, 20:09
Сообщение #1


Новичок


Группа: Новичок
Сообщений: 2
Регистрация: 25.1.2011
Пользователь №: 2368

Спасибо сказали: 0 раз(а)




Репутация:   0  


Сегодня с толкнулся со следующей проблемой(на Qt 4.4 все работало нормально а на 4.7 все поехало):
У меня есть собственный редактор форм(на подобии qt дизайнера ), для удобства я добавил стили для деревьев и таблиц. В центральный виджет QMDIArea.На нем создаю QMdiSubWindow, а уже на эти окошки кидаю редактируемые элементы. У части элементов перегружена функция paint и они рисуются самостоятельно, часть объектов рисуется средствами Qt - кнопки, деревья,листбоксы и т.д. Изменение фонового цвета элементов производится через функцию setPalette. В Qt версии 4.4 все работало нормально, а в Qt 4.7 стиль от родительского объекта распространился и на QMdiSubWindow.
Как можно решить данную проблему? Часть объектов использует стиль а часть нет.
Вот накидал небольшой пример демонстрирующий мою проблему:

#include "widget.h"
#include "ui_widget.h"
#include <QPalette>
Widget::Widget(QWidget *parent) :
    QWidget(parent),
    ui(new Ui::Widget)
{
    ui->setupUi(this);

    pButton = new QPushButton( "test", this );
    pButton->show();

    pTextEdit = new QTextEdit( this );
    pTextEdit->setGeometry(100,0,100,50);
    pTextEdit->show();

    QPalette pal = pTextEdit->palette();
    pal.setColor( QPalette::Base,Qt::red);
    pTextEdit->setPalette(pal);
    connect( pButton, SIGNAL(clicked( bool )), this, SLOT(Clicked( bool )));

    setStyleSheet("QTreeView { alternate-background-color: yellow; }");

}
void Widget::Clicked( bool )
{
    QPalette pal = pTextEdit->palette();
    pal.setColor( QPalette::Base,Qt::green);
    pTextEdit->setPalette(pal);
}
Widget::~Widget()
{
    delete ui;
}

Заранее благодарен!!!
ах да, раньше Windows XP теперь Win7

По нажатию кнопки должен меняться цвет QTextEdit.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
igor_bogomolov
  опции профиля:
сообщение 25.1.2011, 20:58
Сообщение #2


Профессионал
*****

Группа: Сомодератор
Сообщений: 1215
Регистрация: 22.3.2009
Из: Саратов
Пользователь №: 630

Спасибо сказали: 235 раз(а)




Репутация:   29  


Semich, в Qt 4.7 была сделана большая оптимизация в системе рисования, и Qt'шники немного, скажем так, перестарались. Видимо это одна из новообразовавшихся ошибок. Создайте баг по этому поводу, получите более компетентный ответ от разработчиков. :)
Если баг, в чем я не сомневаюсь, поправят, я так думаю, достаточно быстро. Мой в течении пару дней закрыли :)
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Semich
  опции профиля:
сообщение 25.1.2011, 21:18
Сообщение #3


Новичок


Группа: Новичок
Сообщений: 2
Регистрация: 25.1.2011
Пользователь №: 2368

Спасибо сказали: 0 раз(а)




Репутация:   0  


Цитата(igor_bogomolov @ 25.1.2011, 20:58) *
Semich, в Qt 4.7 была сделана большая оптимизация в системе рисования, и Qt'шники немного, скажем так, перестарались. Видимо это одна из новообразовавшихся ошибок. Создайте баг по этому поводу, получите более компетентный ответ от разработчиков. :)
Если баг, в чем я не сомневаюсь, поправят, я так думаю, достаточно быстро. Мой в течении пару дней закрыли :)

Подскажите пожалуйста как "как создать баг".
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
igor_bogomolov
  опции профиля:
сообщение 25.1.2011, 21:32
Сообщение #4


Профессионал
*****

Группа: Сомодератор
Сообщений: 1215
Регистрация: 22.3.2009
Из: Саратов
Пользователь №: 630

Спасибо сказали: 235 раз(а)




Репутация:   29  


Зарегистрируйтесь на http://bugreports.qt.nokia.com
После чего можете создавать сообщение об ошибке Issues - > Create Issue
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение

Быстрый ответОтветить в данную темуНачать новую тему
Теги
Нет тегов для показа


1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0




RSS Текстовая версия Сейчас: 29.11.2021, 8:50