gpt4 book ai didi

c++ - 从信号到槽的连接返回 false

转载 作者:行者123 更新时间:2023-11-30 00:46:58 25 4
gpt4 key购买 nike

<分区>

我有以下类声明:

class nets_list : public QDockWidget
{
Q_OBJECT

private:
QListView * files;

public slots:
void SelectNet(QModelIndex i);

signals:
void NetSelected(QString t);

public:
nets_list(QWidget * parent = nullptr);
};

在我的 nets_list 构造函数中,我想将 files 成员的 clicked(QModelIndex) 信号连接到 NetRunner(QString) 我类(class)父级中的插槽:

bool x1 = connect(files, SIGNAL(clicked(QModelIndex)), this, SLOT(SelectNet(QModelIndex)));
bool x2 = connect(this, SIGNAL(NetSelected(QString)), parent, SLOT(NetRunner(QString)));

SelectNet() 的代码是:

void nets_list::SelectNet(QModelIndex i)
{
emit NetSelected(fs->fileName(i));
}

因为我只是想从QModelIndex参数中提取一个QString,这样我就可以在父类中调用slot。

问题是第二个 connect 调用返回 false(bool x2 似乎是 false)。为什么?

另外:对于连接不同参数类型的信号和槽,有没有更好的解决方案?我认为使用“中间”函数(例如我的 SelectNet(QModelIndex) 插槽)是一个很好的解决方案。

编辑:

父类是

class MW : public QMainWindow
{
Q_OBJECT

private:
QMenu * net_menu;
QMenuBar * menu_bar;

QStackedWidget * ctrl;
netBuilderWidget * builder;
netTrainerWidget * trainer;
netRunnerWidget * runner;

nets_list * nets_dock;

public slots:
void netBuilder();
void netTrainer();
void netRunner(QString t);

void addNet();

public:
MW();
QSize minimumSizeHint() const Q_DECL_OVERRIDE;
QSize sizeHint() const Q_DECL_OVERRIDE;
};

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