簡體   English   中英

信號和插槽幫助QT

[英]Signals and Slots help QT

我有一個帶有函數的Ui類,每次我從類發出信號時都想調用該函數,比如說test。 在ui函數中,我需要連接信號和插槽,但是我嘗試從QT文檔獲取代碼,但沒有運氣

信號聲明

signals:

void paint(int x, int y, int id);

信號發射

emit paint(x, y, id)

連接( m_test是一個類對象)

connect(&m_test,SIGNAL(paint(int,int,int)), this, SLOT(uiFunction(int,int,int)));

得到這個錯誤

錯誤:C2664:'QMetaObject :: Connection QObject :: connect(const QObject *,const char *,const QObject *,const char *,Qt :: ConnectionType)':無法將參數1從'uiFunction *'轉換為'const QObject *'

但我遵循了這個QT docs示例(計數器是類)

Counter a, b;
     QObject::connect(&a, SIGNAL(valueChanged(int)),
                      &b, SLOT(setValue(int)));

有任何想法嗎?

您需要Ui類從QObject繼承,然后在該類的聲明之后添加QOBJECT宏。 例如

class Ui : public QObject
{
    QOBJECT

signals:
    void paint(int x, int y, int id);

private slots:
    void UiFunction(int x, int y, int id);
};

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM