2
我是QT初学者,我正在编写一个GUI应用程序,它有两个QPushButtons和两个QTextEdits。当按钮1被点击时,我只想要QTextEdit 1显示一些东西,当点击按钮2时,我只想要QTextEdit 2显示一些东西,下面是我的代码,但它不起作用,因为看起来我无法传递参数给插槽方法....如何将小部件变量传递给插槽?
class EventProcessor: public QObject {
Q_OBJECT
public slots:
void PopulateEditTest(QTextEdit *textEdit, QString text)
{
textEdit->setText(text);
}
};
int main(int argc, char *argv[])
{
QApplication app(argc, argv);
QWidget *window = new QWidget;
QTextEdit *result1 = new QTextEdit();
QTextEdit *result2 = new QTextEdit();
QPushButton *btFacility1 = new QPushButton("Facility 1");
QPushButton *btFacility2 = new QPushButton("Facility 2");
EventProcessor eventprocessor;
QObject::connect(btFacility1, SIGNAL(clicked()), &eventprocessor, SLOT(PopulateEditTest
(result1, "textEdit1")));
QObject::connect(btFacility2, SIGNAL(clicked()), result, SLOT(PopulateEditTest
(result2, "textEdit2")));
..........
return app.exec();
}
我想知道是否有类似的方式来得到这个工作?谢谢您的回答。
嗨克里斯。谢谢您的回答。我试过你的代码,但它仍然不起作用。 “dynamic_cast(sender())”中的发件人是否指示发送信号的对象?在这个应用程序中,按钮? btFacility1或btFacility2? –
是'sender()'返回发送信号的对象的QObject * – Chris
谢谢,Chris。这非常有用......我可以用这种方式节省大量编码。 –