C++ 在Qt中创建自定义类类型的窗口
这是我的第一个问题,所以我尽量不让自己听起来很愚蠢 说明: 我在Qt中有一个主窗口,它有一个按钮在主窗口中创建(子-?)窗口。这可以根据用户的需要多次执行,并且每个子窗口都显示相同的属性/项目集。我认为编写一个类来保存所有这些属性将是一种明智的做法(这将继承主窗口类),因为子窗口的每个实例都会自动获取属性。我正在使用插槽创建每个实例 问题: 除了所需的属性之外,我还向子窗口类添加了什么,以便让Qt知道如果我创建了该类型的对象,它应该打开一个窗口 例如,假设我在头文件中实现了所有子窗口属性,如下所示:C++ 在Qt中创建自定义类类型的窗口,c++,qt,qdialog,qwindow,C++,Qt,Qdialog,Qwindow,这是我的第一个问题,所以我尽量不让自己听起来很愚蠢 说明: 我在Qt中有一个主窗口,它有一个按钮在主窗口中创建(子-?)窗口。这可以根据用户的需要多次执行,并且每个子窗口都显示相同的属性/项目集。我认为编写一个类来保存所有这些属性将是一种明智的做法(这将继承主窗口类),因为子窗口的每个实例都会自动获取属性。我正在使用插槽创建每个实例 问题: 除了所需的属性之外,我还向子窗口类添加了什么,以便让Qt知道如果我创建了该类型的对象,它应该打开一个窗口 例如,假设我在头文件中实现了所有子窗口属性,如下所
#include <QObject>
#include <QDialog> //Not sure about this
class ChildWindow : public ParentWindow
{
Q_OBJECT
public:
ChildWindow(QObject* parent);
~ChildWindow();
//Remaining properties like QSpinBox, Radio buttons etc
}
我的问题是,我没有看到任何代码表明window
是一个单独的窗口。我可以看到它的类型是ChildWindow
,但仅仅包括QDialog
是否就为它提供了show()
功能
编辑:
我意识到第一个建议是尝试看看这是否有效,但在不太可能的情况下,它有效,我不会学到任何东西,我仍然不知道它为什么有效,如果没有,我会回到这里问同样的问题。我希望你们能理解
编辑2:
error C2039: 'show' : is not a member of 'ChildWindow'
所以我猜包括QDialog
并没有起作用
编辑3:
如果我将其添加到ChildWindow
构造函数中
QDialog* child;
child = new QDialog;
child->show()
在插槽定义中也必须这样做吗?那么您的
父窗口是如何定义的?在Qt中,您可以显示任何QWidget
afaik,因此它不需要是QDialog
或QWindow
(但如果要显示多个窗口以使用一个窗口,这是有意义的)是基于QMainWindow或QDialog的ParentWindow吗?@xanderParentWindow
定义为QDialog
,它基本上是一个显示子窗口的空白画布。它的构造函数使用“创建子窗口”按钮打开一个通用小部件。但是如何创建类型为ChildWindow
的子窗口?我应该向ChildWindow
类的构造函数添加什么,以便它知道如何打开窗口?@Jeroen3QDialog@EagerLearner如果您的ParentWindow
是一个QDialog
它应该可以与您的代码一起工作,那么只需创建一个对象并调用call方法理论上就可以了。。也许您的ParentWindow就是问题所在,所以如果对您更合适,请尝试使用默认的QDialog。
QDialog* child;
child = new QDialog;
child->show()