[QT - C++桌面应用开发]我眼中的大小S:Signal和S
2020-02-01 本文已影响0人
_小老虎_
常见GUI
在常见的GUI程序桌面、移动端开发中,以我现阶段接触过的iOS移动
、MacOS
桌面开发中,UI控件与事件的调用是Callback
形式;
这种状态下,只能以1对1
的形式调用,并且无参数确认
机制,这种形式属于比较传统的UI->Event
模式;
例如
/** 例1
* 直接绑定storyboard
* stopBtnClick
*/
- (IBAction)stopBtnClick:(id)sender {
NSLog(@" %s:%d ", __func__, __LINE__);
[self overAnalyzingWith:1];
}
/** 例2
* 通过UIButton 绑定action selector
*/
[self.view.testBtn
addTarget:self
action:@selector(testBtnClick:)
forControlEvents:UIControlEventTouchUpInside
];
但是最近刚学的QT - C++
开发和这个在设计思想上还是有所不同的。
QT
QT中GUI程序的widget
响应事件中,是通过Signal
和Slot
形式去进行对象的事件响应,
比如,在QT的ui->pushButton
中,signals会用clicked()
,之后通过调用对象的slots函数最终完成Button的点击行为。
Signal -> Slot 是可以 1对N、N对1
的形式调用。
例如:
/*
*在UI Window里面点击testButton
*/
connect(ui->testButton, SIGNAL(clicked()), this, SLOT(testBtnClick()));
参考:https://doc.qt.io/qt-5/signalsandslots.html
剩下我总结到笔记上:
如图:
笔记