gpt4 book ai didi

c++ - 将类方法传递给 const char * 参数

转载 作者:行者123 更新时间:2023-11-28 06:25:22 26 4
gpt4 key购买 nike

在Qt中QShortcut有这样的构造函数

QShortcut(const QKeySequence& key, QWidget *parent,
const char *member = 0, const char *ambiguousMember = 0,
Qt::ShortcutContext context = Qt::WindowShortcut);

据我从文档中了解到,我可以将方法传递给第三个参数,而不是使用连接信号激活。但是我怎样才能在那里传递方法呢?使用

QShortcut* sh = new QShortcut(QKeySequence(Qt::Key_Alt, Qt::Key_1), this, &OnShortcut);

QShortcut* sh = new QShortcut(QKeySequence(Qt::Key_Alt, Qt::Key_1), this, &MyClass::OnShortcut);

给出错误

错误:没有匹配函数来调用'QShortcut::QShortcut(QKeySequence, KeyPressProcessing* const, void (*)())'

最佳答案

您必须使用 SLOT(OnShortcut()) 而不是 &OnShortcut 因为 QShortcut 类构造函数需要 const char * 作为第二个和第三个参数,而不是指向函数的指针。因此,Qt 有专用的转换宏SLOT,它接受函数签名作为参数,并将其转换为适合建立连接的形式。

关于c++ - 将类方法传递给 const char * 参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28626862/

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