如何禁用窗口在区域内移动
How disable window move inside an area?
我正在尝试在Linux上用QT编写电路设计器软件。我正在使用 KDE 5 Plasma 桌面和 QTCreator 作为 IDE。
我尝试使用QFrame paintEvent在上面绘画,它起作用了,但是当我抓住QFrame内部的窗户时,它移动了。
我知道QGraphicsView,但我无法制作自定义类并基于此对其进行推广(未列出)。
如何从容器(QFrame,QGraphicsView或任何内容)创建自定义类,我可以在其中覆盖paint事件,并且如果我抓住它,它也不会移动窗口?
对不起,我的英语不好。
>QGraphicsView
继承自QAbstractScrollArea
继承自QFrame
本身。
因此,您可以将QFrame
保留在窗体中,并将其提升为画布类,但只需使画布类继承QGraphicsView
即可。
虽然,我的Qt在行为上与OP有两个不同(但我不使用KDE):
- 单击
QFrame
并移动鼠标对我来说不会移动整个窗口。我想可以通过在 canvas 类中重新实现void mousePressEvent ( QMouseEvent * event )
并为其提供空代码来更改 OP 的这种行为。(文档) - 我可以将
QGraphicsView
放入我的 ui 文件中,并且可以右键单击它们以将它们提升到另一个自定义类。
编辑:找到了窗口在 KDE 上移动的原因!
相关文章:
- 将对象移动到std::shared_ptr
- 何时在引用或唯一指针上使用移动语义
- 如何从具有移动语义的类对象中生成共享指针
- 将shared_ptr移动到<StructA>shared_ptr<变体<结构A、结构 B>>
- C / C++ 移位/偏移/向左或向右移动位图?
- MSVC将仅移动结构参数解释为指针
- 自定义先决条件对移动分配运算符有效吗
- 返回值优化:显式移动还是隐式
- 当有分配器意识的容器被复制/移动时,反弹分配器是否被复制/移走
- 为什么复制而不是移动数据元素?
- 可以使用移动语义更改或改进此C++代码吗?
- 使lambda不可复制/不可移动
- c++在使用指针时移动语义
- 将QGraphicsItem的移动区域限制在多边形区域内
- 如何在移动列表视图中添加滚动条?并且用户只能垂直滚动特定区域
- 如何禁用窗口在区域内移动
- DXGI 桌面复制 API 何时将区域标识为移动区域
- 如何以编程方式将工具按钮移动到右侧工具栏区域
- CTreeCtrl -改变其位置而不移动整个区域
- Qt:限制QGraphicsItem在另一个QGraphicsItem中的可移动区域