0

谢谢你的帮助~因为我需要在一些qlabel的区域使用directx(d3d)播放视频,所以我必须通过调用winid()方法获取标签winId。但是当我这样做时,出现了一些其他问题~

当我使用 FramelessWindowHint 设置窗口标志时调用 anly winid() 时,自定义按钮的paintEvent 无法在调用 updata() 后运行:

像那样:

MainWindow::MainWindow(QWidget *parent) :
QMainWindow(parent),
ui(new Ui::MainWindow)
{
    ui->setupUi(this);
    HWND hwnd =  (HWND)(ui->label->winId());// here
    setWindowFlags(Qt::FramelessWindowHint);// and here
    QString playBackPre = "_playBack";
    //do my custom button init; the button will draw an pic when press ?enter or leave
    ui->pushButton->setImages(playBackPre, 1);
    ui->pushButton_2->setImages("_quanJin", 1);
}

请帮助我,非常感谢!

4

1 回答 1

-1

我已经解决了,但我认为这可能是 Qt 中的一个错误。

只是将调用 winid() 函数移出构造。它会闪烁。

于 2016-11-15T12:35:53.483 回答