Всем доброго времени!
Вот суть проблемы: есть главное окно, в котором располагаются два дочерних.
В одном дочернем окне выводится картинка, в другом идет воспроизведение видео, окна находятся друг на друге и просто меняются местами.
Когда начинается воспроизведение видео на переднем окне с картинкой образуются дырки, через которые видно видяшку, кто подскажет что может быть и куда рыть?
делаю окна
C++ (Qt)
Client::Client(QWidget* pwgt) : QWidget(pwgt)
{
outVideo = new QWidget(this);
outVideo->setWindowModality(Qt::WindowModal);
outVideo->setGeometry(500,0,800,600);
outVideo->setStyleSheet("QWidget { background: Red }");
output = new OutPut(this);
output->setWindowModality(Qt::WindowModal);
output->setStyleSheet("QWidget { background: Yelloy}");
получаю идентификатор окна, в нем запускаю видео
C++ (Qt)
void Client::runPlay()
{
QString program = "mplayer";
QStringList param;
QString wind;
wind.setNum(outVideo->winId());
//param << "-quiet" << "-slave" << "-wid" << wind << "./video/001.avi";
mplayer_proc->start(program, param);
}
вот так в другом окне рисую картинку
C++ (Qt)
void OutPut::drawImage(QPainter *painter, QString x, QString y, QString width, QString height, QString company)
{
QRectF target(x.toInt(),y.toInt(),width.toInt(),height.toInt());
QRectF source(0,0,0,0);
QString getImage;
getImage = "./" + company + ".png";
QPixmap pixmap(getImage);
painter->drawPixmap(target, pixmap, source);
}
а вот paintEvent
C++ (Qt)
void OutPut::paintEvent(QPaintEvent *)
{
painter = new QPainter(this);
painter->begin(this);
if (LangSel == 1){
Read (painter, "alertData.xml");
}
painter->end();
}
Всем спасибо!