我創建了一個類,繼承自QGraphicsTextItem
。此類的對象必須是可移動的,並且必須在MouseButton啓動時發送信號。QGraphicsTextItem繼承。奇怪的行爲
class MyTextItem: public QObject, public QGraphicsTextItem
{
Q_OBJECT
public:
MyTextItem(QObject* Object, QString str1): QGraphicsTextItem(str1), mRef(Object){}
virtual void mouseReleaseEvent (QGraphicsSceneMouseEvent* event);
QObject* mRef;
signals:
void sendSignal(int x, int y);
然後,我創建對象:
MyTextItem* label = new MyTextItem(NULL, "QwertyuiopAsdfghjkl");
label->setPos(p);
label->setFlag(QGraphicsItem::ItemIsMovable, true);
,一切都OK。但是,當我加入:
QFont f;
f.setBold(false);
f.setItalic(false);
f.setPixelSize(16);
f.setFamily("Arial");
f.setLetterSpacing(QFont::AbsoluteSpacing, 0.1);
label->setFont(f);
//
scene()->addItem(label);
我的測試開始切斷(字體較大,但對象的寬度沒有變化)!爲什麼?。當我使用QGraphicsTextItem
而不是MyTextItem
時,一切正常。
如何在字體增加後更新項目大小?
謝謝!
如果我從QObject刪除繼承 - 所有顯示正確..但我不能發送信號沒有它.. – Ilya