问题描述
|
我只是对
C++ GUI Programming with Qt 4
书中的那些代码片段有疑问:
GoToCellDialog::GoToCellDialog(QWidget *parent):QDialog(parent)
这是否意味着我们正在继承QDialog(parent)
?或者,这到底是什么意思?
setupUi(this);
在此,此代码段是gotocelldialog.cpp
文件的一部分,该文件是is5ѭ头文件的实现。在这种情况下,“ 6”是什么意思?我们正在尝试设置什么?而且,那将是什么样的设置?
谢谢。
解决方法
GoToCellDialog::GoToCellDialog(QWidget *parent) : QDialog(parent)
ѭ8表示初始化列表。这意味着,将“ 9”作为参数传递给“ 10”构造函数。我假设ѭ11是从ѭ10派生的,因此将parent
发送给它的构造函数。因此,在执行ѭ11even的偶数主体之前,先执行QDialog
构造函数。
这个例子应该给你一个想法-
class foo
{
int number ;
public:
foo(int i) : number(i) // Means copying value of i to number
{}
};
class bar : public foo
{
public:
bar(int temp) : foo(temp)
{ // <- Before getting here,foo sub object must be constructed.
// Because the order of construction takes from parent to child.
}
};
在上面的示例中,在实例化bar
时,必须传递foo
构造函数的参数。因此,初始化列表是唯一的方法,因为没有可用于foo
的默认构造函数(即没有参数的构造函数)。
,要回答您的问题:
这是否意味着我们继承了QDialog(parent)?
是的,这是基本的C ++继承。
setupUi(this);
简而言之:\“用户界面编译器”(uic)将xml文件编译/转换为C ++代码,然后将其编译和链接。 setupUi()函数可通过构建窗口小部件树来确保将您制作的Qt设计器窗口小部件(生成的C ++代码)设置为由代码使用。