首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Qt:信号、插槽和Q_OBJECT

Qt:信号、插槽和Q_OBJECT
EN

Stack Overflow用户
提问于 2013-02-23 06:14:40
回答 2查看 984关注 0票数 0

我已经用Qt写了一个程序,它工作得很好,但点击按钮不起作用。当我在类声明之后使用Q_OBJECT时,它会给我带来编译错误。

下面是我的代码:

代码语言:javascript
复制
    #include <QApplication>
    #include <QPushButton>
    #include <QLabel>
    #include <QWidget>

    class Communicate : public QWidget
    {
     // Q_OBJECT

      public:
        Communicate(QWidget *parent = 0);

      private slots:
        void OnPlus();
        void OnMinus();

      private:
        QLabel *label;

    };

    Communicate::Communicate(QWidget *parent)
        : QWidget(parent)
    {
      QPushButton *plus = new QPushButton("+", this);
      plus->setGeometry(50, 40, 75, 30);

      QPushButton *minus = new QPushButton("-", this);
      minus->setGeometry(50, 100, 75, 30);

      label = new QLabel("0", this);
      label->setGeometry(190, 80, 20, 30);

      connect(plus, SIGNAL(clicked()), this, SLOT(OnPlus()));
      connect(minus, SIGNAL(clicked()), this, SLOT(OnMinus()));
    }

    void Communicate::OnPlus()
    {
      int val = label->text().toInt();
      val++;
      label->setText(QString::number(val));
    }

    void Communicate::OnMinus()
    {
      int val = label->text().toInt();
      val--;
      label->setText(QString::number(val));
    }

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

      Communicate window;

      window.setWindowTitle("Communicate");
      window.show();

      return app.exec();
    }
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-02-23 06:20:07

使用O_QBJECT宏,要更正得到的错误,可以执行以下任一操作:

1)在自己的.h文件中声明您的QWidget/QObject派生类,并在自己的.cpp文件中定义它。

2)将moc生成的.moc文件包含在您拥有的.cpp中的类定义之后(添加类似#include“xxxx.moc”的内容)

here:另外,如果你想使用布局而不是使用setGeometry将你的小部件放到窗口中,请阅读更多layouts

票数 0
EN

Stack Overflow用户

发布于 2013-02-23 06:20:19

您需要通过moc运行包含Q_OBJECT宏的文件,并将其输出与其余应用程序一起编译和链接。根据您的构建系统,这会自动发生(qmake)或通过添加一行左右(cmake)

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/15034096

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档