gpt4 book ai didi

qt - QGraphicsProxyWidget 在 QGraphicsScene 中剪切了上下文菜单

转载 作者:行者123 更新时间:2023-12-03 23:08:14 34 4
gpt4 key购买 nike

以下代码基于Graphics View Framework的文档。我在 QGraphicsScene 中嵌入了 QLineEdit 并运行程序。当我右键单击场景中的线编辑时,我得到一个剪裁的上下文菜单。 QGraphicsProxyWidget 的上下文菜单由场景作为子 QGraphicsProxyWidget 绘制,因此如果窗口太小,它就会被剪掉。我希望所有嵌入式小部件都将它们的上下文菜单显示为顶级窗口,就像它们未嵌入 QGraphicsScene 时一样。我已经以两种方式尝试了 BypassGraphicsProxyWidget 标志,但它无法正常工作。在 Linux 和 Windows 上的 Qt 4.8/5.0 上测试。所有平台上都存在同样的问题。

如何使嵌入式小部件显示具有原生外观的普通顶级上下文菜单?重载 QGraphicsView 的 contextMenuEvent 提供了一个原生的顶级上下文菜单 - 我可以做某种委托(delegate)并让 QGraphicsView 在场景中显示嵌入式小部件的上下文菜单吗?

#include <QApplication>
#include <QLineEdit>
#include <QGraphicsScene>
#include <QGraphicsProxyWidget>
#include <QGraphicsView>

int main(int argc, char **argv)
{
QApplication app(argc, argv);

QGraphicsScene scene;
QGraphicsProxyWidget *proxy = scene.addWidget(new QLineEdit(), Qt::BypassGraphicsProxyWidget);

QGraphicsView view(&scene);
view.setWindowFlags(Qt::BypassGraphicsProxyWidget);
view.show();

return app.exec();
}

最佳答案

不幸的是,这是一个已知错误 QTBUG-10683 .错误报告的最后一条评论中建议了一种解决方法。

关于qt - QGraphicsProxyWidget 在 QGraphicsScene 中剪切了上下文菜单,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14062737/

34 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com