我维护一个大型的Win32应用程序,我想将它的一些部分迁移到Qt(目前使用4.8)。第一部分是将图像和形状的渲染转换为Qt。该应用程序的核心是巨大的,无法作为一个整体进行转换。
我设法使用QImage进行编译和链接。 我可以启动应用程序并将图像加载到QImage对象中。
然后我尝试使用以下代码从我现有的Win32窗口创建一个QWidget:
class MyWidget : public QWidget
{
public:
void create(HWND hwnd)
{
QWidget::create(hwnd);
}
};
这是必要的,因为create是QWidget的受保护成员(是的,我现在的方法有点不经意......)。
然后我尝试了:
qWin.create(hwnd);
QRect rect(...);
qWin.paintEngine()->drawImage(myImage.rect(), myImage, rect);
使用
在QWidgetPrivate :: QWidgetPrivate中断言qFatal(“QWidget:必须在之前构建一个QApplication 的QPaintDevice“);
有没有办法做到这一点?
我可以以某种方式为非Qt应用程序的现有本机窗口提供QPainter或QPaintDevice吗?