Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/qt/7.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
当对话框窗口关闭时,按X键尝试关闭应用程序,但出现错误“;未找到拒绝成员函数";(Qt应用程序)_Qt_Dialog - Fatal编程技术网

当对话框窗口关闭时,按X键尝试关闭应用程序,但出现错误“;未找到拒绝成员函数";(Qt应用程序)

当对话框窗口关闭时,按X键尝试关闭应用程序,但出现错误“;未找到拒绝成员函数";(Qt应用程序),qt,dialog,Qt,Dialog,在我的Qt程序中,我有一个主窗口和一个对话框窗口。主窗口具有供用户选择的选项,并且从主窗口构造函数调用的对话框窗口要求用户输入执行其操作所需的密码。我想以这样的方式链接两个窗口,当用户试图通过按下右上角的标准X按钮关闭对话框窗口时,整个程序将关闭而不仅仅是该窗口 我想我在这里找到了问题的答案,我复制了被重写的拒绝函数的实现,并将MyDialog更改为对话框窗口的类名,但对我来说,我收到一个错误,没有成员函数“reject()”已在我的dialog window类中声明,即使它包含QDialog#

在我的Qt程序中,我有一个主窗口和一个对话框窗口。主窗口具有供用户选择的选项,并且从主窗口构造函数调用的对话框窗口要求用户输入执行其操作所需的密码。我想以这样的方式链接两个窗口,当用户试图通过按下右上角的标准X按钮关闭对话框窗口时,整个程序将关闭而不仅仅是该窗口

我想我在这里找到了问题的答案,我复制了被重写的拒绝函数的实现,并将MyDialog更改为对话框窗口的类名,但对我来说,我收到一个错误,没有成员函数“reject()”已在我的dialog window类中声明,即使它包含QDialog#include,并且我的dialog window类在头文件中继承了它的所有内容,头文件当然包含在它的cpp文件中


我是不是在Qt上碰到了一只怪虫子?另一方面,我认为Qt开发人员从未在右上角预定义的插槽中制作过这三个标准按钮,因此可以使用connect()函数,这是一个遗憾

似乎您没有在
MyDialog
标题中添加
reject()
方法的声明。如果要重新实现,应在标题中声明:

public slots:
    virtual void reject();

谢谢。我不认为我必须这么做,因为它应该是一个在QDialog中定义的函数。也许我是特别地没有在C++中工作过,但是我觉得奇怪的是,当你从一个类继承时,你必须写你在“你的”头中重新定义的函数的声明。另外,如果您或其他人可以在我链接的代码中帮助我,其中是应该确定的变量“changes”的布尔值。我可以在reject函数中将其初始化为true,但我不知道它何时会改变?(无双关语lol)@codehelp4,
更改
变量不是强制性的,在该示例中,它可能是
MyDialog
成员,并在
MyDialog
的构造函数中初始化为
false
。可能是它的意思-是否进行了需要的更改saving@Valdimir感谢您解释我不确定它是否应该是某个库预定义的内容。我总是倾向于认为,除非我看到宣言。