Qtで同じ名前のスロットが複数ある時のconnectの仕方

前回の記事でPhonon::VideoPlayer::playをボタン押したら動作させたいなと思ったら複数スロットがあり、

void play(const Phonon::MediaSource &source);

を選んできて引数エラーになるので…
公式ドキュメントにある方法でやってみる(旧式のSIGNAL(),SLOT()形式ではこのような問題は起きない)
New Signal Slot Syntax in Qt 5

Phonon::VideoPlayer *videoplayer = new Phonon::VideoPlayer(Phonon::VideoCategory);
QPushButton *play = new QPushButton;
play->setIcon(this->style()->standardIcon(QStyle::SP_MediaPlay));
//====
connect(play,&QPushButton::clicked,videoplayer,static_cast<void (Phonon::VideoPlayer::*)(void)>(&Phonon::VideoPlayer::play));
//====

キャストするんだってさ。
以上。

投稿者: PG_MANA

支離滅裂な自称プログラマー。 C,C++,Rust,JavaScript,PHP,HTML,CSS,OS自作,openSUSE,Arch,旅行 なんか色々してる人 #seccamp 17 19 20 23 #OtakuAssembly