将类方法传递给const char*参数
Pass class method to const char * parameter
在Qt中,QShortcut有这样的构造函数
QShortcut(const QKeySequence& key, QWidget *parent,
const char *member = 0, const char *ambiguousMember = 0,
Qt::ShortcutContext context = Qt::WindowShortcut);
据我从文档中了解,我可以将方法传递给第三个参数,而不是使用connect-to-signal-activated。但我怎样才能把方法传递到那里呢?使用
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#访问c++dll中带有char*参数的函数时发生AccessViolationException
- 从 C# GUI 将 char * 参数传递给C++ dll 函数
- Swift Call C 方法带有char **参数,并且需要操作char **参数
- 使用"const char*"和"char*"参数连接两个第三方模块
- 将 char * 参数传递给 C# 函数
- 使用 char[] 参数通过 JNI 调用方法
- C# PInvoke - 返回 char* 和引用 char* 参数的函数
- 导出托管的C#函数将返回更改CHAR*参数为未托管的代码
- 即使在 Visual C++ 编译器中,在模板中传递 "const char" 参数也有些麻烦 2013 年 11 月 CTP
- 将'const char*'参数发送到接收'const char* &'的函数
- discover char*参数大小
- lambda接受“char”参数
- 在编译模板方面,char、有符号char或无符号char参数类型的函数重载
- 将类方法传递给const char*参数
- Atoi 仅返回 char* 参数的第一个数字
- 专门化模板成员函数来处理std::string和char[]参数
- 带有 char* 参数的 cout <<打印字符串,而不是指针值
- 带有char[]参数的c++模板
- GetModuleBaseName dosen't take char* 参数
- 以双精度数除以双精度数来获得循环中的余数和char参数不起作用