关于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);
[...]
}