簡體   English   中英

QT信號/插槽

[英]QT Signal / Slot

我有一個關於信號和插槽的問題。 在我的應用程序中,我想將信號從一個對象連接到對話框窗口中的textEdit 我的信號發出一個QString ; 如果我違反封裝(通過將UI公開而不是私有)並將信號直接連接到textEdit則可以正常工作。 但是我覺得這不是正確的方法。 如果我進行以下操作:

connect(m_osgWidget->picker.get(), SIGNAL(setX(QString)), m_addAgentDlg, SLOT(getX(QString)));

哪里:

void getX(QString)
{
    this->ui.textEdit(QString);
}

它給我一個錯誤,我不能在this->ui.textEdit(QString);使用QString this->ui.textEdit(QString); 我需要將setX()信號中的QString粘貼到textEditm_addAgentDlg 如何做到這一點? 我在哪里弄錯了?

不好意思地說,但是您需要學習基本的C ++。 對於帶有Qt的C ++中的此類事情,正確的語法是這樣的:

connect(m_osgWidget->picker.get(), SIGNAL(setX(const QString&)), m_addAgentDlg, SLOT(getX(const QString&)));

// Why do you call it getX? Should it be called setText instead?
void getX(const QString& string)
{
    ui->textEdit->setText(string);
}

暫無
暫無

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

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