gpt4 book ai didi

c++ - 我们可以从公共(public)插槽发出信号吗

转载 作者:搜寻专家 更新时间:2023-10-31 00:10:52 24 4
gpt4 key购买 nike

class MyMainWindow:public QMainWindow {
public:
MyWindow* myWindow() { return myWindow ;}
private:
MyWindow* myWindow;
};

class MyWindow:public Qobject {
private slot:
void mySlot();
};

class MyWindow2: class QWidget {
public slot:
void refreshClick();
signals:
signal1();
};

MyWindow2::MyWindow2(QMainWindow* parent) {
QPushButton* refresh;
QObject::connect(refresh,SIGNAL(clicked()), this, SLOT(refreshClicked()));

if(parent) {
QObject::connect(this,SIGNAL(signal1),parent->myWindow(),SLOT(mySlot));
}

void MyWindow2::refreshClicked(){
emit signal1();
}

我想知道从插槽 refreshClicked 发出信号 1 是否合法,以及从插槽内发出信号是否有任何缺点

最佳答案

是的,完全没问题。但是,如果您的唯一目标是“转发”信号,您也可以将“传入”信号直接连接到您发出的信号。例如:

connect(advisor   , SIGNAL(hasAdvice()),
this , SIGNAL(executeAdvice())
)

但请记住,这并不总是有利于代码的可扩展性。

关于c++ - 我们可以从公共(public)插槽发出信号吗,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36150448/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com