我创建了一个类,继承自QGraphicsTextItem
. 此类的对象必须是可移动的,并且必须在 MouseButton 启动时发送信号。
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);
一切都很好。但是,当我添加:
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
一切都很好。
字体增加后如何更新项目大小?
谢谢!