我想在Qt中实现一个文本字段,它复制stackoverflow上的“Tags”字段(提交问题时)。某些关键字将被小部件替换,如果我退格一个小部件,它应该被替换为创建该小部件的文本。我怎么能做到这样的事情?感谢。
答案 0 :(得分:1)
您可以从继承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);
}
}
}