如何用QT实现多个按钮信号响应不同的槽函数

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何用QT实现多个按钮信号响应不同的槽函数相关的知识,希望对你有一定的参考价值。

参考技术A 你的意思是子窗口中的一个按钮被点击了,父窗口上的一个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()

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

本回答被提问者和网友采纳

以上是关于如何用QT实现多个按钮信号响应不同的槽函数的主要内容,如果未能解决你的问题,请参考以下文章

QT中槽的使用

Qt的高手,向你们请教下: 先谢谢了。我用Qt designer 设计了一个简单的ui ,想自定义一个简单的槽,不会

在 QT 中的槽或函数之间保留值

qt1.4简单写字板实现

Qt圆角功能和状态组合按钮,可以显示颜色或者图片

PyQt5快速上手基础篇2-按钮控制LCD屏显示