在Qt C ++中,我有一个父对象MainWindow。 MainWindow(以及其他)有2个成员对象:vector和Serial。
GUI的一些相关成员:
QPushButton pushButton;
int itemNumber;
Serial的相关成员:
void send(int number)
当点击GUI的成员pushButton时,我想将GUI的成员'pushButton'作为参数传递给函数Serial :: send(int number)。我看到了一个像
这样的选项connect(GUI,SIGNAL(clicked()),this,SLOT(customSlot()));
在我的MainWindow函数中。但是,我不知道它的载体中有哪个项目,所以我不知道要抓取哪个itemNumber(它们都不同)。
我也想过我可能会在GUI类中这样做,但是它无法访问Serial :: send(int number)方法。我不想在每个GUI中使用Serial对象,因为此时它不会以这种方式工作。
如何从信号中将子对象GUI中的信息传递给父对象MainWindow?
谢谢!
答案 0 :(得分:2)
在插槽中使用QObject::sender()
功能来获取发送信号的对象。
当然,你需要一些合适的演员方法:
void someSlot() {
QPushButton *sender = qobject_cast<QPushButton *>(sender());
...
}