您尚未登录。

楼主 #1 2020-04-09 10:19:05

Gentlepig
会员
注册时间: 2018-10-24
已发帖子: 1,363
积分: 1323.5

请教,static_cast<void (QComboBox::*)(int)>这是转换为什么类型?

在看一个qt5的代码,看到了信号是这么链接的:
connect(m_combo_flowControl, static_cast<void (QComboBox::*)(int)>(&QComboBox::currentIndexChanged), [=]() { emit settingChanged(Settings::FlowControl, m_combo_flowControl->currentData()); });

不懂为什么这里要加static_cast类型转换,转换为void型还是int型?

离线

楼主 #3 2020-04-09 11:10:46

Gentlepig
会员
注册时间: 2018-10-24
已发帖子: 1,363
积分: 1323.5

Re: 请教,static_cast<void (QComboBox::*)(int)>这是转换为什么类型?

谢谢,明白了。
QComboBox的currentIndexChanged函数有两个重载函数,所以用了强制类型转换,转换为带int参数的函数指针。

离线

楼主 #6 2020-04-09 12:35:40

Gentlepig
会员
注册时间: 2018-10-24
已发帖子: 1,363
积分: 1323.5

Re: 请教,static_cast<void (QComboBox::*)(int)>这是转换为什么类型?

谢谢。
第三个参数可以省掉吧。
SIGNAL SLOT是qt4的用法吧。
这是gitlab上下载的别人的代码。

离线

页脚

工信部备案:粤ICP备20025096号 Powered by FluxBB

感谢为中文互联网持续输出优质内容的各位老铁们。 QQ: 516333132, 微信(wechat): whycan_cn (哇酷网/挖坑网/填坑网) service@whycan.cn