QPlain代码编辑器QPlainTextEdit如何选中代码

时间:2010-12-19 22:23:00

标签: c++ qt text-editor

我正在尝试实现一个简单的对话框来编辑代码的某些部分。我使用基于QPlainTextEdit的this。但是,我无法将标签插入代码文本中。主要原因可能是我将代码编辑器显示为代码中显示的对话框。当我按Tab键时,对话框关闭然后重新打开。

CodeEditor* editor = new CodeEditor(this);
editor->setWindowFlags(Qt::Dialog);
editor->setMinimumSize(400, 400);
editor->show();

3 个答案:

答案 0 :(得分:4)

谢谢你们,

我解决了这个问题,这完全是关于我在问题中没有提到的部分。此代码是qtpropertybrowser代码库的一部分。我正在尝试添加一个属性编辑器,它将打开我在问题中指出的代码编辑小部件。当我深入查看qt属性代码库时,我发现tab键被忽略了,因为它被eventFilter过滤掉了。当我改变这部分。我解决了这个问题。

但是,我无法解决编辑器关闭并重新打开的问题。它变得如此之快。并且错误消息输出如下QWidget :: setTabOrder:'first'和'second'必须在同一窗口中。

答案 1 :(得分:0)

尝试使用Qt::Window代替Qt::Dialog,并使用QWidget::setWindowModality()将其设为应用模式。

答案 2 :(得分:0)

我会使用OK和Cancel按钮将编辑器嵌入到QDialog中。另外,请确保QPlainTextEdit :: tabChangesFocus()为false。