关于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文件的链接,但我没有做任何其他更改。
发布于 2021-12-19 04:15:02
您可以通过将它放在.cpp文件的顶部(可能就在#include之后)来声明该函数:
extern void qt_set_sequence_auto_mnemonic(bool);..。这将告诉编译器函数是存在的,以便稍后在同一个.cpp文件中的代码可以调用它,而不会产生编译时错误,例如:
int main(int argc, char ** argv)
{
qt_set_sequence_auto_mnemonic(true);
[...]
}https://stackoverflow.com/questions/70408561
复制相似问题