2012-06-11 70 views

回答

12

沒有界面禁用內置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()

+0

斯蒂芬。當我回家時我會試試這個。謝謝!在Qt5中, – Justin

+0

不起作用 – BrandonL

4

如果您的QGraphicsItem從QAbstractGraphicsShapeItem派生,那麼你可以簡單地禁用其筆,例如:

myShape->setPen(Qt::NoPen); 
相關問題