强制QWidget子部件拥有自己的窗口句柄
Force QWidget Child to have its own Window Handle
我正在尝试使用Qt创建一个小应用程序。我想做的是在一个码头小部件中显示一个使用DirectX11
的3D界面,QMainWindow
中的其他小部件将具有属性来修改DX11
中显示的行为。
我面临的问题是,当我将QDockWidget
添加到QMainWindow
时,dockWidgetContents
函数windowHandle
返回NULL
。
我使用了一个例子,在windows上使用Qt5(从WId)获取HWND,以获得HWND
。但是如果函数返回NULL
,它将上升并获得QMainWindow
的HWND
。
有没有办法强迫QWidget
有自己的窗口句柄?
谢谢你的建议!
是。你有几个选择。请参阅QWidget类文档中的本地小部件与外来小部件主题。
- 在你的环境中使用QT_USE_NATIVE_WINDOWS=1
- 在应用程序上设置Qt::AA_NativeWindows属性。所有小部件都是本机小部件。
- 在小部件上设置Qt::WA_NativeWindow属性:小部件本身及其所有祖先将成为本机(除非Qt::WA_DontCreateNativeAncestors设置)。
- 调用QWidget::winId强制本地窗口(这意味着3)。
- 设置Qt::WA_PaintOnScreen属性以强制使用本机窗口(这意味着3)。
相关文章:
- 没有为自己的结构调用列表推回方法
- 在他自己的方法中,有可能将一个对象取消引用到另一个对象吗
- 在c++中为我自己的基于指针的数组分配内存的正确方法
- 拥有映射的现代方法,该映射可以指向或引用已在堆栈上分配的不同类型的数据
- C++从对象自己的类中删除对象
- 使用 std::optional,而不是自己的结构
- 子轴围绕父轴而不是他自己的轴旋转
- 这个C++编译器优化(在自身的实例上调用对象自己的构造函数)的名称是什么,它是如何工作的?
- C++ 如何为自己的迭代器类从迭代器转换为const_iterator?
- 重载 + 自己的类和 std::string 的运算符
- 类无法访问自己的私有静态 constexpr 方法 - Clang bug?
- 是否可以在不填充自己的参数的情况下将模板函数作为参数传递?
- 当超出列时,clang格式强制每个参数/参数拥有自己的行?
- 拥有自己的标题与标准标头相同的标题是不确定的
- 朋友拥有自己的类模板和其他模板参数
- 如何在C++的forward_list中拥有自己的Node结构
- 如何扩展stl类以拥有自己的方法?
- 强制QWidget子部件拥有自己的窗口句柄
- 如何拥有自己的没有公共构造函数的字符串类
- 如何使子进程具有与 parrent 相同的环境变量,并在窗口中拥有自己的环境变量?