Russian Qt Forum

Qt => Вопросы новичков => Тема начата: ruzik от Март 07, 2011, 13:57



Название: Слежение за изменением TabWidget
Отправлено: ruzik от Март 07, 2011, 13:57
Здравствуйте возникла такая проблемка, у меня есть 2 QDockWidgeta вернее классы наследники от них, и если их соединить то создается QTabWidget, а при изменении QTabWidget мне надо запускать функцию перерисовки самих панелей
В принципе мне надо в каждой панели просто отслеживать изменение размеров, поэтому я попытался сделать так
Код:
void Search::resizeEvent( QResizeEvent* )
{
lineEdit->setFixedWidth(this->width()*0.7);
const QRegion * reg = new QRegion;
QPaintEvent* event = new QPaintEvent(*reg);
this->paintEvent(event);
}
Сам QPaintevent тоже переопределен
Код:
void Search::paintEvent ( QPaintEvent * event )
{
QStylePainter barPainter(this);
QStyleOption barOption;
barOption.initFrom(this);
barPainter.drawPrimitive(QStyle::PE_Widget, barOption);
}
Ошибок при компиляции никаких не возникает, но при показе(не создании) QDockWidgeta выскакивает ошибка, она вызвана этими строками
const QRegion * reg = new QRegion;
   QPaintEvent* event = new QPaintEvent(*reg);
   this->paintEvent(event);
Скорее всего даже в объекте reg, потому что он не указывает на какой-то определенный регион(но это скорее всего), и из этого вопрос не знаете как правильно указать на регион QDockWidgeta
Я пытался сделать так:
QRegion * reg = &this->visibleRegion();
Но все равно ошибка
Заранее спасибо!


Название: Re: Слежение за изменением TabWidget
Отправлено: ruzik от Март 09, 2011, 15:16
Помогите пожалуйста(