ZOYKU火线榜

cnjinhao/nana技术文档

a modern C++ GUI library

多语言回退提示:当前仓库原作者暂未发布本地化文档,已为您无缝切换至官方英文原版(English),排版及代码实例完整保真。
极速安装
git clone https://github.com/cnjinhao/nana.git

Nana C++ Library

Ubuntu

Licence

nana 1.8 beta. master now contains nana 1.8, which requires C++17. It is a pre-release while the tests, the documentation and this README are being updated. nana 1.7, the last version before C++17, continues in the branch nana-1.7.

Nana is a C++ standard-like GUI library designed to allow developers to easily create cross-platform GUI applications with modern C++ style. Currently it is regularly tested on Linux(X11) and Windows, and experimentally on macOS and FreeBSD. The nana repository contains the entire source of the library. You can browse the source code and submit your pull request for contributing.

License

Nana is licensed under the Boost Software License

Members

Jinhao, Ariel Viña Rodríguez.

Documentation

The documentation is being rebuilt. The websites nanapro.org and nana.acemind.cn are now offline. Meanwhile, please use:

Examples

Here is an example to give you an idea of how to use the Nana C++ Library.

Create a window

The form class provides methods to manipulating a window.

#include <nana/gui.hpp>

int main()
{
    nana::form fm;
    fm.show();
    nana::exec();
}

Tests

The examples of nana-demo are also the tests: with -DNANA_CMAKE_AUTOMATIC_GUI_TESTING=ON each one is registered in CTest, and the CI builds and runs them on every push and pull request. nana-demo also has interaction tests (InteractionTests/), which drive the widgets with the real mouse and keyboard (X11 and Windows).

Before a release, the tests are also run with sanitizers (AddressSanitizer, UndefinedBehaviorSanitizer, ThreadSanitizer) on Linux and Windows, and the code is checked with static analyzers (clang-tidy, cppcheck, GCC -fanalyzer, MSVC /analyze).

Sending a Pull Request

Contributions are welcome! Please send your pull request to:

  • master, for nana 1.8;
  • nana-1.7, only for fixes of nana 1.7 (the last version before C++17).

Please keep each pull request small, about one fix or feature. Thank you!

Branches

  • master: the current version, nana 1.8. Releases are tags on this branch.
  • nana-1.7: maintenance of nana 1.7.
  • dev_dpi_system: experimental support of DPI scaling (work in progress, kept up to date with master).
  • Other branches are for work in progress on new features.
文档镜像归档自 GitHub 官方源路径 · 访问原项目 GitHub
最后同步快照:2026-11-09