Qt -我们所说的那些代码片段是什么意思?
Qt - What do we mean by those code snippets
我对C++ GUI Programming with Qt 4
书中的代码片段有一些疑问:
GoToCellDialog::GoToCellDialog(QWidget *parent):QDialog(parent)
这是否意味着我们继承了 QDialog(parent)
?或者,这到底是什么意思?setupUi(this);
这里,这个代码片段是gotocelldialog.cpp
文件的一部分,它是gotocelldialog.h
头文件的实现。在这种情况下,我们所说的this
是什么意思?我们要设置什么?这是一种什么样的设置呢?
谢谢。
GoToCellDialog::GoToCellDialog(QWidget *parent) : QDialog(parent)
:
表示初始化列表。这意味着,parent
作为参数传递给QDialog
构造函数。我假设GoToCellDialog
是从QDialog
派生的,因此将parent
发送给它的构造函数。因此,在执行GoToCellDialog
的体之前,执行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++代码)被设置为您的代码通过构建Widget树来使用。
相关文章:
- 这个带有模板<类 Vector 的C++代码片段有什么问题>
- 这两个代码片段相似,但显示的结果不同
- 如何替换此示例代码片段中已弃用的handler_type_t或 boost::asio::handler_type?
- 如果我在下面的代码片段中添加"delete[] d;",为什么我得到零?
- 我遇到了这个代码片段,不明白. 它递归检查 C++ 字符串中是否存在大写字符
- 任何人都可以解释一下我是否需要 & 在第一个代码片段中
- 提取狮身人面像文档中的C++代码片段
- 为什么此代码片段有效?如何取消引用空点?
- 无法在这个基本的Qt代码片段中找到错误,但我被告知它肯定存在?
- 这个代码片段中会发生死锁吗?为什么
- 这个代码片段中的while循环是如何工作的
- 在给定的代码中,有人可以解释一下(int i = 0; i<len; i++)count[str[i]]++的代码片段;
- 为什么我的C++代码在以下打印链表的代码片段中显示分段错误?
- 为什么这两个代码片段具有相同的效果?
- 以下代码片段的时间复杂度是多少?
- 为什么以下代码片段存在编译错误
- 如何在此代码片段中创建 begin() 指针
- 为什么这个简短的模板代码片段有效
- 无法理解代码的特定片段:这是一个函数,只是一行还是什么
- "Observable behaviour"和编译器自由消除/转换片段 C++ 代码