C++学习笔记 QT connect/disconnect与connect的五个参数

QT connect/disconnect与connect的五个参数

  • connect
  • disconnect

connect

1,信号和槽机制是Qt的核心机制,信号和槽是 QT 自行定义的一种通信机制,它独立于标准的 C/C++ 语言,因此要正确的处理信号和槽,必须借助一个称为 moc(Meta Object Compiler)的 QT 工具,该工具是一个 C++ 预处理程序,它为高层次的事件处理自动生成所需要的附加代码。
2,所有从 QObject 或其子类 ( 例如 Qwidget) 派生的类都能够包含信号和槽。当对象改变其状态时,信号就由该对象发射 (emit) 出去,这就是对象所要做的全部事情,它不知道另一端是谁在接收这个信号。这就是真正的信息封装,它确保对象被当作一个真正的软件组件来使用。槽用于接收信号,但它们是普通的对象成员函数。一个槽并不知道是否有任何信号与自己相连接。而且,对象并不了解具体的通信机制。
3,通过调用 QObject 对象的 connect 函数来将某个对象的信号与另外一个对象的槽函数相关联,这样当发射者发射信号时,接收者的槽函数将被调用。该函数的定义如下:

 bool QObject::connect ( const QObject * sender, const char * signal,
			const QObject * receiver, const char * member ) [static]

断开槽函数

 bool QObject::disconnect ( const QObject * sender, const char * signal, 
 			const Object * receiver, const char * member ) [static]

例如
(这个是我写的中国象棋项目,有兴趣可以看一看Qt5项目带开局数据库的中国象棋)

    QPushButton *_back;//悔棋按钮;
    QPushButton *_draw;//求和按钮;
    connect(_back,&QPushButton::clicked,this,&Board::backStep);
	connect(_draw,&QPushButton::clicked,this,&Board::draw);
	

槽函数有三种写法

    QPushButton *btn = new QPushButton;
	// 方式一:老式写法
    connect(btn, 

你可能感兴趣的:(C++基础知识,QT,c++,qt)