Qt中如何才能让子窗口按钮响应到父类窗口上的槽函数(十分着急)

Qt中如何才能让子窗口按钮响应到父类窗口上的槽函数(十分着急),第1张

你的意思是子窗口中的一个按钮被点击了,父窗口上的一个slot函数响应这个点击吧?

很简单的:

1)在子窗口里面增加一个signal,在父窗口里面增加一个响应slot用于接收这个信号。

2)子窗口的按钮slot函数中emit这个signal。

3)在父窗口中把子窗口的这个signal连到自己的响应slot。

// 子窗口

class ChildWindow : public QWidget

{

Q_OBJECT

public:

ChildWindow(QWidget p = 0)

:QWidget(p)

{

QVBoxLayout l = new QVBoxLayout(this);

QPushButton btn = new QPushButton("btn", this);

l->addWidget(btn);

connect(btn, SIGNAL(clicked()), SLOT(ClickedBtn());

}

signals:

// 这个信号是发给父窗口的。

void ChildWindowEvent();

protected slots:

// 点击子窗口中按钮的slot

void ClickedBtn()

{

// 触发子窗口的信号给父窗口接收。

emit ChildWindowEvent();

}

}

// 父窗口

class ParentWindow : public QWidget

{

Q_OBJECT

public:

ParentWindow(QWidget p = 0)

:QWidget(p)

{

QVBoxLayout l = new QVBoxLayout(this);

w = new ChildWindow(this);

l->addWidget(w);

// 把子窗口的信号连接到父窗口来。

connect(w, SIGNAL(ChildWindowEvent()), SLOT(ChildWindowEventSlot());

}

protected:

ChildWindow w;

protected slots:

// 父窗口用于接收子窗口信号的slot。

void ChildWindowEventSlot()

{

//子窗口的按钮被点击了。

}

}

如果实在设计时,用qtcreator的话,可以在对象查看器里面看得很清楚如果运行时,没什么办法,->parent()->objectName(),只能得到父对象的名称

以上就是关于Qt中如何才能让子窗口按钮响应到父类窗口上的槽函数(十分着急)全部的内容,包括:Qt中如何才能让子窗口按钮响应到父类窗口上的槽函数(十分着急)、在Qt软件中如何查找一个QT控件是属于哪个类的、等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/9556583.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-29
下一篇 2023-04-29

发表评论

登录后才能评论

评论列表(0条)

保存