如何在qt中按下按钮生成一个窗口(小部件)

时间:2010-06-08 05:32:28

标签: qt qt4 qt-creator

我在Linux上通过Qt creator设计了一个GUI。此设计包含一些字段,文本编辑和一些按钮。

当我按下按钮时,我想显示另一个窗口。这个或任何硬代码有GUI选项吗?

2 个答案:

答案 0 :(得分:8)

您需要signals and slots.

您必须将点击的信号连接到您创建的主要小部件的自定义插槽。

更正后的代码,基于Patrice BernassolaJob的评论。

在类定义(.h文件)中添加以下行:

Q_OBJECT

private slots:
    void exampleButtonClicked();
private:
    QDialog *exampleDialog;

当您在类中定义信号或槽时,需要宏Q_OBJECT。

变量exampleDialog应该在定义文件中声明,以便在插槽中访问它。

你必须初始化它,这通常在构造函数

中完成
ExampleClass::ExampleClass()
{
    //Setup you UI
    dialog = new QDialog;
}

在类实现(.cpp文件)中添加执行所需操作的代码,在这种情况下创建一个新窗口。

void ExampleClass::exampleButtonClicked()
{
    exampleDialog->show();
}

此外,您还必须使用以下行将信号连接到插槽:

connect(exampleButton, SIGNAL(clicked()), this, SLOT(exampleButtonClicked()));

你的问题很简单,所以我建议你阅读基础教程,这样你就可以更快地进步,避免等待答案。 一些对我有用的教程的链接:

http://zetcode.com/tutorials/qt4tutorial/

http://doc.qt.io/archives/qt-4.7/tutorials-addressbook.html

答案 1 :(得分:0)

点击按钮事件,您创建另一个小部件并显示。 另一个选项是Stacked widget,http://doc.trolltech.com/4.6/qstackedwidget.html