【问题标题】:Is it possible to add a native child window to a Qt widget?是否可以将本机子窗口添加到 Qt 小部件?
【发布时间】:2011-02-17 00:14:05
【问题描述】:

我需要在我的 Qt 应用程序中进行一些特定于平台的绘图,所以我想在我的 Qt Widget 中添加一个 Windows 子窗口。我调用 CreateWindowEx 并将 effectiveWinId() 作为父级传递。子窗口创建成功。但是,我的 Qt 应用程序中的绘图停止工作。小部件将不再重新绘制。

有没有办法做到这一点? Qt 3 中有 QWinHost,但 Qt 4 中似乎没有。

【问题讨论】:

    标签: winapi qt


    【解决方案1】:

    通常必须覆盖paintEvent(QPaintEvent*)

    还可以设置 setAttribute(Qt::WA_PaintOnScreen,true);告诉 Qt 不要打扰绘图。

    【讨论】:

    • WA_PaintOnScreen 默认情况下在 Windows 上不受支持,但如果我为 paintEngine() 返回 NULL,我认为它可以工作。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-07-08
    相关资源
    最近更新 更多