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++书籍。有必要说,因为这些情况是作者与他们共度一生的原因。