繁体   English   中英

如何使用button.clicked()事件在Qt中调用创建的.ui设计表单?

[英]How to call created .ui design form in Qt with button.clicked() event?

我在Qt中很新,我想问一下如何调用创建的.ui设计器表单与MainWindow中的PushButton连接。

我做了什么:1。创建一个新的.ui设计表单(Forms.right click - > Add New - > Qt Designer Form)到当前项目。 2.在.ui表单中创建了一个about对话框。 3.在MainWindow中创建一个插槽PushButton.clicked()。

对于所有在Qt中编程的人,请帮我解决这个问题,将PushButton与.ui表单连接起来,这样PushButton就可以调用/显示在.ui中创建的表单。

感谢您的关注。

在Qt的文档中解释了使用.ui文件: http//doc.qt.io/archives/qt-4.7/designer-using-a-ui-file.html

简介:处理.ui文件的最简单方法是在编译时通过uic (用户界面编译器)运行它。 如果.ui文件包含在项目(.pro)文件中,则会自动完成此操作。 (“添加新”可能在您的情况下自动执行此操作。)然后,您只需要在源文件中包含生成的C ++头文件。 它的名字应该是“ui_nameoftheoriginaluifile.hpp”。 当然,之后您需要实例化.hpp文件中定义的表单。

编辑添加:

从可读性开始,您的代码有几个问题。 我不知道你以前是否使用过面向对象的语言,但C ++中一个非常基本的规则是用大写字母开始类名,以便更容易区分对象和其他变量。 因此,班级名称应为“关于”,“父母”等。

编译错误是由使用“about”而不是“ui_about.hpp”文件中实际使用的类的名称 - “MainWindow”引起的。 (这取决于您在.ui文件中使用的表单的名称。)

如果您正在使用Qt Creator:按住Ctrl键并单击include指令中文件“ui_about.h”的名称。 这将打开它进行检查。 试着弄清楚它是如何工作的。

您还没有将opDialog()函数定义为“parent.cpp”中“父”类的成员,这会导致另一个编译时错误。

您也不应该使用QMainWindow进行关于对话框。 QMainWindow应该是你的应用程序的主窗口 - 不应再有它的实例。

about,about.h:

namespace Ui {
    class MainWindow;
}

class about : public QMainWindow {
    Q_OBJECT
public:
    about(QWidget *parent = 0);
    ~about();

protected:
    void changeEvent(QEvent *e);

private:
    Ui::MainWindow *ui;
};

而about.cpp的开头:

#include "about.h"
#include "ui_about.h"

about::about(QWidget *parent) :
    QMainWindow(parent),
    ui(new Ui::MainWindow)
{
    ui->setupUi(this);
}

我很抱歉先生,如果我可以在很长一段时间没有登录后立即回复,因为我必须在我的大学完成我的面部识别项目。 顺便说一句,我在尝试了很多“试炼和错误”之后解决了我的问题,现在我可以做得很好。 我已经发布了我的项目答案“如何使用button.clicked()事件在Qt中调用创建的.ui设计表单?” 在我的个人博客中。

这是帖子链接: http//hxr99.blogspot.com/2011/12/how-to-call-ui-design-form-with.html 还有一个用于调用窗口的示例项目的下载链接。 也许它可以帮助世界各地的人们从Qt编程开始。

我非常感谢你帮助我解决我的问题,对不起我的英语是不是很好。 圣诞快乐和新年快乐。 :)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM