如何调用qt_sequence_no-a助记符



关于qt_sequence_no_mnemonics(),qt文档说"此函数未在Qt的任何头文件中声明。要在应用程序中使用它,请在调用它之前声明函数原型;

但这意味着什么?我只看到这个函数是在一个非分布式的cpp文件中声明的。如何声明该函数,以便调用它?

当我调用它时,它是在QKeySequence的实例上吗?它是静态的吗?有人能帮我理解这份文件的意思吗?

此处存档:https://code.woboq.org/qt5/qtbase/src/gui/kernel/qkeysequence.cpp.html

编辑1:我尝试删除QKeySequence的每一个导入,并将其隐藏在一个新文件后面:

struct Configure
{
Configure()
{
//      Qt::qt_set_sequence_auto_mnemonic( false );
//      QKeySequence::qt_set_sequence_auto_mnemonic( false );
qt_set_sequence_auto_mnemonic( false );
}
};
Configure   configure;

但这并没有消除全局菜单造成的快捷方式冲突。MenuBar菜单仍然具有";助记符";定义,但它们仍然破坏应用程序。

仅供参考-我正在尝试修改KDevelop,而不是编写自己的应用程序。我可以发布KDevelop文件的链接,但我没有做任何其他更改。

您可以通过将其放在.cpp文件的顶部附近(可能就在#includes之后(来声明函数:

extern void qt_set_sequence_auto_mnemonic(bool);

这将告诉编译器该函数存在,这样同一.cpp文件中的代码稍后就可以调用它而不会产生编译时错误,例如:

int main(int argc, char ** argv)
{
qt_set_sequence_auto_mnemonic(true);
[...]
}

相关内容

  • 没有找到相关文章