На форме widget на нем кнопочки слайдеры и.т.д
/// Скрываем элементы управления и рамку окна...
this->setWindowFlags(Qt::FramelessWindowHint);
/// Включаем прозрачность главной формы...
setAttribute(Qt::WA_TranslucentBackground );
А как теперь сделать что бы как на форме(которую я скрыл) работало(то есть потянул за правый край виджет увеличился в право,за левый в лева и.т.д) ?
Я так понимаю растягивать все равно нужно скрытую (главную форму ).
Пытался делать так для левой стороны виджета
//в playerwindow.h
bool m_Border ;
//playerwindow.cpp
bool playerwindow::eventFilter(QObject *o, QEvent *e)
{
bool isLeftBorder=false;
this->setMouseTracking(true);
ui->widget_2->setMouseTracking(true);
QMouseEvent* mEvent = static_cast<QMouseEvent*>(e);
if(mEvent->pos().x()<=3&&mEvent->pos().x()>0)
{
isLeftBorder=true;
}
switch(e->type())
{
case QEvent::MouseButtonPress:
{
if(isLeftBorder)
{
m_Border = true;
return true;
}
}
break;
case QEvent::MouseButtonRelease:
{
m_Border=false;
break;
}
case QEvent::MouseMove:
{
if( isLeftBorder)
this->setCursor(Qt::SizeHorCursor);
else
this->setCursor(Qt::ArrowCursor);
QRect wgtGeometry = this->geometry();
if(m_Border )
{
QPoint newPosition = this->mapToParent(mEvent->pos());
QPoint oldBottomRight = wgtGeometry.bottomRight();
wgtGeometry.setX(newPosition.x());
wgtGeometry.setBottomRight(oldBottomRight);
if(wgtGeometry.width()<this->minimumSize().width())
{
wgtGeometry.setWidth(this->minimumSize().width());
return QObject::eventFilter(this, e);
}
}
this->setGeometry(wgtGeometry);
}
}
return QObject::eventFilter(this, e);
}
Тут подсмотрел
http://www.cyberforum.ru/qt/thread1200536.htmlНо как то коряво получается.
При раздвигании в лево правая часть дергается ,бывает видно черный фон(как будто не успевает перерисовать окно).
В общем подскажите как такое провернуть?