c++ - 如何使 QGraphicsTextItem 单行?

标签 c++ qt

我有一个 QGraphicsTextItem 作为一个 lineedit,使用

setTextInteractionFlags(Qt::TextEditorInteraction);

但是,如果用户按回车键,它将显示多行。我希望它忽略换行,该怎么做?

最佳答案

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/

相关文章:

c++ - 为什么 Qt 在加载窗口图标时会崩溃?

Qt .pro 文件 : how to check if I'm compiling with MSVC 2013 toolset?

c++ - 在结构中重载函数调用运算符()/参数会发生什么?

python - 如何恢复 QTableView 中 QComboBox 委托(delegate)的索引?

c++ - 如何防止 boost::optional<T> 被错误地构造为 0?

C++ 年龄计算器 - 查找 2 个日期之间时间的最有效方程

ajax - 使用QtWebKit时如何知道网页何时加载?

c++ - 在 QMediaPlayer 中使用资源文件

c++ - 如何正确转发可调用类型

c++ - gcc 4.8 或更早版本是否存在关于正则表达式的问题?