QT Designer显示/隐藏框架(或放在顶部)

时间:2011-10-05 23:17:36

标签: qt designer

我正在尝试创建一个具有多个按钮的UI(位于左下角),当您单击每个按钮时,右侧会出现另一个框架。我已经实现了能够显示/隐藏它,但我仍然无法从一开始就隐藏它,你知道如何做到这一点吗?

另一个问题是重叠。它需要改变哪个帧在顶部,但显然这是不可能的。那么我怎样才能将框架带到其他框架的顶端呢?有办法吗?取消检查许多radiobuttons(我不知道如何),尽管它是不受欢迎的,也会做的伎俩

请注意,我只是在使用QT Creator(在这种情况下我正在做一个小部件),所以如果你解释一下有关实际编码的任何内容,你必须在最简单和一步一步的地方解释它。对不起...

非常感谢你们!

2 个答案:

答案 0 :(得分:1)

有一个插槽可以将小部件置于顶部 - 它被称为“加注”。您可以触发此插槽,就像触发setShown插槽一样。

从一开始就将某些东西设置为不可见,这有点棘手。你需要做的是在你的框架创建后立即调用setShown(false)。通常我们在代码中执行此操作。

通常,在创建ui文件时,应该有一个同名的cpp和h文件。所以在你的情况下你有一个Raka.ui文件,还应该有一个Raka.h和Raka.cpp文件。如果你没有,你应该继续在QtCreator中创建它们。

您的标头文件应如下所示:

#ifndef RAKA_H
#define RAKA_H

#include <QtGui/QWidget>
#include "ui_Raka.h"

class Raka: public QWidget
{
    Q_OBJECT

public:
    Raka(QWidget *parent = 0, Qt::WFlags flags = 0);
    ~Raka();

private:
    Ui::Rakaui;
};

#endif // RAKA_H

然后你的cpp文件......

#include "Raka.h"

Raka::Raka(QWidget *parent, Qt::WFlags flags)
    : QWidget(parent, flags)
{
    ui.setupUi(this);
    ui.MyFrame->setShown(false);
}

Raka::~Raka()
{

}

在构造函数中,您可以进行任何所需的初始化。在这种情况下,我们想让“MyFrame”不可见,所以我们调用setShown并传递false。

我希望有所帮助。

答案 1 :(得分:0)

将此添加到您的函数中:

QFrame *FN ; 
FN = ui->FrameName;
FN->setVisible(false);