Zeal是个查API文档的利器,最近经常用到。不过我喜欢KDE下可以Ctrl+M隐藏菜单栏,于是就把Zeal的源码从github上clone了下来,路径是zealdocs/zeal. 加个快捷键的代码我发现很容易加进去,然后编译得到build/bin/zeal
, 替换apt get zeal
得到的/usr/bin/zeal
即可。README.md里面提到了一些依赖包,我编译时发现我的Ubuntu 21.04系统缺了下面几个:
sudo apt install qtwebengine5-dev libarchive-dev libqt5x11extras5-dev libxcb-keysyms1-dev
Zeal是在 src/libs/ui/mainwindow.ui
里面定义了menuBar
, src/libs/ui/mainwindow.cpp
里面第一个函数就是MainWindow
的构造函数,一开始是建立UI和加快捷键。在
setupTabBar();
代码后添加一句:
// 默认隐藏菜单栏 ui->menuBar->hide();
然后在
auto shortcut = new QShortcut(QStringLiteral("Ctrl+K"), this); connect(shortcut, &QShortcut::activated, this, [this]() { currentTab()->searchSidebar()->focusSearchEdit(); });
后面添加两句:
// 用Ctrl+M显示或隐藏菜单栏 shortcut = new QShortcut(QStringLiteral("Ctrl+M"), this); connect(shortcut, &QShortcut::activated, this, [this]() { if (ui->menuBar->isVisible()) ui->menuBar->hide(); else ui->menuBar->show(); });
最后按照README.md里面的说明用cmake编译即可。
附上修改后的文件与原始文件diff -c
的结果:
*************** *** 67,78 **** --- 67,82 ---- } setupTabBar(); + ui->menuBar->hide(); // Setup application wide shortcuts. // Focus search bar. auto shortcut = new QShortcut(QStringLiteral("Ctrl+K"), this); connect(shortcut, &QShortcut::activated, this, [this]() { currentTab()->searchSidebar()->focusSearchEdit(); }); + shortcut = new QShortcut(QStringLiteral("Ctrl+M"), this); + connect(shortcut, &QShortcut::activated, this, [this]() { if (ui->menuBar->isVisible()) ui->menuBar->hide(); else ui->menuBar->show(); }); + shortcut = new QShortcut(QStringLiteral("Ctrl+L"), this); connect(shortcut, &QShortcut::activated, this, [this]() { currentTab()->searchSidebar()->focusSearchEdit(); });