diff options
| author | Jordan Wiens <jordan@psifertex.com> | 2024-03-25 10:25:45 -0400 |
|---|---|---|
| committer | Jordan Wiens <jordan@psifertex.com> | 2024-03-25 10:25:45 -0400 |
| commit | 4765a8d16105d2bdd2ca32524af80fdf6e80481e (patch) | |
| tree | 4c01852f7eb7840fd227e92c69df026d0d9923e3 | |
| parent | 5a1258bad3e93e6d60253fb7a95668baf90095f8 (diff) | |
add more info to UI API concepts
| -rw-r--r-- | docs/dev/concepts.md | 2 |
1 files changed, 2 insertions, 0 deletions
diff --git a/docs/dev/concepts.md b/docs/dev/concepts.md index 788caf81..d3046ec6 100644 --- a/docs/dev/concepts.md +++ b/docs/dev/concepts.md @@ -128,6 +128,8 @@ There are several ways to create UI elements in Binary Ninja. The first is to us The second and more powerful (but more complicated) mechanism is to leverage the _binaryninjaui_ module. Additional documentation is forthcoming, but there are several examples ([1](https://github.com/Vector35/kaitai), [2](https://github.com/Vector35/snippets), [3](https://github.com/Vector35/binaryninja-api/tree/dev/python/examples/triage)), and most of the APIs are backed by the [documented C++ headers](https://api.binary.ninja/cpp). Additionally, the generated _binaryninjaui_ module is shipped with each build of binaryninja and the usual python `dir()` instructions are helpful for exploring its capabilities. +When calling native UI methods, please make sure to use the [execute_on_main_thread](https://api.binary.ninja/binaryninja.mainthread-module.html#binaryninja.mainthread.execute_on_main_thread) method (or the [`_and_wait`](https://api.binary.ninja/binaryninja.mainthread-module.html#binaryninja.mainthread.execute_on_main_thread_and_wait) variant). By default, python actions are not run on the main thread to prevent blocking the UI, however, due to [thread-safety issues](https://doc.qt.io/qt-6/threads-reentrancy.html) around accessing QT from multple threads, UI actions should always make use of these APIs. + ## Function Starts, Sizes, and Ending ### How big is a Function? |
