QT 信号/插槽

QT Signal / Slot

本文关键字:插槽 信号 QT      更新时间:2023-10-16

我有一个关于信号和插槽的问题。在我的应用程序中,我想将一个对象的信号连接到对话框窗口中的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我需要将setX()信号中的QString粘贴到m_addAgentDlg textEdit中。如何做到这一点?我哪里犯了错误?

我很

抱歉这么说,但你需要学习基本的C++。正确的语法是这样的,C++与Qt:

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);
}