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,C♯,HSP,JavaScript,PHP,HTML,CSS,OS自作,openSUSE,ラノベ,アニメ,鉄道 なんか色々してる人 #seccamp 2017

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です