QT学习小结1-信号和槽机制

int (* compare)(int a,intb) 定义了一个函数指针compare,它可以指向一个函数,这个被compare指向的函数有两个int类型的参数,并返回一个int类型的值。
一个槽就是一个接收函数,用于获得其它窗口部件状态改变的信息。
::在C++中是什么意思 表示作用域,和所属关系。
每一个工程都有一个执行的入口函数,此项目中的main.cpp中的 main()函数就是此工程的入口。
main.cpp
slots插槽
QApplication类管理GUI程序的控制流和主要设置,是基于QWidget的,为此特化了QGuiApplication的一些功能,处理QWidget特有的初始化和结束收尾工作。
QApplication 类管理图形用户界面应用程序的控制流和主要设置。 可以说 QApplication是Qt的整个后台管理的命脉
它包含主事件循环,在其中来自窗口系统和其它资源的所有事件被处理和调度。它也处理应用程序的初始化和结束,并且提供对话管理。它也处理绝大多数系统范围和应用程序范围的设置。

QApplication::QApplication ( int & argc, char ** argv )

对于QT这样的图形编程来说,一般都是逻辑绘图分离的,QApplication代表一个程序,Window代表一个窗口。一个程序可以有多个窗口。
那么argc=3 argv就是上面那行字符串数组。
因为图形编程有时也需要从命令行传递参数给程序,所以才会有argc和argv。
MainWindow::MainWindow(QWidget*parent) :QMainWindow(parent),ui(new Ui::MainWindow)
{}
从c++语法的角度看就是参数初始化表。给自己记录一下
首先QMainWindow是父类(基类)而MainWindow是子类(派生类),他们是继承关系;MainWindow(QWidget *parent)是类MainWindow的构造函数,QMainwindow(parent)是类QMainwindow的构造函数。类Mainwindow在实现构造函数时,要初始化基类QMainwindow的数据成员但是因为无法继承基类的构造函数,所以才用这种方式初始化基类的数据成员。
说一下,这种代码的具体格式
派生类::派生类构造函数(总参数列表):基类构造函数(参数列表) //基类构造函数的参数列表是实参。
{
派生类中的数据成员初始化;

}
在C++中,A与B之间是继承关系,A与B之间可以用“:”连接,但是类是没有参数的。因此QMainWindow(parent)是不能理解为类的。
现在有一个派生类A,它继承基类B。现在问题是:使用A类创建一个对象后,怎样初始化它从类B中继承过来的数据成员?(子类是无法继承父类的构造函数和析构函数的)。总结下:因为初始化列表中无法直接初始化基类的数据成员,所以你需要在列表中指定基类的构造函数,如果不指定,编译器则会调用基类的默认构造函数。
子类继承父类子类函数无法初始化所以需要初始化父类函数。

猜你喜欢

转载自blog.csdn.net/weixin_42269817/article/details/86585486