4

このコードが依存関係のないプレーンな C++ でどのように見えるかを理解しようとしていたので、mocコンパイラを使用していましたが、明らかに間違っています。

moc は常に戻ります

main.cpp:0: Note: No relevant classes found. No output generated.

コードは

#include <QApplication>
#include <QWidget>
#include <QPushButton>

class MyButton : public QWidget
{
 public:
     MyButton(QWidget *parent = 0);
};

MyButton::MyButton(QWidget *parent)
    : QWidget(parent)
{   
  QPushButton *quit = new QPushButton("Quit", this);
  quit->setGeometry(50, 40, 75, 30);

  connect(quit, SIGNAL(clicked()), qApp, SLOT(quit()));
}


int main(int argc, char *argv[])
{
  QApplication app(argc, argv);  

  MyButton window;

  window.resize(250, 150);
  window.move(300, 300);
  window.setWindowTitle("button");
  window.show();

  return app.exec();
}

http://www.zetcode.com/gui/qt4/firstprograms/から

一般的に言えば、C++ 標準ライブラリのみを使用して独自のシグナル スロット システムを作成することに関心があるため (ブースト シグナルなし、QT なし、他には何もありません)、研究目的でこれを行っており、インフラストラクチャにのみ関心があります。シグナルとスロットについて。

ありがとう。

4

1 に答える 1

7

class の private セクションにQ_OBJECTマクロを追加して、変換します。 moc

class MyButton : public QWidget
{
 Q_OBJECT
 public:
     MyButton(QWidget *parent = 0);
};

これがドキュメントの内容です。

于 2012-12-12T16:37:58.153 に答える