Qt绘制垂直布局
Qt draw over vertical layout
我有多个孩子的QVBoxLayout
,我想能够在它上面画画。我已经尝试实现paintEvent(QPaintEvent *)
的布局,但我画的一切留在孩子。我该怎么做呢?如果有样例代码,我将不胜感激。
布局没有paintEvent
成员,所以你不能重新实现它。我很惊讶你能从这次行动中获得一些效果。
- 将新的
- 创建另一个小部件(叠加),并使用
setParent()
将其添加到包装器中,而不是将其添加到布局中。 - 重新实现覆盖的paintEvent或添加一些其他小部件到覆盖
QWidget
(我们称之为wrapper)添加到表单中,并将QVBoxLayout
添加到这个小部件中。简单示例(已测试):
class MyWidget : public QWidget {
public:
void paintEvent(QPaintEvent *e) {
QWidget::paintEvent(e);
QPainter p(this);
p.fillRect(4, 4, 30, 30, QBrush(Qt::red));
}
};
QWidget* wrapper = new QWidget();
QVBoxLayout* layout = new QVBoxLayout(wrapper);
layout->addWidget(new QLabel("test1"));
layout->addWidget(new QLabel("test2"));
MyWidget* overlay = new MyWidget();
overlay->setParent(wrapper);
wrapper->show();
相关文章:
- 如何使用C/C++在MacOSX中获得键盘布局
- Vulkan验证层不断在VkQueuePresentKHR()上抛出图像布局错误
- QScrollArea:由垂直滚动条引起的水平滚动条
- 垂直方向的 Gtk3+ 旋转按钮 (c/c++)
- 布局兼容类型的并集
- Qt自定义QPush按钮未显示在布局上
- 按钮悬停在 QT 中垂直布局的选项卡小部件中不起作用
- 调整布局上的 QGraphicsView 小部件的大小
- 如何在qt中将对象添加到现有布局中?--已解决
- 将布局映射到内存地址
- C++继承的虚拟类的内存布局
- 检查nullptr是否100%保护内存布局不受segfault影响
- C++ Python 的扩展 - 安全内存访问和内存布局
- QTree查看新行,没有布局就不可见已更改
- OnVScroll : 从 CSpinButtonCtrl 或垂直滚动条调用?
- 类似元组的类模板的反向内存布局
- PyQT - 在 QTableWidget 单元格中显示垂直文本
- 布局问题:当表单的布局设置为垂直时,组框中的Qlistbox会自动展开
- Qt绘制垂直布局
- 垂直布局QTableView的范例