【问题标题】:Qt, remove dashed rectangle on selection without reimplementing paintQt,在选择时删除虚线矩形而不重新实现绘画
【发布时间】:2011-11-01 04:24:22
【问题描述】:

我看过这个链接:

http://www.qtcentre.org/threads/15089-QGraphicsView-change-selected-rectangle-style

来自这篇文章:

QT 4.5 - Changing the selection marquee for QGraphicsItem

但我想知道是否还有其他选项可以在不重新实现绘制的情况下摆脱虚线矩形。这很重要,因此我可以保持 PyQt 和 PySide 例程快速绘制,但仍然具有我想要的外观。

【问题讨论】:

    标签: qt pyqt selection pyside


    【解决方案1】:

    对不起,如果你不想要选择矩形,你将不得不重新实现paint方法。它不使用样式或类似的东西。 唯一 你可以改变的是矩形使用 QStyleOptionGraphicsItem::palette.windowText().color() 作为基础颜色。但在那之后……只画了一条实线,然后画了一条虚线。

    最好的解决方案确实是重新实现绘画。我怀疑您是否会看到此修改对性能的影响。

    我假设您确实希望让您的项目保持可选状态。如果您在您的项目setFlag(QGraphicsItem::ItemIsSelectable, false) 上禁用该标志,那么它将无法被选中,因此不会显示边框。

    【讨论】:

    • 谢谢戴夫。我现在用 C++ 重新实现了绘画(超级简单),但我希望留在 python 中主要是为了便于打包。当你有很多项目要绘制时,在 python 中绘制 QGraphicsItems 似乎确实是一个性能问题,我有。
    猜你喜欢
    • 1970-01-01
    • 2019-12-21
    • 1970-01-01
    • 2022-01-02
    • 2021-01-24
    • 2022-11-20
    • 1970-01-01
    • 1970-01-01
    • 2015-10-25
    相关资源
    最近更新 更多