C++ QT信号/插槽

C++ QT信号/插槽,c++,qt,qmake,qtgui,qt-signals,C++,Qt,Qmake,Qtgui,Qt Signals,我有一个关于信号和插槽的问题。在我的应用程序中,我想将一个对象的信号连接到对话框窗口中的textEdit。我的信号发出一个QString;如果我违反了封装(通过将UI设置为公共而不是私有)并将信号直接连接到textEdit上,它就会工作。但我觉得这不是正确的方式。如果我做了如下的事情: connect(m_osgWidget->picker.get(), SIGNAL(setX(QString)), m_addAgentDlg, SLOT(getX(QString))); 其中: voi

我有一个关于信号和插槽的问题。在我的应用程序中,我想将一个对象的信号连接到对话框窗口中的
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\u addAgentDlg
text编辑中。如何做到这一点?我在哪里犯了错误?

< p>我很抱歉这么说,但是你需要学习基本的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);
}

嗯,我还在学习,所以没必要说。我已经尝试了上面发布的每种可能的代码类型,包括您提供的一种。它不起作用。这就是为什么我在这里问它。我继续获取消息,对象中没有这样的插槽。@ AzraithSherkhan:您必须重启QGuy,但请购买C++书籍。有必要说,因为这些情况是作者与他们共度一生的原因。