将 QWidgets 放在文本字段中



我想在Qt中实现一个文本字段,该字段复制堆栈溢出上的"标签"字段(提交问题时)。某些关键字将被小部件替换,如果我退格一个小部件,它应该替换为为创建该小部件而键入的文本。我怎么能完成这样的事情?谢谢。

您可以从继承 QWidget 并实现 KeyPress 和 KeyRelease 事件开始。基本上模仿QLineEdit小部件。因此,您可能需要寻找可重用的代码以避免大量工作,例如继承QLineEdit和覆盖paintEvent()。

然后,在paintEvent中,使用绘制器渲染非控件文本和控件。

伪代码:

SomeWidget::paintEvent(QPaintEvent *)
{
    QPainter painter(this);
    foreach (object ; objectsToDraw) {
        if (isText) {
            painter.drawText();
        } else if (isWidget) {
            widget.render(&painter);
        }
    }
}

相关内容

  • 没有找到相关文章

最新更新