自分の関数を Qt の関数スロットとして呼び出そうとしていますが、その方法がわかりません。次のアプローチが間違っているようです:
更新: 回答によると、ソース コードを更新しましたが、それでも何か問題があるようです。このコード スニペットをコンパイルしようとすると、次のエラーが発生します。
C2515:「適切な既定のコンストラクターがありません。」
と
C2665: QObject::connect':3 つのオーバーロードのどれも、すべての引数を変換できませんでした。
それぞれVisual Studio 2010で。
#include <QtGui/QApplication>
#include <QPushButton>
#include <QObject>
#include <QMessageBox>
class myclass;
int main(int argc,char *argv[])
{
QApplication a(argc,argv);
QPushButton btnshowmessage("show");
myclass *my=new myclass();
QObject::connect(&btnshowmessage,SIGNAL(clicked()),my,SLOT(warningmessage()));
btnshowmessage.show();
return a.exec();
}
//////////////////////////////////////////////////////////////////////////
class myclass: public QObject
{
Q_OBJECT
public:myclass(){}
public slots:
void warningmessage()
{
QMessageBox::warning(0,"Warning","Test Message!",QMessageBox::Ok);
}
};