子类窗口小部件,用于在其中插入其他窗口小部件

时间:2014-12-04 22:06:17

标签: c++ qt subclass

是否有可能像QTextBrowser那样将小部件子类化,这样我可以以某种方式插入另一个小部件,也许是这样:

SubClassedTextBrowser *tb = new SubClassedTextBrowser();
this->layout().addWidget(tb);
tb->addWidget(new QPushButton("Push me"));

我知道如何将QTextBrowser子类化以编辑或添加方法,但这个特殊情况我感到磕磕绊绊。

我不希望有一个垂直布局的窗口,我首先添加一个TextBrowser,然后在它后面(在它之后)一个PushButton。我的目标是将小部件添加到textBrowser本身,这样我就可以在PushButton之前和之后将文本写入TextBrowser,并且能够一次选择所有文本。因为如果我在PushButton后面有第二个TextBrowser(在垂直布局中共有3个小部件),我将无法一次选择所有文本。这就是为什么我只想使用一个TextBrowser但是以某种方式将小部件添加到其中的原因。标准Qt可以实现吗?

1 个答案:

答案 0 :(得分:1)

是的,只需创建一个名为“CustomTextBrowserContainer”的父窗口小部件,

然后你必须编写自己的“代码”,代表“butttons”之类的东西 让我们说<button>

接下来,您必须将paintEvent添加到CustomTextBrowser

最后,在paintEvent中,您解析浏览器的内容,并为每个内容替换为等效于按钮大小的空格,然后手动绘制一个按钮。