我有一个QGraphicsTextItem表现为lineedit,使用
setTextInteractionFlags(Qt::TextEditorInteraction);
但是,如果用户按Enter,它将显示多行。我希望它忽略换行,该怎么做?
最佳答案
AFAIK QGraphicsTextItem没有实现该功能。您可以通过将QGraphicsTextItem子类化并过滤键盘事件来解决问题:
class MyGraphicsTextItem : public QGraphicsTextItem
{
// ...
protected:
virtual void keyPressEvent(QKeyEvent* e) override
{
if (e->key() != Qt::Key_Return)
{
// let parent implementation handle the event
QGraphicsTextItem::keyPressEvent(e);
}
else
{
// ignore the event and stop its propagation
e->accept();
}
}
};
关于c++ - 如何使QGraphicsTextItem单行?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/39201175/