Qt中子窗口的自定义UI

时间:2014-05-28 16:40:12

标签: c++ qt qt-creator qt5 mdichild

我已经使用C ++对Qt 5进行了一些测试,我看到了很多潜力!但是我来到了一堵我还没能通过的大墙。

我想创建一个包含其他窗口(MDI)的widnow,我在线关注一些教程,但窗口是由代码创建的,我不知道如何"链接&#34 ;它到我已经设计的UI文件。

我遵循Qt Creator附带的MDI教程,它工作正常,但正如我之前所说,它不适用于自定义UI。我发现这other one正是我想要的,我遵循它并且它不起作用我也从示例中下载了源代码,运行它仍然无法工作。它会打开一个没有任何内容的窗口。

如果某人有一个例子,一本好的教程或一本带有正确信息的书,我会很感激。

非常感谢您花时间阅读本文。

1 个答案:

答案 0 :(得分:0)

您应该在窗口上放置一个QMdiArea小部件。它提供了一个显示MDI窗口的区域。它可以通过设计师完成。

所有子窗口都应继承QMdiSubWindow,为QMdiArea提供子窗口类:

class MyWindow : public QMdiSubWindow
{
    Q_OBJECT

public:
    explicit MyWindow(QWidget *parent = 0);
    ~MyWindow();
};

创建自定义子窗口后,您可以将其添加到MDI区域,如:

MyWindow * subWindow = new MyWindow(ui->mdiArea);
MyWindow->show();

您还可以通过右键单击MDI区域并选择:

在设计器中添加子窗口

"添加subWindow"

这将添加一个可在设计器中查看的子窗口。您还可以通过这种方式向设计器中添加的子窗口添加任意小部件。