0

我的意图是创建一个带有到达文本控件的 QTextEdit。我想放在工具栏中的控件。但是我很难控制布局。问题是,如果我将 QTextEdit 放在具有工具栏的 QWidget(我的类继承 QWidget)中,则会出现重叠。

我尝试的另一种方法如下:我的类继承了 QTextEdit,它有一个工具栏。现在布局不同了,但不是我想要的。请帮助我有一个很好的看法。

4

2 回答 2

3

将您的工具栏和 QTextEdit 放置在继承 QWidget 的类内的布局中。布局(参见QVBoxLayout)相对于彼此定位项目,确保它们不重叠。如果您不使用布局,所有子窗口小部件都将创建在位置 (0,0),即父窗口小部件的左上角。

QWidget* widget = new QWidget();
QToolBar* toolbar = new QToolBar(widget);
QTextEdit* textedit = new QTextEdit(widget);

QVBoxLayout* layout = new QVBoxLayout(widget);
layout->addWidget(toolbar);
layout->addWidget(textedit);

瞧,小部件不再重叠。

于 2010-09-02T13:27:33.853 回答
1

前段时间我写了自己的文本编辑器,我做的有点像你。我使用 QMainwWindow 作为 main_window 并使用一个简单的 QWidget 作为我的中央小部件,上面有一个布局(QVBoxLayout)。在那个布局中,我放置了一个 QTabWidget,我可以在其中添加我自己的 text_edit(源自 QTextEdit)作为新选项卡。

我有三个工具栏,我只是将它们添加到主窗口中。所以它们可以在我自己编写的 QTextEdit 周围自由移动。

我还使用 DockWidgets 添加了文件资源管理器和日志记录窗口。

替代文字

于 2010-09-02T13:27:53.193 回答