久久久久久久av_日韩在线中文_看一级毛片视频_日本精品二区_成人深夜福利视频_武道仙尊动漫在线观看

C++ Qt 信號和插槽不觸發

C++ Qt signal and slot not firing(C++ Qt 信號和插槽不觸發)
本文介紹了C++ Qt 信號和插槽不觸發的處理方法,對大家解決問題具有一定的參考價值,需要的朋友們下面隨著小編來一起學習吧!

問題描述

我在 Qt 程序中遇到了將按鈕信號連接到插槽的困難.我的代碼是:

I am having difficulty in my Qt program with connecting button signals to my slots. My code is:

Main.cpp

#include <QtGui/QApplication>
#include "MainWidget.h"

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

    MainWidget mainWidget;
    mainWidget.show();

    return app.exec();
}

MainWidget.h

MainWidget.h

#ifndef MAINWIDGET_H
#define MAINWIDGET_H

#include <QWidget>

class MainWidget : public QWidget
{
public:
    MainWidget();

public slots:
    void bAdvice_clicked();
    void bWeather_clicked();
    void bNextMeeting_clicked();
    void bQuit_clicked();
};

#endif // MAINWIDGET_H

MainWidget.cpp

MainWidget.cpp

#include "MainWidget.h"
#include <QMessageBox>
#include <QPushButton>
#include <QTextEdit>
#include <QVBoxLayout>

MainWidget::MainWidget()
{
    QLayout *layout = new QVBoxLayout();
    this->setLayout(layout);

    QTextEdit *message = new QTextEdit();
    layout->addWidget(message);

    QPushButton *bAdvice = new QPushButton("Advice");
    connect(bAdvice, SIGNAL(clicked()), this, SLOT(bAdvice_clicked()));
    layout->addWidget(bAdvice);

    QPushButton *bWeather = new QPushButton("Weather");
    connect(bWeather, SIGNAL(clicked()), this, SLOT(bWeather_clicked()));
    layout->addWidget(bWeather);

    QPushButton *bNextMeeting = new QPushButton("Next Meeting");
    connect(bNextMeeting, SIGNAL(clicked()), this, SLOT(bNextMeeting_clicked()));
    layout->addWidget(bNextMeeting);

    QPushButton *bQuit = new QPushButton("Quit");
    connect(bQuit, SIGNAL(clicked()), this, SLOT(bQuit_clicked()));
    layout->addWidget(bQuit);
}

void MainWidget::bAdvice_clicked()
{
}

void MainWidget::bWeather_clicked()
{
}

void MainWidget::bNextMeeting_clicked()
{
    QMessageBox::information(this, "Next Meeting", "Today", QMessageBox::Ok);
}

void MainWidget::bQuit_clicked()
{
    this->close();
}

程序輸出如下:

Starting C:UsersSameerDocumentsPartAQuestion2debugPartAQuestion2.exe...
Object::connect: No such slot QWidget::bAdvice_clicked() in MainWidget.cpp:16
Object::connect: No such slot QWidget::bWeather_clicked() in MainWidget.cpp:20
Object::connect: No such slot QWidget::bNextMeeting_clicked() in MainWidget.cpp:24
Object::connect: No such slot QWidget::bQuit_clicked() in MainWidget.cpp:28

C:UsersSameerDocumentsPartAQuestion2debugPartAQuestion2.exe exited with code 0

代碼看起來是正確的,沒有編譯器警告.運行時只是這個輸出.但看起來我正確地連接了信號和插槽.

The code seems right, no compiler warnings. Just this output at runtime. But it looks like I hooked the signals and slots up correctly.

推薦答案

Q_OBJECT 添加到您的班級,如下所示:

Add Q_OBJECT to your class, like this:

class MainWidget : public QWidget
{
    Q_OBJECT

您還必須運行 moc 以生成一些幫助程序代碼.qmake 會自動為您執行此操作,但如果您自己編譯,則需要運行 moc.

You also have to run moc to generate some helper code. qmake does that automatically for your, but if you compile this yourself, you need to run moc.

這篇關于C++ Qt 信號和插槽不觸發的文章就介紹到這了,希望我們推薦的答案對大家有所幫助,也希望大家多多支持html5模板網!

【網站聲明】本站部分內容來源于互聯網,旨在幫助大家更快的解決問題,如果有圖片或者內容侵犯了您的權益,請聯系我們刪除處理,感謝您的支持!

相關文檔推薦

How can I read and manipulate CSV file data in C++?(如何在 C++ 中讀取和操作 CSV 文件數據?)
In C++ why can#39;t I write a for() loop like this: for( int i = 1, double i2 = 0; (在 C++ 中,為什么我不能像這樣編寫 for() 循環: for( int i = 1, double i2 = 0;)
How does OpenMP handle nested loops?(OpenMP 如何處理嵌套循環?)
Reusing thread in loop c++(在循環 C++ 中重用線程)
Precise thread sleep needed. Max 1ms error(需要精確的線程睡眠.最大 1ms 誤差)
Is there ever a need for a quot;do {...} while ( )quot; loop?(是否需要“do {...} while ()?環形?)
主站蜘蛛池模板: 精品国产aⅴ | 日韩一区二区av | 9porny九色视频自拍 | 九九久久国产 | 蜜桃视频在线观看免费视频网站www | 中文字幕精品一区二区三区在线 | 成人av在线播放 | 日韩一区二区三区在线视频 | aaaaaa大片免费看最大的 | 一二三四在线视频观看社区 | 国内精品视频 | 国产一区二区三区免费 | 亚洲成人动漫在线观看 | 亚洲在线一区二区 | 午夜精品久久久久久 | 三级成人在线 | 亚州精品天堂中文字幕 | 日韩欧美国产一区二区 | 99久久精品国产一区二区三区 | 一级高清视频 | 在线观看中文字幕av | 久久久青草婷婷精品综合日韩 | 日本成人午夜影院 | 精品一区二区久久久久久久网站 | 日韩精品一区二区三区在线观看 | 一区二区三区视频在线观看 | 日韩在线视频一区 | 国产伦精品一区二区三区精品视频 | 日本久久久一区二区三区 | 91视频在线观看 | 夜夜爽99久久国产综合精品女不卡 | 亚洲欧美在线一区 | 一区精品在线观看 | 81精品国产乱码久久久久久 | 亚洲成人精品影院 | 久久久久久国产精品免费免费狐狸 | 国产精品亚洲一区二区三区在线 | 欧美日韩国产精品一区 | 久久国产精品免费一区二区三区 | 日韩不卡三区 | 亚洲天堂精品久久 |