5

かなり基本的な質問ですが、グーグルで解決策を見つけることができませんでした。QT では、グラフィック アイテムが選択されると、その周りに境界線が表示されます。この境界線を非表示に設定する方法を考えていました。ありがとう。

4

3 に答える 3

15

組み込みの QGraphicsItems の選択境界線の描画を無効にするインターフェイスはありません。paint()私が考えることができる唯一の方法は、組み込みのアイテムから独自のアイテムを派生させ、関数をオーバーライドすることです。

void MyRectItem::paint(QPainter *painter, const QStyleOptionGraphicsItem *option, QWidget *widget)
{
    QStyleOptionGraphicsItem myOption(*option);
    myOption.state &= ~QStyle::State_Selected;
    QGraphicsRectItem::paint(painter, &myOption, widget);
}

テストされていませんが、基本的には渡されたオプションのコピーを作成し、実際のに渡す前に選択状態フラグをクリアしますpaint()

于 2012-06-11T19:22:54.193 に答える
7

QGraphicsItem が QAbstractGraphicsShapeItem から派生している場合は、単純にそのペンを無効にすることができます。例:

myShape->setPen(Qt::NoPen);
于 2012-09-28T18:20:14.330 に答える