Repository: hanjinliu/magic-class (language: python)

Issue:
Preview of function call
We usually need a preview before running a function when it requires such as csv file as an input. However, `FunctionGui` only support one call button. Currently we have to define a new magicclass to make a preview-implemented GUI. 

## Ideas 

- Use `@mark_preview` wrapper in the following way

  ```python
  def func(self, path: Path, x: float):
      # do something

  @mark_preview(func)
  def _func_prev(self, path: Path, x: float):
      # preview

  ```


Discussion / hints:

Fix patch:
diff --git a/docs/.buildinfo b/docs/.buildinfo
index ae18704d..e43cda26 100644
--- a/docs/.buildinfo
+++ b/docs/.buildinfo
@@ -1,4 +1,4 @@
 # Sphinx build info version 1
 # This file hashes the configuration used when building these files. When it is not found, a full rebuild will be done.
-config: a541c268faffc36d75533a53464d6bcf
+config: ce815d9ec5826f29ad186bdbf638a156
 tags: 645f666f9bcd5a90fca523b33c5a78b7
diff --git a/docs/.doctrees/environment.pickle b/docs/.doctrees/environment.pickle
index 014b0c7d..ac4b3595 100644
Binary files a/docs/.doctrees/environment.pickle and b/docs/.doctrees/environment.pickle differ
diff --git a/docs/.doctrees/index.doctree b/docs/.doctrees/index.doctree
index 854af892..4df4f6f0 100644
Binary files a/docs/.doctrees/index.doctree and b/docs/.doctrees/index.doctree differ
diff --git a/docs/.doctrees/magicclass.doctree b/docs/.doctrees/magicclass.doctree
index 7a96314c..3efb485e 100644
Binary files a/docs/.doctrees/magicclass.doctree and b/docs/.doctrees/magicclass.doctree differ
diff --git a/docs/.doctrees/magicclass.utils.doctree b/docs/.doctrees/magicclass.utils.doctree
index 46904df0..ef536085 100644
Binary files a/docs/.doctrees/magicclass.utils.doctree and b/docs/.doctrees/magicclass.utils.doctree differ
diff --git a/docs/.doctrees/use_preview.doctree b/docs/.doctrees/use_preview.doctree
new file mode 100644
index 00000000..5803fcce
Binary files /dev/null and b/docs/.doctrees/use_preview.doctree differ
diff --git a/docs/_modules/index.html b/docs/_modules/index.html
index 69e2c517..2ab37ec7 100644
--- a/docs/_modules/index.html
+++ b/docs/_modules/index.html
@@ -3,7 +3,7 @@
 <head>
   <meta charset="utf-8" />
   <meta name="viewport" content="width=device-width, initial-scale=1.0" />
-  <title>Overview: module code &mdash; magic-class 0.6.1 documentation</title>
+  <title>Overview: module code &mdash; magic-class 0.6.2.dev0 documentation</title>
       <link rel="stylesheet" href="../_static/pygments.css" type="text/css" />
       <link rel="stylesheet" href="../_static/css/theme.css" type="text/css" />
       <link rel="stylesheet" href="../_static/columns.css" type="text/css" />
@@ -28,7 +28,7 @@
             <a href="../index.html" class="icon icon-home"> magic-class
           </a>
               <div class="version">
-                0.6.1
+                0.6.2.dev0
               </div>
 <div role="search">
   <form id="rtd-search-form" class="wy-form" action="../search.html" method="get">
@@ -50,6 +50,7 @@
 <li class="toctree-l1"><a class="reference internal" href="../use_wraps.html">Call Parent Methods from its Child</a></li>
 <li class="toctree-l1"><a class="reference internal" href="../use_bind.html">Binding Values to Arguments</a></li>
 <li class="toctree-l1"><a class="reference internal" href="../use_choices.html">Set Choices Dynamically</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../use_preview.html">Add Preview Functionalities</a></li>
 <li class="toctree-l1"><a class="reference internal" href="../use_worker.html">Multi-threading</a></li>
 <li class="toctree-l1"><a class="reference internal" href="../additional_types.html">Additional types</a></li>
 <li class="toctree-l1"><a class="reference internal" href="../containers.html">Container Variations</a></li>
@@ -118,6 +119,7 @@ <h1>All modules for which code is available</h1>
 <li><a href="magicclass/tqdm.html">magicclass.tqdm</a></li>
 <li><a href="magicclass/types.html">magicclass.types</a></li>
 <li><a href="magicclass/utils/functions.html">magicclass.utils.functions</a></li>
+<li><a href="magicclass/utils/qt.html">magicclass.utils.qt</a></li>
 <li><a href="magicclass/widgets/color.html">magicclass.widgets.color</a></li>
 <li><a href="magicclass/widgets/containers.html">magicclass.widgets.containers</a></li>
 <li><a href="magicclass/widgets/logger.html">magicclass.widgets.logger</a></li>
diff --git a/docs/_modules/magicclass/ext/napari/utils.html b/docs/_modules/magicclass/ext/napari/utils.html
index 326bad33..efff1373 100644
--- a/docs/_modules/magicclass/ext/napari/utils.html
+++ b/docs/_modules/magicclass/ext/napari/utils.html
@@ -3,7 +3,7 @@
 <head>
   <meta charset="utf-8" />
   <meta name="viewport" content="width=device-width, initial-scale=1.0" />
-  <title>magicclass.ext.napari.utils &mdash; magic-class 0.6.1.dev1 documentation</title>
+  <title>magicclass.ext.napari.utils &mdash; magic-class 0.6.2.dev0 documentation</title>
       <link rel="stylesheet" href="../../../../_static/pygments.css" type="text/css" />
       <link rel="stylesheet" href="../../../../_static/css/theme.css" type="text/css" />
       <link rel="stylesheet" href="../../../../_static/columns.css" type="text/css" />
@@ -28,7 +28,7 @@
             <a href="../../../../index.html" class="icon icon-home"> magic-class
           </a>
               <div class="version">
-                0.6.1.dev1
+                0.6.2.dev0
               </div>
 <div role="search">
   <form id="rtd-search-form" class="wy-form" action="../../../../search.html" method="get">
@@ -50,6 +50,7 @@
 <li class="toctree-l1"><a class="reference internal" href="../../../../use_wraps.html">Call Parent Methods from its Child</a></li>
 <li class="toctree-l1"><a class="reference internal" href="../../../../use_bind.html">Binding Values to Arguments</a></li>
 <li class="toctree-l1"><a class="reference internal" href="../../../../use_choices.html">Set Choices Dynamically</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../use_preview.html">Add Preview Functionalities</a></li>
 <li class="toctree-l1"><a class="reference internal" href="../../../../use_worker.html">Multi-threading</a></li>
 <li class="toctree-l1"><a class="reference internal" href="../../../../additional_types.html">Additional types</a></li>
 <li class="toctree-l1"><a class="reference internal" href="../../../../containers.html">Container Variations</a></li>
diff --git a/docs/_modules/magicclass/fields.html b/docs/_modules/magicclass/fields.html
index aaaf0fe6..a2f0070b 100644
--- a/docs/_modules/magicclass/fields.html
+++ b/docs/_modules/magicclass/fields.html
@@ -3,7 +3,7 @@
 <head>
   <meta charset="utf-8" />
   <meta name="viewport" content="width=device-width, initial-scale=1.0" />
-  <title>magicclass.fields &mdash; magic-class 0.6.1.dev1 documentation</title>
+  <title>magicclass.fields &mdash; magic-class 0.6.2.dev0 documentation</title>
       <link rel="stylesheet" href="../../_static/pygments.css" type="text/css" />
       <link rel="stylesheet" href="../../_static/css/theme.css" type="text/css" />
       <link rel="stylesheet" href="../../_static/columns.css" type="text/css" />
@@ -28,7 +28,7 @@
             <a href="../../index.html" class="icon icon-home"> magic-class
           </a>
               <div class="version">
-                0.6.1.dev1
+                0.6.2.dev0
               </div>
 <div role="search">
   <form id="rtd-search-form" class="wy-form" action="../../search.html" method="get">
@@ -50,6 +50,7 @@
 <li class="toctree-l1"><a class="reference internal" href="../../use_wraps.html">Call Parent Methods from its Child</a></li>
 <li class="toctree-l1"><a class="reference internal" href="../../use_bind.html">Binding Values to Arguments</a></li>
 <li class="toctree-l1"><a class="reference internal" href="../../use_choices.html">Set Choices Dynamically</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../use_preview.html">Add Preview Functionalities</a></li>
 <li class="toctree-l1"><a class="reference internal" href="../../use_worker.html">Multi-threading</a></li>
 <li class="toctree-l1"><a class="reference internal" href="../../additional_types.html">Additional types</a></li>
 <li class="toctree-l1"><a class="reference internal" href="../../containers.html">Container Variations</a></li>
diff --git a/docs/_modules/magicclass/gui/class_gui.html b/docs/_modules/magicclass/gui/class_gui.html
index 868b07ae..67fac6ae 100644
--- a/docs/_modules/magicclass/gui/class_gui.html
+++ b/docs/_modules/magicclass/gui/class_gui.html
@@ -3,7 +3,7 @@
 <head>
   <meta charset="utf-8" />
   <meta name="viewport" content="width=device-width, initial-scale=1.0" />
-  <title>magicclass.gui.class_gui &mdash; magic-class 0.6.0.dev1 documentation</title>
+  <title>magicclass.gui.class_gui &mdash; magic-class 0.6.2.dev0 documentation</title>
       <link rel="stylesheet" href="../../../_static/pygments.css" type="text/css" />
       <link rel="stylesheet" href="../../../_static/css/theme.css" type="text/css" />
       <link rel="stylesheet" href="../../../_static/columns.css" type="text/css" />
@@ -28,7 +28,7 @@
             <a href="../../../index.html" class="icon icon-home"> magic-class
           </a>
               <div class="version">
-                0.6.0.dev1
+                0.6.2.dev0
               </div>
 <div role="search">
   <form id="rtd-search-form" class="wy-form" action="../../../search.html" method="get">
@@ -50,6 +50,8 @@
 <li class="toctree-l1"><a class="reference internal" href="../../../use_wraps.html">Call Parent Methods from its Child</a></li>
 <li class="toctree-l1"><a class="reference internal" href="../../../use_bind.html">Binding Values to Arguments</a></li>
 <li class="toctree-l1"><a class="reference internal" href="../../../use_choices.html">Set Choices Dynamically</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../use_preview.html">Add Preview Functionalities</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../use_worker.html">Multi-threading</a></li>
 <li class="toctree-l1"><a class="reference internal" href="../../../additional_types.html">Additional types</a></li>
 <li class="toctree-l1"><a class="reference internal" href="../../../containers.html">Container Variations</a></li>
 </ul>
diff --git a/docs/_modules/magicclass/qthreading.html b/docs/_modules/magicclass/qthreading.html
index 40320c0f..104b3e13 100644
--- a/docs/_modules/magicclass/qthreading.html
+++ b/docs/_modules/magicclass/qthreading.html
@@ -3,7 +3,7 @@
 <head>
   <meta charset="utf-8" />
   <meta name="viewport" content="width=device-width, initial-scale=1.0" />
-  <title>magicclass.qthreading &mdash; magic-class 0.6.1.dev1 documentation</title>
+  <title>magicclass.qthreading &mdash; magic-class 0.6.2.dev0 documentation</title>
       <link rel="stylesheet" href="../../_static/pygments.css" type="text/css" />
       <link rel="stylesheet" href="../../_static/css/theme.css" type="text/css" />
       <link rel="stylesheet" href="../../_static/columns.css" type="text/css" />
@@ -28,7 +28,7 @@
             <a href="../../index.html" class="icon icon-home"> magic-class
           </a>
               <div class="version">
-                0.6.1.dev1
+                0.6.2.dev0
               </div>
 <div role="search">
   <form id="rtd-search-form" class="wy-form" action="../../search.html" method="get">
@@ -50,6 +50,7 @@
 <li class="toctree-l1"><a class="reference internal" href="../../use_wraps.html">Call Parent Methods from its Child</a></li>
 <li class="toctree-l1"><a class="reference internal" href="../../use_bind.html">Binding Values to Arguments</a></li>
 <li class="toctree-l1"><a class="reference internal" href="../../use_choices.html">Set Choices Dynamically</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../use_preview.html">Add Preview Functionalities</a></li>
 <li class="toctree-l1"><a class="reference internal" href="../../use_worker.html">Multi-threading</a></li>
 <li class="toctree-l1"><a class="reference internal" href="../../additional_types.html">Additional types</a></li>
 <li class="toctree-l1"><a class="reference internal" href="../../containers.html">Container Variations</a></li>
@@ -95,7 +96,17 @@ <h1>Source code for magicclass.qthreading</h1><div class="highlight"><pre>
 <span></span><span class="kn">from</span> <span class="nn">__future__</span> <span class="kn">import</span> <span class="n">annotations</span>
 <span class="kn">import</span> <span class="nn">inspect</span>
 <span class="kn">from</span> <span class="nn">functools</span> <span class="kn">import</span> <span class="n">wraps</span>
-<span class="kn">from</span> <span class="nn">typing</span> <span class="kn">import</span> <span class="n">Any</span><span class="p">,</span> <span class="n">Callable</span><span class="p">,</span> <span class="n">TYPE_CHECKING</span><span class="p">,</span> <span class="n">Iterable</span><span class="p">,</span> <span class="n">Union</span><span class="p">,</span> <span class="n">overload</span><span class="p">,</span> <span class="n">TypeVar</span>
+<span class="kn">from</span> <span class="nn">typing</span> <span class="kn">import</span> <span class="p">(</span>
+    <span class="n">Any</span><span class="p">,</span>
+    <span class="n">Callable</span><span class="p">,</span>
+    <span class="n">TYPE_CHECKING</span><span class="p">,</span>
+    <span class="n">Iterable</span><span class="p">,</span>
+    <span class="n">Union</span><span class="p">,</span>
+    <span class="n">overload</span><span class="p">,</span>
+    <span class="n">TypeVar</span><span class="p">,</span>
+    <span class="n">Protocol</span><span class="p">,</span>
+    <span class="n">runtime_checkable</span><span class="p">,</span>
+<span class="p">)</span>
 
 <span class="k">try</span><span class="p">:</span>
     <span class="kn">from</span> <span class="nn">superqt.utils</span> <span class="kn">import</span> <span class="n">create_worker</span><span class="p">,</span> <span class="n">GeneratorWorker</span><span class="p">,</span> <span class="n">FunctionWorker</span>
@@ -103,19 +114,55 @@ <h1>Source code for magicclass.qthreading</h1><div class="highlight"><pre>
     <span class="n">msg</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">&quot;</span><span class="si">{</span><span class="n">e</span><span class="si">}</span><span class="s2">. To use magicclass with threading please `pip install superqt`&quot;</span>
     <span class="k">raise</span> <span class="nb">type</span><span class="p">(</span><span class="n">e</span><span class="p">)(</span><span class="n">msg</span><span class="p">)</span>
 
-<span class="kn">from</span> <span class="nn">magicgui.widgets</span> <span class="kn">import</span> <span class="n">ProgressBar</span>
+<span class="kn">from</span> <span class="nn">qtpy.QtCore</span> <span class="kn">import</span> <span class="n">Qt</span>
+<span class="kn">from</span> <span class="nn">magicgui.widgets</span> <span class="kn">import</span> <span class="n">ProgressBar</span><span class="p">,</span> <span class="n">Container</span><span class="p">,</span> <span class="n">Widget</span><span class="p">,</span> <span class="n">PushButton</span>
 
 <span class="kn">from</span> <span class="nn">.fields</span> <span class="kn">import</span> <span class="n">MagicField</span>
-<span class="kn">from</span> <span class="nn">.utils.functions</span> <span class="kn">import</span> <span class="n">get_signature</span>
+<span class="kn">from</span> <span class="nn">.utils</span> <span class="kn">import</span> <span class="n">get_signature</span><span class="p">,</span> <span class="n">move_to_screen_center</span>
 
 <span class="k">if</span> <span class="n">TYPE_CHECKING</span><span class="p">:</span>
     <span class="kn">from</span> <span class="nn">.gui</span> <span class="kn">import</span> <span class="n">BaseGui</span>
     <span class="kn">from</span> <span class="nn">.gui.mgui_ext</span> <span class="kn">import</span> <span class="n">PushButtonPlus</span>
 
+<span class="n">__all__</span> <span class="o">=</span> <span class="p">[</span><span class="s2">&quot;thread_worker&quot;</span><span class="p">]</span>
+
 <span class="n">_F</span> <span class="o">=</span> <span class="n">TypeVar</span><span class="p">(</span><span class="s2">&quot;_F&quot;</span><span class="p">,</span> <span class="n">bound</span><span class="o">=</span><span class="n">Callable</span><span class="p">)</span>
 
 
-<div class="viewcode-block" id="Callbacks"><a class="viewcode-back" href="../../magicclass.html#magicclass.qthreading.Callbacks">[docs]</a><span class="k">class</span> <span class="nc">Callbacks</span><span class="p">:</span>
+<span class="nd">@runtime_checkable</span>
+<span class="k">class</span> <span class="nc">_SupportProgress</span><span class="p">(</span><span class="n">Protocol</span><span class="p">):</span>
+    <span class="sd">&quot;&quot;&quot;A progress protocol.&quot;&quot;&quot;</span>
+
+    <span class="k">def</span> <span class="fm">__init__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="nb">max</span><span class="p">:</span> <span class="nb">int</span> <span class="o">=</span> <span class="mi">1</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">):</span>
+        <span class="k">raise</span> <span class="ne">NotImplementedError</span><span class="p">()</span>
+
+    <span class="nd">@property</span>
+    <span class="k">def</span> <span class="nf">value</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="nb">int</span><span class="p">:</span>
+        <span class="k">raise</span> <span class="ne">NotImplementedError</span><span class="p">()</span>
+
+    <span class="nd">@value</span><span class="o">.</span><span class="n">setter</span>
+    <span class="k">def</span> <span class="nf">value</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">v</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="kc">None</span><span class="p">:</span>
+        <span class="k">raise</span> <span class="ne">NotImplementedError</span><span class="p">()</span>
+
+    <span class="nd">@property</span>
+    <span class="k">def</span> <span class="nf">max</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="nb">int</span><span class="p">:</span>
+        <span class="k">raise</span> <span class="ne">NotImplementedError</span><span class="p">()</span>
+
+    <span class="nd">@max</span><span class="o">.</span><span class="n">setter</span>
+    <span class="k">def</span> <span class="nf">max</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">v</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="kc">None</span><span class="p">:</span>
+        <span class="k">raise</span> <span class="ne">NotImplementedError</span><span class="p">()</span>
+
+    <span class="k">def</span> <span class="nf">set_description</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">desc</span><span class="p">:</span> <span class="nb">str</span><span class="p">):</span>
+        <span class="k">raise</span> <span class="ne">NotImplementedError</span><span class="p">()</span>
+
+    <span class="k">def</span> <span class="nf">show</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
+        <span class="k">raise</span> <span class="ne">NotImplementedError</span><span class="p">()</span>
+
+    <span class="k">def</span> <span class="nf">close</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
+        <span class="k">raise</span> <span class="ne">NotImplementedError</span><span class="p">()</span>
+
+
+<span class="k">class</span> <span class="nc">Callbacks</span><span class="p">:</span>
     <span class="sd">&quot;&quot;&quot;List of callback functions.&quot;&quot;&quot;</span>
 
     <span class="k">def</span> <span class="fm">__init__</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
@@ -125,7 +172,7 @@ <h1>Source code for magicclass.qthreading</h1><div class="highlight"><pre>
     <span class="k">def</span> <span class="nf">callbacks</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="nb">tuple</span><span class="p">[</span><span class="n">Callable</span><span class="p">,</span> <span class="o">...</span><span class="p">]:</span>
         <span class="k">return</span> <span class="nb">tuple</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">_callbacks</span><span class="p">)</span>
 
-<div class="viewcode-block" id="Callbacks.connect"><a class="viewcode-back" href="../../magicclass.html#magicclass.qthreading.Callbacks.connect">[docs]</a>    <span class="k">def</span> <span class="nf">connect</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">callback</span><span class="p">:</span> <span class="n">_F</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">_F</span><span class="p">:</span>
+    <span class="k">def</span> <span class="nf">connect</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">callback</span><span class="p">:</span> <span class="n">_F</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">_F</span><span class="p">:</span>
         <span class="sd">&quot;&quot;&quot;</span>
 <span class="sd">        Append a callback function to the callback list.</span>
 
@@ -137,9 +184,9 @@ <h1>Source code for magicclass.qthreading</h1><div class="highlight"><pre>
         <span class="k">if</span> <span class="ow">not</span> <span class="n">callable</span><span class="p">(</span><span class="n">callback</span><span class="p">):</span>
             <span class="k">raise</span> <span class="ne">TypeError</span><span class="p">(</span><span class="s2">&quot;Can only connect callable object.&quot;</span><span class="p">)</span>
         <span class="bp">self</span><span class="o">.</span><span class="n">_callbacks</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">callback</span><span class="p">)</span>
-        <span class="k">return</span> <span class="n">callback</span></div>
+        <span class="k">return</span> <span class="n">callback</span>
 
-<div class="viewcode-block" id="Callbacks.disconnect"><a class="viewcode-back" href="../../magicclass.html#magicclass.qthreading.Callbacks.disconnect">[docs]</a>    <span class="k">def</span> <span class="nf">disconnect</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">callback</span><span class="p">:</span> <span class="n">_F</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">_F</span><span class="p">:</span>
+    <span class="k">def</span> <span class="nf">disconnect</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">callback</span><span class="p">:</span> <span class="n">_F</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">_F</span><span class="p">:</span>
         <span class="sd">&quot;&quot;&quot;</span>
 <span class="sd">        Remove callback function from the callback list.</span>
 
@@ -149,7 +196,7 @@ <h1>Source code for magicclass.qthreading</h1><div class="highlight"><pre>
 <span class="sd">            Callback function to be removed.</span>
 <span class="sd">        &quot;&quot;&quot;</span>
         <span class="bp">self</span><span class="o">.</span><span class="n">_callbacks</span><span class="o">.</span><span class="n">remove</span><span class="p">(</span><span class="n">callback</span><span class="p">)</span>
-        <span class="k">return</span> <span class="n">callback</span></div>
+        <span class="k">return</span> <span class="n">callback</span>
 
     <span class="k">def</span> <span class="nf">_iter_as_method</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">obj</span><span class="p">:</span> <span class="n">BaseGui</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Iterable</span><span class="p">[</span><span class="n">Callable</span><span class="p">]:</span>
         <span class="k">for</span> <span class="n">callback</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">_callbacks</span><span class="p">:</span>
@@ -159,10 +206,10 @@ <h1>Source code for magicclass.qthreading</h1><div class="highlight"><pre>
                     <span class="n">out</span> <span class="o">=</span> <span class="n">callback</span><span class="o">.</span><span class="fm">__get__</span><span class="p">(</span><span class="n">obj</span><span class="p">)(</span><span class="o">*</span><span class="n">args</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">)</span>
                 <span class="k">return</span> <span class="n">out</span>
 
-            <span class="k">yield</span> <span class="n">f</span></div>
+            <span class="k">yield</span> <span class="n">f</span>
 
 
-<div class="viewcode-block" id="NapariProgressBar"><a class="viewcode-back" href="../../magicclass.html#magicclass.qthreading.NapariProgressBar">[docs]</a><span class="k">class</span> <span class="nc">NapariProgressBar</span><span class="p">:</span>
+<span class="k">class</span> <span class="nc">NapariProgressBar</span><span class="p">(</span><span class="n">_SupportProgress</span><span class="p">):</span>
     <span class="sd">&quot;&quot;&quot;A progressbar class that provides napari progress bar with same API.&quot;&quot;&quot;</span>
 
     <span class="k">def</span> <span class="fm">__init__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">value</span><span class="p">:</span> <span class="nb">int</span> <span class="o">=</span> <span class="mi">0</span><span class="p">,</span> <span class="nb">max</span><span class="p">:</span> <span class="nb">int</span> <span class="o">=</span> <span class="mi">1000</span><span class="p">):</span>
@@ -189,31 +236,109 @@ <h1>Source code for magicclass.qthreading</h1><div class="highlight"><pre>
     <span class="k">def</span> <span class="nf">max</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">v</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="kc">None</span><span class="p">:</span>
         <span class="bp">self</span><span class="o">.</span><span class="n">_pbar</span><span class="o">.</span><span class="n">total</span> <span class="o">=</span> <span class="n">v</span>
 
-    <span class="nd">@property</span>
-    <span class="k">def</span> <span class="nf">label</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="nb">str</span><span class="p">:</span>
-        <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">_pbar</span><span class="o">.</span><span class="n">desc</span>
-
-    <span class="nd">@label</span><span class="o">.</span><span class="n">setter</span>
-    <span class="k">def</span> <span class="nf">label</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">v</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="kc">None</span><span class="p">:</span>
+    <span class="k">def</span> <span class="nf">set_description</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">v</span><span class="p">:</span> <span class="nb">str</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="kc">None</span><span class="p">:</span>
         <span class="bp">self</span><span class="o">.</span><span class="n">_pbar</span><span class="o">.</span><span class="n">set_description</span><span class="p">(</span><span class="n">v</span><span class="p">)</span>
 
     <span class="nd">@property</span>
     <span class="k">def</span> <span class="nf">visible</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="nb">bool</span><span class="p">:</span>
         <span class="k">return</span> <span class="kc">False</span>
 
-<div class="viewcode-block" id="NapariProgressBar.show"><a class="viewcode-back" href="../../magicclass.html#magicclass.qthreading.NapariProgressBar.show">[docs]</a>    <span class="k">def</span> <span class="nf">show</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
-        <span class="nb">type</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">_pbar</span><span class="p">)</span><span class="o">.</span><span class="n">_all_instances</span><span class="o">.</span><span class="n">events</span><span class="o">.</span><span class="n">changed</span><span class="p">(</span><span class="n">added</span><span class="o">=</span><span class="p">{</span><span class="bp">self</span><span class="o">.</span><span class="n">_pbar</span><span class="p">},</span> <span class="n">removed</span><span class="o">=</span><span class="p">{})</span></div>
+    <span class="k">def</span> <span class="nf">show</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
+        <span class="nb">type</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">_pbar</span><span class="p">)</span><span class="o">.</span><span class="n">_all_instances</span><span class="o">.</span><span class="n">events</span><span class="o">.</span><span class="n">changed</span><span class="p">(</span><span class="n">added</span><span class="o">=</span><span class="p">{</span><span class="bp">self</span><span class="o">.</span><span class="n">_pbar</span><span class="p">},</span> <span class="n">removed</span><span class="o">=</span><span class="p">{})</span>
 
-<div class="viewcode-block" id="NapariProgressBar.close"><a class="viewcode-back" href="../../magicclass.html#magicclass.qthreading.NapariProgressBar.close">[docs]</a>    <span class="k">def</span> <span class="nf">close</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
-        <span class="bp">self</span><span class="o">.</span><span class="n">_pbar</span><span class="o">.</span><span class="n">close</span><span class="p">()</span></div></div>
+    <span class="k">def</span> <span class="nf">close</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
+        <span class="bp">self</span><span class="o">.</span><span class="n">_pbar</span><span class="o">.</span><span class="n">close</span><span class="p">()</span>
 
 
-<span class="n">_SupportProgress</span> <span class="o">=</span> <span class="n">Union</span><span class="p">[</span><span class="n">ProgressBar</span><span class="p">,</span> <span class="n">NapariProgressBar</span><span class="p">]</span>
+<span class="k">class</span> <span class="nc">DefaultProgressBar</span><span class="p">(</span><span class="n">Container</span><span class="p">,</span> <span class="n">_SupportProgress</span><span class="p">):</span>
+    <span class="sd">&quot;&quot;&quot;The default progressbar widget.&quot;&quot;&quot;</span>
+
+    <span class="k">def</span> <span class="fm">__init__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="nb">max</span><span class="p">:</span> <span class="nb">int</span> <span class="o">=</span> <span class="mi">1</span><span class="p">):</span>
+        <span class="bp">self</span><span class="o">.</span><span class="n">pbar</span> <span class="o">=</span> <span class="n">ProgressBar</span><span class="p">(</span><span class="n">value</span><span class="o">=</span><span class="mi">0</span><span class="p">,</span> <span class="nb">max</span><span class="o">=</span><span class="nb">max</span><span class="p">)</span>
+        <span class="bp">self</span><span class="o">.</span><span class="n">pause_button</span> <span class="o">=</span> <span class="n">PushButton</span><span class="p">(</span><span class="n">text</span><span class="o">=</span><span class="s2">&quot;Pause&quot;</span><span class="p">)</span>
+        <span class="bp">self</span><span class="o">.</span><span class="n">abort_button</span> <span class="o">=</span> <span class="n">PushButton</span><span class="p">(</span><span class="n">text</span><span class="o">=</span><span class="s2">&quot;Abort&quot;</span><span class="p">)</span>
+        <span class="n">cnt</span> <span class="o">=</span> <span class="n">Container</span><span class="p">(</span>
+            <span class="n">layout</span><span class="o">=</span><span class="s2">&quot;horizontal&quot;</span><span class="p">,</span> <span class="n">widgets</span><span class="o">=</span><span class="p">[</span><span class="bp">self</span><span class="o">.</span><span class="n">pause_button</span><span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="n">abort_button</span><span class="p">]</span>
+        <span class="p">)</span>
+        <span class="n">cnt</span><span class="o">.</span><span class="n">margins</span> <span class="o">=</span> <span class="p">(</span><span class="mi">0</span><span class="p">,</span> <span class="mi">0</span><span class="p">,</span> <span class="mi">0</span><span class="p">,</span> <span class="mi">0</span><span class="p">)</span>
+        <span class="bp">self</span><span class="o">.</span><span class="n">pbar</span><span class="o">.</span><span class="n">min_width</span> <span class="o">=</span> <span class="mi">200</span>
+        <span class="bp">self</span><span class="o">.</span><span class="n">_paused</span> <span class="o">=</span> <span class="kc">False</span>
+        <span class="nb">super</span><span class="p">()</span><span class="o">.</span><span class="fm">__init__</span><span class="p">(</span><span class="n">widgets</span><span class="o">=</span><span class="p">[</span><span class="bp">self</span><span class="o">.</span><span class="n">pbar</span><span class="p">,</span> <span class="n">cnt</span><span class="p">])</span>
+
+    <span class="nd">@property</span>
+    <span class="k">def</span> <span class="nf">value</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="nb">int</span><span class="p">:</span>
+        <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">pbar</span><span class="o">.</span><span class="n">value</span>
+
+    <span class="nd">@value</span><span class="o">.</span><span class="n">setter</span>
+    <span class="k">def</span> <span class="nf">value</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">v</span><span class="p">):</span>
+        <span class="bp">self</span><span class="o">.</span><span class="n">pbar</span><span class="o">.</span><span class="n">value</span> <span class="o">=</span> <span class="n">v</span>
+
+    <span class="nd">@property</span>
+    <span class="k">def</span> <span class="nf">max</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="nb">int</span><span class="p">:</span>
+        <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">pbar</span><span class="o">.</span><span class="n">max</span>
+
+    <span class="nd">@max</span><span class="o">.</span><span class="n">setter</span>
+    <span class="k">def</span> <span class="nf">max</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">v</span><span class="p">):</span>
+        <span class="bp">self</span><span class="o">.</span><span class="n">pbar</span><span class="o">.</span><span class="n">max</span> <span class="o">=</span> <span class="n">v</span>
+
+    <span class="k">def</span> <span class="nf">set_description</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">desc</span><span class="p">:</span> <span class="nb">str</span><span class="p">):</span>
+        <span class="sd">&quot;&quot;&quot;Set description as the label of the progressbar.&quot;&quot;&quot;</span>
+        <span class="bp">self</span><span class="o">.</span><span class="n">pbar</span><span class="o">.</span><span class="n">label</span> <span class="o">=</span> <span class="n">desc</span>
+        <span class="k">return</span> <span class="kc">None</span>
+
+    <span class="k">def</span> <span class="nf">set_worker</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">worker</span><span class="p">:</span> <span class="n">GeneratorWorker</span> <span class="o">|</span> <span class="n">FunctionWorker</span><span class="p">):</span>
+        <span class="sd">&quot;&quot;&quot;Set currently running worker.&quot;&quot;&quot;</span>
+        <span class="bp">self</span><span class="o">.</span><span class="n">_worker</span> <span class="o">=</span> <span class="n">worker</span>
+        <span class="c1"># initialize abort_button</span>
+        <span class="bp">self</span><span class="o">.</span><span class="n">abort_button</span><span class="o">.</span><span class="n">text</span> <span class="o">=</span> <span class="s2">&quot;Abort&quot;</span>
+        <span class="bp">self</span><span class="o">.</span><span class="n">abort_button</span><span class="o">.</span><span class="n">changed</span><span class="o">.</span><span class="n">connect</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">_abort_worker</span><span class="p">)</span>
+        <span class="bp">self</span><span class="o">.</span><span class="n">abort_button</span><span class="o">.</span><span class="n">enabled</span> <span class="o">=</span> <span class="kc">True</span>
+
+        <span class="c1"># initialize pause_button</span>
+        <span class="bp">self</span><span class="o">.</span><span class="n">pause_button</span><span class="o">.</span><span class="n">text</span> <span class="o">=</span> <span class="s2">&quot;Pause&quot;</span>
+        <span class="k">if</span> <span class="ow">not</span> <span class="nb">isinstance</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">_worker</span><span class="p">,</span> <span class="n">GeneratorWorker</span><span class="p">):</span>
+            <span class="bp">self</span><span class="o">.</span><span class="n">pause_button</span><span class="o">.</span><span class="n">enabled</span> <span class="o">=</span> <span class="kc">False</span>
+            <span class="k">return</span> <span class="kc">None</span>
+        <span class="bp">self</span><span class="o">.</span><span class="n">pause_button</span><span class="o">.</span><span class="n">enabled</span> <span class="o">=</span> <span class="kc">True</span>
+        <span class="bp">self</span><span class="o">.</span><span class="n">pause_button</span><span class="o">.</span><span class="n">changed</span><span class="o">.</span><span class="n">connect</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">_toggle_pause</span><span class="p">)</span>
+
+        <span class="nd">@self</span><span class="o">.</span><span class="n">_worker</span><span class="o">.</span><span class="n">paused</span><span class="o">.</span><span class="n">connect</span>
+        <span class="k">def</span> <span class="nf">_on_pause</span><span class="p">():</span>
+            <span class="bp">self</span><span class="o">.</span><span class="n">pause_button</span><span class="o">.</span><span class="n">text</span> <span class="o">=</span> <span class="s2">&quot;Resume&quot;</span>
+            <span class="bp">self</span><span class="o">.</span><span class="n">pause_button</span><span class="o">.</span><span class="n">enabled</span> <span class="o">=</span> <span class="kc">True</span>
+
+        <span class="k">return</span> <span class="kc">None</span>
+
+    <span class="k">def</span> <span class="nf">_toggle_pause</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
+        <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">_paused</span><span class="p">:</span>
+            <span class="bp">self</span><span class="o">.</span><span class="n">_worker</span><span class="o">.</span><span class="n">resume</span><span class="p">()</span>
+            <span class="bp">self</span><span class="o">.</span><span class="n">pause_button</span><span class="o">.</span><span class="n">text</span> <span class="o">=</span> <span class="s2">&quot;Pause&quot;</span>
+        <span class="k">else</span><span class="p">:</span>
+            <span class="bp">self</span><span class="o">.</span><span class="n">_worker</span><span class="o">.</span><span class="n">pause</span><span class="p">()</span>
+            <span class="bp">self</span><span class="o">.</span><span class="n">pause_button</span><span class="o">.</span><span class="n">text</span> <span class="o">=</span> <span class="s2">&quot;Pausing&quot;</span>
+            <span class="bp">self</span><span class="o">.</span><span class="n">pause_button</span><span class="o">.</span><span class="n">enabled</span> <span class="o">=</span> <span class="kc">False</span>
+
+        <span class="bp">self</span><span class="o">.</span><span class="n">_paused</span> <span class="o">=</span> <span class="ow">not</span> <span class="bp">self</span><span class="o">.</span><span class="n">_paused</span>
+        <span class="k">return</span> <span class="kc">None</span>
+
+    <span class="k">def</span> <span class="nf">_abort_worker</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
+        <span class="bp">self</span><span class="o">.</span><span class="n">_paused</span> <span class="o">=</span> <span class="kc">False</span>
+        <span class="bp">self</span><span class="o">.</span><span class="n">pause_button</span><span class="o">.</span><span class="n">text</span> <span class="o">=</span> <span class="s2">&quot;Pause&quot;</span>
+        <span class="bp">self</span><span class="o">.</span><span class="n">abort_button</span><span class="o">.</span><span class="n">text</span> <span class="o">=</span> <span class="s2">&quot;Aborting&quot;</span>
+        <span class="bp">self</span><span class="o">.</span><span class="n">pause_button</span><span class="o">.</span><span class="n">enabled</span> <span class="o">=</span> <span class="kc">False</span>
+        <span class="bp">self</span><span class="o">.</span><span class="n">abort_button</span><span class="o">.</span><span class="n">enabled</span> <span class="o">=</span> <span class="kc">False</span>
+        <span class="bp">self</span><span class="o">.</span><span class="n">_worker</span><span class="o">.</span><span class="n">quit</span><span class="p">()</span>
+        <span class="k">return</span> <span class="kc">None</span>
+
+
+<span class="n">ProgressBarLike</span> <span class="o">=</span> <span class="n">Union</span><span class="p">[</span><span class="n">ProgressBar</span><span class="p">,</span> <span class="n">_SupportProgress</span><span class="p">]</span>
 
 
 <div class="viewcode-block" id="thread_worker"><a class="viewcode-back" href="../../magicclass.html#magicclass.qthreading.thread_worker">[docs]</a><span class="k">class</span> <span class="nc">thread_worker</span><span class="p">:</span>
     <span class="sd">&quot;&quot;&quot;Create a worker in a superqt/napari style.&quot;&quot;&quot;</span>
 
+    <span class="n">_DEFAULT_PROGRESS_BAR</span> <span class="o">=</span> <span class="n">DefaultProgressBar</span>
+
     <span class="k">def</span> <span class="fm">__init__</span><span class="p">(</span>
         <span class="bp">self</span><span class="p">,</span>
         <span class="n">f</span><span class="p">:</span> <span class="n">Callable</span> <span class="o">|</span> <span class="kc">None</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span>
@@ -230,7 +355,7 @@ <h1>Source code for magicclass.qthreading</h1><div class="highlight"><pre>
         <span class="bp">self</span><span class="o">.</span><span class="n">_aborted</span> <span class="o">=</span> <span class="n">Callbacks</span><span class="p">()</span>
         <span class="bp">self</span><span class="o">.</span><span class="n">_ignore_errors</span> <span class="o">=</span> <span class="n">ignore_errors</span>
         <span class="bp">self</span><span class="o">.</span><span class="n">_objects</span><span class="p">:</span> <span class="nb">dict</span><span class="p">[</span><span class="nb">int</span><span class="p">,</span> <span class="n">BaseGui</span><span class="p">]</span> <span class="o">=</span> <span class="p">{}</span>
-        <span class="bp">self</span><span class="o">.</span><span class="n">_progressbars</span><span class="p">:</span> <span class="nb">dict</span><span class="p">[</span><span class="nb">int</span><span class="p">,</span> <span class="n">_SupportProgress</span> <span class="o">|</span> <span class="kc">None</span><span class="p">]</span> <span class="o">=</span> <span class="p">{}</span>
+        <span class="bp">self</span><span class="o">.</span><span class="n">_progressbars</span><span class="p">:</span> <span class="nb">dict</span><span class="p">[</span><span class="nb">int</span><span class="p">,</span> <span class="n">ProgressBarLike</span> <span class="o">|</span> <span class="kc">None</span><span class="p">]</span> <span class="o">=</span> <span class="p">{}</span>
 
         <span class="k">if</span> <span class="n">f</span> <span class="ow">is</span> <span class="ow">not</span> <span class="kc">None</span><span class="p">:</span>
             <span class="bp">self</span><span class="p">(</span><span class="n">f</span><span class="p">)</span>
@@ -247,9 +372,34 @@ <h1>Source code for magicclass.qthreading</h1><div class="highlight"><pre>
 
         <span class="bp">self</span><span class="o">.</span><span class="n">_progress</span> <span class="o">=</span> <span class="n">progress</span>
 
-    <span class="nd">@property</span>
-    <span class="k">def</span> <span class="nf">not_ready</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="nb">bool</span><span class="p">:</span>
-        <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">_func</span> <span class="ow">is</span> <span class="kc">None</span>
+<div class="viewcode-block" id="thread_worker.set_default"><a class="viewcode-back" href="../../magicclass.html#magicclass.qthreading.thread_worker.set_default">[docs]</a>    <span class="nd">@classmethod</span>
+    <span class="k">def</span> <span class="nf">set_default</span><span class="p">(</span><span class="bp">cls</span><span class="p">,</span> <span class="n">pbar_cls</span><span class="p">:</span> <span class="n">Callable</span> <span class="o">|</span> <span class="nb">str</span><span class="p">):</span>
+        <span class="sd">&quot;&quot;&quot;</span>
+<span class="sd">        Set the default progressbar class.</span>
+
+<span class="sd">        This class method is useful when there is an user-defined class that</span>
+<span class="sd">        follows ``_SupportProgress`` protocol.</span>
+
+<span class="sd">        Parameters</span>
+<span class="sd">        ----------</span>
+<span class="sd">        pbar_cls : callable or str</span>
+<span class="sd">            The default class. In principle this parameter does not have to be a</span>
+<span class="sd">            class. As long as ``pbar_cls(max=...)`` returns a ``_SupportProgress``</span>
+<span class="sd">            object it works. Either &quot;default&quot; or &quot;napari&quot; is also accepted.</span>
+
+<span class="sd">        &quot;&quot;&quot;</span>
+        <span class="k">if</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">pbar_cls</span><span class="p">,</span> <span class="nb">str</span><span class="p">):</span>
+            <span class="k">if</span> <span class="n">pbar_cls</span> <span class="o">==</span> <span class="s2">&quot;napari&quot;</span><span class="p">:</span>
+                <span class="n">pbar_cls</span> <span class="o">=</span> <span class="n">NapariProgressBar</span>
+            <span class="k">elif</span> <span class="n">pbar_cls</span> <span class="o">==</span> <span class="s2">&quot;default&quot;</span><span class="p">:</span>
+                <span class="n">pbar_cls</span> <span class="o">=</span> <span class="n">DefaultProgressBar</span>
+            <span class="k">else</span><span class="p">:</span>
+                <span class="k">raise</span> <span class="ne">ValueError</span><span class="p">(</span>
+                    <span class="sa">f</span><span class="s2">&quot;Unknown progress bar </span><span class="si">{</span><span class="n">pbar_cls</span><span class="si">!r}</span><span class="s2">. Must be either &#39;default&#39; or &quot;</span>
+                    <span class="s2">&quot;&#39;napari&#39;, or a proper type object.&quot;</span>
+                <span class="p">)</span>
+        <span class="bp">cls</span><span class="o">.</span><span class="n">_DEFAULT_PROGRESS_BAR</span> <span class="o">=</span> <span class="n">pbar_cls</span>
+        <span class="k">return</span> <span class="n">pbar_cls</span></div>
 
     <span class="nd">@overload</span>
     <span class="k">def</span> <span class="fm">__call__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">f</span><span class="p">:</span> <span class="n">Callable</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">thread_worker</span><span class="p">:</span>
@@ -260,7 +410,7 @@ <h1>Source code for magicclass.qthreading</h1><div class="highlight"><pre>
         <span class="o">...</span>
 
     <span class="k">def</span> <span class="fm">__call__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">args</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">):</span>
-        <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">not_ready</span><span class="p">:</span>
+        <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">_func</span> <span class="ow">is</span> <span class="kc">None</span><span class="p">:</span>
             <span class="n">f</span> <span class="o">=</span> <span class="n">args</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span>
             <span class="bp">self</span><span class="o">.</span><span class="n">_func</span> <span class="o">=</span> <span class="n">f</span>
             <span class="n">wraps</span><span class="p">(</span><span class="n">f</span><span class="p">)(</span><span class="bp">self</span><span class="p">)</span>
@@ -329,22 +479,24 @@ <h1>Source code for magicclass.qthreading</h1><div class="highlight"><pre>
                     <span class="p">)</span>
                 <span class="k">elif</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">_pbar</span><span class="p">,</span> <span class="n">MagicField</span><span class="p">):</span>
                     <span class="n">pbar</span> <span class="o">=</span> <span class="n">_pbar</span><span class="o">.</span><span class="n">get_widget</span><span class="p">(</span><span class="n">gui</span><span class="p">)</span>
-                    <span class="k">if</span> <span class="ow">not</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">pbar</span><span class="p">,</span> <span class="n">ProgressBar</span><span class="p">):</span>
+                    <span class="k">if</span> <span class="ow">not</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">pbar</span><span class="p">,</span> <span class="n">ProgressBarLike</span><span class="p">):</span>
                         <span class="k">raise</span> <span class="ne">TypeError</span><span class="p">(</span><span class="sa">f</span><span class="s2">&quot;</span><span class="si">{</span><span class="n">_pbar</span><span class="o">.</span><span class="n">name</span><span class="si">}</span><span class="s2"> does not create a ProgressBar.&quot;</span><span class="p">)</span>
                     <span class="n">pbar</span><span class="o">.</span><span class="n">label</span> <span class="o">=</span> <span class="n">desc</span> <span class="ow">or</span> <span class="n">_pbar</span><span class="o">.</span><span class="n">name</span>
                     <span class="n">pbar</span><span class="o">.</span><span class="n">max</span> <span class="o">=</span> <span class="n">total</span>
                 <span class="k">else</span><span class="p">:</span>
-                    <span class="k">if</span> <span class="ow">not</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">_pbar</span><span class="p">,</span> <span class="n">ProgressBar</span><span class="p">):</span>
+                    <span class="k">if</span> <span class="ow">not</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">_pbar</span><span class="p">,</span> <span class="n">ProgressBarLike</span><span class="p">):</span>
                         <span class="k">raise</span> <span class="ne">TypeError</span><span class="p">(</span><span class="sa">f</span><span class="s2">&quot;</span><span class="si">{</span><span class="n">_pbar</span><span class="si">}</span><span class="s2"> is not a ProgressBar.&quot;</span><span class="p">)</span>
                     <span class="n">pbar</span> <span class="o">=</span> <span class="n">_pbar</span>
 
                 <span class="n">worker</span><span class="o">.</span><span class="n">started</span><span class="o">.</span><span class="n">connect</span><span class="p">(</span><span class="n">init_pbar</span><span class="o">.</span><span class="fm">__get__</span><span class="p">(</span><span class="n">pbar</span><span class="p">))</span>
-                <span class="k">if</span> <span class="ow">not</span> <span class="n">pbar</span><span class="o">.</span><span class="n">visible</span><span class="p">:</span>
+                <span class="k">if</span> <span class="ow">not</span> <span class="nb">getattr</span><span class="p">(</span><span class="n">pbar</span><span class="p">,</span> <span class="s2">&quot;visible&quot;</span><span class="p">,</span> <span class="kc">False</span><span class="p">):</span>
                     <span class="n">worker</span><span class="o">.</span><span class="n">finished</span><span class="o">.</span><span class="n">connect</span><span class="p">(</span><span class="n">close_pbar</span><span class="o">.</span><span class="fm">__get__</span><span class="p">(</span><span class="n">pbar</span><span class="p">))</span>
                 <span class="k">if</span> <span class="n">pbar</span><span class="o">.</span><span class="n">max</span> <span class="o">!=</span> <span class="mi">0</span> <span class="ow">and</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">worker</span><span class="p">,</span> <span class="n">GeneratorWorker</span><span class="p">):</span>
                     <span class="n">worker</span><span class="o">.</span><span class="n">pbar</span> <span class="o">=</span> <span class="n">pbar</span>  <span class="c1"># avoid garbage collection</span>
                     <span class="n">worker</span><span class="o">.</span><span class="n">yielded</span><span class="o">.</span><span class="n">connect</span><span class="p">(</span><span class="n">increment</span><span class="o">.</span><span class="fm">__get__</span><span class="p">(</span><span class="n">pbar</span><span class="p">))</span>
 
+                <span class="k">if</span> <span class="nb">hasattr</span><span class="p">(</span><span class="n">pbar</span><span class="p">,</span> <span class="s2">&quot;set_worker&quot;</span><span class="p">):</span>
+                    <span class="n">pbar</span><span class="o">.</span><span class="n">set_worker</span><span class="p">(</span><span class="n">worker</span><span class="p">)</span>
             <span class="n">_push_button</span><span class="p">:</span> <span class="n">PushButtonPlus</span> <span class="o">=</span> <span class="n">gui</span><span class="p">[</span><span class="bp">self</span><span class="o">.</span><span class="n">_func</span><span class="o">.</span><span class="vm">__name__</span><span class="p">]</span>
             <span class="k">if</span> <span class="n">_push_button</span><span class="o">.</span><span class="n">running</span><span class="p">:</span>
                 <span class="n">_push_button</span><span class="o">.</span><span class="n">enabled</span> <span class="o">=</span> <span class="kc">False</span>
@@ -402,15 +554,22 @@ <h1>Source code for magicclass.qthreading</h1><div class="highlight"><pre>
                 <span class="n">desc</span> <span class="o">=</span> <span class="s2">&quot;Progress&quot;</span>
 
         <span class="k">if</span> <span class="n">_pbar</span> <span class="ow">is</span> <span class="kc">None</span><span class="p">:</span>
-            <span class="k">if</span> <span class="n">gui</span><span class="o">.</span><span class="n">parent_viewer</span> <span class="ow">is</span> <span class="ow">not</span> <span class="kc">None</span><span class="p">:</span>
-                <span class="n">_pbar</span> <span class="o">=</span> <span class="n">NapariProgressBar</span><span class="p">(</span><span class="n">value</span><span class="o">=</span><span class="mi">0</span><span class="p">,</span> <span class="nb">max</span><span class="o">=</span><span class="n">total</span><span class="p">)</span>
-            <span class="k">else</span><span class="p">:</span>
-                <span class="n">_pbar</span> <span class="o">=</span> <span class="n">ProgressBar</span><span class="p">(</span><span class="n">value</span><span class="o">=</span><span class="mi">0</span><span class="p">,</span> <span class="nb">max</span><span class="o">=</span><span class="n">total</span><span class="p">)</span>
-                <span class="n">_pbar</span><span class="o">.</span><span class="n">native</span><span class="o">.</span><span class="n">setParent</span><span class="p">(</span><span class="n">gui</span><span class="o">.</span><span class="n">native</span><span class="p">,</span> <span class="n">_pbar</span><span class="o">.</span><span class="n">native</span><span class="o">.</span><span class="n">windowFlags</span><span class="p">())</span>
+            <span class="n">_pbar</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="vm">__class__</span><span class="o">.</span><span class="n">_DEFAULT_PROGRESS_BAR</span><span class="p">(</span><span class="nb">max</span><span class="o">=</span><span class="n">total</span><span class="p">)</span>
+            <span class="k">if</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">_pbar</span><span class="p">,</span> <span class="n">Widget</span><span class="p">)</span> <span class="ow">and</span> <span class="n">_pbar</span><span class="o">.</span><span class="n">parent</span> <span class="ow">is</span> <span class="kc">None</span><span class="p">:</span>
+                <span class="c1"># Popup progressbar as a splashscreen if it is not a child widget.</span>
+                <span class="n">_pbar</span><span class="o">.</span><span class="n">native</span><span class="o">.</span><span class="n">setParent</span><span class="p">(</span>
+                    <span class="n">gui</span><span class="o">.</span><span class="n">native</span><span class="p">,</span>
+                    <span class="n">Qt</span><span class="o">.</span><span class="n">WindowTitleHint</span> <span class="o">|</span> <span class="n">Qt</span><span class="o">.</span><span class="n">WindowMinimizeButtonHint</span> <span class="o">|</span> <span class="n">Qt</span><span class="o">.</span><span class="n">Window</span><span class="p">,</span>
+                <span class="p">)</span>
+                <span class="n">move_to_screen_center</span><span class="p">(</span><span class="n">_pbar</span><span class="o">.</span><span class="n">native</span><span class="p">)</span>
         <span class="k">else</span><span class="p">:</span>
             <span class="n">_pbar</span><span class="o">.</span><span class="n">max</span> <span class="o">=</span> <span class="n">total</span>
 
-        <span class="n">_pbar</span><span class="o">.</span><span class="n">label</span> <span class="o">=</span> <span class="n">desc</span>
+        <span class="c1"># try to set description</span>
+        <span class="k">if</span> <span class="nb">hasattr</span><span class="p">(</span><span class="n">_pbar</span><span class="p">,</span> <span class="s2">&quot;set_description&quot;</span><span class="p">):</span>
+            <span class="n">_pbar</span><span class="o">.</span><span class="n">set_description</span><span class="p">(</span><span class="n">desc</span><span class="p">)</span>
+        <span class="k">else</span><span class="p">:</span>
+            <span class="n">_pbar</span><span class="o">.</span><span class="n">label</span> <span class="o">=</span> <span class="n">desc</span>
         <span class="k">return</span> <span class="n">_pbar</span>
 
     <span class="nd">@property</span>
@@ -444,30 +603,30 @@ <h1>Source code for magicclass.qthreading</h1><div class="highlight"><pre>
         <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">_aborted</span></div>
 
 
-<div class="viewcode-block" id="init_pbar"><a class="viewcode-back" href="../../magicclass.html#magicclass.qthreading.init_pbar">[docs]</a><span class="k">def</span> <span class="nf">init_pbar</span><span class="p">(</span><span class="n">pbar</span><span class="p">:</span> <span class="n">_SupportProgress</span><span class="p">):</span>
+<span class="k">def</span> <span class="nf">init_pbar</span><span class="p">(</span><span class="n">pbar</span><span class="p">:</span> <span class="n">ProgressBarLike</span><span class="p">):</span>
     <span class="sd">&quot;&quot;&quot;Initialize progressbar.&quot;&quot;&quot;</span>
     <span class="n">pbar</span><span class="o">.</span><span class="n">value</span> <span class="o">=</span> <span class="mi">0</span>
     <span class="n">pbar</span><span class="o">.</span><span class="n">show</span><span class="p">()</span>
-    <span class="k">return</span> <span class="kc">None</span></div>
+    <span class="k">return</span> <span class="kc">None</span>
 
 
-<div class="viewcode-block" id="close_pbar"><a class="viewcode-back" href="../../magicclass.html#magicclass.qthreading.close_pbar">[docs]</a><span class="k">def</span> <span class="nf">close_pbar</span><span class="p">(</span><span class="n">pbar</span><span class="p">:</span> <span class="n">_SupportProgress</span><span class="p">):</span>
+<span class="k">def</span> <span class="nf">close_pbar</span><span class="p">(</span><span class="n">pbar</span><span class="p">:</span> <span class="n">ProgressBarLike</span><span class="p">):</span>
     <span class="sd">&quot;&quot;&quot;Close progressbar.&quot;&quot;&quot;</span>
     <span class="k">if</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">pbar</span><span class="p">,</span> <span class="n">ProgressBar</span><span class="p">):</span>
         <span class="n">_labeled_widget</span> <span class="o">=</span> <span class="n">pbar</span><span class="o">.</span><span class="n">_labeled_widget</span><span class="p">()</span>
         <span class="k">if</span> <span class="n">_labeled_widget</span> <span class="ow">is</span> <span class="ow">not</span> <span class="kc">None</span><span class="p">:</span>
             <span class="n">pbar</span> <span class="o">=</span> <span class="n">_labeled_widget</span>
     <span class="n">pbar</span><span class="o">.</span><span class="n">close</span><span class="p">()</span>
-    <span class="k">return</span> <span class="kc">None</span></div>
+    <span class="k">return</span> <span class="kc">None</span>
 
 
-<div class="viewcode-block" id="increment"><a class="viewcode-back" href="../../magicclass.html#magicclass.qthreading.increment">[docs]</a><span class="k">def</span> <span class="nf">increment</span><span class="p">(</span><span class="n">pbar</span><span class="p">:</span> <span class="n">_SupportProgress</span><span class="p">):</span>
+<span class="k">def</span> <span class="nf">increment</span><span class="p">(</span><span class="n">pbar</span><span class="p">:</span> <span class="n">ProgressBarLike</span><span class="p">):</span>
     <span class="sd">&quot;&quot;&quot;Increment progressbar.&quot;&quot;&quot;</span>
     <span class="k">if</span> <span class="n">pbar</span><span class="o">.</span><span class="n">value</span> <span class="o">==</span> <span class="n">pbar</span><span class="o">.</span><span class="n">max</span><span class="p">:</span>
         <span class="n">pbar</span><span class="o">.</span><span class="n">max</span> <span class="o">=</span> <span class="mi">0</span>
     <span class="k">else</span><span class="p">:</span>
         <span class="n">pbar</span><span class="o">.</span><span class="n">value</span> <span class="o">+=</span> <span class="mi">1</span>
-    <span class="k">return</span> <span class="kc">None</span></div>
+    <span class="k">return</span> <span class="kc">None</span>
 </pre></div>
 
            </div>
diff --git a/docs/_modules/magicclass/utils/functions.html b/docs/_modules/magicclass/utils/functions.html
index eced8456..e88c95b0 100644
--- a/docs/_modules/magicclass/utils/functions.html
+++ b/docs/_modules/magicclass/utils/functions.html
@@ -3,7 +3,7 @@
 <head>
   <meta charset="utf-8" />
   <meta name="viewport" content="width=device-width, initial-scale=1.0" />
-  <title>magicclass.utils.functions &mdash; magic-class 0.6.1.dev1 documentation</title>
+  <title>magicclass.utils.functions &mdash; magic-class 0.6.2.dev0 documentation</title>
       <link rel="stylesheet" href="../../../_static/pygments.css" type="text/css" />
       <link rel="stylesheet" href="../../../_static/css/theme.css" type="text/css" />
       <link rel="stylesheet" href="../../../_static/columns.css" type="text/css" />
@@ -28,7 +28,7 @@
             <a href="../../../index.html" class="icon icon-home"> magic-class
           </a>
               <div class="version">
-                0.6.1.dev1
+                0.6.2.dev0
               </div>
 <div role="search">
   <form id="rtd-search-form" class="wy-form" action="../../../search.html" method="get">
@@ -50,6 +50,7 @@
 <li class="toctree-l1"><a class="reference internal" href="../../../use_wraps.html">Call Parent Methods from its Child</a></li>
 <li class="toctree-l1"><a class="reference internal" href="../../../use_bind.html">Binding Values to Arguments</a></li>
 <li class="toctree-l1"><a class="reference internal" href="../../../use_choices.html">Set Choices Dynamically</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../use_preview.html">Add Preview Functionalities</a></li>
 <li class="toctree-l1"><a class="reference internal" href="../../../use_worker.html">Multi-threading</a></li>
 <li class="toctree-l1"><a class="reference internal" href="../../../additional_types.html">Additional types</a></li>
 <li class="toctree-l1"><a class="reference internal" href="../../../containers.html">Container Variations</a></li>
@@ -94,26 +95,13 @@
   <h1>Source code for magicclass.utils.functions</h1><div class="highlight"><pre>
 <span></span><span class="kn">from</span> <span class="nn">__future__</span> <span class="kn">import</span> <span class="n">annotations</span>
 <span class="kn">import</span> <span class="nn">inspect</span>
-<span class="kn">from</span> <span class="nn">enum</span> <span class="kn">import</span> <span class="n">Enum</span>
 <span class="kn">from</span> <span class="nn">typing</span> <span class="kn">import</span> <span class="n">Any</span><span class="p">,</span> <span class="n">TYPE_CHECKING</span><span class="p">,</span> <span class="n">Iterable</span>
 <span class="kn">import</span> <span class="nn">warnings</span>
 <span class="kn">from</span> <span class="nn">docstring_parser</span> <span class="kn">import</span> <span class="n">parse</span>
-<span class="kn">from</span> <span class="nn">qtpy.QtWidgets</span> <span class="kn">import</span> <span class="n">QApplication</span><span class="p">,</span> <span class="n">QMessageBox</span>
 
 <span class="k">if</span> <span class="n">TYPE_CHECKING</span><span class="p">:</span>
     <span class="kn">from</span> <span class="nn">..gui</span> <span class="kn">import</span> <span class="n">BaseGui</span>
 
-<span class="n">__all__</span> <span class="o">=</span> <span class="p">[</span>
-    <span class="s2">&quot;MessageBoxMode&quot;</span><span class="p">,</span>
-    <span class="s2">&quot;show_messagebox&quot;</span><span class="p">,</span>
-    <span class="s2">&quot;open_url&quot;</span><span class="p">,</span>
-    <span class="s2">&quot;screen_center&quot;</span><span class="p">,</span>
-    <span class="s2">&quot;to_clipboard&quot;</span><span class="p">,</span>
-    <span class="s2">&quot;iter_members&quot;</span><span class="p">,</span>
-    <span class="s2">&quot;extract_tooltip&quot;</span><span class="p">,</span>
-    <span class="s2">&quot;get_signature&quot;</span><span class="p">,</span>
-<span class="p">]</span>
-
 
 <div class="viewcode-block" id="iter_members"><a class="viewcode-back" href="../../../magicclass.utils.html#magicclass.utils.functions.iter_members">[docs]</a><span class="k">def</span> <span class="nf">iter_members</span><span class="p">(</span><span class="bp">cls</span><span class="p">:</span> <span class="nb">type</span><span class="p">,</span> <span class="n">exclude_prefix</span><span class="p">:</span> <span class="nb">str</span> <span class="o">=</span> <span class="s2">&quot;__&quot;</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Iterable</span><span class="p">[</span><span class="nb">tuple</span><span class="p">[</span><span class="nb">str</span><span class="p">,</span> <span class="n">Any</span><span class="p">]]:</span>
     <span class="sd">&quot;&quot;&quot;</span>
@@ -171,117 +159,8 @@ <h1>Source code for magicclass.utils.functions</h1><div class="highlight"><pre>
     <span class="k">return</span> <span class="n">sig</span></div>
 
 
-<div class="viewcode-block" id="MessageBoxMode"><a class="viewcode-back" href="../../../magicclass.utils.html#magicclass.utils.functions.MessageBoxMode">[docs]</a><span class="k">class</span> <span class="nc">MessageBoxMode</span><span class="p">(</span><span class="n">Enum</span><span class="p">):</span>
-    <span class="n">ERROR</span> <span class="o">=</span> <span class="s2">&quot;error&quot;</span>
-    <span class="n">WARNING</span> <span class="o">=</span> <span class="s2">&quot;warn&quot;</span>
-    <span class="n">INFO</span> <span class="o">=</span> <span class="s2">&quot;info&quot;</span>
-    <span class="n">QUESTION</span> <span class="o">=</span> <span class="s2">&quot;question&quot;</span>
-    <span class="n">ABOUT</span> <span class="o">=</span> <span class="s2">&quot;about&quot;</span></div>
-
-
-<span class="n">_QMESSAGE_MODES</span> <span class="o">=</span> <span class="p">{</span>
-    <span class="n">MessageBoxMode</span><span class="o">.</span><span class="n">ERROR</span><span class="p">:</span> <span class="n">QMessageBox</span><span class="o">.</span><span class="n">critical</span><span class="p">,</span>
-    <span class="n">MessageBoxMode</span><span class="o">.</span><span class="n">WARNING</span><span class="p">:</span> <span class="n">QMessageBox</span><span class="o">.</span><span class="n">warning</span><span class="p">,</span>
-    <span class="n">MessageBoxMode</span><span class="o">.</span><span class="n">INFO</span><span class="p">:</span> <span class="n">QMessageBox</span><span class="o">.</span><span class="n">information</span><span class="p">,</span>
-    <span class="n">MessageBoxMode</span><span class="o">.</span><span class="n">QUESTION</span><span class="p">:</span> <span class="n">QMessageBox</span><span class="o">.</span><span class="n">question</span><span class="p">,</span>
-    <span class="n">MessageBoxMode</span><span class="o">.</span><span class="n">ABOUT</span><span class="p">:</span> <span class="n">QMessageBox</span><span class="o">.</span><span class="n">about</span><span class="p">,</span>
-<span class="p">}</span>
-
-
-<div class="viewcode-block" id="show_messagebox"><a class="viewcode-back" href="../../../magicclass.utils.html#magicclass.utils.functions.show_messagebox">[docs]</a><span class="k">def</span> <span class="nf">show_messagebox</span><span class="p">(</span>
-    <span class="n">mode</span><span class="p">:</span> <span class="nb">str</span> <span class="o">|</span> <span class="n">MessageBoxMode</span> <span class="o">=</span> <span class="n">MessageBoxMode</span><span class="o">.</span><span class="n">INFO</span><span class="p">,</span>
-    <span class="n">title</span><span class="p">:</span> <span class="nb">str</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span>
-    <span class="n">text</span><span class="p">:</span> <span class="nb">str</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span>
-    <span class="n">parent</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span>
-<span class="p">)</span> <span class="o">-&gt;</span> <span class="nb">bool</span><span class="p">:</span>
-    <span class="sd">&quot;&quot;&quot;</span>
-<span class="sd">    Freeze the GUI and open a messagebox dialog.</span>
-
-<span class="sd">    Parameters</span>
-<span class="sd">    ----------</span>
-<span class="sd">    mode : str or MessageBoxMode, default is MessageBoxMode.INFO</span>
-<span class="sd">        Mode of message box. Must be &quot;error&quot;, &quot;warn&quot;, &quot;info&quot;, &quot;question&quot; or &quot;about&quot;.</span>
-<span class="sd">    title : str, optional</span>
-<span class="sd">        Title of messagebox.</span>
-<span class="sd">    text : str, optional</span>
-<span class="sd">        Text in messagebox.</span>
-<span class="sd">    parent : QWidget, optional</span>
-<span class="sd">        Parent widget.</span>
-
-<span class="sd">    Returns</span>
-<span class="sd">    -------</span>
-<span class="sd">    bool</span>
-<span class="sd">        If &quot;OK&quot; or &quot;Yes&quot; is clicked, return True. Otherwise return False.</span>
-<span class="sd">    &quot;&quot;&quot;</span>
-    <span class="n">show_dialog</span> <span class="o">=</span> <span class="n">_QMESSAGE_MODES</span><span class="p">[</span><span class="n">MessageBoxMode</span><span class="p">(</span><span class="n">mode</span><span class="p">)]</span>
-    <span class="n">result</span> <span class="o">=</span> <span class="n">show_dialog</span><span class="p">(</span><span class="n">parent</span><span class="p">,</span> <span class="n">title</span><span class="p">,</span> <span class="n">text</span><span class="p">)</span>
-    <span class="k">return</span> <span class="n">result</span> <span class="ow">in</span> <span class="p">(</span><span class="n">QMessageBox</span><span class="o">.</span><span class="n">Ok</span><span class="p">,</span> <span class="n">QMessageBox</span><span class="o">.</span><span class="n">Yes</span><span class="p">)</span></div>
-
-
-<div class="viewcode-block" id="open_url"><a class="viewcode-back" href="../../../magicclass.utils.html#magicclass.utils.functions.open_url">[docs]</a><span class="k">def</span> <span class="nf">open_url</span><span class="p">(</span><span class="n">link</span><span class="p">:</span> <span class="nb">str</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="kc">None</span><span class="p">:</span>
-    <span class="sd">&quot;&quot;&quot;</span>
-<span class="sd">    Open the link with the default browser.</span>
-
-<span class="sd">    Parameters</span>
-<span class="sd">    ----------</span>
-<span class="sd">    link : str</span>
-<span class="sd">        Link to the home page.</span>
-<span class="sd">    &quot;&quot;&quot;</span>
-    <span class="kn">from</span> <span class="nn">qtpy.QtGui</span> <span class="kn">import</span> <span class="n">QDesktopServices</span>
-    <span class="kn">from</span> <span class="nn">qtpy.QtCore</span> <span class="kn">import</span> <span class="n">QUrl</span>
-
-    <span class="n">QDesktopServices</span><span class="o">.</span><span class="n">openUrl</span><span class="p">(</span><span class="n">QUrl</span><span class="p">(</span><span class="n">link</span><span class="p">))</span></div>
-
-
-<div class="viewcode-block" id="to_clipboard"><a class="viewcode-back" href="../../../magicclass.utils.html#magicclass.utils.functions.to_clipboard">[docs]</a><span class="k">def</span> <span class="nf">to_clipboard</span><span class="p">(</span><span class="n">obj</span><span class="p">:</span> <span class="n">Any</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="kc">None</span><span class="p">:</span>
-    <span class="sd">&quot;&quot;&quot;</span>
-<span class="sd">    Copy an object of any type to the clipboard.</span>
-<span class="sd">    You can copy text, ndarray as an image or data frame as a table data.</span>
-
-<span class="sd">    Parameters</span>
-<span class="sd">    ----------</span>
-<span class="sd">    obj : Any</span>
-<span class="sd">        Object to be copied.</span>
-<span class="sd">    &quot;&quot;&quot;</span>
-    <span class="kn">from</span> <span class="nn">qtpy.QtGui</span> <span class="kn">import</span> <span class="n">QGuiApplication</span><span class="p">,</span> <span class="n">QImage</span><span class="p">,</span> <span class="n">qRgb</span>
-    <span class="kn">import</span> <span class="nn">numpy</span> <span class="k">as</span> <span class="nn">np</span>
-    <span class="kn">import</span> <span class="nn">pandas</span> <span class="k">as</span> <span class="nn">pd</span>
-
-    <span class="n">clipboard</span> <span class="o">=</span> <span class="n">QGuiApplication</span><span class="o">.</span><span class="n">clipboard</span><span class="p">()</span>
-
-    <span class="k">if</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">obj</span><span class="p">,</span> <span class="nb">str</span><span class="p">):</span>
-        <span class="n">clipboard</span><span class="o">.</span><span class="n">setText</span><span class="p">(</span><span class="n">obj</span><span class="p">)</span>
-    <span class="k">elif</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">obj</span><span class="p">,</span> <span class="n">np</span><span class="o">.</span><span class="n">ndarray</span><span class="p">):</span>
-        <span class="k">if</span> <span class="n">obj</span><span class="o">.</span><span class="n">dtype</span> <span class="o">!=</span> <span class="n">np</span><span class="o">.</span><span class="n">uint8</span><span class="p">:</span>
-            <span class="k">raise</span> <span class="ne">ValueError</span><span class="p">(</span><span class="sa">f</span><span class="s2">&quot;Cannot copy an array of dtype </span><span class="si">{</span><span class="n">obj</span><span class="o">.</span><span class="n">dtype</span><span class="si">}</span><span class="s2"> to clipboard.&quot;</span><span class="p">)</span>
-        <span class="c1"># See https://gist.github.com/smex/5287589</span>
-        <span class="n">qimg_format</span> <span class="o">=</span> <span class="n">QImage</span><span class="o">.</span><span class="n">Format_RGB888</span> <span class="k">if</span> <span class="n">obj</span><span class="o">.</span><span class="n">ndim</span> <span class="o">==</span> <span class="mi">3</span> <span class="k">else</span> <span class="n">QImage</span><span class="o">.</span><span class="n">Format_Indexed8</span>
-        <span class="o">*</span><span class="n">_</span><span class="p">,</span> <span class="n">h</span><span class="p">,</span> <span class="n">w</span> <span class="o">=</span> <span class="n">obj</span><span class="o">.</span><span class="n">shape</span>
-        <span class="n">qimg</span> <span class="o">=</span> <span class="n">QImage</span><span class="p">(</span><span class="n">obj</span><span class="o">.</span><span class="n">data</span><span class="p">,</span> <span class="n">w</span><span class="p">,</span> <span class="n">h</span><span class="p">,</span> <span class="n">obj</span><span class="o">.</span><span class="n">strides</span><span class="p">[</span><span class="mi">0</span><span class="p">],</span> <span class="n">qimg_format</span><span class="p">)</span>
-        <span class="n">gray_color_table</span> <span class="o">=</span> <span class="p">[</span><span class="n">qRgb</span><span class="p">(</span><span class="n">i</span><span class="p">,</span> <span class="n">i</span><span class="p">,</span> <span class="n">i</span><span class="p">)</span> <span class="k">for</span> <span class="n">i</span> <span class="ow">in</span> <span class="nb">range</span><span class="p">(</span><span class="mi">256</span><span class="p">)]</span>
-        <span class="n">qimg</span><span class="o">.</span><span class="n">setColorTable</span><span class="p">(</span><span class="n">gray_color_table</span><span class="p">)</span>
-        <span class="n">clipboard</span><span class="o">.</span><span class="n">setImage</span><span class="p">(</span><span class="n">qimg</span><span class="p">)</span>
-    <span class="k">elif</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">obj</span><span class="p">,</span> <span class="n">pd</span><span class="o">.</span><span class="n">DataFrame</span><span class="p">):</span>
-        <span class="n">clipboard</span><span class="o">.</span><span class="n">setText</span><span class="p">(</span><span class="n">obj</span><span class="o">.</span><span class="n">to_csv</span><span class="p">(</span><span class="n">sep</span><span class="o">=</span><span class="s2">&quot;</span><span class="se">\t</span><span class="s2">&quot;</span><span class="p">))</span>
-    <span class="k">else</span><span class="p">:</span>
-        <span class="n">clipboard</span><span class="o">.</span><span class="n">setText</span><span class="p">(</span><span class="nb">str</span><span class="p">(</span><span class="n">obj</span><span class="p">))</span></div>
-
-
-<div class="viewcode-block" id="screen_center"><a class="viewcode-back" href="../../../magicclass.utils.html#magicclass.utils.functions.screen_center">[docs]</a><span class="k">def</span> <span class="nf">screen_center</span><span class="p">():</span>
-    <span class="sd">&quot;&quot;&quot;Get the center coordinate of the screen.&quot;&quot;&quot;</span>
-    <span class="k">return</span> <span class="n">QApplication</span><span class="o">.</span><span class="n">desktop</span><span class="p">()</span><span class="o">.</span><span class="n">screen</span><span class="p">()</span><span class="o">.</span><span class="n">rect</span><span class="p">()</span><span class="o">.</span><span class="n">center</span><span class="p">()</span></div>
-
-
-<span class="k">def</span> <span class="nf">screen_scale</span><span class="p">()</span> <span class="o">-&gt;</span> <span class="nb">float</span><span class="p">:</span>
-    <span class="sd">&quot;&quot;&quot;Get the scale of main screen.&quot;&quot;&quot;</span>
-    <span class="kn">from</span> <span class="nn">qtpy.QtGui</span> <span class="kn">import</span> <span class="n">QGuiApplication</span>
-
-    <span class="n">screen</span> <span class="o">=</span> <span class="n">QGuiApplication</span><span class="o">.</span><span class="n">screens</span><span class="p">()[</span><span class="mi">0</span><span class="p">]</span>
-    <span class="k">return</span> <span class="n">screen</span><span class="o">.</span><span class="n">devicePixelRatio</span><span class="p">()</span>
-
-
-<span class="k">def</span> <span class="nf">show_tree</span><span class="p">(</span><span class="n">ui</span><span class="p">:</span> <span class="n">BaseGui</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="nb">str</span><span class="p">:</span>
-    <span class="k">return</span> <span class="n">_get_tree</span><span class="p">(</span><span class="n">ui</span><span class="p">)</span>
+<div class="viewcode-block" id="show_tree"><a class="viewcode-back" href="../../../magicclass.utils.html#magicclass.utils.functions.show_tree">[docs]</a><span class="k">def</span> <span class="nf">show_tree</span><span class="p">(</span><span class="n">ui</span><span class="p">:</span> <span class="n">BaseGui</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="nb">str</span><span class="p">:</span>
+    <span class="k">return</span> <span class="n">_get_tree</span><span class="p">(</span><span class="n">ui</span><span class="p">)</span></div>
 
 
 <span class="k">def</span> <span class="nf">_get_tree</span><span class="p">(</span><span class="n">ui</span><span class="p">:</span> <span class="n">BaseGui</span><span class="p">,</span> <span class="n">depth</span><span class="p">:</span> <span class="nb">int</span> <span class="o">=</span> <span class="mi">0</span><span class="p">):</span>
@@ -299,7 +178,7 @@ <h1>Source code for magicclass.utils.functions</h1><div class="highlight"><pre>
     <span class="k">return</span> <span class="n">out</span>
 
 
-<span class="k">def</span> <span class="nf">rst_to_html</span><span class="p">(</span><span class="n">rst</span><span class="p">:</span> <span class="nb">str</span><span class="p">,</span> <span class="n">unescape</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="nb">str</span><span class="p">:</span>
+<div class="viewcode-block" id="rst_to_html"><a class="viewcode-back" href="../../../magicclass.utils.html#magicclass.utils.functions.rst_to_html">[docs]</a><span class="k">def</span> <span class="nf">rst_to_html</span><span class="p">(</span><span class="n">rst</span><span class="p">:</span> <span class="nb">str</span><span class="p">,</span> <span class="n">unescape</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="nb">str</span><span class="p">:</span>
     <span class="sd">&quot;&quot;&quot;Convert rST string into HTML.&quot;&quot;&quot;</span>
     <span class="kn">from</span> <span class="nn">docutils.examples</span> <span class="kn">import</span> <span class="n">html_body</span>
 
@@ -317,7 +196,7 @@ <h1>Source code for magicclass.utils.functions</h1><div class="highlight"><pre>
             <span class="ne">UserWarning</span><span class="p">,</span>
         <span class="p">)</span>
         <span class="n">html</span> <span class="o">=</span> <span class="n">rst</span>
-    <span class="k">return</span> <span class="n">html</span>
+    <span class="k">return</span> <span class="n">html</span></div>
 </pre></div>
 
            </div>
diff --git a/docs/_modules/magicclass/utils/qt.html b/docs/_modules/magicclass/utils/qt.html
new file mode 100644
index 00000000..30dd9c8b
--- /dev/null
+++ b/docs/_modules/magicclass/utils/qt.html
@@ -0,0 +1,243 @@
+<!DOCTYPE html>
+<html class="writer-html5" lang="English" >
+<head>
+  <meta charset="utf-8" />
+  <meta name="viewport" content="width=device-width, initial-scale=1.0" />
+  <title>magicclass.utils.qt &mdash; magic-class 0.6.2.dev0 documentation</title>
+      <link rel="stylesheet" href="../../../_static/pygments.css" type="text/css" />
+      <link rel="stylesheet" href="../../../_static/css/theme.css" type="text/css" />
+      <link rel="stylesheet" href="../../../_static/columns.css" type="text/css" />
+  <!--[if lt IE 9]>
+    <script src="../../../_static/js/html5shiv.min.js"></script>
+  <![endif]-->
+
+        <script data-url_root="../../../" id="documentation_options" src="../../../_static/documentation_options.js"></script>
+        <script src="../../../_static/jquery.js"></script>
+        <script src="../../../_static/underscore.js"></script>
+        <script src="../../../_static/doctools.js"></script>
+    <script src="../../../_static/js/theme.js"></script>
+    <link rel="index" title="Index" href="../../../genindex.html" />
+    <link rel="search" title="Search" href="../../../search.html" />
+</head>
+
+<body class="wy-body-for-nav">
+  <div class="wy-grid-for-nav">
+    <nav data-toggle="wy-nav-shift" class="wy-nav-side">
+      <div class="wy-side-scroll">
+        <div class="wy-side-nav-search" >
+            <a href="../../../index.html" class="icon icon-home"> magic-class
+          </a>
+              <div class="version">
+                0.6.2.dev0
+              </div>
+<div role="search">
+  <form id="rtd-search-form" class="wy-form" action="../../../search.html" method="get">
+    <input type="text" name="q" placeholder="Search docs" />
+    <input type="hidden" name="check_keywords" value="yes" />
+    <input type="hidden" name="area" value="default" />
+  </form>
+</div>
+        </div><div class="wy-menu wy-menu-vertical" data-spy="affix" role="navigation" aria-label="Navigation menu">
+              <ul>
+<li class="toctree-l1"><a class="reference internal" href="../../../quick_start.html">Quick Start</a></li>
+</ul>
+<ul>
+<li class="toctree-l1"><a class="reference internal" href="../../../options.html">Options in magic-class</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../nest.html">Nest magic-classes</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../use_field.html">Use Fields in magic-class</a></li>
+</ul>
+<ul>
+<li class="toctree-l1"><a class="reference internal" href="../../../use_wraps.html">Call Parent Methods from its Child</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../use_bind.html">Binding Values to Arguments</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../use_choices.html">Set Choices Dynamically</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../use_preview.html">Add Preview Functionalities</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../use_worker.html">Multi-threading</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../additional_types.html">Additional types</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../containers.html">Container Variations</a></li>
+</ul>
+<ul>
+<li class="toctree-l1"><a class="reference internal" href="../../../matplotlib.html">Use Matplotlib Figure</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../pyqtgraph.html">Use PyQtGraph Canvas</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../vispy.html">Vispy Canvas</a></li>
+</ul>
+<ul>
+<li class="toctree-l1"><a class="reference internal" href="../../../freewidget.html">Convert QtWidgets into a Magic Widget</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../keybinding.html">Define Custom Keybindings</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../customize_macro.html">Customize Macro Recording</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../class_inheritance.html">Inherit Magic Class</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../api.html">API References</a></li>
+</ul>
+
+        </div>
+      </div>
+    </nav>
+
+    <section data-toggle="wy-nav-shift" class="wy-nav-content-wrap"><nav class="wy-nav-top" aria-label="Mobile navigation menu" >
+          <i data-toggle="wy-nav-top" class="fa fa-bars"></i>
+          <a href="../../../index.html">magic-class</a>
+      </nav>
+
+      <div class="wy-nav-content">
+        <div class="rst-content">
+          <div role="navigation" aria-label="Page navigation">
+  <ul class="wy-breadcrumbs">
+      <li><a href="../../../index.html" class="icon icon-home"></a> &raquo;</li>
+          <li><a href="../../index.html">Module code</a> &raquo;</li>
+      <li>magicclass.utils.qt</li>
+      <li class="wy-breadcrumbs-aside">
+      </li>
+  </ul>
+  <hr/>
+</div>
+          <div role="main" class="document" itemscope="itemscope" itemtype="http://schema.org/Article">
+           <div itemprop="articleBody">
+
+  <h1>Source code for magicclass.utils.qt</h1><div class="highlight"><pre>
+<span></span><span class="kn">from</span> <span class="nn">__future__</span> <span class="kn">import</span> <span class="n">annotations</span>
+<span class="kn">from</span> <span class="nn">qtpy.QtWidgets</span> <span class="kn">import</span> <span class="n">QApplication</span><span class="p">,</span> <span class="n">QMessageBox</span><span class="p">,</span> <span class="n">QWidget</span>
+<span class="kn">from</span> <span class="nn">enum</span> <span class="kn">import</span> <span class="n">Enum</span>
+
+
+<div class="viewcode-block" id="MessageBoxMode"><a class="viewcode-back" href="../../../magicclass.utils.html#magicclass.utils.qt.MessageBoxMode">[docs]</a><span class="k">class</span> <span class="nc">MessageBoxMode</span><span class="p">(</span><span class="n">Enum</span><span class="p">):</span>
+    <span class="n">ERROR</span> <span class="o">=</span> <span class="s2">&quot;error&quot;</span>
+    <span class="n">WARNING</span> <span class="o">=</span> <span class="s2">&quot;warn&quot;</span>
+    <span class="n">INFO</span> <span class="o">=</span> <span class="s2">&quot;info&quot;</span>
+    <span class="n">QUESTION</span> <span class="o">=</span> <span class="s2">&quot;question&quot;</span>
+    <span class="n">ABOUT</span> <span class="o">=</span> <span class="s2">&quot;about&quot;</span></div>
+
+
+<span class="n">_QMESSAGE_MODES</span> <span class="o">=</span> <span class="p">{</span>
+    <span class="n">MessageBoxMode</span><span class="o">.</span><span class="n">ERROR</span><span class="p">:</span> <span class="n">QMessageBox</span><span class="o">.</span><span class="n">critical</span><span class="p">,</span>
+    <span class="n">MessageBoxMode</span><span class="o">.</span><span class="n">WARNING</span><span class="p">:</span> <span class="n">QMessageBox</span><span class="o">.</span><span class="n">warning</span><span class="p">,</span>
+    <span class="n">MessageBoxMode</span><span class="o">.</span><span class="n">INFO</span><span class="p">:</span> <span class="n">QMessageBox</span><span class="o">.</span><span class="n">information</span><span class="p">,</span>
+    <span class="n">MessageBoxMode</span><span class="o">.</span><span class="n">QUESTION</span><span class="p">:</span> <span class="n">QMessageBox</span><span class="o">.</span><span class="n">question</span><span class="p">,</span>
+    <span class="n">MessageBoxMode</span><span class="o">.</span><span class="n">ABOUT</span><span class="p">:</span> <span class="n">QMessageBox</span><span class="o">.</span><span class="n">about</span><span class="p">,</span>
+<span class="p">}</span>
+
+
+<div class="viewcode-block" id="show_messagebox"><a class="viewcode-back" href="../../../magicclass.utils.html#magicclass.utils.qt.show_messagebox">[docs]</a><span class="k">def</span> <span class="nf">show_messagebox</span><span class="p">(</span>
+    <span class="n">mode</span><span class="p">:</span> <span class="nb">str</span> <span class="o">|</span> <span class="n">MessageBoxMode</span> <span class="o">=</span> <span class="n">MessageBoxMode</span><span class="o">.</span><span class="n">INFO</span><span class="p">,</span>
+    <span class="n">title</span><span class="p">:</span> <span class="nb">str</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span>
+    <span class="n">text</span><span class="p">:</span> <span class="nb">str</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span>
+    <span class="n">parent</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span>
+<span class="p">)</span> <span class="o">-&gt;</span> <span class="nb">bool</span><span class="p">:</span>
+    <span class="sd">&quot;&quot;&quot;</span>
+<span class="sd">    Freeze the GUI and open a messagebox dialog.</span>
+
+<span class="sd">    Parameters</span>
+<span class="sd">    ----------</span>
+<span class="sd">    mode : str or MessageBoxMode, default is MessageBoxMode.INFO</span>
+<span class="sd">        Mode of message box. Must be &quot;error&quot;, &quot;warn&quot;, &quot;info&quot;, &quot;question&quot; or &quot;about&quot;.</span>
+<span class="sd">    title : str, optional</span>
+<span class="sd">        Title of messagebox.</span>
+<span class="sd">    text : str, optional</span>
+<span class="sd">        Text in messagebox.</span>
+<span class="sd">    parent : QWidget, optional</span>
+<span class="sd">        Parent widget.</span>
+
+<span class="sd">    Returns</span>
+<span class="sd">    -------</span>
+<span class="sd">    bool</span>
+<span class="sd">        If &quot;OK&quot; or &quot;Yes&quot; is clicked, return True. Otherwise return False.</span>
+<span class="sd">    &quot;&quot;&quot;</span>
+    <span class="n">show_dialog</span> <span class="o">=</span> <span class="n">_QMESSAGE_MODES</span><span class="p">[</span><span class="n">MessageBoxMode</span><span class="p">(</span><span class="n">mode</span><span class="p">)]</span>
+    <span class="n">result</span> <span class="o">=</span> <span class="n">show_dialog</span><span class="p">(</span><span class="n">parent</span><span class="p">,</span> <span class="n">title</span><span class="p">,</span> <span class="n">text</span><span class="p">)</span>
+    <span class="k">return</span> <span class="n">result</span> <span class="ow">in</span> <span class="p">(</span><span class="n">QMessageBox</span><span class="o">.</span><span class="n">Ok</span><span class="p">,</span> <span class="n">QMessageBox</span><span class="o">.</span><span class="n">Yes</span><span class="p">)</span></div>
+
+
+<div class="viewcode-block" id="open_url"><a class="viewcode-back" href="../../../magicclass.utils.html#magicclass.utils.qt.open_url">[docs]</a><span class="k">def</span> <span class="nf">open_url</span><span class="p">(</span><span class="n">link</span><span class="p">:</span> <span class="nb">str</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="kc">None</span><span class="p">:</span>
+    <span class="sd">&quot;&quot;&quot;</span>
+<span class="sd">    Open the link with the default browser.</span>
+
+<span class="sd">    Parameters</span>
+<span class="sd">    ----------</span>
+<span class="sd">    link : str</span>
+<span class="sd">        Link to the home page.</span>
+<span class="sd">    &quot;&quot;&quot;</span>
+    <span class="kn">from</span> <span class="nn">qtpy.QtGui</span> <span class="kn">import</span> <span class="n">QDesktopServices</span>
+    <span class="kn">from</span> <span class="nn">qtpy.QtCore</span> <span class="kn">import</span> <span class="n">QUrl</span>
+
+    <span class="n">QDesktopServices</span><span class="o">.</span><span class="n">openUrl</span><span class="p">(</span><span class="n">QUrl</span><span class="p">(</span><span class="n">link</span><span class="p">))</span></div>
+
+
+<div class="viewcode-block" id="screen_center"><a class="viewcode-back" href="../../../magicclass.utils.html#magicclass.utils.qt.screen_center">[docs]</a><span class="k">def</span> <span class="nf">screen_center</span><span class="p">():</span>
+    <span class="sd">&quot;&quot;&quot;Get the center coordinate of the screen.&quot;&quot;&quot;</span>
+    <span class="k">return</span> <span class="n">QApplication</span><span class="o">.</span><span class="n">desktop</span><span class="p">()</span><span class="o">.</span><span class="n">screen</span><span class="p">()</span><span class="o">.</span><span class="n">rect</span><span class="p">()</span><span class="o">.</span><span class="n">center</span><span class="p">()</span></div>
+
+
+<div class="viewcode-block" id="move_to_screen_center"><a class="viewcode-back" href="../../../magicclass.utils.html#magicclass.utils.qt.move_to_screen_center">[docs]</a><span class="k">def</span> <span class="nf">move_to_screen_center</span><span class="p">(</span><span class="n">qwidget</span><span class="p">:</span> <span class="n">QWidget</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="kc">None</span><span class="p">:</span>
+    <span class="sd">&quot;&quot;&quot;Move a QWidget to the center of screen.&quot;&quot;&quot;</span>
+    <span class="n">qwidget</span><span class="o">.</span><span class="n">move</span><span class="p">(</span><span class="n">screen_center</span><span class="p">()</span> <span class="o">-</span> <span class="n">qwidget</span><span class="o">.</span><span class="n">rect</span><span class="p">()</span><span class="o">.</span><span class="n">center</span><span class="p">())</span>
+    <span class="k">return</span> <span class="kc">None</span></div>
+
+
+<div class="viewcode-block" id="screen_scale"><a class="viewcode-back" href="../../../magicclass.utils.html#magicclass.utils.qt.screen_scale">[docs]</a><span class="k">def</span> <span class="nf">screen_scale</span><span class="p">()</span> <span class="o">-&gt;</span> <span class="nb">float</span><span class="p">:</span>
+    <span class="sd">&quot;&quot;&quot;Get the scale of main screen.&quot;&quot;&quot;</span>
+    <span class="kn">from</span> <span class="nn">qtpy.QtGui</span> <span class="kn">import</span> <span class="n">QGuiApplication</span>
+
+    <span class="n">screen</span> <span class="o">=</span> <span class="n">QGuiApplication</span><span class="o">.</span><span class="n">screens</span><span class="p">()[</span><span class="mi">0</span><span class="p">]</span>
+    <span class="k">return</span> <span class="n">screen</span><span class="o">.</span><span class="n">devicePixelRatio</span><span class="p">()</span></div>
+
+
+<div class="viewcode-block" id="to_clipboard"><a class="viewcode-back" href="../../../magicclass.utils.html#magicclass.utils.qt.to_clipboard">[docs]</a><span class="k">def</span> <span class="nf">to_clipboard</span><span class="p">(</span><span class="n">obj</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="kc">None</span><span class="p">:</span>
+    <span class="sd">&quot;&quot;&quot;</span>
+<span class="sd">    Copy an object of any type to the clipboard.</span>
+<span class="sd">    You can copy text, ndarray as an image or data frame as a table data.</span>
+
+<span class="sd">    Parameters</span>
+<span class="sd">    ----------</span>
+<span class="sd">    obj : Any</span>
+<span class="sd">        Object to be copied.</span>
+<span class="sd">    &quot;&quot;&quot;</span>
+    <span class="kn">from</span> <span class="nn">qtpy.QtGui</span> <span class="kn">import</span> <span class="n">QGuiApplication</span><span class="p">,</span> <span class="n">QImage</span><span class="p">,</span> <span class="n">qRgb</span>
+    <span class="kn">import</span> <span class="nn">numpy</span> <span class="k">as</span> <span class="nn">np</span>
+    <span class="kn">import</span> <span class="nn">pandas</span> <span class="k">as</span> <span class="nn">pd</span>
+
+    <span class="n">clipboard</span> <span class="o">=</span> <span class="n">QGuiApplication</span><span class="o">.</span><span class="n">clipboard</span><span class="p">()</span>
+
+    <span class="k">if</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">obj</span><span class="p">,</span> <span class="nb">str</span><span class="p">):</span>
+        <span class="n">clipboard</span><span class="o">.</span><span class="n">setText</span><span class="p">(</span><span class="n">obj</span><span class="p">)</span>
+    <span class="k">elif</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">obj</span><span class="p">,</span> <span class="n">np</span><span class="o">.</span><span class="n">ndarray</span><span class="p">):</span>
+        <span class="k">if</span> <span class="n">obj</span><span class="o">.</span><span class="n">dtype</span> <span class="o">!=</span> <span class="n">np</span><span class="o">.</span><span class="n">uint8</span><span class="p">:</span>
+            <span class="k">raise</span> <span class="ne">ValueError</span><span class="p">(</span><span class="sa">f</span><span class="s2">&quot;Cannot copy an array of dtype </span><span class="si">{</span><span class="n">obj</span><span class="o">.</span><span class="n">dtype</span><span class="si">}</span><span class="s2"> to clipboard.&quot;</span><span class="p">)</span>
+        <span class="c1"># See https://gist.github.com/smex/5287589</span>
+        <span class="n">qimg_format</span> <span class="o">=</span> <span class="n">QImage</span><span class="o">.</span><span class="n">Format_RGB888</span> <span class="k">if</span> <span class="n">obj</span><span class="o">.</span><span class="n">ndim</span> <span class="o">==</span> <span class="mi">3</span> <span class="k">else</span> <span class="n">QImage</span><span class="o">.</span><span class="n">Format_Indexed8</span>
+        <span class="o">*</span><span class="n">_</span><span class="p">,</span> <span class="n">h</span><span class="p">,</span> <span class="n">w</span> <span class="o">=</span> <span class="n">obj</span><span class="o">.</span><span class="n">shape</span>
+        <span class="n">qimg</span> <span class="o">=</span> <span class="n">QImage</span><span class="p">(</span><span class="n">obj</span><span class="o">.</span><span class="n">data</span><span class="p">,</span> <span class="n">w</span><span class="p">,</span> <span class="n">h</span><span class="p">,</span> <span class="n">obj</span><span class="o">.</span><span class="n">strides</span><span class="p">[</span><span class="mi">0</span><span class="p">],</span> <span class="n">qimg_format</span><span class="p">)</span>
+        <span class="n">gray_color_table</span> <span class="o">=</span> <span class="p">[</span><span class="n">qRgb</span><span class="p">(</span><span class="n">i</span><span class="p">,</span> <span class="n">i</span><span class="p">,</span> <span class="n">i</span><span class="p">)</span> <span class="k">for</span> <span class="n">i</span> <span class="ow">in</span> <span class="nb">range</span><span class="p">(</span><span class="mi">256</span><span class="p">)]</span>
+        <span class="n">qimg</span><span class="o">.</span><span class="n">setColorTable</span><span class="p">(</span><span class="n">gray_color_table</span><span class="p">)</span>
+        <span class="n">clipboard</span><span class="o">.</span><span class="n">setImage</span><span class="p">(</span><span class="n">qimg</span><span class="p">)</span>
+    <span class="k">elif</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">obj</span><span class="p">,</span> <span class="n">pd</span><span class="o">.</span><span class="n">DataFrame</span><span class="p">):</span>
+        <span class="n">clipboard</span><span class="o">.</span><span class="n">setText</span><span class="p">(</span><span class="n">obj</span><span class="o">.</span><span class="n">to_csv</span><span class="p">(</span><span class="n">sep</span><span class="o">=</span><span class="s2">&quot;</span><span class="se">\t</span><span class="s2">&quot;</span><span class="p">))</span>
+    <span class="k">else</span><span class="p">:</span>
+        <span class="n">clipboard</span><span class="o">.</span><span class="n">setText</span><span class="p">(</span><span class="nb">str</span><span class="p">(</span><span class="n">obj</span><span class="p">))</span></div>
+</pre></div>
+
+           </div>
+          </div>
+          <footer>
+
+  <hr/>
+
+  <div role="contentinfo">
+    <p>&#169; Copyright 2021, Hanjin Liu.</p>
+  </div>
+
+  Built with <a href="https://www.sphinx-doc.org/">Sphinx</a> using a
+    <a href="https://github.com/readthedocs/sphinx_rtd_theme">theme</a>
+    provided by <a href="https://readthedocs.org">Read the Docs</a>.
+
+
+</footer>
+        </div>
+      </div>
+    </section>
+  </div>
+  <script>
+      jQuery(function () {
+          SphinxRtdTheme.Navigation.enable(true);
+      });
+  </script>
+
+</body>
+</html>
diff --git a/docs/_modules/magicclass/widgets/logger.html b/docs/_modules/magicclass/widgets/logger.html
index 0d4cf04b..18ae2b1f 100644
--- a/docs/_modules/magicclass/widgets/logger.html
+++ b/docs/_modules/magicclass/widgets/logger.html
@@ -3,7 +3,7 @@
 <head>
   <meta charset="utf-8" />
   <meta name="viewport" content="width=device-width, initial-scale=1.0" />
-  <title>magicclass.widgets.logger &mdash; magic-class 0.6.1.dev1 documentation</title>
+  <title>magicclass.widgets.logger &mdash; magic-class 0.6.2.dev0 documentation</title>
       <link rel="stylesheet" href="../../../_static/pygments.css" type="text/css" />
       <link rel="stylesheet" href="../../../_static/css/theme.css" type="text/css" />
       <link rel="stylesheet" href="../../../_static/columns.css" type="text/css" />
@@ -28,7 +28,7 @@
             <a href="../../../index.html" class="icon icon-home"> magic-class
           </a>
               <div class="version">
-                0.6.1.dev1
+                0.6.2.dev0
               </div>
 <div role="search">
   <form id="rtd-search-form" class="wy-form" action="../../../search.html" method="get">
@@ -50,6 +50,7 @@
 <li class="toctree-l1"><a class="reference internal" href="../../../use_wraps.html">Call Parent Methods from its Child</a></li>
 <li class="toctree-l1"><a class="reference internal" href="../../../use_bind.html">Binding Values to Arguments</a></li>
 <li class="toctree-l1"><a class="reference internal" href="../../../use_choices.html">Set Choices Dynamically</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../use_preview.html">Add Preview Functionalities</a></li>
 <li class="toctree-l1"><a class="reference internal" href="../../../use_worker.html">Multi-threading</a></li>
 <li class="toctree-l1"><a class="reference internal" href="../../../additional_types.html">Additional types</a></li>
 <li class="toctree-l1"><a class="reference internal" href="../../../containers.html">Container Variations</a></li>
@@ -149,7 +150,8 @@ <h1>Source code for magicclass.widgets.logger</h1><div class="highlight"><pre>
         <span class="nd">@self</span><span class="o">.</span><span class="n">customContextMenuRequested</span><span class="o">.</span><span class="n">connect</span>
         <span class="k">def</span> <span class="nf">rightClickContextMenu</span><span class="p">(</span><span class="n">point</span><span class="p">):</span>
             <span class="n">menu</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_make_contextmenu</span><span class="p">(</span><span class="n">point</span><span class="p">)</span>
-            <span class="n">menu</span><span class="o">.</span><span class="n">exec_</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">mapToGlobal</span><span class="p">(</span><span class="n">point</span><span class="p">))</span>
+            <span class="k">if</span> <span class="n">menu</span><span class="p">:</span>
+                <span class="n">menu</span><span class="o">.</span><span class="n">exec_</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">mapToGlobal</span><span class="p">(</span><span class="n">point</span><span class="p">))</span>
 
 <div class="viewcode-block" id="QtLogger.update"><a class="viewcode-back" href="../../../magicclass.widgets.html#magicclass.widgets.logger.QtLogger.update">[docs]</a>    <span class="k">def</span> <span class="nf">update</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">output</span><span class="p">:</span> <span class="nb">tuple</span><span class="p">[</span><span class="nb">int</span><span class="p">,</span> <span class="n">Printable</span><span class="p">]):</span>
         <span class="n">output_type</span><span class="p">,</span> <span class="n">obj</span> <span class="o">=</span> <span class="n">output</span>
diff --git a/docs/_modules/magicclass/widgets/misc.html b/docs/_modules/magicclass/widgets/misc.html
index 6370e89a..6544e1a3 100644
--- a/docs/_modules/magicclass/widgets/misc.html
+++ b/docs/_modules/magicclass/widgets/misc.html
@@ -3,7 +3,7 @@
 <head>
   <meta charset="utf-8" />
   <meta name="viewport" content="width=device-width, initial-scale=1.0" />
-  <title>magicclass.widgets.misc &mdash; magic-class 0.6.1.dev1 documentation</title>
+  <title>magicclass.widgets.misc &mdash; magic-class 0.6.2.dev0 documentation</title>
       <link rel="stylesheet" href="../../../_static/pygments.css" type="text/css" />
       <link rel="stylesheet" href="../../../_static/css/theme.css" type="text/css" />
       <link rel="stylesheet" href="../../../_static/columns.css" type="text/css" />
@@ -28,7 +28,7 @@
             <a href="../../../index.html" class="icon icon-home"> magic-class
           </a>
               <div class="version">
-                0.6.1.dev1
+                0.6.2.dev0
               </div>
 <div role="search">
   <form id="rtd-search-form" class="wy-form" action="../../../search.html" method="get">
@@ -50,6 +50,7 @@
 <li class="toctree-l1"><a class="reference internal" href="../../../use_wraps.html">Call Parent Methods from its Child</a></li>
 <li class="toctree-l1"><a class="reference internal" href="../../../use_bind.html">Binding Values to Arguments</a></li>
 <li class="toctree-l1"><a class="reference internal" href="../../../use_choices.html">Set Choices Dynamically</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../use_preview.html">Add Preview Functionalities</a></li>
 <li class="toctree-l1"><a class="reference internal" href="../../../use_worker.html">Multi-threading</a></li>
 <li class="toctree-l1"><a class="reference internal" href="../../../additional_types.html">Additional types</a></li>
 <li class="toctree-l1"><a class="reference internal" href="../../../containers.html">Container Variations</a></li>
@@ -303,10 +304,12 @@ <h1>Source code for magicclass.widgets.misc</h1><div class="highlight"><pre>
 
     <span class="nd">@property</span>
     <span class="k">def</span> <span class="nf">axes</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="nb">list</span><span class="p">[</span><span class="n">Axes</span><span class="p">]:</span>
+        <span class="sd">&quot;&quot;&quot;List of matplotlib axes.&quot;&quot;&quot;</span>
         <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">figure</span><span class="o">.</span><span class="n">axes</span>
 
     <span class="nd">@property</span>
     <span class="k">def</span> <span class="nf">ax</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Axes</span><span class="p">:</span>
+        <span class="sd">&quot;&quot;&quot;The first matplotlib axis.&quot;&quot;&quot;</span>
         <span class="k">try</span><span class="p">:</span>
             <span class="n">_ax</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">axes</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span>
         <span class="k">except</span> <span class="ne">IndexError</span><span class="p">:</span>
diff --git a/docs/_modules/magicclass/wrappers.html b/docs/_modules/magicclass/wrappers.html
index 44c9c2c2..e1255426 100644
--- a/docs/_modules/magicclass/wrappers.html
+++ b/docs/_modules/magicclass/wrappers.html
@@ -3,7 +3,7 @@
 <head>
   <meta charset="utf-8" />
   <meta name="viewport" content="width=device-width, initial-scale=1.0" />
-  <title>magicclass.wrappers &mdash; magic-class 0.6.1.dev1 documentation</title>
+  <title>magicclass.wrappers &mdash; magic-class 0.6.2.dev0 documentation</title>
       <link rel="stylesheet" href="../../_static/pygments.css" type="text/css" />
       <link rel="stylesheet" href="../../_static/css/theme.css" type="text/css" />
       <link rel="stylesheet" href="../../_static/columns.css" type="text/css" />
@@ -28,7 +28,7 @@
             <a href="../../index.html" class="icon icon-home"> magic-class
           </a>
               <div class="version">
-                0.6.1.dev1
+                0.6.2.dev0
               </div>
 <div role="search">
   <form id="rtd-search-form" class="wy-form" action="../../search.html" method="get">
@@ -50,6 +50,7 @@
 <li class="toctree-l1"><a class="reference internal" href="../../use_wraps.html">Call Parent Methods from its Child</a></li>
 <li class="toctree-l1"><a class="reference internal" href="../../use_bind.html">Binding Values to Arguments</a></li>
 <li class="toctree-l1"><a class="reference internal" href="../../use_choices.html">Set Choices Dynamically</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../use_preview.html">Add Preview Functionalities</a></li>
 <li class="toctree-l1"><a class="reference internal" href="../../use_worker.html">Multi-threading</a></li>
 <li class="toctree-l1"><a class="reference internal" href="../../additional_types.html">Additional types</a></li>
 <li class="toctree-l1"><a class="reference internal" href="../../containers.html">Container Variations</a></li>
@@ -450,7 +451,7 @@ <h1>Source code for magicclass.wrappers</h1><div class="highlight"><pre>
         <span class="k">return</span> <span class="n">_method</span>
 
     <span class="k">if</span> <span class="n">f</span> <span class="ow">is</span> <span class="ow">not</span> <span class="kc">None</span><span class="p">:</span>
-        <span class="n">_decorator</span><span class="p">(</span><span class="n">f</span><span class="p">)</span>
+        <span class="k">return</span> <span class="n">_decorator</span><span class="p">(</span><span class="n">f</span><span class="p">)</span>
     <span class="k">return</span> <span class="n">_decorator</span></div>
 
 
@@ -460,6 +461,79 @@ <h1>Source code for magicclass.wrappers</h1><div class="highlight"><pre>
     <span class="k">return</span> <span class="n">method</span></div>
 
 
+<div class="viewcode-block" id="mark_preview"><a class="viewcode-back" href="../../magicclass.html#magicclass.wrappers.mark_preview">[docs]</a><span class="k">def</span> <span class="nf">mark_preview</span><span class="p">(</span><span class="n">function</span><span class="p">:</span> <span class="n">F</span><span class="p">,</span> <span class="n">text</span><span class="p">:</span> <span class="nb">str</span> <span class="o">=</span> <span class="s2">&quot;Preview&quot;</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">F</span><span class="p">:</span>
+    <span class="sd">&quot;&quot;&quot;</span>
+<span class="sd">    Define a preview of a function.</span>
+
+<span class="sd">    This decorator is useful for advanced magicgui creation. A &quot;Preview&quot; button</span>
+<span class="sd">    appears in the bottom of the widget built from the input function and the</span>
+<span class="sd">    decorated function will be called with the same arguments.</span>
+<span class="sd">    Following example shows how to define a previewer that prints the content of</span>
+<span class="sd">    the selected file.</span>
+
+<span class="sd">    .. code-block:: python</span>
+
+<span class="sd">        def func(self, path: Path):</span>
+<span class="sd">            ...</span>
+
+<span class="sd">        @mark_preview(func)</span>
+<span class="sd">        def _func_prev(self, path: Path):</span>
+<span class="sd">            with open(path, mode=&quot;r&quot;) as f:</span>
+<span class="sd">                print(f.read())</span>
+
+<span class="sd">    Parameters</span>
+<span class="sd">    ----------</span>
+<span class="sd">    function : callable</span>
+<span class="sd">        To which function previewer will be defined.</span>
+<span class="sd">    text : str, optional</span>
+<span class="sd">        Text of preview button.</span>
+<span class="sd">    &quot;&quot;&quot;</span>
+
+    <span class="k">def</span> <span class="nf">_wrapper</span><span class="p">(</span><span class="n">preview</span><span class="p">):</span>
+        <span class="n">sig_preview</span> <span class="o">=</span> <span class="n">inspect</span><span class="o">.</span><span class="n">signature</span><span class="p">(</span><span class="n">preview</span><span class="p">)</span>
+        <span class="n">sig_func</span> <span class="o">=</span> <span class="n">inspect</span><span class="o">.</span><span class="n">signature</span><span class="p">(</span><span class="n">function</span><span class="p">)</span>
+        <span class="n">params_preview</span> <span class="o">=</span> <span class="n">sig_preview</span><span class="o">.</span><span class="n">parameters</span>
+        <span class="n">params_func</span> <span class="o">=</span> <span class="n">sig_func</span><span class="o">.</span><span class="n">parameters</span>
+        <span class="n">prev_ns</span> <span class="o">=</span> <span class="n">preview</span><span class="o">.</span><span class="vm">__qualname__</span><span class="o">.</span><span class="n">split</span><span class="p">(</span><span class="s2">&quot;.&quot;</span><span class="p">)[</span><span class="o">-</span><span class="mi">2</span><span class="p">]</span>
+
+        <span class="n">less</span> <span class="o">=</span> <span class="nb">len</span><span class="p">(</span><span class="n">params_func</span><span class="p">)</span> <span class="o">-</span> <span class="nb">len</span><span class="p">(</span><span class="n">params_preview</span><span class="p">)</span>
+        <span class="k">if</span> <span class="n">less</span> <span class="o">==</span> <span class="mi">0</span><span class="p">:</span>
+            <span class="k">if</span> <span class="n">params_preview</span><span class="o">.</span><span class="n">keys</span><span class="p">()</span> <span class="o">!=</span> <span class="n">params_func</span><span class="o">.</span><span class="n">keys</span><span class="p">():</span>
+                <span class="k">raise</span> <span class="ne">TypeError</span><span class="p">(</span>
+                    <span class="sa">f</span><span class="s2">&quot;Arguments mismatch between </span><span class="si">{</span><span class="n">sig_preview</span><span class="si">}</span><span class="s2"> and </span><span class="si">{</span><span class="n">sig_func</span><span class="si">}</span><span class="s2">.&quot;</span>
+                <span class="p">)</span>
+            <span class="c1"># If argument names are identical, input arguments don&#39;t have to be filtered.</span>
+            <span class="n">_filter</span> <span class="o">=</span> <span class="k">lambda</span> <span class="n">a</span><span class="p">:</span> <span class="n">a</span>
+
+        <span class="k">elif</span> <span class="n">less</span> <span class="o">&gt;</span> <span class="mi">0</span><span class="p">:</span>
+            <span class="n">idx</span><span class="p">:</span> <span class="nb">list</span><span class="p">[</span><span class="nb">int</span><span class="p">]</span> <span class="o">=</span> <span class="p">[]</span>
+            <span class="k">for</span> <span class="n">i</span><span class="p">,</span> <span class="n">param</span> <span class="ow">in</span> <span class="nb">enumerate</span><span class="p">(</span><span class="n">params_func</span><span class="o">.</span><span class="n">keys</span><span class="p">()):</span>
+                <span class="k">if</span> <span class="n">param</span> <span class="ow">in</span> <span class="n">params_preview</span><span class="p">:</span>
+                    <span class="n">idx</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">i</span><span class="p">)</span>
+            <span class="c1"># If argument names are not identical, input arguments have to be filtered so</span>
+            <span class="c1"># that arguments match the inputs.</span>
+            <span class="n">_filter</span> <span class="o">=</span> <span class="k">lambda</span> <span class="n">a</span><span class="p">:</span> <span class="nb">filter</span><span class="p">(</span><span class="k">lambda</span> <span class="n">x</span><span class="p">:</span> <span class="n">x</span> <span class="ow">in</span> <span class="n">idx</span><span class="p">,</span> <span class="n">a</span><span class="p">)</span>
+
+        <span class="k">else</span><span class="p">:</span>
+            <span class="k">raise</span> <span class="ne">TypeError</span><span class="p">(</span>
+                <span class="sa">f</span><span class="s2">&quot;Number of arguments of preview function </span><span class="si">{</span><span class="n">preview</span><span class="si">!r}</span><span class="s2"> must be equal&quot;</span>
+                <span class="sa">f</span><span class="s2">&quot;or smaller than that of running function </span><span class="si">{</span><span class="n">function</span><span class="si">!r}</span><span class="s2">.&quot;</span>
+            <span class="p">)</span>
+
+        <span class="k">def</span> <span class="nf">_preview</span><span class="p">(</span><span class="bp">self</span><span class="p">:</span> <span class="n">BaseGui</span><span class="p">,</span> <span class="o">*</span><span class="n">args</span><span class="p">):</span>
+            <span class="c1"># find proper parent instance in the case of classes being nested</span>
+            <span class="n">ins</span> <span class="o">=</span> <span class="bp">self</span>
+            <span class="k">while</span> <span class="n">ins</span><span class="o">.</span><span class="vm">__class__</span><span class="o">.</span><span class="vm">__name__</span> <span class="o">!=</span> <span class="n">prev_ns</span><span class="p">:</span>
+                <span class="n">ins</span> <span class="o">=</span> <span class="n">ins</span><span class="o">.</span><span class="n">__magicclass_parent__</span>
+            <span class="c1"># filter input arguments</span>
+            <span class="k">return</span> <span class="n">preview</span><span class="p">(</span><span class="n">ins</span><span class="p">,</span> <span class="o">*</span><span class="n">_filter</span><span class="p">(</span><span class="n">args</span><span class="p">))</span>
+
+        <span class="n">upgrade_signature</span><span class="p">(</span><span class="n">function</span><span class="p">,</span> <span class="n">additional_options</span><span class="o">=</span><span class="p">{</span><span class="s2">&quot;preview&quot;</span><span class="p">:</span> <span class="p">(</span><span class="n">text</span><span class="p">,</span> <span class="n">_preview</span><span class="p">)})</span>
+        <span class="k">return</span> <span class="n">preview</span>
+
+    <span class="k">return</span> <span class="n">_wrapper</span></div>
+
+
 <span class="k">def</span> <span class="nf">_assert_iterable</span><span class="p">(</span><span class="n">obj</span><span class="p">):</span>
     <span class="k">if</span> <span class="n">obj</span> <span class="ow">is</span> <span class="kc">None</span><span class="p">:</span>
         <span class="n">obj</span> <span class="o">=</span> <span class="p">[]</span>
diff --git a/docs/_sources/index.rst.txt b/docs/_sources/index.rst.txt
index faa1963c..c2f408a7 100644
--- a/docs/_sources/index.rst.txt
+++ b/docs/_sources/index.rst.txt
@@ -56,6 +56,7 @@ and tidiness of the source code.
    use_wraps
    use_bind
    use_choices
+   use_preview
    use_worker
    additional_types
    containers
diff --git a/docs/_sources/magicclass.utils.rst.txt b/docs/_sources/magicclass.utils.rst.txt
index 9d1dc78e..c7fa8437 100644
--- a/docs/_sources/magicclass.utils.rst.txt
+++ b/docs/_sources/magicclass.utils.rst.txt
@@ -12,6 +12,14 @@ magicclass.utils.functions module
    :undoc-members:
    :show-inheritance:
 
+magicclass.utils.qt module
+--------------------------
+
+.. automodule:: magicclass.utils.qt
+   :members:
+   :undoc-members:
+   :show-inheritance:
+
 Module contents
 ---------------
 
diff --git a/docs/_sources/use_preview.rst.txt b/docs/_sources/use_preview.rst.txt
new file mode 100644
index 00000000..4afd24f3
--- /dev/null
+++ b/docs/_sources/use_preview.rst.txt
@@ -0,0 +1,96 @@
+===========================
+Add Preview Functionalities
+===========================
+
+It is a very usual case when you want to preview something before actually running a
+function. Suppose in your GUI you implemented a function that can load a csv file and
+summarize its contents, you may want to open the csv file and see if you chose the
+correct file.
+
+The preview functionality is, however, unexpectedly hard to be implemented in ``magicgui``
+or ``magic-class``.
+
+- If they are implemented in separate buttons, say in button "summarize csv" and
+  "preview csv", users have to synchronize all the input arguments between these
+  two widgets.
+- If they are implemented in a same button, you have to add an additional button in the
+  bottom of the ``FunctionGui``. This is not simple and hard to maintain.
+
+In ``magic-class``, ``mark_preview`` decorator is very useful for this purpose. You can
+define a preview function and directly integrate it into another function easily.
+
+Basic Usage
+-----------
+
+.. code-block:: python
+
+    @mark_preview(f)
+    def _f_prev(self, xxx):
+        ...
+
+will define a previewer ``_f_prev`` for function ``f``. Arguments of ``_f_prev`` must be
+composed of those in ``f``. The ``_f_prev`` can be called from the ``FunctionGui``
+created by ``f``, as a preview button above the call button.
+
+.. code-block:: python
+
+    from pathlib import Path
+    import pandas as pd
+    from magicgui.widgets import Table  # for preview
+    from magicclass import magicclass, mark_preview
+
+    @magicclass
+    class A:
+        def summarize_csv(self, path: Path):
+            df = pd.read_csv(path)
+            print(df.agg([np.mean, np.std]))  # print summary
+
+        @mark_preview(summarize_csv)
+        def _preview_csv(self, path):
+            df = pd.read_csv(path)
+            Table(value=df).show()  # open table widget as the preview
+
+Previewer don't have to accept all the arguments. Suppose you defined a function
+``calc_something`` that calculate something using a data frame and a input parameter
+like ``calc_something(df, param)``, the ``param`` in not needed for preview.
+
+.. code-block:: python
+
+    @magicclass
+    class A:
+        def calc_csv(self, path: Path, param: float):
+            df = pd.read_csv(path)
+            result = calc_something(df, param)
+            print(result)
+
+        @mark_preview(calc_csv)
+        def _preview_csv(self, path):  # "param" is not needed here
+            df = pd.read_csv(path)
+            Table(value=df).show()
+
+You can mark the same function as a previewer for multiple functions. You can also set
+the text of preview button using ``text=...`` argument.
+
+.. code-block:: python
+
+    @magicclass
+    class A:
+        def summarize_csv(self, path: Path):
+            df = pd.read_csv(path)
+            print(df.agg([np.mean, np.std]))
+
+        def calc_csv(self, path: Path, param: float):
+            df = pd.read_csv(path)
+            result = calc_something(df, param)
+            print(result)
+
+        def plot_csv(self, path: Path):
+            df = pd.read_csv(path)
+            df.plot()
+
+        @mark_preview(summarize_csv)
+        @mark_preview(calc_csv)
+        @mark_preview(plot_csv, text="preview CSV")
+        def _preview_csv(self, path):  # "param" is not needed here
+            df = pd.read_csv(path)
+            Table(value=df).show()
diff --git a/docs/_static/documentation_options.js b/docs/_static/documentation_options.js
index a5a925b2..c7f89d5d 100644
--- a/docs/_static/documentation_options.js
+++ b/docs/_static/documentation_options.js
@@ -1,6 +1,6 @@
 var DOCUMENTATION_OPTIONS = {
     URL_ROOT: document.getElementById("documentation_options").getAttribute('data-url_root'),
-    VERSION: '0.6.1',
+    VERSION: '0.6.2.dev0',
     LANGUAGE: 'English',
     COLLAPSE_INDEX: false,
     BUILDER: 'html',
diff --git a/docs/additional_types.html b/docs/additional_types.html
index add01190..836960cb 100644
--- a/docs/additional_types.html
+++ b/docs/additional_types.html
@@ -4,7 +4,7 @@
   <meta charset="utf-8" /><meta name="generator" content="Docutils 0.17.1: http://docutils.sourceforge.net/" />
 
   <meta name="viewport" content="width=device-width, initial-scale=1.0" />
-  <title>Additional types &mdash; magic-class 0.6.1 documentation</title>
+  <title>Additional types &mdash; magic-class 0.6.2.dev0 documentation</title>
       <link rel="stylesheet" href="_static/pygments.css" type="text/css" />
       <link rel="stylesheet" href="_static/css/theme.css" type="text/css" />
       <link rel="stylesheet" href="_static/columns.css" type="text/css" />
@@ -31,7 +31,7 @@
             <a href="index.html" class="icon icon-home"> magic-class
           </a>
               <div class="version">
-                0.6.1
+                0.6.2.dev0
               </div>
 <div role="search">
   <form id="rtd-search-form" class="wy-form" action="search.html" method="get">
@@ -53,6 +53,7 @@
 <li class="toctree-l1"><a class="reference internal" href="use_wraps.html">Call Parent Methods from its Child</a></li>
 <li class="toctree-l1"><a class="reference internal" href="use_bind.html">Binding Values to Arguments</a></li>
 <li class="toctree-l1"><a class="reference internal" href="use_choices.html">Set Choices Dynamically</a></li>
+<li class="toctree-l1"><a class="reference internal" href="use_preview.html">Add Preview Functionalities</a></li>
 <li class="toctree-l1"><a class="reference internal" href="use_worker.html">Multi-threading</a></li>
 <li class="toctree-l1 current"><a class="current reference internal" href="#">Additional types</a><ul>
 <li class="toctree-l2"><a class="reference internal" href="#optional-types">Optional types</a></li>
diff --git a/docs/api.html b/docs/api.html
index b8254596..921e5f6f 100644
--- a/docs/api.html
+++ b/docs/api.html
@@ -4,7 +4,7 @@
   <meta charset="utf-8" /><meta name="generator" content="Docutils 0.17.1: http://docutils.sourceforge.net/" />
 
   <meta name="viewport" content="width=device-width, initial-scale=1.0" />
-  <title>API References &mdash; magic-class 0.6.1 documentation</title>
+  <title>API References &mdash; magic-class 0.6.2.dev0 documentation</title>
       <link rel="stylesheet" href="_static/pygments.css" type="text/css" />
       <link rel="stylesheet" href="_static/css/theme.css" type="text/css" />
       <link rel="stylesheet" href="_static/columns.css" type="text/css" />
@@ -31,7 +31,7 @@
             <a href="index.html" class="icon icon-home"> magic-class
           </a>
               <div class="version">
-                0.6.1
+                0.6.2.dev0
               </div>
 <div role="search">
   <form id="rtd-search-form" class="wy-form" action="search.html" method="get">
@@ -53,6 +53,7 @@
 <li class="toctree-l1"><a class="reference internal" href="use_wraps.html">Call Parent Methods from its Child</a></li>
 <li class="toctree-l1"><a class="reference internal" href="use_bind.html">Binding Values to Arguments</a></li>
 <li class="toctree-l1"><a class="reference internal" href="use_choices.html">Set Choices Dynamically</a></li>
+<li class="toctree-l1"><a class="reference internal" href="use_preview.html">Add Preview Functionalities</a></li>
 <li class="toctree-l1"><a class="reference internal" href="use_worker.html">Multi-threading</a></li>
 <li class="toctree-l1"><a class="reference internal" href="additional_types.html">Additional types</a></li>
 <li class="toctree-l1"><a class="reference internal" href="containers.html">Container Variations</a></li>
diff --git a/docs/class_inheritance.html b/docs/class_inheritance.html
index adc54975..a47bf4a7 100644
--- a/docs/class_inheritance.html
+++ b/docs/class_inheritance.html
@@ -4,7 +4,7 @@
   <meta charset="utf-8" /><meta name="generator" content="Docutils 0.17.1: http://docutils.sourceforge.net/" />
 
   <meta name="viewport" content="width=device-width, initial-scale=1.0" />
-  <title>Inherit Magic Class &mdash; magic-class 0.6.1 documentation</title>
+  <title>Inherit Magic Class &mdash; magic-class 0.6.2.dev0 documentation</title>
       <link rel="stylesheet" href="_static/pygments.css" type="text/css" />
       <link rel="stylesheet" href="_static/css/theme.css" type="text/css" />
       <link rel="stylesheet" href="_static/columns.css" type="text/css" />
@@ -31,7 +31,7 @@
             <a href="index.html" class="icon icon-home"> magic-class
           </a>
               <div class="version">
-                0.6.1
+                0.6.2.dev0
               </div>
 <div role="search">
   <form id="rtd-search-form" class="wy-form" action="search.html" method="get">
@@ -53,6 +53,7 @@
 <li class="toctree-l1"><a class="reference internal" href="use_wraps.html">Call Parent Methods from its Child</a></li>
 <li class="toctree-l1"><a class="reference internal" href="use_bind.html">Binding Values to Arguments</a></li>
 <li class="toctree-l1"><a class="reference internal" href="use_choices.html">Set Choices Dynamically</a></li>
+<li class="toctree-l1"><a class="reference internal" href="use_preview.html">Add Preview Functionalities</a></li>
 <li class="toctree-l1"><a class="reference internal" href="use_worker.html">Multi-threading</a></li>
 <li class="toctree-l1"><a class="reference internal" href="additional_types.html">Additional types</a></li>
 <li class="toctree-l1"><a class="reference internal" href="containers.html">Container Variations</a></li>
diff --git a/docs/containers.html b/docs/containers.html
index 9a3af27c..32e19490 100644
--- a/docs/containers.html
+++ b/docs/containers.html
@@ -4,7 +4,7 @@
   <meta charset="utf-8" /><meta name="generator" content="Docutils 0.17.1: http://docutils.sourceforge.net/" />
 
   <meta name="viewport" content="width=device-width, initial-scale=1.0" />
-  <title>Container Variations &mdash; magic-class 0.6.1 documentation</title>
+  <title>Container Variations &mdash; magic-class 0.6.2.dev0 documentation</title>
       <link rel="stylesheet" href="_static/pygments.css" type="text/css" />
       <link rel="stylesheet" href="_static/css/theme.css" type="text/css" />
       <link rel="stylesheet" href="_static/columns.css" type="text/css" />
@@ -31,7 +31,7 @@
             <a href="index.html" class="icon icon-home"> magic-class
           </a>
               <div class="version">
-                0.6.1
+                0.6.2.dev0
               </div>
 <div role="search">
   <form id="rtd-search-form" class="wy-form" action="search.html" method="get">
@@ -53,6 +53,7 @@
 <li class="toctree-l1"><a class="reference internal" href="use_wraps.html">Call Parent Methods from its Child</a></li>
 <li class="toctree-l1"><a class="reference internal" href="use_bind.html">Binding Values to Arguments</a></li>
 <li class="toctree-l1"><a class="reference internal" href="use_choices.html">Set Choices Dynamically</a></li>
+<li class="toctree-l1"><a class="reference internal" href="use_preview.html">Add Preview Functionalities</a></li>
 <li class="toctree-l1"><a class="reference internal" href="use_worker.html">Multi-threading</a></li>
 <li class="toctree-l1"><a class="reference internal" href="additional_types.html">Additional types</a></li>
 <li class="toctree-l1 current"><a class="current reference internal" href="#">Container Variations</a><ul>
diff --git a/docs/customize_macro.html b/docs/customize_macro.html
index e2aa02df..de661795 100644
--- a/docs/customize_macro.html
+++ b/docs/customize_macro.html
@@ -4,7 +4,7 @@
   <meta charset="utf-8" /><meta name="generator" content="Docutils 0.17.1: http://docutils.sourceforge.net/" />
 
   <meta name="viewport" content="width=device-width, initial-scale=1.0" />
-  <title>Customize Macro Recording &mdash; magic-class 0.6.1 documentation</title>
+  <title>Customize Macro Recording &mdash; magic-class 0.6.2.dev0 documentation</title>
       <link rel="stylesheet" href="_static/pygments.css" type="text/css" />
       <link rel="stylesheet" href="_static/css/theme.css" type="text/css" />
       <link rel="stylesheet" href="_static/columns.css" type="text/css" />
@@ -31,7 +31,7 @@
             <a href="index.html" class="icon icon-home"> magic-class
           </a>
               <div class="version">
-                0.6.1
+                0.6.2.dev0
               </div>
 <div role="search">
   <form id="rtd-search-form" class="wy-form" action="search.html" method="get">
@@ -53,6 +53,7 @@
 <li class="toctree-l1"><a class="reference internal" href="use_wraps.html">Call Parent Methods from its Child</a></li>
 <li class="toctree-l1"><a class="reference internal" href="use_bind.html">Binding Values to Arguments</a></li>
 <li class="toctree-l1"><a class="reference internal" href="use_choices.html">Set Choices Dynamically</a></li>
+<li class="toctree-l1"><a class="reference internal" href="use_preview.html">Add Preview Functionalities</a></li>
 <li class="toctree-l1"><a class="reference internal" href="use_worker.html">Multi-threading</a></li>
 <li class="toctree-l1"><a class="reference internal" href="additional_types.html">Additional types</a></li>
 <li class="toctree-l1"><a class="reference internal" href="containers.html">Container Variations</a></li>
diff --git a/docs/freewidget.html b/docs/freewidget.html
index f8e33d00..9084f23f 100644
--- a/docs/freewidget.html
+++ b/docs/freewidget.html
@@ -4,7 +4,7 @@
   <meta charset="utf-8" /><meta name="generator" content="Docutils 0.17.1: http://docutils.sourceforge.net/" />
 
   <meta name="viewport" content="width=device-width, initial-scale=1.0" />
-  <title>Convert QtWidgets into a Magic Widget &mdash; magic-class 0.6.1 documentation</title>
+  <title>Convert QtWidgets into a Magic Widget &mdash; magic-class 0.6.2.dev0 documentation</title>
       <link rel="stylesheet" href="_static/pygments.css" type="text/css" />
       <link rel="stylesheet" href="_static/css/theme.css" type="text/css" />
       <link rel="stylesheet" href="_static/columns.css" type="text/css" />
@@ -31,7 +31,7 @@
             <a href="index.html" class="icon icon-home"> magic-class
           </a>
               <div class="version">
-                0.6.1
+                0.6.2.dev0
               </div>
 <div role="search">
   <form id="rtd-search-form" class="wy-form" action="search.html" method="get">
@@ -53,6 +53,7 @@
 <li class="toctree-l1"><a class="reference internal" href="use_wraps.html">Call Parent Methods from its Child</a></li>
 <li class="toctree-l1"><a class="reference internal" href="use_bind.html">Binding Values to Arguments</a></li>
 <li class="toctree-l1"><a class="reference internal" href="use_choices.html">Set Choices Dynamically</a></li>
+<li class="toctree-l1"><a class="reference internal" href="use_preview.html">Add Preview Functionalities</a></li>
 <li class="toctree-l1"><a class="reference internal" href="use_worker.html">Multi-threading</a></li>
 <li class="toctree-l1"><a class="reference internal" href="additional_types.html">Additional types</a></li>
 <li class="toctree-l1"><a class="reference internal" href="containers.html">Container Variations</a></li>
diff --git a/docs/genindex.html b/docs/genindex.html
index 5aac2e2d..0bf50132 100644
--- a/docs/genindex.html
+++ b/docs/genindex.html
@@ -3,7 +3,7 @@
 <head>
   <meta charset="utf-8" />
   <meta name="viewport" content="width=device-width, initial-scale=1.0" />
-  <title>Index &mdash; magic-class 0.6.1 documentation</title>
+  <title>Index &mdash; magic-class 0.6.2.dev0 documentation</title>
       <link rel="stylesheet" href="_static/pygments.css" type="text/css" />
       <link rel="stylesheet" href="_static/css/theme.css" type="text/css" />
       <link rel="stylesheet" href="_static/columns.css" type="text/css" />
@@ -28,7 +28,7 @@
             <a href="index.html" class="icon icon-home"> magic-class
           </a>
               <div class="version">
-                0.6.1
+                0.6.2.dev0
               </div>
 <div role="search">
   <form id="rtd-search-form" class="wy-form" action="search.html" method="get">
@@ -50,6 +50,7 @@
 <li class="toctree-l1"><a class="reference internal" href="use_wraps.html">Call Parent Methods from its Child</a></li>
 <li class="toctree-l1"><a class="reference internal" href="use_bind.html">Binding Values to Arguments</a></li>
 <li class="toctree-l1"><a class="reference internal" href="use_choices.html">Set Choices Dynamically</a></li>
+<li class="toctree-l1"><a class="reference internal" href="use_preview.html">Add Preview Functionalities</a></li>
 <li class="toctree-l1"><a class="reference internal" href="use_worker.html">Multi-threading</a></li>
 <li class="toctree-l1"><a class="reference internal" href="additional_types.html">Additional types</a></li>
 <li class="toctree-l1"><a class="reference internal" href="containers.html">Container Variations</a></li>
@@ -129,7 +130,7 @@ <h2 id="A">A</h2>
 </li>
       <li><a href="magicclass.html#magicclass.qthreading.thread_worker.aborted">aborted (magicclass.qthreading.thread_worker property)</a>
 </li>
-      <li><a href="magicclass.utils.html#magicclass.utils.functions.MessageBoxMode.ABOUT">ABOUT (magicclass.utils.functions.MessageBoxMode attribute)</a>
+      <li><a href="magicclass.utils.html#magicclass.utils.qt.MessageBoxMode.ABOUT">ABOUT (magicclass.utils.qt.MessageBoxMode attribute)</a>
 </li>
       <li><a href="magicclass.gui.html#magicclass.gui.mgui_ext.AbstractAction">AbstractAction (class in magicclass.gui.mgui_ext)</a>
 </li>
@@ -368,15 +369,9 @@ <h2 id="C">C</h2>
 <table style="width: 100%" class="indextable genindextable"><tr>
   <td style="width: 33%; vertical-align: top;"><ul>
       <li><a href="magicclass.gui.html#magicclass.gui.keybinding.Key.C">C (magicclass.gui.keybinding.Key attribute)</a>
-</li>
-      <li><a href="magicclass.html#magicclass.qthreading.Callbacks">Callbacks (class in magicclass.qthreading)</a>
 </li>
       <li><a href="magicclass.html#magicclass.fields.MagicValueField.callbacks">callbacks (magicclass.fields.MagicValueField attribute)</a>
-
-      <ul>
-        <li><a href="magicclass.html#magicclass.qthreading.Callbacks.callbacks">(magicclass.qthreading.Callbacks property)</a>
 </li>
-      </ul></li>
       <li><a href="magicclass.ext.vispy.html#magicclass.ext.vispy.widgets3d.Vispy3DCanvas.camera">camera (magicclass.ext.vispy.widgets3d.Vispy3DCanvas property)</a>
 </li>
       <li><a href="magicclass.html#magicclass.wrappers.Canceled">Canceled</a>
@@ -443,18 +438,14 @@ <h2 id="C">C</h2>
       </ul></li>
       <li><a href="magicclass.html#magicclass.wrappers.click">click() (in module magicclass.wrappers)</a>
 </li>
-      <li><a href="magicclass.html#magicclass.qthreading.NapariProgressBar.close">close() (magicclass.qthreading.NapariProgressBar method)</a>
+      <li><a href="magicclass.html#magicclass.tqdm.tqdm.close">close() (magicclass.tqdm.tqdm method)</a>
 
       <ul>
-        <li><a href="magicclass.html#magicclass.tqdm.tqdm.close">(magicclass.tqdm.tqdm method)</a>
-</li>
         <li><a href="magicclass.widgets.html#magicclass.widgets.Logger.close">(magicclass.widgets.Logger method)</a>
 </li>
         <li><a href="magicclass.widgets.html#magicclass.widgets.logger.Logger.close">(magicclass.widgets.logger.Logger method)</a>
 </li>
       </ul></li>
-      <li><a href="magicclass.html#magicclass.qthreading.close_pbar">close_pbar() (in module magicclass.qthreading)</a>
-</li>
       <li><a href="magicclass.ext.pyqtgraph.html#magicclass.ext.pyqtgraph.widgets.ImageItem.cmap">cmap (magicclass.ext.pyqtgraph.widgets.ImageItem property)</a>
 </li>
       <li><a href="magicclass.widgets.html#magicclass.widgets.CollapsibleContainer.collapsed">collapsed (magicclass.widgets.CollapsibleContainer property)</a>
@@ -467,10 +458,10 @@ <h2 id="C">C</h2>
 </li>
       <li><a href="magicclass.widgets.html#magicclass.widgets.CollapsibleContainer">CollapsibleContainer (class in magicclass.widgets)</a>
 </li>
-  </ul></td>
-  <td style="width: 33%; vertical-align: top;"><ul>
       <li><a href="magicclass.gui.html#magicclass.gui.keybinding.Key.Colon">Colon (magicclass.gui.keybinding.Key attribute)</a>
 </li>
+  </ul></td>
+  <td style="width: 33%; vertical-align: top;"><ul>
       <li><a href="magicclass.ext.pyqtgraph.html#magicclass.ext.pyqtgraph.components.Legend.color">color (magicclass.ext.pyqtgraph.components.Legend property)</a>
 
       <ul>
@@ -518,11 +509,7 @@ <h2 id="C">C</h2>
       <li><a href="magicclass.html#magicclass.wrappers.confirm">confirm() (in module magicclass.wrappers)</a>
 </li>
       <li><a href="magicclass.html#magicclass.fields.MagicField.connect">connect() (magicclass.fields.MagicField method)</a>
-
-      <ul>
-        <li><a href="magicclass.html#magicclass.qthreading.Callbacks.connect">(magicclass.qthreading.Callbacks method)</a>
 </li>
-      </ul></li>
       <li><a href="magicclass.widgets.html#magicclass.widgets.ConsoleTextEdit">ConsoleTextEdit (class in magicclass.widgets)</a>
 
       <ul>
@@ -624,11 +611,7 @@ <h2 id="D">D</h2>
       <li><a href="magicclass.html#magicclass.tqdm.tqdm.disable">disable (magicclass.tqdm.tqdm attribute)</a>
 </li>
       <li><a href="magicclass.html#magicclass.fields.MagicField.disconnect">disconnect() (magicclass.fields.MagicField method)</a>
-
-      <ul>
-        <li><a href="magicclass.html#magicclass.qthreading.Callbacks.disconnect">(magicclass.qthreading.Callbacks method)</a>
 </li>
-      </ul></li>
       <li><a href="magicclass.html#magicclass.tqdm.tqdm.display">display() (magicclass.tqdm.tqdm method)</a>
 </li>
       <li><a href="magicclass.html#magicclass.wrappers.do_not_record">do_not_record() (in module magicclass.wrappers)</a>
@@ -705,7 +688,7 @@ <h2 id="E">E</h2>
         <li><a href="magicclass.widgets.html#magicclass.widgets.misc.ConsoleTextEdit.erase_last">(magicclass.widgets.misc.ConsoleTextEdit method)</a>
 </li>
       </ul></li>
-      <li><a href="magicclass.utils.html#magicclass.utils.functions.MessageBoxMode.ERROR">ERROR (magicclass.utils.functions.MessageBoxMode attribute)</a>
+      <li><a href="magicclass.utils.html#magicclass.utils.qt.MessageBoxMode.ERROR">ERROR (magicclass.utils.qt.MessageBoxMode attribute)</a>
 </li>
       <li><a href="magicclass.html#magicclass.qthreading.thread_worker.errored">errored (magicclass.qthreading.thread_worker property)</a>
 </li>
@@ -957,8 +940,6 @@ <h2 id="I">I</h2>
         <li><a href="magicclass.widgets.html#magicclass.widgets.misc.Figure.imshow">(magicclass.widgets.misc.Figure method)</a>
 </li>
       </ul></li>
-      <li><a href="magicclass.html#magicclass.qthreading.increment">increment() (in module magicclass.qthreading)</a>
-</li>
       <li><a href="magicclass.widgets.html#magicclass.widgets.ListWidget.index">index() (magicclass.widgets.ListWidget method)</a>
 
       <ul>
@@ -973,7 +954,7 @@ <h2 id="I">I</h2>
       </ul></li>
       <li><a href="magicclass.ext.pyqtgraph.html#magicclass.ext.pyqtgraph.graph_items.InfLine">InfLine (class in magicclass.ext.pyqtgraph.graph_items)</a>
 </li>
-      <li><a href="magicclass.utils.html#magicclass.utils.functions.MessageBoxMode.INFO">INFO (magicclass.utils.functions.MessageBoxMode attribute)</a>
+      <li><a href="magicclass.utils.html#magicclass.utils.qt.MessageBoxMode.INFO">INFO (magicclass.utils.qt.MessageBoxMode attribute)</a>
 </li>
       <li><a href="magicclass.html#magicclass.fields.MagicField.init">init (magicclass.fields.MagicField attribute)</a>
 
@@ -981,8 +962,6 @@ <h2 id="I">I</h2>
         <li><a href="magicclass.html#magicclass.fields.MagicValueField.init">(magicclass.fields.MagicValueField attribute)</a>
 </li>
       </ul></li>
-      <li><a href="magicclass.html#magicclass.qthreading.init_pbar">init_pbar() (in module magicclass.qthreading)</a>
-</li>
       <li><a href="magicclass.ext.pyqtgraph.html#magicclass.ext.pyqtgraph.widgets.LayerList.insert">insert() (magicclass.ext.pyqtgraph.widgets.LayerList method)</a>
 
       <ul>
@@ -1094,8 +1073,6 @@ <h2 id="L">L</h2>
 <table style="width: 100%" class="indextable genindextable"><tr>
   <td style="width: 33%; vertical-align: top;"><ul>
       <li><a href="magicclass.gui.html#magicclass.gui.keybinding.Key.L">L (magicclass.gui.keybinding.Key attribute)</a>
-</li>
-      <li><a href="magicclass.html#magicclass.qthreading.NapariProgressBar.label">label (magicclass.qthreading.NapariProgressBar property)</a>
 </li>
       <li><a href="magicclass.ext.pyqtgraph.html#magicclass.ext.pyqtgraph.mouse_event.MouseClickEvent.lastPos">lastPos() (magicclass.ext.pyqtgraph.mouse_event.MouseClickEvent method)</a>
 </li>
@@ -1456,6 +1433,13 @@ <h2 id="M">M</h2>
 
       <ul>
         <li><a href="magicclass.utils.html#module-magicclass.utils.functions">module</a>
+</li>
+      </ul></li>
+      <li>
+    magicclass.utils.qt
+
+      <ul>
+        <li><a href="magicclass.utils.html#module-magicclass.utils.qt">module</a>
 </li>
       </ul></li>
       <li>
@@ -1578,19 +1562,17 @@ <h2 id="M">M</h2>
 </li>
       <li><a href="magicclass.gui.html#magicclass.gui.class_gui.make_gui">make_gui() (in module magicclass.gui.class_gui)</a>
 </li>
-      <li><a href="magicclass.html#magicclass.qthreading.NapariProgressBar.max">max (magicclass.qthreading.NapariProgressBar property)</a>
-
-      <ul>
-        <li><a href="magicclass.widgets.html#magicclass.widgets.misc.AbstractRangeSlider.max">(magicclass.widgets.misc.AbstractRangeSlider property)</a>
+      <li><a href="magicclass.html#magicclass.wrappers.mark_preview">mark_preview() (in module magicclass.wrappers)</a>
+</li>
+      <li><a href="magicclass.widgets.html#magicclass.widgets.misc.AbstractRangeSlider.max">max (magicclass.widgets.misc.AbstractRangeSlider property)</a>
 </li>
-      </ul></li>
       <li><a href="magicclass.gui.html#magicclass.gui.menu_gui.MenuGui">MenuGui (class in magicclass.gui.menu_gui)</a>
 </li>
       <li><a href="magicclass.gui.html#magicclass.gui.menu_gui.MenuGuiBase">MenuGuiBase (class in magicclass.gui.menu_gui)</a>
 </li>
       <li><a href="magicclass.widgets.html#magicclass.widgets.utils.merge_super_sigs">merge_super_sigs() (in module magicclass.widgets.utils)</a>
 </li>
-      <li><a href="magicclass.utils.html#magicclass.utils.functions.MessageBoxMode">MessageBoxMode (class in magicclass.utils.functions)</a>
+      <li><a href="magicclass.utils.html#magicclass.utils.qt.MessageBoxMode">MessageBoxMode (class in magicclass.utils.qt)</a>
 </li>
       <li><a href="magicclass.gui.html#magicclass.gui.keybinding.Key.Meta">Meta (magicclass.gui.keybinding.Key attribute)</a>
 </li>
@@ -1685,6 +1667,8 @@ <h2 id="M">M</h2>
         <li><a href="magicclass.utils.html#module-magicclass.utils">magicclass.utils</a>
 </li>
         <li><a href="magicclass.utils.html#module-magicclass.utils.functions">magicclass.utils.functions</a>
+</li>
+        <li><a href="magicclass.utils.html#module-magicclass.utils.qt">magicclass.utils.qt</a>
 </li>
         <li><a href="magicclass.widgets.html#module-magicclass.widgets">magicclass.widgets</a>
 </li>
@@ -1726,6 +1710,8 @@ <h2 id="M">M</h2>
       <li><a href="magicclass.widgets.html#magicclass.widgets.color.QColorSwatch.mouseReleaseEvent">mouseReleaseEvent() (magicclass.widgets.color.QColorSwatch method)</a>
 </li>
       <li><a href="magicclass.ext.pyqtgraph.html#magicclass.ext.pyqtgraph.widgets.LayerList.move">move() (magicclass.ext.pyqtgraph.widgets.LayerList method)</a>
+</li>
+      <li><a href="magicclass.utils.html#magicclass.utils.qt.move_to_screen_center">move_to_screen_center() (in module magicclass.utils.qt)</a>
 </li>
       <li><a href="magicclass.html#magicclass.signature.AdditionalOptions.moveto">moveto (magicclass.signature.AdditionalOptions attribute)</a>
 </li>
@@ -1771,8 +1757,6 @@ <h2 id="N">N</h2>
         <li><a href="magicclass.ext.napari.html#magicclass.ext.napari.widgets.NapariCanvas">(class in magicclass.ext.napari.widgets)</a>
 </li>
       </ul></li>
-      <li><a href="magicclass.html#magicclass.qthreading.NapariProgressBar">NapariProgressBar (class in magicclass.qthreading)</a>
-</li>
       <li><a href="magicclass.ext.pyqtgraph.html#magicclass.ext.pyqtgraph.components.GraphicComponent.native">native (magicclass.ext.pyqtgraph.components.GraphicComponent attribute)</a>
 
       <ul>
@@ -1822,8 +1806,6 @@ <h2 id="N">N</h2>
       <li><a href="magicclass.html#magicclass.wrappers.nogui">nogui() (in module magicclass.wrappers)</a>
 </li>
       <li><a href="magicclass.html#magicclass.types.WidgetType.none">none (magicclass.types.WidgetType attribute)</a>
-</li>
-      <li><a href="magicclass.html#magicclass.qthreading.thread_worker.not_ready">not_ready (magicclass.qthreading.thread_worker property)</a>
 </li>
       <li><a href="magicclass.html#magicclass.fields.MagicField.not_ready">not_ready() (magicclass.fields.MagicField method)</a>
 </li>
@@ -1835,7 +1817,7 @@ <h2 id="O">O</h2>
   <td style="width: 33%; vertical-align: top;"><ul>
       <li><a href="magicclass.gui.html#magicclass.gui.keybinding.Key.O">O (magicclass.gui.keybinding.Key attribute)</a>
 </li>
-      <li><a href="magicclass.utils.html#magicclass.utils.functions.open_url">open_url() (in module magicclass.utils.functions)</a>
+      <li><a href="magicclass.utils.html#magicclass.utils.qt.open_url">open_url() (in module magicclass.utils.qt)</a>
 </li>
       <li><a href="magicclass.html#magicclass.types.Optional">Optional (class in magicclass.types)</a>
 </li>
@@ -2043,7 +2025,7 @@ <h2 id="Q">Q</h2>
 </li>
       <li><a href="magicclass.gui.html#magicclass.gui.keybinding.Key.Question">Question (magicclass.gui.keybinding.Key attribute)</a>
 </li>
-      <li><a href="magicclass.utils.html#magicclass.utils.functions.MessageBoxMode.QUESTION">QUESTION (magicclass.utils.functions.MessageBoxMode attribute)</a>
+      <li><a href="magicclass.utils.html#magicclass.utils.qt.MessageBoxMode.QUESTION">QUESTION (magicclass.utils.qt.MessageBoxMode attribute)</a>
 </li>
       <li><a href="magicclass.widgets.html#magicclass.widgets.Figure.quiver">quiver() (magicclass.widgets.Figure method)</a>
 
@@ -2126,6 +2108,8 @@ <h2 id="R">R</h2>
       <li><a href="magicclass.gui.html#magicclass.gui.keybinding.Key.Right">Right (magicclass.gui.keybinding.Key attribute)</a>
 </li>
       <li><a href="magicclass.ext.pyqtgraph.html#magicclass.ext.pyqtgraph.components.Roi">Roi (class in magicclass.ext.pyqtgraph.components)</a>
+</li>
+      <li><a href="magicclass.utils.html#magicclass.utils.functions.rst_to_html">rst_to_html() (in module magicclass.utils.functions)</a>
 </li>
       <li><a href="magicclass.gui.html#magicclass.gui.mgui_ext.Action.running">running (magicclass.gui.mgui_ext.Action property)</a>
 
@@ -2159,7 +2143,9 @@ <h2 id="S">S</h2>
         <li><a href="magicclass.widgets.html#magicclass.widgets.misc.Figure.scatter">(magicclass.widgets.misc.Figure method)</a>
 </li>
       </ul></li>
-      <li><a href="magicclass.utils.html#magicclass.utils.functions.screen_center">screen_center() (in module magicclass.utils.functions)</a>
+      <li><a href="magicclass.utils.html#magicclass.utils.qt.screen_center">screen_center() (in module magicclass.utils.qt)</a>
+</li>
+      <li><a href="magicclass.utils.html#magicclass.utils.qt.screen_scale">screen_scale() (in module magicclass.utils.qt)</a>
 </li>
       <li><a href="magicclass.html#magicclass.types.WidgetType.scrollable">scrollable (magicclass.types.WidgetType attribute)</a>
 </li>
@@ -2187,6 +2173,8 @@ <h2 id="S">S</h2>
         <li><a href="magicclass.widgets.html#magicclass.widgets.utils.FreeWidget.set_contextmenu">(magicclass.widgets.utils.FreeWidget method)</a>
 </li>
       </ul></li>
+      <li><a href="magicclass.html#magicclass.qthreading.thread_worker.set_default">set_default() (magicclass.qthreading.thread_worker class method)</a>
+</li>
       <li><a href="magicclass.html#magicclass.wrappers.set_design">set_design() (in module magicclass.wrappers)</a>
 </li>
       <li><a href="magicclass.ext.pyqtgraph.html#magicclass.ext.pyqtgraph.graph_items.Histogram.set_hist">set_hist() (magicclass.ext.pyqtgraph.graph_items.Histogram method)</a>
@@ -2258,12 +2246,10 @@ <h2 id="S">S</h2>
       <li><a href="magicclass.gui.html#magicclass.gui.keybinding.Key.Shift">Shift (magicclass.gui.keybinding.Key attribute)</a>
 </li>
       <li><a href="magicclass.widgets.html#magicclass.widgets.logger.show">show() (in module magicclass.widgets.logger)</a>
-
-      <ul>
-        <li><a href="magicclass.html#magicclass.qthreading.NapariProgressBar.show">(magicclass.qthreading.NapariProgressBar method)</a>
 </li>
-      </ul></li>
-      <li><a href="magicclass.utils.html#magicclass.utils.functions.show_messagebox">show_messagebox() (in module magicclass.utils.functions)</a>
+      <li><a href="magicclass.utils.html#magicclass.utils.qt.show_messagebox">show_messagebox() (in module magicclass.utils.qt)</a>
+</li>
+      <li><a href="magicclass.utils.html#magicclass.utils.functions.show_tree">show_tree() (in module magicclass.utils.functions)</a>
 </li>
       <li><a href="magicclass.ext.pyqtgraph.html#magicclass.ext.pyqtgraph.widgets.SimpleViewBox">SimpleViewBox (class in magicclass.ext.pyqtgraph.widgets)</a>
 </li>
@@ -2405,7 +2391,7 @@ <h2 id="T">T</h2>
       </ul></li>
       <li><a href="magicclass.html#magicclass.fields.MagicField.to_action">to_action() (magicclass.fields.MagicField method)</a>
 </li>
-      <li><a href="magicclass.utils.html#magicclass.utils.functions.to_clipboard">to_clipboard() (in module magicclass.utils.functions)</a>
+      <li><a href="magicclass.utils.html#magicclass.utils.qt.to_clipboard">to_clipboard() (in module magicclass.utils.qt)</a>
 </li>
       <li><a href="magicclass.ext.napari.html#magicclass.ext.napari.to_napari">to_napari() (in module magicclass.ext.napari)</a>
 
@@ -2523,8 +2509,6 @@ <h2 id="V">V</h2>
         <li><a href="magicclass.gui.html#magicclass.gui.mgui_ext.Action.value">(magicclass.gui.mgui_ext.Action property)</a>
 </li>
         <li><a href="magicclass.gui.html#magicclass.gui.mgui_ext.WidgetAction.value">(magicclass.gui.mgui_ext.WidgetAction property)</a>
-</li>
-        <li><a href="magicclass.html#magicclass.qthreading.NapariProgressBar.value">(magicclass.qthreading.NapariProgressBar property)</a>
 </li>
         <li><a href="magicclass.widgets.html#magicclass.widgets.DictWidget.value">(magicclass.widgets.DictWidget property)</a>
 </li>
@@ -2577,8 +2561,6 @@ <h2 id="V">V</h2>
         <li><a href="magicclass.ext.vispy.html#magicclass.ext.vispy.image.LayerItem.visible">(magicclass.ext.vispy.image.LayerItem property)</a>
 </li>
         <li><a href="magicclass.gui.html#magicclass.gui.mgui_ext.mguiLike.visible">(magicclass.gui.mgui_ext.mguiLike property)</a>
-</li>
-        <li><a href="magicclass.html#magicclass.qthreading.NapariProgressBar.visible">(magicclass.qthreading.NapariProgressBar property)</a>
 </li>
       </ul></li>
       <li><a href="magicclass.ext.vispy.html#magicclass.ext.vispy.widgets3d.Vispy3DCanvas">Vispy3DCanvas (class in magicclass.ext.vispy.widgets3d)</a>
@@ -2593,7 +2575,7 @@ <h2 id="W">W</h2>
   <td style="width: 33%; vertical-align: top;"><ul>
       <li><a href="magicclass.gui.html#magicclass.gui.keybinding.Key.W">W (magicclass.gui.keybinding.Key attribute)</a>
 </li>
-      <li><a href="magicclass.utils.html#magicclass.utils.functions.MessageBoxMode.WARNING">WARNING (magicclass.utils.functions.MessageBoxMode attribute)</a>
+      <li><a href="magicclass.utils.html#magicclass.utils.qt.MessageBoxMode.WARNING">WARNING (magicclass.utils.qt.MessageBoxMode attribute)</a>
 </li>
       <li><a href="magicclass.html#magicclass.fields.MagicField.widget_type">widget_type (magicclass.fields.MagicField property)</a>
 
diff --git a/docs/index.html b/docs/index.html
index eb1f4db9..c4bd62f2 100644
--- a/docs/index.html
+++ b/docs/index.html
@@ -4,7 +4,7 @@
   <meta charset="utf-8" /><meta name="generator" content="Docutils 0.17.1: http://docutils.sourceforge.net/" />
 
   <meta name="viewport" content="width=device-width, initial-scale=1.0" />
-  <title>Welcome to magic-class documentation! &mdash; magic-class 0.6.1 documentation</title>
+  <title>Welcome to magic-class documentation! &mdash; magic-class 0.6.2.dev0 documentation</title>
       <link rel="stylesheet" href="_static/pygments.css" type="text/css" />
       <link rel="stylesheet" href="_static/css/theme.css" type="text/css" />
       <link rel="stylesheet" href="_static/columns.css" type="text/css" />
@@ -30,7 +30,7 @@
             <a href="#" class="icon icon-home"> magic-class
           </a>
               <div class="version">
-                0.6.1
+                0.6.2.dev0
               </div>
 <div role="search">
   <form id="rtd-search-form" class="wy-form" action="search.html" method="get">
@@ -52,6 +52,7 @@
 <li class="toctree-l1"><a class="reference internal" href="use_wraps.html">Call Parent Methods from its Child</a></li>
 <li class="toctree-l1"><a class="reference internal" href="use_bind.html">Binding Values to Arguments</a></li>
 <li class="toctree-l1"><a class="reference internal" href="use_choices.html">Set Choices Dynamically</a></li>
+<li class="toctree-l1"><a class="reference internal" href="use_preview.html">Add Preview Functionalities</a></li>
 <li class="toctree-l1"><a class="reference internal" href="use_worker.html">Multi-threading</a></li>
 <li class="toctree-l1"><a class="reference internal" href="additional_types.html">Additional types</a></li>
 <li class="toctree-l1"><a class="reference internal" href="containers.html">Container Variations</a></li>
@@ -136,6 +137,7 @@ <h3>Make Your GUI Better<a class="headerlink" href="#make-your-gui-better" title
 <li class="toctree-l1"><a class="reference internal" href="use_wraps.html">Call Parent Methods from its Child</a></li>
 <li class="toctree-l1"><a class="reference internal" href="use_bind.html">Binding Values to Arguments</a></li>
 <li class="toctree-l1"><a class="reference internal" href="use_choices.html">Set Choices Dynamically</a></li>
+<li class="toctree-l1"><a class="reference internal" href="use_preview.html">Add Preview Functionalities</a></li>
 <li class="toctree-l1"><a class="reference internal" href="use_worker.html">Multi-threading</a></li>
 <li class="toctree-l1"><a class="reference internal" href="additional_types.html">Additional types</a></li>
 <li class="toctree-l1"><a class="reference internal" href="containers.html">Container Variations</a></li>
diff --git a/docs/keybinding.html b/docs/keybinding.html
index 944e5ce1..f3885ad1 100644
--- a/docs/keybinding.html
+++ b/docs/keybinding.html
@@ -4,7 +4,7 @@
   <meta charset="utf-8" /><meta name="generator" content="Docutils 0.17.1: http://docutils.sourceforge.net/" />
 
   <meta name="viewport" content="width=device-width, initial-scale=1.0" />
-  <title>Define Custom Keybindings &mdash; magic-class 0.6.1 documentation</title>
+  <title>Define Custom Keybindings &mdash; magic-class 0.6.2.dev0 documentation</title>
       <link rel="stylesheet" href="_static/pygments.css" type="text/css" />
       <link rel="stylesheet" href="_static/css/theme.css" type="text/css" />
       <link rel="stylesheet" href="_static/columns.css" type="text/css" />
@@ -31,7 +31,7 @@
             <a href="index.html" class="icon icon-home"> magic-class
           </a>
               <div class="version">
-                0.6.1
+                0.6.2.dev0
               </div>
 <div role="search">
   <form id="rtd-search-form" class="wy-form" action="search.html" method="get">
@@ -53,6 +53,7 @@
 <li class="toctree-l1"><a class="reference internal" href="use_wraps.html">Call Parent Methods from its Child</a></li>
 <li class="toctree-l1"><a class="reference internal" href="use_bind.html">Binding Values to Arguments</a></li>
 <li class="toctree-l1"><a class="reference internal" href="use_choices.html">Set Choices Dynamically</a></li>
+<li class="toctree-l1"><a class="reference internal" href="use_preview.html">Add Preview Functionalities</a></li>
 <li class="toctree-l1"><a class="reference internal" href="use_worker.html">Multi-threading</a></li>
 <li class="toctree-l1"><a class="reference internal" href="additional_types.html">Additional types</a></li>
 <li class="toctree-l1"><a class="reference internal" href="containers.html">Container Variations</a></li>
diff --git a/docs/magicclass.ext.html b/docs/magicclass.ext.html
index 3e1465e0..836da404 100644
--- a/docs/magicclass.ext.html
+++ b/docs/magicclass.ext.html
@@ -4,7 +4,7 @@
   <meta charset="utf-8" /><meta name="generator" content="Docutils 0.17.1: http://docutils.sourceforge.net/" />
 
   <meta name="viewport" content="width=device-width, initial-scale=1.0" />
-  <title>magicclass.ext package &mdash; magic-class 0.6.1 documentation</title>
+  <title>magicclass.ext package &mdash; magic-class 0.6.2.dev0 documentation</title>
       <link rel="stylesheet" href="_static/pygments.css" type="text/css" />
       <link rel="stylesheet" href="_static/css/theme.css" type="text/css" />
       <link rel="stylesheet" href="_static/columns.css" type="text/css" />
@@ -31,7 +31,7 @@
             <a href="index.html" class="icon icon-home"> magic-class
           </a>
               <div class="version">
-                0.6.1
+                0.6.2.dev0
               </div>
 <div role="search">
   <form id="rtd-search-form" class="wy-form" action="search.html" method="get">
@@ -53,6 +53,7 @@
 <li class="toctree-l1"><a class="reference internal" href="use_wraps.html">Call Parent Methods from its Child</a></li>
 <li class="toctree-l1"><a class="reference internal" href="use_bind.html">Binding Values to Arguments</a></li>
 <li class="toctree-l1"><a class="reference internal" href="use_choices.html">Set Choices Dynamically</a></li>
+<li class="toctree-l1"><a class="reference internal" href="use_preview.html">Add Preview Functionalities</a></li>
 <li class="toctree-l1"><a class="reference internal" href="use_worker.html">Multi-threading</a></li>
 <li class="toctree-l1"><a class="reference internal" href="additional_types.html">Additional types</a></li>
 <li class="toctree-l1"><a class="reference internal" href="containers.html">Container Variations</a></li>
diff --git a/docs/magicclass.ext.napari.html b/docs/magicclass.ext.napari.html
index 531f10fe..083f0931 100644
--- a/docs/magicclass.ext.napari.html
+++ b/docs/magicclass.ext.napari.html
@@ -4,7 +4,7 @@
   <meta charset="utf-8" /><meta name="generator" content="Docutils 0.17.1: http://docutils.sourceforge.net/" />
 
   <meta name="viewport" content="width=device-width, initial-scale=1.0" />
-  <title>magicclass.ext.napari package &mdash; magic-class 0.6.1 documentation</title>
+  <title>magicclass.ext.napari package &mdash; magic-class 0.6.2.dev0 documentation</title>
       <link rel="stylesheet" href="_static/pygments.css" type="text/css" />
       <link rel="stylesheet" href="_static/css/theme.css" type="text/css" />
       <link rel="stylesheet" href="_static/columns.css" type="text/css" />
@@ -31,7 +31,7 @@
             <a href="index.html" class="icon icon-home"> magic-class
           </a>
               <div class="version">
-                0.6.1
+                0.6.2.dev0
               </div>
 <div role="search">
   <form id="rtd-search-form" class="wy-form" action="search.html" method="get">
@@ -53,6 +53,7 @@
 <li class="toctree-l1"><a class="reference internal" href="use_wraps.html">Call Parent Methods from its Child</a></li>
 <li class="toctree-l1"><a class="reference internal" href="use_bind.html">Binding Values to Arguments</a></li>
 <li class="toctree-l1"><a class="reference internal" href="use_choices.html">Set Choices Dynamically</a></li>
+<li class="toctree-l1"><a class="reference internal" href="use_preview.html">Add Preview Functionalities</a></li>
 <li class="toctree-l1"><a class="reference internal" href="use_worker.html">Multi-threading</a></li>
 <li class="toctree-l1"><a class="reference internal" href="additional_types.html">Additional types</a></li>
 <li class="toctree-l1"><a class="reference internal" href="containers.html">Container Variations</a></li>
diff --git a/docs/magicclass.ext.pyqtgraph.html b/docs/magicclass.ext.pyqtgraph.html
index b4eab31c..438785a2 100644
--- a/docs/magicclass.ext.pyqtgraph.html
+++ b/docs/magicclass.ext.pyqtgraph.html
@@ -4,7 +4,7 @@
   <meta charset="utf-8" /><meta name="generator" content="Docutils 0.17.1: http://docutils.sourceforge.net/" />
 
   <meta name="viewport" content="width=device-width, initial-scale=1.0" />
-  <title>magicclass.ext.pyqtgraph package &mdash; magic-class 0.6.1 documentation</title>
+  <title>magicclass.ext.pyqtgraph package &mdash; magic-class 0.6.2.dev0 documentation</title>
       <link rel="stylesheet" href="_static/pygments.css" type="text/css" />
       <link rel="stylesheet" href="_static/css/theme.css" type="text/css" />
       <link rel="stylesheet" href="_static/columns.css" type="text/css" />
@@ -31,7 +31,7 @@
             <a href="index.html" class="icon icon-home"> magic-class
           </a>
               <div class="version">
-                0.6.1
+                0.6.2.dev0
               </div>
 <div role="search">
   <form id="rtd-search-form" class="wy-form" action="search.html" method="get">
@@ -53,6 +53,7 @@
 <li class="toctree-l1"><a class="reference internal" href="use_wraps.html">Call Parent Methods from its Child</a></li>
 <li class="toctree-l1"><a class="reference internal" href="use_bind.html">Binding Values to Arguments</a></li>
 <li class="toctree-l1"><a class="reference internal" href="use_choices.html">Set Choices Dynamically</a></li>
+<li class="toctree-l1"><a class="reference internal" href="use_preview.html">Add Preview Functionalities</a></li>
 <li class="toctree-l1"><a class="reference internal" href="use_worker.html">Multi-threading</a></li>
 <li class="toctree-l1"><a class="reference internal" href="additional_types.html">Additional types</a></li>
 <li class="toctree-l1"><a class="reference internal" href="containers.html">Container Variations</a></li>
diff --git a/docs/magicclass.ext.pyvista.html b/docs/magicclass.ext.pyvista.html
index 5f0cecf6..fdbe27d6 100644
--- a/docs/magicclass.ext.pyvista.html
+++ b/docs/magicclass.ext.pyvista.html
@@ -4,7 +4,7 @@
   <meta charset="utf-8" /><meta name="generator" content="Docutils 0.17.1: http://docutils.sourceforge.net/" />
 
   <meta name="viewport" content="width=device-width, initial-scale=1.0" />
-  <title>magicclass.ext.pyvista package &mdash; magic-class 0.6.1 documentation</title>
+  <title>magicclass.ext.pyvista package &mdash; magic-class 0.6.2.dev0 documentation</title>
       <link rel="stylesheet" href="_static/pygments.css" type="text/css" />
       <link rel="stylesheet" href="_static/css/theme.css" type="text/css" />
       <link rel="stylesheet" href="_static/columns.css" type="text/css" />
@@ -31,7 +31,7 @@
             <a href="index.html" class="icon icon-home"> magic-class
           </a>
               <div class="version">
-                0.6.1
+                0.6.2.dev0
               </div>
 <div role="search">
   <form id="rtd-search-form" class="wy-form" action="search.html" method="get">
@@ -53,6 +53,7 @@
 <li class="toctree-l1"><a class="reference internal" href="use_wraps.html">Call Parent Methods from its Child</a></li>
 <li class="toctree-l1"><a class="reference internal" href="use_bind.html">Binding Values to Arguments</a></li>
 <li class="toctree-l1"><a class="reference internal" href="use_choices.html">Set Choices Dynamically</a></li>
+<li class="toctree-l1"><a class="reference internal" href="use_preview.html">Add Preview Functionalities</a></li>
 <li class="toctree-l1"><a class="reference internal" href="use_worker.html">Multi-threading</a></li>
 <li class="toctree-l1"><a class="reference internal" href="additional_types.html">Additional types</a></li>
 <li class="toctree-l1"><a class="reference internal" href="containers.html">Container Variations</a></li>
diff --git a/docs/magicclass.ext.qtconsole.html b/docs/magicclass.ext.qtconsole.html
index 2f99f452..4dee60f1 100644
--- a/docs/magicclass.ext.qtconsole.html
+++ b/docs/magicclass.ext.qtconsole.html
@@ -4,7 +4,7 @@
   <meta charset="utf-8" /><meta name="generator" content="Docutils 0.17.1: http://docutils.sourceforge.net/" />
 
   <meta name="viewport" content="width=device-width, initial-scale=1.0" />
-  <title>magicclass.ext.qtconsole package &mdash; magic-class 0.6.1 documentation</title>
+  <title>magicclass.ext.qtconsole package &mdash; magic-class 0.6.2.dev0 documentation</title>
       <link rel="stylesheet" href="_static/pygments.css" type="text/css" />
       <link rel="stylesheet" href="_static/css/theme.css" type="text/css" />
       <link rel="stylesheet" href="_static/columns.css" type="text/css" />
@@ -31,7 +31,7 @@
             <a href="index.html" class="icon icon-home"> magic-class
           </a>
               <div class="version">
-                0.6.1
+                0.6.2.dev0
               </div>
 <div role="search">
   <form id="rtd-search-form" class="wy-form" action="search.html" method="get">
@@ -53,6 +53,7 @@
 <li class="toctree-l1"><a class="reference internal" href="use_wraps.html">Call Parent Methods from its Child</a></li>
 <li class="toctree-l1"><a class="reference internal" href="use_bind.html">Binding Values to Arguments</a></li>
 <li class="toctree-l1"><a class="reference internal" href="use_choices.html">Set Choices Dynamically</a></li>
+<li class="toctree-l1"><a class="reference internal" href="use_preview.html">Add Preview Functionalities</a></li>
 <li class="toctree-l1"><a class="reference internal" href="use_worker.html">Multi-threading</a></li>
 <li class="toctree-l1"><a class="reference internal" href="additional_types.html">Additional types</a></li>
 <li class="toctree-l1"><a class="reference internal" href="containers.html">Container Variations</a></li>
diff --git a/docs/magicclass.ext.vispy.html b/docs/magicclass.ext.vispy.html
index 7043f908..454ad924 100644
--- a/docs/magicclass.ext.vispy.html
+++ b/docs/magicclass.ext.vispy.html
@@ -4,7 +4,7 @@
   <meta charset="utf-8" /><meta name="generator" content="Docutils 0.17.1: http://docutils.sourceforge.net/" />
 
   <meta name="viewport" content="width=device-width, initial-scale=1.0" />
-  <title>magicclass.ext.vispy package &mdash; magic-class 0.6.1 documentation</title>
+  <title>magicclass.ext.vispy package &mdash; magic-class 0.6.2.dev0 documentation</title>
       <link rel="stylesheet" href="_static/pygments.css" type="text/css" />
       <link rel="stylesheet" href="_static/css/theme.css" type="text/css" />
       <link rel="stylesheet" href="_static/columns.css" type="text/css" />
@@ -31,7 +31,7 @@
             <a href="index.html" class="icon icon-home"> magic-class
           </a>
               <div class="version">
-                0.6.1
+                0.6.2.dev0
               </div>
 <div role="search">
   <form id="rtd-search-form" class="wy-form" action="search.html" method="get">
@@ -53,6 +53,7 @@
 <li class="toctree-l1"><a class="reference internal" href="use_wraps.html">Call Parent Methods from its Child</a></li>
 <li class="toctree-l1"><a class="reference internal" href="use_bind.html">Binding Values to Arguments</a></li>
 <li class="toctree-l1"><a class="reference internal" href="use_choices.html">Set Choices Dynamically</a></li>
+<li class="toctree-l1"><a class="reference internal" href="use_preview.html">Add Preview Functionalities</a></li>
 <li class="toctree-l1"><a class="reference internal" href="use_worker.html">Multi-threading</a></li>
 <li class="toctree-l1"><a class="reference internal" href="additional_types.html">Additional types</a></li>
 <li class="toctree-l1"><a class="reference internal" href="containers.html">Container Variations</a></li>
diff --git a/docs/magicclass.gui.html b/docs/magicclass.gui.html
index a6800e61..01b46c56 100644
--- a/docs/magicclass.gui.html
+++ b/docs/magicclass.gui.html
@@ -4,7 +4,7 @@
   <meta charset="utf-8" /><meta name="generator" content="Docutils 0.17.1: http://docutils.sourceforge.net/" />
 
   <meta name="viewport" content="width=device-width, initial-scale=1.0" />
-  <title>magicclass.gui package &mdash; magic-class 0.6.1 documentation</title>
+  <title>magicclass.gui package &mdash; magic-class 0.6.2.dev0 documentation</title>
       <link rel="stylesheet" href="_static/pygments.css" type="text/css" />
       <link rel="stylesheet" href="_static/css/theme.css" type="text/css" />
       <link rel="stylesheet" href="_static/columns.css" type="text/css" />
@@ -31,7 +31,7 @@
             <a href="index.html" class="icon icon-home"> magic-class
           </a>
               <div class="version">
-                0.6.1
+                0.6.2.dev0
               </div>
 <div role="search">
   <form id="rtd-search-form" class="wy-form" action="search.html" method="get">
@@ -53,6 +53,7 @@
 <li class="toctree-l1"><a class="reference internal" href="use_wraps.html">Call Parent Methods from its Child</a></li>
 <li class="toctree-l1"><a class="reference internal" href="use_bind.html">Binding Values to Arguments</a></li>
 <li class="toctree-l1"><a class="reference internal" href="use_choices.html">Set Choices Dynamically</a></li>
+<li class="toctree-l1"><a class="reference internal" href="use_preview.html">Add Preview Functionalities</a></li>
 <li class="toctree-l1"><a class="reference internal" href="use_worker.html">Multi-threading</a></li>
 <li class="toctree-l1"><a class="reference internal" href="additional_types.html">Additional types</a></li>
 <li class="toctree-l1"><a class="reference internal" href="containers.html">Container Variations</a></li>
diff --git a/docs/magicclass.html b/docs/magicclass.html
index 9b174168..59ef063e 100644
--- a/docs/magicclass.html
+++ b/docs/magicclass.html
@@ -4,7 +4,7 @@
   <meta charset="utf-8" /><meta name="generator" content="Docutils 0.17.1: http://docutils.sourceforge.net/" />
 
   <meta name="viewport" content="width=device-width, initial-scale=1.0" />
-  <title>magicclass package &mdash; magic-class 0.6.1 documentation</title>
+  <title>magicclass package &mdash; magic-class 0.6.2.dev0 documentation</title>
       <link rel="stylesheet" href="_static/pygments.css" type="text/css" />
       <link rel="stylesheet" href="_static/css/theme.css" type="text/css" />
       <link rel="stylesheet" href="_static/columns.css" type="text/css" />
@@ -31,7 +31,7 @@
             <a href="index.html" class="icon icon-home"> magic-class
           </a>
               <div class="version">
-                0.6.1
+                0.6.2.dev0
               </div>
 <div role="search">
   <form id="rtd-search-form" class="wy-form" action="search.html" method="get">
@@ -53,6 +53,7 @@
 <li class="toctree-l1"><a class="reference internal" href="use_wraps.html">Call Parent Methods from its Child</a></li>
 <li class="toctree-l1"><a class="reference internal" href="use_bind.html">Binding Values to Arguments</a></li>
 <li class="toctree-l1"><a class="reference internal" href="use_choices.html">Set Choices Dynamically</a></li>
+<li class="toctree-l1"><a class="reference internal" href="use_preview.html">Add Preview Functionalities</a></li>
 <li class="toctree-l1"><a class="reference internal" href="use_worker.html">Multi-threading</a></li>
 <li class="toctree-l1"><a class="reference internal" href="additional_types.html">Additional types</a></li>
 <li class="toctree-l1"><a class="reference internal" href="containers.html">Container Variations</a></li>
@@ -163,6 +164,7 @@ <h2>Subpackages<a class="headerlink" href="#subpackages" title="Permalink to thi
 <li class="toctree-l1"><a class="reference internal" href="magicclass.utils.html">magicclass.utils package</a><ul>
 <li class="toctree-l2"><a class="reference internal" href="magicclass.utils.html#submodules">Submodules</a></li>
 <li class="toctree-l2"><a class="reference internal" href="magicclass.utils.html#module-magicclass.utils.functions">magicclass.utils.functions module</a></li>
+<li class="toctree-l2"><a class="reference internal" href="magicclass.utils.html#module-magicclass.utils.qt">magicclass.utils.qt module</a></li>
 <li class="toctree-l2"><a class="reference internal" href="magicclass.utils.html#module-magicclass.utils">Module contents</a></li>
 </ul>
 </li>
@@ -773,95 +775,6 @@ <h2>Submodules<a class="headerlink" href="#submodules" title="Permalink to this
 </section>
 <section id="module-magicclass.qthreading">
 <span id="magicclass-qthreading-module"></span><h2>magicclass.qthreading module<a class="headerlink" href="#module-magicclass.qthreading" title="Permalink to this headline">¶</a></h2>
-<dl class="py class">
-<dt class="sig sig-object py" id="magicclass.qthreading.Callbacks">
-<em class="property"><span class="pre">class</span> </em><span class="sig-prename descclassname"><span class="pre">magicclass.qthreading.</span></span><span class="sig-name descname"><span class="pre">Callbacks</span></span><a class="reference internal" href="_modules/magicclass/qthreading.html#Callbacks"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#magicclass.qthreading.Callbacks" title="Permalink to this definition">¶</a></dt>
-<dd><p>Bases: <code class="xref py py-class docutils literal notranslate"><span class="pre">object</span></code></p>
-<p>List of callback functions.</p>
-<dl class="py property">
-<dt class="sig sig-object py" id="magicclass.qthreading.Callbacks.callbacks">
-<em class="property"><span class="pre">property</span> </em><span class="sig-name descname"><span class="pre">callbacks</span></span><em class="property"><span class="pre">:</span> <span class="pre">tuple</span><span class="p"><span class="pre">[</span></span><span class="pre">typing.Callable</span><span class="p"><span class="pre">,</span> </span><span class="p"><span class="pre">...</span></span><span class="p"><span class="pre">]</span></span></em><a class="headerlink" href="#magicclass.qthreading.Callbacks.callbacks" title="Permalink to this definition">¶</a></dt>
-<dd></dd></dl>
-
-<dl class="py method">
-<dt class="sig sig-object py" id="magicclass.qthreading.Callbacks.connect">
-<span class="sig-name descname"><span class="pre">connect</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">callback</span></span><span class="p"><span class="pre">:</span></span> <span class="n"><span class="pre">magicclass.qthreading._F</span></span></em><span class="sig-paren">)</span> <span class="sig-return"><span class="sig-return-icon">&#x2192;</span> <span class="sig-return-typehint"><span class="pre">magicclass.qthreading._F</span></span></span><a class="reference internal" href="_modules/magicclass/qthreading.html#Callbacks.connect"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#magicclass.qthreading.Callbacks.connect" title="Permalink to this definition">¶</a></dt>
-<dd><p>Append a callback function to the callback list.</p>
-<dl class="field-list simple">
-<dt class="field-odd">Parameters</dt>
-<dd class="field-odd"><p><strong>callback</strong> (<em>Callable</em>) -- Callback function.</p>
-</dd>
-</dl>
-</dd></dl>
-
-<dl class="py method">
-<dt class="sig sig-object py" id="magicclass.qthreading.Callbacks.disconnect">
-<span class="sig-name descname"><span class="pre">disconnect</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">callback</span></span><span class="p"><span class="pre">:</span></span> <span class="n"><span class="pre">magicclass.qthreading._F</span></span></em><span class="sig-paren">)</span> <span class="sig-return"><span class="sig-return-icon">&#x2192;</span> <span class="sig-return-typehint"><span class="pre">magicclass.qthreading._F</span></span></span><a class="reference internal" href="_modules/magicclass/qthreading.html#Callbacks.disconnect"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#magicclass.qthreading.Callbacks.disconnect" title="Permalink to this definition">¶</a></dt>
-<dd><p>Remove callback function from the callback list.</p>
-<dl class="field-list simple">
-<dt class="field-odd">Parameters</dt>
-<dd class="field-odd"><p><strong>callback</strong> (<em>Callable</em>) -- Callback function to be removed.</p>
-</dd>
-</dl>
-</dd></dl>
-
-</dd></dl>
-
-<dl class="py class">
-<dt class="sig sig-object py" id="magicclass.qthreading.NapariProgressBar">
-<em class="property"><span class="pre">class</span> </em><span class="sig-prename descclassname"><span class="pre">magicclass.qthreading.</span></span><span class="sig-name descname"><span class="pre">NapariProgressBar</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">value</span></span><span class="p"><span class="pre">:</span></span> <span class="n"><span class="pre">int</span></span> <span class="o"><span class="pre">=</span></span> <span class="default_value"><span class="pre">0</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">max</span></span><span class="p"><span class="pre">:</span></span> <span class="n"><span class="pre">int</span></span> <span class="o"><span class="pre">=</span></span> <span class="default_value"><span class="pre">1000</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="_modules/magicclass/qthreading.html#NapariProgressBar"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#magicclass.qthreading.NapariProgressBar" title="Permalink to this definition">¶</a></dt>
-<dd><p>Bases: <code class="xref py py-class docutils literal notranslate"><span class="pre">object</span></code></p>
-<p>A progressbar class that provides napari progress bar with same API.</p>
-<dl class="py method">
-<dt class="sig sig-object py" id="magicclass.qthreading.NapariProgressBar.close">
-<span class="sig-name descname"><span class="pre">close</span></span><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="_modules/magicclass/qthreading.html#NapariProgressBar.close"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#magicclass.qthreading.NapariProgressBar.close" title="Permalink to this definition">¶</a></dt>
-<dd></dd></dl>
-
-<dl class="py property">
-<dt class="sig sig-object py" id="magicclass.qthreading.NapariProgressBar.label">
-<em class="property"><span class="pre">property</span> </em><span class="sig-name descname"><span class="pre">label</span></span><em class="property"><span class="pre">:</span> <span class="pre">str</span></em><a class="headerlink" href="#magicclass.qthreading.NapariProgressBar.label" title="Permalink to this definition">¶</a></dt>
-<dd></dd></dl>
-
-<dl class="py property">
-<dt class="sig sig-object py" id="magicclass.qthreading.NapariProgressBar.max">
-<em class="property"><span class="pre">property</span> </em><span class="sig-name descname"><span class="pre">max</span></span><em class="property"><span class="pre">:</span> <span class="pre">int</span></em><a class="headerlink" href="#magicclass.qthreading.NapariProgressBar.max" title="Permalink to this definition">¶</a></dt>
-<dd></dd></dl>
-
-<dl class="py method">
-<dt class="sig sig-object py" id="magicclass.qthreading.NapariProgressBar.show">
-<span class="sig-name descname"><span class="pre">show</span></span><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="_modules/magicclass/qthreading.html#NapariProgressBar.show"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#magicclass.qthreading.NapariProgressBar.show" title="Permalink to this definition">¶</a></dt>
-<dd></dd></dl>
-
-<dl class="py property">
-<dt class="sig sig-object py" id="magicclass.qthreading.NapariProgressBar.value">
-<em class="property"><span class="pre">property</span> </em><span class="sig-name descname"><span class="pre">value</span></span><em class="property"><span class="pre">:</span> <span class="pre">int</span></em><a class="headerlink" href="#magicclass.qthreading.NapariProgressBar.value" title="Permalink to this definition">¶</a></dt>
-<dd></dd></dl>
-
-<dl class="py property">
-<dt class="sig sig-object py" id="magicclass.qthreading.NapariProgressBar.visible">
-<em class="property"><span class="pre">property</span> </em><span class="sig-name descname"><span class="pre">visible</span></span><em class="property"><span class="pre">:</span> <span class="pre">bool</span></em><a class="headerlink" href="#magicclass.qthreading.NapariProgressBar.visible" title="Permalink to this definition">¶</a></dt>
-<dd></dd></dl>
-
-</dd></dl>
-
-<dl class="py function">
-<dt class="sig sig-object py" id="magicclass.qthreading.close_pbar">
-<span class="sig-prename descclassname"><span class="pre">magicclass.qthreading.</span></span><span class="sig-name descname"><span class="pre">close_pbar</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">pbar</span></span><span class="p"><span class="pre">:</span></span> <span class="n"><span class="pre">Union</span><span class="p"><span class="pre">[</span></span><span class="pre">magicgui.widgets.ProgressBar</span><span class="p"><span class="pre">,</span> </span><a class="reference internal" href="#magicclass.qthreading.NapariProgressBar" title="magicclass.qthreading.NapariProgressBar"><span class="pre">magicclass.qthreading.NapariProgressBar</span></a><span class="p"><span class="pre">]</span></span></span></em><span class="sig-paren">)</span><a class="reference internal" href="_modules/magicclass/qthreading.html#close_pbar"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#magicclass.qthreading.close_pbar" title="Permalink to this definition">¶</a></dt>
-<dd><p>Close progressbar.</p>
-</dd></dl>
-
-<dl class="py function">
-<dt class="sig sig-object py" id="magicclass.qthreading.increment">
-<span class="sig-prename descclassname"><span class="pre">magicclass.qthreading.</span></span><span class="sig-name descname"><span class="pre">increment</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">pbar</span></span><span class="p"><span class="pre">:</span></span> <span class="n"><span class="pre">Union</span><span class="p"><span class="pre">[</span></span><span class="pre">magicgui.widgets.ProgressBar</span><span class="p"><span class="pre">,</span> </span><a class="reference internal" href="#magicclass.qthreading.NapariProgressBar" title="magicclass.qthreading.NapariProgressBar"><span class="pre">magicclass.qthreading.NapariProgressBar</span></a><span class="p"><span class="pre">]</span></span></span></em><span class="sig-paren">)</span><a class="reference internal" href="_modules/magicclass/qthreading.html#increment"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#magicclass.qthreading.increment" title="Permalink to this definition">¶</a></dt>
-<dd><p>Increment progressbar.</p>
-</dd></dl>
-
-<dl class="py function">
-<dt class="sig sig-object py" id="magicclass.qthreading.init_pbar">
-<span class="sig-prename descclassname"><span class="pre">magicclass.qthreading.</span></span><span class="sig-name descname"><span class="pre">init_pbar</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">pbar</span></span><span class="p"><span class="pre">:</span></span> <span class="n"><span class="pre">Union</span><span class="p"><span class="pre">[</span></span><span class="pre">magicgui.widgets.ProgressBar</span><span class="p"><span class="pre">,</span> </span><a class="reference internal" href="#magicclass.qthreading.NapariProgressBar" title="magicclass.qthreading.NapariProgressBar"><span class="pre">magicclass.qthreading.NapariProgressBar</span></a><span class="p"><span class="pre">]</span></span></span></em><span class="sig-paren">)</span><a class="reference internal" href="_modules/magicclass/qthreading.html#init_pbar"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#magicclass.qthreading.init_pbar" title="Permalink to this definition">¶</a></dt>
-<dd><p>Initialize progressbar.</p>
-</dd></dl>
-
 <dl class="py class">
 <dt class="sig sig-object py" id="magicclass.qthreading.thread_worker">
 <em class="property"><span class="pre">class</span> </em><span class="sig-prename descclassname"><span class="pre">magicclass.qthreading.</span></span><span class="sig-name descname"><span class="pre">thread_worker</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">f</span></span><span class="p"><span class="pre">:</span></span> <span class="n"><span class="pre">Callable</span> <span class="p"><span class="pre">|</span></span> <span class="pre">None</span></span> <span class="o"><span class="pre">=</span></span> <span class="default_value"><span class="pre">None</span></span></em>, <em class="sig-param"><span class="o"><span class="pre">*</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">ignore_errors</span></span><span class="p"><span class="pre">:</span></span> <span class="n"><span class="pre">bool</span></span> <span class="o"><span class="pre">=</span></span> <span class="default_value"><span class="pre">False</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">progress</span></span><span class="p"><span class="pre">:</span></span> <span class="n"><span class="pre">dict</span><span class="p"><span class="pre">[</span></span><span class="pre">str</span><span class="p"><span class="pre">,</span> </span><span class="pre">Any</span><span class="p"><span class="pre">]</span></span> <span class="p"><span class="pre">|</span></span> <span class="pre">None</span></span> <span class="o"><span class="pre">=</span></span> <span class="default_value"><span class="pre">None</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="_modules/magicclass/qthreading.html#thread_worker"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#magicclass.qthreading.thread_worker" title="Permalink to this definition">¶</a></dt>
@@ -869,42 +782,52 @@ <h2>Submodules<a class="headerlink" href="#submodules" title="Permalink to this
 <p>Create a worker in a superqt/napari style.</p>
 <dl class="py property">
 <dt class="sig sig-object py" id="magicclass.qthreading.thread_worker.aborted">
-<em class="property"><span class="pre">property</span> </em><span class="sig-name descname"><span class="pre">aborted</span></span><em class="property"><span class="pre">:</span> <a class="reference internal" href="#magicclass.qthreading.Callbacks" title="magicclass.qthreading.Callbacks"><span class="pre">magicclass.qthreading.Callbacks</span></a></em><a class="headerlink" href="#magicclass.qthreading.thread_worker.aborted" title="Permalink to this definition">¶</a></dt>
+<em class="property"><span class="pre">property</span> </em><span class="sig-name descname"><span class="pre">aborted</span></span><em class="property"><span class="pre">:</span> <span class="pre">magicclass.qthreading.Callbacks</span></em><a class="headerlink" href="#magicclass.qthreading.thread_worker.aborted" title="Permalink to this definition">¶</a></dt>
 <dd><p>Event that will be emitted on aborted.</p>
 </dd></dl>
 
 <dl class="py property">
 <dt class="sig sig-object py" id="magicclass.qthreading.thread_worker.errored">
-<em class="property"><span class="pre">property</span> </em><span class="sig-name descname"><span class="pre">errored</span></span><em class="property"><span class="pre">:</span> <a class="reference internal" href="#magicclass.qthreading.Callbacks" title="magicclass.qthreading.Callbacks"><span class="pre">magicclass.qthreading.Callbacks</span></a></em><a class="headerlink" href="#magicclass.qthreading.thread_worker.errored" title="Permalink to this definition">¶</a></dt>
+<em class="property"><span class="pre">property</span> </em><span class="sig-name descname"><span class="pre">errored</span></span><em class="property"><span class="pre">:</span> <span class="pre">magicclass.qthreading.Callbacks</span></em><a class="headerlink" href="#magicclass.qthreading.thread_worker.errored" title="Permalink to this definition">¶</a></dt>
 <dd><p>Event that will be emitted on errored.</p>
 </dd></dl>
 
 <dl class="py property">
 <dt class="sig sig-object py" id="magicclass.qthreading.thread_worker.finished">
-<em class="property"><span class="pre">property</span> </em><span class="sig-name descname"><span class="pre">finished</span></span><em class="property"><span class="pre">:</span> <a class="reference internal" href="#magicclass.qthreading.Callbacks" title="magicclass.qthreading.Callbacks"><span class="pre">magicclass.qthreading.Callbacks</span></a></em><a class="headerlink" href="#magicclass.qthreading.thread_worker.finished" title="Permalink to this definition">¶</a></dt>
+<em class="property"><span class="pre">property</span> </em><span class="sig-name descname"><span class="pre">finished</span></span><em class="property"><span class="pre">:</span> <span class="pre">magicclass.qthreading.Callbacks</span></em><a class="headerlink" href="#magicclass.qthreading.thread_worker.finished" title="Permalink to this definition">¶</a></dt>
 <dd><p>Event that will be emitted on finished.</p>
 </dd></dl>
 
-<dl class="py property">
-<dt class="sig sig-object py" id="magicclass.qthreading.thread_worker.not_ready">
-<em class="property"><span class="pre">property</span> </em><span class="sig-name descname"><span class="pre">not_ready</span></span><em class="property"><span class="pre">:</span> <span class="pre">bool</span></em><a class="headerlink" href="#magicclass.qthreading.thread_worker.not_ready" title="Permalink to this definition">¶</a></dt>
-<dd></dd></dl>
-
 <dl class="py property">
 <dt class="sig sig-object py" id="magicclass.qthreading.thread_worker.returned">
-<em class="property"><span class="pre">property</span> </em><span class="sig-name descname"><span class="pre">returned</span></span><em class="property"><span class="pre">:</span> <a class="reference internal" href="#magicclass.qthreading.Callbacks" title="magicclass.qthreading.Callbacks"><span class="pre">magicclass.qthreading.Callbacks</span></a></em><a class="headerlink" href="#magicclass.qthreading.thread_worker.returned" title="Permalink to this definition">¶</a></dt>
+<em class="property"><span class="pre">property</span> </em><span class="sig-name descname"><span class="pre">returned</span></span><em class="property"><span class="pre">:</span> <span class="pre">magicclass.qthreading.Callbacks</span></em><a class="headerlink" href="#magicclass.qthreading.thread_worker.returned" title="Permalink to this definition">¶</a></dt>
 <dd><p>Event that will be emitted on returned.</p>
 </dd></dl>
 
+<dl class="py method">
+<dt class="sig sig-object py" id="magicclass.qthreading.thread_worker.set_default">
+<em class="property"><span class="pre">classmethod</span> </em><span class="sig-name descname"><span class="pre">set_default</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">pbar_cls</span></span><span class="p"><span class="pre">:</span></span> <span class="n"><span class="pre">Callable</span> <span class="p"><span class="pre">|</span></span> <span class="pre">str</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="_modules/magicclass/qthreading.html#thread_worker.set_default"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#magicclass.qthreading.thread_worker.set_default" title="Permalink to this definition">¶</a></dt>
+<dd><p>Set the default progressbar class.</p>
+<p>This class method is useful when there is an user-defined class that
+follows <code class="docutils literal notranslate"><span class="pre">_SupportProgress</span></code> protocol.</p>
+<dl class="field-list simple">
+<dt class="field-odd">Parameters</dt>
+<dd class="field-odd"><p><strong>pbar_cls</strong> (<em>callable</em><em> or </em><em>str</em>) -- The default class. In principle this parameter does not have to be a
+class. As long as <code class="docutils literal notranslate"><span class="pre">pbar_cls(max=...)</span></code> returns a <code class="docutils literal notranslate"><span class="pre">_SupportProgress</span></code>
+object it works. Either &quot;default&quot; or &quot;napari&quot; is also accepted.</p>
+</dd>
+</dl>
+</dd></dl>
+
 <dl class="py property">
 <dt class="sig sig-object py" id="magicclass.qthreading.thread_worker.started">
-<em class="property"><span class="pre">property</span> </em><span class="sig-name descname"><span class="pre">started</span></span><em class="property"><span class="pre">:</span> <a class="reference internal" href="#magicclass.qthreading.Callbacks" title="magicclass.qthreading.Callbacks"><span class="pre">magicclass.qthreading.Callbacks</span></a></em><a class="headerlink" href="#magicclass.qthreading.thread_worker.started" title="Permalink to this definition">¶</a></dt>
+<em class="property"><span class="pre">property</span> </em><span class="sig-name descname"><span class="pre">started</span></span><em class="property"><span class="pre">:</span> <span class="pre">magicclass.qthreading.Callbacks</span></em><a class="headerlink" href="#magicclass.qthreading.thread_worker.started" title="Permalink to this definition">¶</a></dt>
 <dd><p>Event that will be emitted on started.</p>
 </dd></dl>
 
 <dl class="py property">
 <dt class="sig sig-object py" id="magicclass.qthreading.thread_worker.yielded">
-<em class="property"><span class="pre">property</span> </em><span class="sig-name descname"><span class="pre">yielded</span></span><em class="property"><span class="pre">:</span> <a class="reference internal" href="#magicclass.qthreading.Callbacks" title="magicclass.qthreading.Callbacks"><span class="pre">magicclass.qthreading.Callbacks</span></a></em><a class="headerlink" href="#magicclass.qthreading.thread_worker.yielded" title="Permalink to this definition">¶</a></dt>
+<em class="property"><span class="pre">property</span> </em><span class="sig-name descname"><span class="pre">yielded</span></span><em class="property"><span class="pre">:</span> <span class="pre">magicclass.qthreading.Callbacks</span></em><a class="headerlink" href="#magicclass.qthreading.thread_worker.yielded" title="Permalink to this definition">¶</a></dt>
 <dd><p>Event that will be emitted on yielded.</p>
 </dd></dl>
 
@@ -1270,6 +1193,34 @@ <h2>Submodules<a class="headerlink" href="#submodules" title="Permalink to this
 <dd><p>Wrapped method will not be recorded in macro.</p>
 </dd></dl>
 
+<dl class="py function">
+<dt class="sig sig-object py" id="magicclass.wrappers.mark_preview">
+<span class="sig-prename descclassname"><span class="pre">magicclass.wrappers.</span></span><span class="sig-name descname"><span class="pre">mark_preview</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">function</span></span><span class="p"><span class="pre">:</span></span> <span class="n"><span class="pre">magicclass.wrappers.F</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">text</span></span><span class="p"><span class="pre">:</span></span> <span class="n"><span class="pre">str</span></span> <span class="o"><span class="pre">=</span></span> <span class="default_value"><span class="pre">'Preview'</span></span></em><span class="sig-paren">)</span> <span class="sig-return"><span class="sig-return-icon">&#x2192;</span> <span class="sig-return-typehint"><span class="pre">magicclass.wrappers.F</span></span></span><a class="reference internal" href="_modules/magicclass/wrappers.html#mark_preview"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#magicclass.wrappers.mark_preview" title="Permalink to this definition">¶</a></dt>
+<dd><p>Define a preview of a function.</p>
+<p>This decorator is useful for advanced magicgui creation. A &quot;Preview&quot; button
+appears in the bottom of the widget built from the input function and the
+decorated function will be called with the same arguments.
+Following example shows how to define a previewer that prints the content of
+the selected file.</p>
+<div class="highlight-python notranslate"><div class="highlight"><pre><span></span><span class="k">def</span> <span class="nf">func</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">path</span><span class="p">:</span> <span class="n">Path</span><span class="p">):</span>
+    <span class="o">...</span>
+
+<span class="nd">@mark_preview</span><span class="p">(</span><span class="n">func</span><span class="p">)</span>
+<span class="k">def</span> <span class="nf">_func_prev</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">path</span><span class="p">:</span> <span class="n">Path</span><span class="p">):</span>
+    <span class="k">with</span> <span class="nb">open</span><span class="p">(</span><span class="n">path</span><span class="p">,</span> <span class="n">mode</span><span class="o">=</span><span class="s2">&quot;r&quot;</span><span class="p">)</span> <span class="k">as</span> <span class="n">f</span><span class="p">:</span>
+        <span class="nb">print</span><span class="p">(</span><span class="n">f</span><span class="o">.</span><span class="n">read</span><span class="p">())</span>
+</pre></div>
+</div>
+<dl class="field-list simple">
+<dt class="field-odd">Parameters</dt>
+<dd class="field-odd"><ul class="simple">
+<li><p><strong>function</strong> (<em>callable</em>) -- To which function previewer will be defined.</p></li>
+<li><p><strong>text</strong> (<em>str</em><em>, </em><em>optional</em>) -- Text of preview button.</p></li>
+</ul>
+</dd>
+</dl>
+</dd></dl>
+
 <dl class="py function">
 <dt class="sig sig-object py" id="magicclass.wrappers.nogui">
 <span class="sig-prename descclassname"><span class="pre">magicclass.wrappers.</span></span><span class="sig-name descname"><span class="pre">nogui</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">method</span></span><span class="p"><span class="pre">:</span></span> <span class="n"><span class="pre">magicclass.wrappers.F</span></span></em><span class="sig-paren">)</span> <span class="sig-return"><span class="sig-return-icon">&#x2192;</span> <span class="sig-return-typehint"><span class="pre">magicclass.wrappers.F</span></span></span><a class="reference internal" href="_modules/magicclass/wrappers.html#nogui"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#magicclass.wrappers.nogui" title="Permalink to this definition">¶</a></dt>
diff --git a/docs/magicclass.stylesheets.html b/docs/magicclass.stylesheets.html
index 99f4c8be..2ce480d3 100644
--- a/docs/magicclass.stylesheets.html
+++ b/docs/magicclass.stylesheets.html
@@ -4,7 +4,7 @@
   <meta charset="utf-8" /><meta name="generator" content="Docutils 0.17.1: http://docutils.sourceforge.net/" />
 
   <meta name="viewport" content="width=device-width, initial-scale=1.0" />
-  <title>magicclass.stylesheets package &mdash; magic-class 0.6.1 documentation</title>
+  <title>magicclass.stylesheets package &mdash; magic-class 0.6.2.dev0 documentation</title>
       <link rel="stylesheet" href="_static/pygments.css" type="text/css" />
       <link rel="stylesheet" href="_static/css/theme.css" type="text/css" />
       <link rel="stylesheet" href="_static/columns.css" type="text/css" />
@@ -31,7 +31,7 @@
             <a href="index.html" class="icon icon-home"> magic-class
           </a>
               <div class="version">
-                0.6.1
+                0.6.2.dev0
               </div>
 <div role="search">
   <form id="rtd-search-form" class="wy-form" action="search.html" method="get">
@@ -53,6 +53,7 @@
 <li class="toctree-l1"><a class="reference internal" href="use_wraps.html">Call Parent Methods from its Child</a></li>
 <li class="toctree-l1"><a class="reference internal" href="use_bind.html">Binding Values to Arguments</a></li>
 <li class="toctree-l1"><a class="reference internal" href="use_choices.html">Set Choices Dynamically</a></li>
+<li class="toctree-l1"><a class="reference internal" href="use_preview.html">Add Preview Functionalities</a></li>
 <li class="toctree-l1"><a class="reference internal" href="use_worker.html">Multi-threading</a></li>
 <li class="toctree-l1"><a class="reference internal" href="additional_types.html">Additional types</a></li>
 <li class="toctree-l1"><a class="reference internal" href="containers.html">Container Variations</a></li>
diff --git a/docs/magicclass.utils.html b/docs/magicclass.utils.html
index a824f748..e8d0772b 100644
--- a/docs/magicclass.utils.html
+++ b/docs/magicclass.utils.html
@@ -4,7 +4,7 @@
   <meta charset="utf-8" /><meta name="generator" content="Docutils 0.17.1: http://docutils.sourceforge.net/" />
 
   <meta name="viewport" content="width=device-width, initial-scale=1.0" />
-  <title>magicclass.utils package &mdash; magic-class 0.6.1 documentation</title>
+  <title>magicclass.utils package &mdash; magic-class 0.6.2.dev0 documentation</title>
       <link rel="stylesheet" href="_static/pygments.css" type="text/css" />
       <link rel="stylesheet" href="_static/css/theme.css" type="text/css" />
       <link rel="stylesheet" href="_static/columns.css" type="text/css" />
@@ -31,7 +31,7 @@
             <a href="index.html" class="icon icon-home"> magic-class
           </a>
               <div class="version">
-                0.6.1
+                0.6.2.dev0
               </div>
 <div role="search">
   <form id="rtd-search-form" class="wy-form" action="search.html" method="get">
@@ -53,6 +53,7 @@
 <li class="toctree-l1"><a class="reference internal" href="use_wraps.html">Call Parent Methods from its Child</a></li>
 <li class="toctree-l1"><a class="reference internal" href="use_bind.html">Binding Values to Arguments</a></li>
 <li class="toctree-l1"><a class="reference internal" href="use_choices.html">Set Choices Dynamically</a></li>
+<li class="toctree-l1"><a class="reference internal" href="use_preview.html">Add Preview Functionalities</a></li>
 <li class="toctree-l1"><a class="reference internal" href="use_worker.html">Multi-threading</a></li>
 <li class="toctree-l1"><a class="reference internal" href="additional_types.html">Additional types</a></li>
 <li class="toctree-l1"><a class="reference internal" href="containers.html">Container Variations</a></li>
@@ -103,61 +104,81 @@ <h2>Submodules<a class="headerlink" href="#submodules" title="Permalink to this
 </section>
 <section id="module-magicclass.utils.functions">
 <span id="magicclass-utils-functions-module"></span><h2>magicclass.utils.functions module<a class="headerlink" href="#module-magicclass.utils.functions" title="Permalink to this headline">¶</a></h2>
+<dl class="py function">
+<dt class="sig sig-object py" id="magicclass.utils.functions.extract_tooltip">
+<span class="sig-prename descclassname"><span class="pre">magicclass.utils.functions.</span></span><span class="sig-name descname"><span class="pre">extract_tooltip</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">obj</span></span><span class="p"><span class="pre">:</span></span> <span class="n"><span class="pre">Any</span></span></em><span class="sig-paren">)</span> <span class="sig-return"><span class="sig-return-icon">&#x2192;</span> <span class="sig-return-typehint"><span class="pre">str</span></span></span><a class="reference internal" href="_modules/magicclass/utils/functions.html#extract_tooltip"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#magicclass.utils.functions.extract_tooltip" title="Permalink to this definition">¶</a></dt>
+<dd><p>Extract docstring for tooltip.</p>
+</dd></dl>
+
+<dl class="py function">
+<dt class="sig sig-object py" id="magicclass.utils.functions.get_signature">
+<span class="sig-prename descclassname"><span class="pre">magicclass.utils.functions.</span></span><span class="sig-name descname"><span class="pre">get_signature</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">func</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="_modules/magicclass/utils/functions.html#get_signature"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#magicclass.utils.functions.get_signature" title="Permalink to this definition">¶</a></dt>
+<dd><p>Similar to <code class="docutils literal notranslate"><span class="pre">inspect.signature</span></code> but safely returns <code class="docutils literal notranslate"><span class="pre">Signature</span></code>.</p>
+</dd></dl>
+
+<dl class="py function">
+<dt class="sig sig-object py" id="magicclass.utils.functions.iter_members">
+<span class="sig-prename descclassname"><span class="pre">magicclass.utils.functions.</span></span><span class="sig-name descname"><span class="pre">iter_members</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">cls</span></span><span class="p"><span class="pre">:</span></span> <span class="n"><span class="pre">type</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">exclude_prefix</span></span><span class="p"><span class="pre">:</span></span> <span class="n"><span class="pre">str</span></span> <span class="o"><span class="pre">=</span></span> <span class="default_value"><span class="pre">'__'</span></span></em><span class="sig-paren">)</span> <span class="sig-return"><span class="sig-return-icon">&#x2192;</span> <span class="sig-return-typehint"><span class="pre">Iterable</span><span class="p"><span class="pre">[</span></span><span class="pre">tuple</span><span class="p"><span class="pre">[</span></span><span class="pre">str</span><span class="p"><span class="pre">,</span> </span><span class="pre">typing.Any</span><span class="p"><span class="pre">]</span></span><span class="p"><span class="pre">]</span></span></span></span><a class="reference internal" href="_modules/magicclass/utils/functions.html#iter_members"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#magicclass.utils.functions.iter_members" title="Permalink to this definition">¶</a></dt>
+<dd><p>Iterate over all the members in the order of source code line number.
+This function is identical to inspect.getmembers except for the order
+of the results. We have to sort the name in the order of line number.</p>
+</dd></dl>
+
+<dl class="py function">
+<dt class="sig sig-object py" id="magicclass.utils.functions.rst_to_html">
+<span class="sig-prename descclassname"><span class="pre">magicclass.utils.functions.</span></span><span class="sig-name descname"><span class="pre">rst_to_html</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">rst</span></span><span class="p"><span class="pre">:</span></span> <span class="n"><span class="pre">str</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">unescape</span></span><span class="p"><span class="pre">:</span></span> <span class="n"><span class="pre">bool</span></span> <span class="o"><span class="pre">=</span></span> <span class="default_value"><span class="pre">True</span></span></em><span class="sig-paren">)</span> <span class="sig-return"><span class="sig-return-icon">&#x2192;</span> <span class="sig-return-typehint"><span class="pre">str</span></span></span><a class="reference internal" href="_modules/magicclass/utils/functions.html#rst_to_html"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#magicclass.utils.functions.rst_to_html" title="Permalink to this definition">¶</a></dt>
+<dd><p>Convert rST string into HTML.</p>
+</dd></dl>
+
+<dl class="py function">
+<dt class="sig sig-object py" id="magicclass.utils.functions.show_tree">
+<span class="sig-prename descclassname"><span class="pre">magicclass.utils.functions.</span></span><span class="sig-name descname"><span class="pre">show_tree</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">ui</span></span><span class="p"><span class="pre">:</span></span> <span class="n"><span class="pre">BaseGui</span></span></em><span class="sig-paren">)</span> <span class="sig-return"><span class="sig-return-icon">&#x2192;</span> <span class="sig-return-typehint"><span class="pre">str</span></span></span><a class="reference internal" href="_modules/magicclass/utils/functions.html#show_tree"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#magicclass.utils.functions.show_tree" title="Permalink to this definition">¶</a></dt>
+<dd></dd></dl>
+
+</section>
+<section id="module-magicclass.utils.qt">
+<span id="magicclass-utils-qt-module"></span><h2>magicclass.utils.qt module<a class="headerlink" href="#module-magicclass.utils.qt" title="Permalink to this headline">¶</a></h2>
 <dl class="py class">
-<dt class="sig sig-object py" id="magicclass.utils.functions.MessageBoxMode">
-<em class="property"><span class="pre">class</span> </em><span class="sig-prename descclassname"><span class="pre">magicclass.utils.functions.</span></span><span class="sig-name descname"><span class="pre">MessageBoxMode</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">value</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="_modules/magicclass/utils/functions.html#MessageBoxMode"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#magicclass.utils.functions.MessageBoxMode" title="Permalink to this definition">¶</a></dt>
+<dt class="sig sig-object py" id="magicclass.utils.qt.MessageBoxMode">
+<em class="property"><span class="pre">class</span> </em><span class="sig-prename descclassname"><span class="pre">magicclass.utils.qt.</span></span><span class="sig-name descname"><span class="pre">MessageBoxMode</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">value</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="_modules/magicclass/utils/qt.html#MessageBoxMode"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#magicclass.utils.qt.MessageBoxMode" title="Permalink to this definition">¶</a></dt>
 <dd><p>Bases: <code class="xref py py-class docutils literal notranslate"><span class="pre">enum.Enum</span></code></p>
 <p>An enumeration.</p>
 <dl class="py attribute">
-<dt class="sig sig-object py" id="magicclass.utils.functions.MessageBoxMode.ABOUT">
-<span class="sig-name descname"><span class="pre">ABOUT</span></span><em class="property"> <span class="pre">=</span> <span class="pre">'about'</span></em><a class="headerlink" href="#magicclass.utils.functions.MessageBoxMode.ABOUT" title="Permalink to this definition">¶</a></dt>
+<dt class="sig sig-object py" id="magicclass.utils.qt.MessageBoxMode.ABOUT">
+<span class="sig-name descname"><span class="pre">ABOUT</span></span><em class="property"> <span class="pre">=</span> <span class="pre">'about'</span></em><a class="headerlink" href="#magicclass.utils.qt.MessageBoxMode.ABOUT" title="Permalink to this definition">¶</a></dt>
 <dd></dd></dl>
 
 <dl class="py attribute">
-<dt class="sig sig-object py" id="magicclass.utils.functions.MessageBoxMode.ERROR">
-<span class="sig-name descname"><span class="pre">ERROR</span></span><em class="property"> <span class="pre">=</span> <span class="pre">'error'</span></em><a class="headerlink" href="#magicclass.utils.functions.MessageBoxMode.ERROR" title="Permalink to this definition">¶</a></dt>
+<dt class="sig sig-object py" id="magicclass.utils.qt.MessageBoxMode.ERROR">
+<span class="sig-name descname"><span class="pre">ERROR</span></span><em class="property"> <span class="pre">=</span> <span class="pre">'error'</span></em><a class="headerlink" href="#magicclass.utils.qt.MessageBoxMode.ERROR" title="Permalink to this definition">¶</a></dt>
 <dd></dd></dl>
 
 <dl class="py attribute">
-<dt class="sig sig-object py" id="magicclass.utils.functions.MessageBoxMode.INFO">
-<span class="sig-name descname"><span class="pre">INFO</span></span><em class="property"> <span class="pre">=</span> <span class="pre">'info'</span></em><a class="headerlink" href="#magicclass.utils.functions.MessageBoxMode.INFO" title="Permalink to this definition">¶</a></dt>
+<dt class="sig sig-object py" id="magicclass.utils.qt.MessageBoxMode.INFO">
+<span class="sig-name descname"><span class="pre">INFO</span></span><em class="property"> <span class="pre">=</span> <span class="pre">'info'</span></em><a class="headerlink" href="#magicclass.utils.qt.MessageBoxMode.INFO" title="Permalink to this definition">¶</a></dt>
 <dd></dd></dl>
 
 <dl class="py attribute">
-<dt class="sig sig-object py" id="magicclass.utils.functions.MessageBoxMode.QUESTION">
-<span class="sig-name descname"><span class="pre">QUESTION</span></span><em class="property"> <span class="pre">=</span> <span class="pre">'question'</span></em><a class="headerlink" href="#magicclass.utils.functions.MessageBoxMode.QUESTION" title="Permalink to this definition">¶</a></dt>
+<dt class="sig sig-object py" id="magicclass.utils.qt.MessageBoxMode.QUESTION">
+<span class="sig-name descname"><span class="pre">QUESTION</span></span><em class="property"> <span class="pre">=</span> <span class="pre">'question'</span></em><a class="headerlink" href="#magicclass.utils.qt.MessageBoxMode.QUESTION" title="Permalink to this definition">¶</a></dt>
 <dd></dd></dl>
 
 <dl class="py attribute">
-<dt class="sig sig-object py" id="magicclass.utils.functions.MessageBoxMode.WARNING">
-<span class="sig-name descname"><span class="pre">WARNING</span></span><em class="property"> <span class="pre">=</span> <span class="pre">'warn'</span></em><a class="headerlink" href="#magicclass.utils.functions.MessageBoxMode.WARNING" title="Permalink to this definition">¶</a></dt>
+<dt class="sig sig-object py" id="magicclass.utils.qt.MessageBoxMode.WARNING">
+<span class="sig-name descname"><span class="pre">WARNING</span></span><em class="property"> <span class="pre">=</span> <span class="pre">'warn'</span></em><a class="headerlink" href="#magicclass.utils.qt.MessageBoxMode.WARNING" title="Permalink to this definition">¶</a></dt>
 <dd></dd></dl>
 
 </dd></dl>
 
 <dl class="py function">
-<dt class="sig sig-object py" id="magicclass.utils.functions.extract_tooltip">
-<span class="sig-prename descclassname"><span class="pre">magicclass.utils.functions.</span></span><span class="sig-name descname"><span class="pre">extract_tooltip</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">obj</span></span><span class="p"><span class="pre">:</span></span> <span class="n"><span class="pre">Any</span></span></em><span class="sig-paren">)</span> <span class="sig-return"><span class="sig-return-icon">&#x2192;</span> <span class="sig-return-typehint"><span class="pre">str</span></span></span><a class="reference internal" href="_modules/magicclass/utils/functions.html#extract_tooltip"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#magicclass.utils.functions.extract_tooltip" title="Permalink to this definition">¶</a></dt>
-<dd><p>Extract docstring for tooltip.</p>
-</dd></dl>
-
-<dl class="py function">
-<dt class="sig sig-object py" id="magicclass.utils.functions.get_signature">
-<span class="sig-prename descclassname"><span class="pre">magicclass.utils.functions.</span></span><span class="sig-name descname"><span class="pre">get_signature</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">func</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="_modules/magicclass/utils/functions.html#get_signature"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#magicclass.utils.functions.get_signature" title="Permalink to this definition">¶</a></dt>
-<dd><p>Similar to <code class="docutils literal notranslate"><span class="pre">inspect.signature</span></code> but safely returns <code class="docutils literal notranslate"><span class="pre">Signature</span></code>.</p>
+<dt class="sig sig-object py" id="magicclass.utils.qt.move_to_screen_center">
+<span class="sig-prename descclassname"><span class="pre">magicclass.utils.qt.</span></span><span class="sig-name descname"><span class="pre">move_to_screen_center</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">qwidget</span></span><span class="p"><span class="pre">:</span></span> <span class="n"><span class="pre">PyQt5.QtWidgets.QWidget</span></span></em><span class="sig-paren">)</span> <span class="sig-return"><span class="sig-return-icon">&#x2192;</span> <span class="sig-return-typehint"><span class="pre">None</span></span></span><a class="reference internal" href="_modules/magicclass/utils/qt.html#move_to_screen_center"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#magicclass.utils.qt.move_to_screen_center" title="Permalink to this definition">¶</a></dt>
+<dd><p>Move a QWidget to the center of screen.</p>
 </dd></dl>
 
 <dl class="py function">
-<dt class="sig sig-object py" id="magicclass.utils.functions.iter_members">
-<span class="sig-prename descclassname"><span class="pre">magicclass.utils.functions.</span></span><span class="sig-name descname"><span class="pre">iter_members</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">cls</span></span><span class="p"><span class="pre">:</span></span> <span class="n"><span class="pre">type</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">exclude_prefix</span></span><span class="p"><span class="pre">:</span></span> <span class="n"><span class="pre">str</span></span> <span class="o"><span class="pre">=</span></span> <span class="default_value"><span class="pre">'__'</span></span></em><span class="sig-paren">)</span> <span class="sig-return"><span class="sig-return-icon">&#x2192;</span> <span class="sig-return-typehint"><span class="pre">Iterable</span><span class="p"><span class="pre">[</span></span><span class="pre">tuple</span><span class="p"><span class="pre">[</span></span><span class="pre">str</span><span class="p"><span class="pre">,</span> </span><span class="pre">typing.Any</span><span class="p"><span class="pre">]</span></span><span class="p"><span class="pre">]</span></span></span></span><a class="reference internal" href="_modules/magicclass/utils/functions.html#iter_members"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#magicclass.utils.functions.iter_members" title="Permalink to this definition">¶</a></dt>
-<dd><p>Iterate over all the members in the order of source code line number.
-This function is identical to inspect.getmembers except for the order
-of the results. We have to sort the name in the order of line number.</p>
-</dd></dl>
-
-<dl class="py function">
-<dt class="sig sig-object py" id="magicclass.utils.functions.open_url">
-<span class="sig-prename descclassname"><span class="pre">magicclass.utils.functions.</span></span><span class="sig-name descname"><span class="pre">open_url</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">link</span></span><span class="p"><span class="pre">:</span></span> <span class="n"><span class="pre">str</span></span></em><span class="sig-paren">)</span> <span class="sig-return"><span class="sig-return-icon">&#x2192;</span> <span class="sig-return-typehint"><span class="pre">None</span></span></span><a class="reference internal" href="_modules/magicclass/utils/functions.html#open_url"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#magicclass.utils.functions.open_url" title="Permalink to this definition">¶</a></dt>
+<dt class="sig sig-object py" id="magicclass.utils.qt.open_url">
+<span class="sig-prename descclassname"><span class="pre">magicclass.utils.qt.</span></span><span class="sig-name descname"><span class="pre">open_url</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">link</span></span><span class="p"><span class="pre">:</span></span> <span class="n"><span class="pre">str</span></span></em><span class="sig-paren">)</span> <span class="sig-return"><span class="sig-return-icon">&#x2192;</span> <span class="sig-return-typehint"><span class="pre">None</span></span></span><a class="reference internal" href="_modules/magicclass/utils/qt.html#open_url"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#magicclass.utils.qt.open_url" title="Permalink to this definition">¶</a></dt>
 <dd><p>Open the link with the default browser.</p>
 <dl class="field-list simple">
 <dt class="field-odd">Parameters</dt>
@@ -167,19 +188,25 @@ <h2>Submodules<a class="headerlink" href="#submodules" title="Permalink to this
 </dd></dl>
 
 <dl class="py function">
-<dt class="sig sig-object py" id="magicclass.utils.functions.screen_center">
-<span class="sig-prename descclassname"><span class="pre">magicclass.utils.functions.</span></span><span class="sig-name descname"><span class="pre">screen_center</span></span><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="_modules/magicclass/utils/functions.html#screen_center"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#magicclass.utils.functions.screen_center" title="Permalink to this definition">¶</a></dt>
+<dt class="sig sig-object py" id="magicclass.utils.qt.screen_center">
+<span class="sig-prename descclassname"><span class="pre">magicclass.utils.qt.</span></span><span class="sig-name descname"><span class="pre">screen_center</span></span><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="_modules/magicclass/utils/qt.html#screen_center"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#magicclass.utils.qt.screen_center" title="Permalink to this definition">¶</a></dt>
 <dd><p>Get the center coordinate of the screen.</p>
 </dd></dl>
 
 <dl class="py function">
-<dt class="sig sig-object py" id="magicclass.utils.functions.show_messagebox">
-<span class="sig-prename descclassname"><span class="pre">magicclass.utils.functions.</span></span><span class="sig-name descname"><span class="pre">show_messagebox</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">mode</span></span><span class="p"><span class="pre">:</span></span> <span class="n"><span class="pre">str</span> <span class="p"><span class="pre">|</span></span> <a class="reference internal" href="#magicclass.utils.functions.MessageBoxMode" title="magicclass.utils.functions.MessageBoxMode"><span class="pre">MessageBoxMode</span></a></span> <span class="o"><span class="pre">=</span></span> <span class="default_value"><span class="pre">MessageBoxMode.INFO</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">title</span></span><span class="p"><span class="pre">:</span></span> <span class="n"><span class="pre">str</span></span> <span class="o"><span class="pre">=</span></span> <span class="default_value"><span class="pre">None</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">text</span></span><span class="p"><span class="pre">:</span></span> <span class="n"><span class="pre">str</span></span> <span class="o"><span class="pre">=</span></span> <span class="default_value"><span class="pre">None</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">parent</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">None</span></span></em><span class="sig-paren">)</span> <span class="sig-return"><span class="sig-return-icon">&#x2192;</span> <span class="sig-return-typehint"><span class="pre">bool</span></span></span><a class="reference internal" href="_modules/magicclass/utils/functions.html#show_messagebox"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#magicclass.utils.functions.show_messagebox" title="Permalink to this definition">¶</a></dt>
+<dt class="sig sig-object py" id="magicclass.utils.qt.screen_scale">
+<span class="sig-prename descclassname"><span class="pre">magicclass.utils.qt.</span></span><span class="sig-name descname"><span class="pre">screen_scale</span></span><span class="sig-paren">(</span><span class="sig-paren">)</span> <span class="sig-return"><span class="sig-return-icon">&#x2192;</span> <span class="sig-return-typehint"><span class="pre">float</span></span></span><a class="reference internal" href="_modules/magicclass/utils/qt.html#screen_scale"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#magicclass.utils.qt.screen_scale" title="Permalink to this definition">¶</a></dt>
+<dd><p>Get the scale of main screen.</p>
+</dd></dl>
+
+<dl class="py function">
+<dt class="sig sig-object py" id="magicclass.utils.qt.show_messagebox">
+<span class="sig-prename descclassname"><span class="pre">magicclass.utils.qt.</span></span><span class="sig-name descname"><span class="pre">show_messagebox</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">mode</span></span><span class="p"><span class="pre">:</span></span> <span class="n"><span class="pre">str</span> <span class="p"><span class="pre">|</span></span> <a class="reference internal" href="#magicclass.utils.qt.MessageBoxMode" title="magicclass.utils.qt.MessageBoxMode"><span class="pre">MessageBoxMode</span></a></span> <span class="o"><span class="pre">=</span></span> <span class="default_value"><span class="pre">MessageBoxMode.INFO</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">title</span></span><span class="p"><span class="pre">:</span></span> <span class="n"><span class="pre">str</span></span> <span class="o"><span class="pre">=</span></span> <span class="default_value"><span class="pre">None</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">text</span></span><span class="p"><span class="pre">:</span></span> <span class="n"><span class="pre">str</span></span> <span class="o"><span class="pre">=</span></span> <span class="default_value"><span class="pre">None</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">parent</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">None</span></span></em><span class="sig-paren">)</span> <span class="sig-return"><span class="sig-return-icon">&#x2192;</span> <span class="sig-return-typehint"><span class="pre">bool</span></span></span><a class="reference internal" href="_modules/magicclass/utils/qt.html#show_messagebox"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#magicclass.utils.qt.show_messagebox" title="Permalink to this definition">¶</a></dt>
 <dd><p>Freeze the GUI and open a messagebox dialog.</p>
 <dl class="field-list simple">
 <dt class="field-odd">Parameters</dt>
 <dd class="field-odd"><ul class="simple">
-<li><p><strong>mode</strong> (<em>str</em><em> or </em><a class="reference internal" href="#magicclass.utils.functions.MessageBoxMode" title="magicclass.utils.functions.MessageBoxMode"><em>MessageBoxMode</em></a><em>, </em><em>default is MessageBoxMode.INFO</em>) -- Mode of message box. Must be &quot;error&quot;, &quot;warn&quot;, &quot;info&quot;, &quot;question&quot; or &quot;about&quot;.</p></li>
+<li><p><strong>mode</strong> (<em>str</em><em> or </em><a class="reference internal" href="#magicclass.utils.qt.MessageBoxMode" title="magicclass.utils.qt.MessageBoxMode"><em>MessageBoxMode</em></a><em>, </em><em>default is MessageBoxMode.INFO</em>) -- Mode of message box. Must be &quot;error&quot;, &quot;warn&quot;, &quot;info&quot;, &quot;question&quot; or &quot;about&quot;.</p></li>
 <li><p><strong>title</strong> (<em>str</em><em>, </em><em>optional</em>) -- Title of messagebox.</p></li>
 <li><p><strong>text</strong> (<em>str</em><em>, </em><em>optional</em>) -- Text in messagebox.</p></li>
 <li><p><strong>parent</strong> (<em>QWidget</em><em>, </em><em>optional</em>) -- Parent widget.</p></li>
@@ -195,8 +222,8 @@ <h2>Submodules<a class="headerlink" href="#submodules" title="Permalink to this
 </dd></dl>
 
 <dl class="py function">
-<dt class="sig sig-object py" id="magicclass.utils.functions.to_clipboard">
-<span class="sig-prename descclassname"><span class="pre">magicclass.utils.functions.</span></span><span class="sig-name descname"><span class="pre">to_clipboard</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">obj</span></span><span class="p"><span class="pre">:</span></span> <span class="n"><span class="pre">Any</span></span></em><span class="sig-paren">)</span> <span class="sig-return"><span class="sig-return-icon">&#x2192;</span> <span class="sig-return-typehint"><span class="pre">None</span></span></span><a class="reference internal" href="_modules/magicclass/utils/functions.html#to_clipboard"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#magicclass.utils.functions.to_clipboard" title="Permalink to this definition">¶</a></dt>
+<dt class="sig sig-object py" id="magicclass.utils.qt.to_clipboard">
+<span class="sig-prename descclassname"><span class="pre">magicclass.utils.qt.</span></span><span class="sig-name descname"><span class="pre">to_clipboard</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">obj</span></span></em><span class="sig-paren">)</span> <span class="sig-return"><span class="sig-return-icon">&#x2192;</span> <span class="sig-return-typehint"><span class="pre">None</span></span></span><a class="reference internal" href="_modules/magicclass/utils/qt.html#to_clipboard"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#magicclass.utils.qt.to_clipboard" title="Permalink to this definition">¶</a></dt>
 <dd><p>Copy an object of any type to the clipboard.
 You can copy text, ndarray as an image or data frame as a table data.</p>
 <dl class="field-list simple">
diff --git a/docs/magicclass.widgets.html b/docs/magicclass.widgets.html
index 74b48370..4b4d5402 100644
--- a/docs/magicclass.widgets.html
+++ b/docs/magicclass.widgets.html
@@ -4,7 +4,7 @@
   <meta charset="utf-8" /><meta name="generator" content="Docutils 0.17.1: http://docutils.sourceforge.net/" />
 
   <meta name="viewport" content="width=device-width, initial-scale=1.0" />
-  <title>magicclass.widgets package &mdash; magic-class 0.6.1 documentation</title>
+  <title>magicclass.widgets package &mdash; magic-class 0.6.2.dev0 documentation</title>
       <link rel="stylesheet" href="_static/pygments.css" type="text/css" />
       <link rel="stylesheet" href="_static/css/theme.css" type="text/css" />
       <link rel="stylesheet" href="_static/columns.css" type="text/css" />
@@ -32,7 +32,7 @@
             <a href="index.html" class="icon icon-home"> magic-class
           </a>
               <div class="version">
-                0.6.1
+                0.6.2.dev0
               </div>
 <div role="search">
   <form id="rtd-search-form" class="wy-form" action="search.html" method="get">
@@ -54,6 +54,7 @@
 <li class="toctree-l1"><a class="reference internal" href="use_wraps.html">Call Parent Methods from its Child</a></li>
 <li class="toctree-l1"><a class="reference internal" href="use_bind.html">Binding Values to Arguments</a></li>
 <li class="toctree-l1"><a class="reference internal" href="use_choices.html">Set Choices Dynamically</a></li>
+<li class="toctree-l1"><a class="reference internal" href="use_preview.html">Add Preview Functionalities</a></li>
 <li class="toctree-l1"><a class="reference internal" href="use_worker.html">Multi-threading</a></li>
 <li class="toctree-l1"><a class="reference internal" href="additional_types.html">Additional types</a></li>
 <li class="toctree-l1"><a class="reference internal" href="containers.html">Container Variations</a></li>
diff --git a/docs/magicclass.widgets.pywidgets.html b/docs/magicclass.widgets.pywidgets.html
index d535dfc1..4ea8df65 100644
--- a/docs/magicclass.widgets.pywidgets.html
+++ b/docs/magicclass.widgets.pywidgets.html
@@ -4,7 +4,7 @@
   <meta charset="utf-8" /><meta name="generator" content="Docutils 0.17.1: http://docutils.sourceforge.net/" />
 
   <meta name="viewport" content="width=device-width, initial-scale=1.0" />
-  <title>magicclass.widgets.pywidgets package &mdash; magic-class 0.6.1 documentation</title>
+  <title>magicclass.widgets.pywidgets package &mdash; magic-class 0.6.2.dev0 documentation</title>
       <link rel="stylesheet" href="_static/pygments.css" type="text/css" />
       <link rel="stylesheet" href="_static/css/theme.css" type="text/css" />
       <link rel="stylesheet" href="_static/columns.css" type="text/css" />
@@ -30,7 +30,7 @@
             <a href="index.html" class="icon icon-home"> magic-class
           </a>
               <div class="version">
-                0.6.1
+                0.6.2.dev0
               </div>
 <div role="search">
   <form id="rtd-search-form" class="wy-form" action="search.html" method="get">
@@ -52,6 +52,7 @@
 <li class="toctree-l1"><a class="reference internal" href="use_wraps.html">Call Parent Methods from its Child</a></li>
 <li class="toctree-l1"><a class="reference internal" href="use_bind.html">Binding Values to Arguments</a></li>
 <li class="toctree-l1"><a class="reference internal" href="use_choices.html">Set Choices Dynamically</a></li>
+<li class="toctree-l1"><a class="reference internal" href="use_preview.html">Add Preview Functionalities</a></li>
 <li class="toctree-l1"><a class="reference internal" href="use_worker.html">Multi-threading</a></li>
 <li class="toctree-l1"><a class="reference internal" href="additional_types.html">Additional types</a></li>
 <li class="toctree-l1"><a class="reference internal" href="containers.html">Container Variations</a></li>
diff --git a/docs/matplotlib.html b/docs/matplotlib.html
index f21fa91c..820c0bf4 100644
--- a/docs/matplotlib.html
+++ b/docs/matplotlib.html
@@ -4,7 +4,7 @@
   <meta charset="utf-8" /><meta name="generator" content="Docutils 0.17.1: http://docutils.sourceforge.net/" />
 
   <meta name="viewport" content="width=device-width, initial-scale=1.0" />
-  <title>Use Matplotlib Figure &mdash; magic-class 0.6.1 documentation</title>
+  <title>Use Matplotlib Figure &mdash; magic-class 0.6.2.dev0 documentation</title>
       <link rel="stylesheet" href="_static/pygments.css" type="text/css" />
       <link rel="stylesheet" href="_static/css/theme.css" type="text/css" />
       <link rel="stylesheet" href="_static/columns.css" type="text/css" />
@@ -31,7 +31,7 @@
             <a href="index.html" class="icon icon-home"> magic-class
           </a>
               <div class="version">
-                0.6.1
+                0.6.2.dev0
               </div>
 <div role="search">
   <form id="rtd-search-form" class="wy-form" action="search.html" method="get">
@@ -53,6 +53,7 @@
 <li class="toctree-l1"><a class="reference internal" href="use_wraps.html">Call Parent Methods from its Child</a></li>
 <li class="toctree-l1"><a class="reference internal" href="use_bind.html">Binding Values to Arguments</a></li>
 <li class="toctree-l1"><a class="reference internal" href="use_choices.html">Set Choices Dynamically</a></li>
+<li class="toctree-l1"><a class="reference internal" href="use_preview.html">Add Preview Functionalities</a></li>
 <li class="toctree-l1"><a class="reference internal" href="use_worker.html">Multi-threading</a></li>
 <li class="toctree-l1"><a class="reference internal" href="additional_types.html">Additional types</a></li>
 <li class="toctree-l1"><a class="reference internal" href="containers.html">Container Variations</a></li>
diff --git a/docs/modules.html b/docs/modules.html
index 7a1eacc5..a1473822 100644
--- a/docs/modules.html
+++ b/docs/modules.html
@@ -4,7 +4,7 @@
   <meta charset="utf-8" /><meta name="generator" content="Docutils 0.17.1: http://docutils.sourceforge.net/" />
 
   <meta name="viewport" content="width=device-width, initial-scale=1.0" />
-  <title>magicclass &mdash; magic-class 0.6.1 documentation</title>
+  <title>magicclass &mdash; magic-class 0.6.2.dev0 documentation</title>
       <link rel="stylesheet" href="_static/pygments.css" type="text/css" />
       <link rel="stylesheet" href="_static/css/theme.css" type="text/css" />
       <link rel="stylesheet" href="_static/columns.css" type="text/css" />
@@ -29,7 +29,7 @@
             <a href="index.html" class="icon icon-home"> magic-class
           </a>
               <div class="version">
-                0.6.1
+                0.6.2.dev0
               </div>
 <div role="search">
   <form id="rtd-search-form" class="wy-form" action="search.html" method="get">
@@ -51,6 +51,7 @@
 <li class="toctree-l1"><a class="reference internal" href="use_wraps.html">Call Parent Methods from its Child</a></li>
 <li class="toctree-l1"><a class="reference internal" href="use_bind.html">Binding Values to Arguments</a></li>
 <li class="toctree-l1"><a class="reference internal" href="use_choices.html">Set Choices Dynamically</a></li>
+<li class="toctree-l1"><a class="reference internal" href="use_preview.html">Add Preview Functionalities</a></li>
 <li class="toctree-l1"><a class="reference internal" href="use_worker.html">Multi-threading</a></li>
 <li class="toctree-l1"><a class="reference internal" href="additional_types.html">Additional types</a></li>
 <li class="toctree-l1"><a class="reference internal" href="containers.html">Container Variations</a></li>
@@ -121,6 +122,7 @@ <h1>magicclass<a class="headerlink" href="#magicclass" title="Permalink to this
 <li class="toctree-l3"><a class="reference internal" href="magicclass.utils.html">magicclass.utils package</a><ul>
 <li class="toctree-l4"><a class="reference internal" href="magicclass.utils.html#submodules">Submodules</a></li>
 <li class="toctree-l4"><a class="reference internal" href="magicclass.utils.html#module-magicclass.utils.functions">magicclass.utils.functions module</a></li>
+<li class="toctree-l4"><a class="reference internal" href="magicclass.utils.html#module-magicclass.utils.qt">magicclass.utils.qt module</a></li>
 <li class="toctree-l4"><a class="reference internal" href="magicclass.utils.html#module-magicclass.utils">Module contents</a></li>
 </ul>
 </li>
diff --git a/docs/nest.html b/docs/nest.html
index 392b99a5..1cec89ae 100644
--- a/docs/nest.html
+++ b/docs/nest.html
@@ -4,7 +4,7 @@
   <meta charset="utf-8" /><meta name="generator" content="Docutils 0.17.1: http://docutils.sourceforge.net/" />
 
   <meta name="viewport" content="width=device-width, initial-scale=1.0" />
-  <title>Nest magic-classes &mdash; magic-class 0.6.1 documentation</title>
+  <title>Nest magic-classes &mdash; magic-class 0.6.2.dev0 documentation</title>
       <link rel="stylesheet" href="_static/pygments.css" type="text/css" />
       <link rel="stylesheet" href="_static/css/theme.css" type="text/css" />
       <link rel="stylesheet" href="_static/columns.css" type="text/css" />
@@ -31,7 +31,7 @@
             <a href="index.html" class="icon icon-home"> magic-class
           </a>
               <div class="version">
-                0.6.1
+                0.6.2.dev0
               </div>
 <div role="search">
   <form id="rtd-search-form" class="wy-form" action="search.html" method="get">
@@ -58,6 +58,7 @@
 <li class="toctree-l1"><a class="reference internal" href="use_wraps.html">Call Parent Methods from its Child</a></li>
 <li class="toctree-l1"><a class="reference internal" href="use_bind.html">Binding Values to Arguments</a></li>
 <li class="toctree-l1"><a class="reference internal" href="use_choices.html">Set Choices Dynamically</a></li>
+<li class="toctree-l1"><a class="reference internal" href="use_preview.html">Add Preview Functionalities</a></li>
 <li class="toctree-l1"><a class="reference internal" href="use_worker.html">Multi-threading</a></li>
 <li class="toctree-l1"><a class="reference internal" href="additional_types.html">Additional types</a></li>
 <li class="toctree-l1"><a class="reference internal" href="containers.html">Container Variations</a></li>
diff --git a/docs/objects.inv b/docs/objects.inv
index 111c02bb..80db9e78 100644
Binary files a/docs/objects.inv and b/docs/objects.inv differ
diff --git a/docs/options.html b/docs/options.html
index e70b0675..90c09ef5 100644
--- a/docs/options.html
+++ b/docs/options.html
@@ -4,7 +4,7 @@
   <meta charset="utf-8" /><meta name="generator" content="Docutils 0.17.1: http://docutils.sourceforge.net/" />
 
   <meta name="viewport" content="width=device-width, initial-scale=1.0" />
-  <title>Options in magic-class &mdash; magic-class 0.6.1 documentation</title>
+  <title>Options in magic-class &mdash; magic-class 0.6.2.dev0 documentation</title>
       <link rel="stylesheet" href="_static/pygments.css" type="text/css" />
       <link rel="stylesheet" href="_static/css/theme.css" type="text/css" />
       <link rel="stylesheet" href="_static/columns.css" type="text/css" />
@@ -31,7 +31,7 @@
             <a href="index.html" class="icon icon-home"> magic-class
           </a>
               <div class="version">
-                0.6.1
+                0.6.2.dev0
               </div>
 <div role="search">
   <form id="rtd-search-form" class="wy-form" action="search.html" method="get">
@@ -53,6 +53,7 @@
 <li class="toctree-l1"><a class="reference internal" href="use_wraps.html">Call Parent Methods from its Child</a></li>
 <li class="toctree-l1"><a class="reference internal" href="use_bind.html">Binding Values to Arguments</a></li>
 <li class="toctree-l1"><a class="reference internal" href="use_choices.html">Set Choices Dynamically</a></li>
+<li class="toctree-l1"><a class="reference internal" href="use_preview.html">Add Preview Functionalities</a></li>
 <li class="toctree-l1"><a class="reference internal" href="use_worker.html">Multi-threading</a></li>
 <li class="toctree-l1"><a class="reference internal" href="additional_types.html">Additional types</a></li>
 <li class="toctree-l1"><a class="reference internal" href="containers.html">Container Variations</a></li>
diff --git a/docs/py-modindex.html b/docs/py-modindex.html
index ac6a4e66..3ded5b14 100644
--- a/docs/py-modindex.html
+++ b/docs/py-modindex.html
@@ -3,7 +3,7 @@
 <head>
   <meta charset="utf-8" />
   <meta name="viewport" content="width=device-width, initial-scale=1.0" />
-  <title>Python Module Index &mdash; magic-class 0.6.1 documentation</title>
+  <title>Python Module Index &mdash; magic-class 0.6.2.dev0 documentation</title>
       <link rel="stylesheet" href="_static/pygments.css" type="text/css" />
       <link rel="stylesheet" href="_static/css/theme.css" type="text/css" />
       <link rel="stylesheet" href="_static/columns.css" type="text/css" />
@@ -31,7 +31,7 @@
             <a href="index.html" class="icon icon-home"> magic-class
           </a>
               <div class="version">
-                0.6.1
+                0.6.2.dev0
               </div>
 <div role="search">
   <form id="rtd-search-form" class="wy-form" action="search.html" method="get">
@@ -53,6 +53,7 @@
 <li class="toctree-l1"><a class="reference internal" href="use_wraps.html">Call Parent Methods from its Child</a></li>
 <li class="toctree-l1"><a class="reference internal" href="use_bind.html">Binding Values to Arguments</a></li>
 <li class="toctree-l1"><a class="reference internal" href="use_choices.html">Set Choices Dynamically</a></li>
+<li class="toctree-l1"><a class="reference internal" href="use_preview.html">Add Preview Functionalities</a></li>
 <li class="toctree-l1"><a class="reference internal" href="use_worker.html">Multi-threading</a></li>
 <li class="toctree-l1"><a class="reference internal" href="additional_types.html">Additional types</a></li>
 <li class="toctree-l1"><a class="reference internal" href="containers.html">Container Variations</a></li>
@@ -290,6 +291,11 @@ <h1>Python Module Index</h1>
        <td>&#160;&#160;&#160;
        <a href="magicclass.utils.html#module-magicclass.utils.functions"><code class="xref">magicclass.utils.functions</code></a></td><td>
        <em></em></td></tr>
+     <tr class="cg-1">
+       <td></td>
+       <td>&#160;&#160;&#160;
+       <a href="magicclass.utils.html#module-magicclass.utils.qt"><code class="xref">magicclass.utils.qt</code></a></td><td>
+       <em></em></td></tr>
      <tr class="cg-1">
        <td></td>
        <td>&#160;&#160;&#160;
diff --git a/docs/pyqtgraph.html b/docs/pyqtgraph.html
index d568694e..9714df23 100644
--- a/docs/pyqtgraph.html
+++ b/docs/pyqtgraph.html
@@ -4,7 +4,7 @@
   <meta charset="utf-8" /><meta name="generator" content="Docutils 0.17.1: http://docutils.sourceforge.net/" />
 
   <meta name="viewport" content="width=device-width, initial-scale=1.0" />
-  <title>Use PyQtGraph Canvas &mdash; magic-class 0.6.1 documentation</title>
+  <title>Use PyQtGraph Canvas &mdash; magic-class 0.6.2.dev0 documentation</title>
       <link rel="stylesheet" href="_static/pygments.css" type="text/css" />
       <link rel="stylesheet" href="_static/css/theme.css" type="text/css" />
       <link rel="stylesheet" href="_static/columns.css" type="text/css" />
@@ -31,7 +31,7 @@
             <a href="index.html" class="icon icon-home"> magic-class
           </a>
               <div class="version">
-                0.6.1
+                0.6.2.dev0
               </div>
 <div role="search">
   <form id="rtd-search-form" class="wy-form" action="search.html" method="get">
@@ -53,6 +53,7 @@
 <li class="toctree-l1"><a class="reference internal" href="use_wraps.html">Call Parent Methods from its Child</a></li>
 <li class="toctree-l1"><a class="reference internal" href="use_bind.html">Binding Values to Arguments</a></li>
 <li class="toctree-l1"><a class="reference internal" href="use_choices.html">Set Choices Dynamically</a></li>
+<li class="toctree-l1"><a class="reference internal" href="use_preview.html">Add Preview Functionalities</a></li>
 <li class="toctree-l1"><a class="reference internal" href="use_worker.html">Multi-threading</a></li>
 <li class="toctree-l1"><a class="reference internal" href="additional_types.html">Additional types</a></li>
 <li class="toctree-l1"><a class="reference internal" href="containers.html">Container Variations</a></li>
diff --git a/docs/quick_start.html b/docs/quick_start.html
index 31608140..5dee9dcb 100644
--- a/docs/quick_start.html
+++ b/docs/quick_start.html
@@ -4,7 +4,7 @@
   <meta charset="utf-8" /><meta name="generator" content="Docutils 0.17.1: http://docutils.sourceforge.net/" />
 
   <meta name="viewport" content="width=device-width, initial-scale=1.0" />
-  <title>Quick Start &mdash; magic-class 0.6.1 documentation</title>
+  <title>Quick Start &mdash; magic-class 0.6.2.dev0 documentation</title>
       <link rel="stylesheet" href="_static/pygments.css" type="text/css" />
       <link rel="stylesheet" href="_static/css/theme.css" type="text/css" />
       <link rel="stylesheet" href="_static/columns.css" type="text/css" />
@@ -31,7 +31,7 @@
             <a href="index.html" class="icon icon-home"> magic-class
           </a>
               <div class="version">
-                0.6.1
+                0.6.2.dev0
               </div>
 <div role="search">
   <form id="rtd-search-form" class="wy-form" action="search.html" method="get">
@@ -64,6 +64,7 @@
 <li class="toctree-l1"><a class="reference internal" href="use_wraps.html">Call Parent Methods from its Child</a></li>
 <li class="toctree-l1"><a class="reference internal" href="use_bind.html">Binding Values to Arguments</a></li>
 <li class="toctree-l1"><a class="reference internal" href="use_choices.html">Set Choices Dynamically</a></li>
+<li class="toctree-l1"><a class="reference internal" href="use_preview.html">Add Preview Functionalities</a></li>
 <li class="toctree-l1"><a class="reference internal" href="use_worker.html">Multi-threading</a></li>
 <li class="toctree-l1"><a class="reference internal" href="additional_types.html">Additional types</a></li>
 <li class="toctree-l1"><a class="reference internal" href="containers.html">Container Variations</a></li>
diff --git a/docs/search.html b/docs/search.html
index b2e53fba..0157ef9e 100644
--- a/docs/search.html
+++ b/docs/search.html
@@ -3,7 +3,7 @@
 <head>
   <meta charset="utf-8" />
   <meta name="viewport" content="width=device-width, initial-scale=1.0" />
-  <title>Search &mdash; magic-class 0.6.1 documentation</title>
+  <title>Search &mdash; magic-class 0.6.2.dev0 documentation</title>
       <link rel="stylesheet" href="_static/pygments.css" type="text/css" />
       <link rel="stylesheet" href="_static/css/theme.css" type="text/css" />
       <link rel="stylesheet" href="_static/columns.css" type="text/css" />
@@ -31,7 +31,7 @@
             <a href="index.html" class="icon icon-home"> magic-class
           </a>
               <div class="version">
-                0.6.1
+                0.6.2.dev0
               </div>
 <div role="search">
   <form id="rtd-search-form" class="wy-form" action="#" method="get">
@@ -53,6 +53,7 @@
 <li class="toctree-l1"><a class="reference internal" href="use_wraps.html">Call Parent Methods from its Child</a></li>
 <li class="toctree-l1"><a class="reference internal" href="use_bind.html">Binding Values to Arguments</a></li>
 <li class="toctree-l1"><a class="reference internal" href="use_choices.html">Set Choices Dynamically</a></li>
+<li class="toctree-l1"><a class="reference internal" href="use_preview.html">Add Preview Functionalities</a></li>
 <li class="toctree-l1"><a class="reference internal" href="use_worker.html">Multi-threading</a></li>
 <li class="toctree-l1"><a class="reference internal" href="additional_types.html">Additional types</a></li>
 <li class="toctree-l1"><a class="reference internal" href="containers.html">Container Variations</a></li>
diff --git a/docs/searchindex.js b/docs/searchindex.js
index 4581f24a..e8d2d357 100644
--- a/docs/searchindex.js
+++ b/docs/searchindex.js
@@ -1,1 +1,1 @@
-Search.setIndex({docnames:["additional_types","api","class_inheritance","containers","customize_macro","freewidget","index","keybinding","magicclass","magicclass.ext","magicclass.ext.napari","magicclass.ext.pyqtgraph","magicclass.ext.pyqtgraph.tests","magicclass.ext.pyvista","magicclass.ext.qtconsole","magicclass.ext.vispy","magicclass.gui","magicclass.stylesheets","magicclass.utils","magicclass.widgets","magicclass.widgets.pywidgets","matplotlib","modules","nest","options","pyqtgraph","quick_start","use_bind","use_choices","use_field","use_worker","use_wraps","vispy"],envversion:{"sphinx.domains.c":2,"sphinx.domains.changeset":1,"sphinx.domains.citation":1,"sphinx.domains.cpp":4,"sphinx.domains.index":1,"sphinx.domains.javascript":2,"sphinx.domains.math":2,"sphinx.domains.python":3,"sphinx.domains.rst":2,"sphinx.domains.std":2,"sphinx.ext.viewcode":1,sphinx:56},filenames:["additional_types.rst","api.rst","class_inheritance.rst","containers.rst","customize_macro.rst","freewidget.rst","index.rst","keybinding.rst","magicclass.rst","magicclass.ext.rst","magicclass.ext.napari.rst","magicclass.ext.pyqtgraph.rst","magicclass.ext.pyqtgraph.tests.rst","magicclass.ext.pyvista.rst","magicclass.ext.qtconsole.rst","magicclass.ext.vispy.rst","magicclass.gui.rst","magicclass.stylesheets.rst","magicclass.utils.rst","magicclass.widgets.rst","magicclass.widgets.pywidgets.rst","matplotlib.rst","modules.rst","nest.rst","options.rst","pyqtgraph.rst","quick_start.rst","use_bind.rst","use_choices.rst","use_field.rst","use_worker.rst","use_wraps.rst","vispy.rst"],objects:{"":{magicclass:[8,0,0,"-"]},"magicclass.core":{MagicClassFactory:[8,1,1,""],Parameters:[8,1,1,""],build_help:[8,3,1,""],get_function_gui:[8,3,1,""],magicclass:[8,3,1,""],magiccontext:[8,3,1,""],magicmenu:[8,3,1,""],magictoolbar:[8,3,1,""],redo:[8,3,1,""]},"magicclass.core.MagicClassFactory":{as_magicclass:[8,2,1,""],as_magiccontext:[8,2,1,""],as_magicmenu:[8,2,1,""],as_magictoolbar:[8,2,1,""]},"magicclass.core.Parameters":{as_dict:[8,2,1,""]},"magicclass.ext":{napari:[10,0,0,"-"],pyqtgraph:[11,0,0,"-"],pyvista:[13,0,0,"-"],qtconsole:[14,0,0,"-"],vispy:[15,0,0,"-"]},"magicclass.ext.napari":{NapariCanvas:[10,1,1,""],to_napari:[10,3,1,""],utils:[10,0,0,"-"],widgets:[10,0,0,"-"]},"magicclass.ext.napari.utils":{process_worker:[10,3,1,""],to_napari:[10,3,1,""]},"magicclass.ext.napari.widgets":{NapariCanvas:[10,1,1,""]},"magicclass.ext.pyqtgraph":{Qt2YPlotCanvas:[11,1,1,""],QtImageCanvas:[11,1,1,""],QtMultiImageCanvas:[11,1,1,""],QtMultiPlotCanvas:[11,1,1,""],QtPlotCanvas:[11,1,1,""],components:[11,0,0,"-"],graph_items:[11,0,0,"-"],mouse_event:[11,0,0,"-"],tests:[12,0,0,"-"],widgets:[11,0,0,"-"]},"magicclass.ext.pyqtgraph.Qt2YPlotCanvas":{updateViews:[11,2,1,""]},"magicclass.ext.pyqtgraph.QtImageCanvas":{background_color:[11,4,1,""]},"magicclass.ext.pyqtgraph.components":{GraphicComponent:[11,1,1,""],Legend:[11,1,1,""],Region:[11,1,1,""],Roi:[11,1,1,""],ScaleBar:[11,1,1,""],TextItem:[11,1,1,""]},"magicclass.ext.pyqtgraph.components.GraphicComponent":{"native":[11,5,1,""],update:[11,2,1,""],visible:[11,4,1,""]},"magicclass.ext.pyqtgraph.components.Legend":{"native":[11,5,1,""],background_color:[11,4,1,""],border:[11,4,1,""],color:[11,4,1,""],size:[11,4,1,""]},"magicclass.ext.pyqtgraph.components.Region":{"native":[11,5,1,""],changed:[11,5,1,""],color:[11,4,1,""],enabled:[11,4,1,""],value:[11,4,1,""]},"magicclass.ext.pyqtgraph.components.Roi":{"native":[11,5,1,""],border:[11,4,1,""]},"magicclass.ext.pyqtgraph.components.ScaleBar":{"native":[11,5,1,""],color:[11,4,1,""],unit:[11,4,1,""]},"magicclass.ext.pyqtgraph.components.TextItem":{"native":[11,5,1,""],anchor:[11,4,1,""],background_color:[11,4,1,""],border:[11,4,1,""],color:[11,4,1,""],pos:[11,4,1,""],text:[11,4,1,""]},"magicclass.ext.pyqtgraph.graph_items":{BarPlot:[11,1,1,""],Curve:[11,1,1,""],FillBetween:[11,1,1,""],Histogram:[11,1,1,""],InfLine:[11,1,1,""],LayerItem:[11,1,1,""],PlotDataLayer:[11,1,1,""],Scatter:[11,1,1,""],TextGroup:[11,1,1,""],TextItemView:[11,1,1,""]},"magicclass.ext.pyqtgraph.graph_items.BarPlot":{"native":[11,5,1,""],edge_color:[11,4,1,""],face_color:[11,4,1,""],xdata:[11,4,1,""],ydata:[11,4,1,""]},"magicclass.ext.pyqtgraph.graph_items.Curve":{"native":[11,5,1,""],edge_color:[11,4,1,""],face_color:[11,4,1,""],size:[11,4,1,""],symbol:[11,4,1,""]},"magicclass.ext.pyqtgraph.graph_items.FillBetween":{"native":[11,5,1,""],edge_color:[11,4,1,""],face_color:[11,4,1,""],linestyle:[11,4,1,""],linewidth:[11,4,1,""],ls:[11,4,1,""],lw:[11,4,1,""],name:[11,4,1,""]},"magicclass.ext.pyqtgraph.graph_items.Histogram":{"native":[11,5,1,""],set_hist:[11,2,1,""]},"magicclass.ext.pyqtgraph.graph_items.InfLine":{"native":[11,5,1,""],angle:[11,4,1,""],color:[11,4,1,""],edge_color:[11,4,1,""],intercept:[11,4,1,""],linestyle:[11,4,1,""],linewidth:[11,4,1,""],ls:[11,4,1,""],lw:[11,4,1,""],name:[11,4,1,""],pos:[11,4,1,""],slope:[11,4,1,""]},"magicclass.ext.pyqtgraph.graph_items.LayerItem":{"native":[11,5,1,""],visible:[11,4,1,""],zorder:[11,4,1,""]},"magicclass.ext.pyqtgraph.graph_items.PlotDataLayer":{"native":[11,5,1,""],add:[11,2,1,""],color:[11,4,1,""],edge_color:[11,4,1,""],face_color:[11,4,1,""],linestyle:[11,4,1,""],linewidth:[11,4,1,""],ls:[11,4,1,""],lw:[11,4,1,""],name:[11,4,1,""],ndata:[11,4,1,""],remove:[11,2,1,""],xdata:[11,4,1,""],ydata:[11,4,1,""]},"magicclass.ext.pyqtgraph.graph_items.Scatter":{"native":[11,5,1,""],size:[11,4,1,""],symbol:[11,4,1,""]},"magicclass.ext.pyqtgraph.graph_items.TextGroup":{"native":[11,5,1,""],anchor:[11,4,1,""],background_color:[11,4,1,""],border:[11,4,1,""],color:[11,4,1,""],text:[11,4,1,""],text_items:[11,4,1,""],xdata:[11,4,1,""],ydata:[11,4,1,""]},"magicclass.ext.pyqtgraph.graph_items.TextItemView":{anchor:[11,4,1,""],background_color:[11,4,1,""],border:[11,4,1,""],color:[11,4,1,""],text:[11,4,1,""]},"magicclass.ext.pyqtgraph.mouse_event":{MouseClickEvent:[11,1,1,""]},"magicclass.ext.pyqtgraph.mouse_event.MouseClickEvent":{buttons:[11,2,1,""],lastPos:[11,2,1,""],modifiers:[11,2,1,""],pos:[11,2,1,""]},"magicclass.ext.pyqtgraph.tests":{test_qtgraph:[12,0,0,"-"]},"magicclass.ext.pyqtgraph.tests.test_qtgraph":{test_plot_canvas:[12,3,1,""]},"magicclass.ext.pyqtgraph.widgets":{HasBackground:[11,1,1,""],HasDataItems:[11,1,1,""],HasViewBox:[11,1,1,""],ImageItem:[11,1,1,""],LayerList:[11,1,1,""],PlotItem:[11,1,1,""],Qt2YPlotCanvas:[11,1,1,""],QtImageCanvas:[11,1,1,""],QtMultiImageCanvas:[11,1,1,""],QtMultiPlotCanvas:[11,1,1,""],QtPlotCanvas:[11,1,1,""],SimpleViewBox:[11,1,1,""],ViewBoxExt:[11,1,1,""]},"magicclass.ext.pyqtgraph.widgets.HasBackground":{background_color:[11,4,1,""]},"magicclass.ext.pyqtgraph.widgets.HasDataItems":{add_bar:[11,2,1,""],add_curve:[11,2,1,""],add_fillbetween:[11,2,1,""],add_hist:[11,2,1,""],add_infline:[11,2,1,""],add_scatter:[11,2,1,""],add_text:[11,2,1,""],layers:[11,4,1,""]},"magicclass.ext.pyqtgraph.widgets.HasViewBox":{border:[11,4,1,""],enabled:[11,4,1,""],interactive:[11,4,1,""],xlim:[11,4,1,""],ylim:[11,4,1,""]},"magicclass.ext.pyqtgraph.widgets.ImageItem":{cmap:[11,4,1,""],contrast_limits:[11,4,1,""],image:[11,4,1,""],lock_contrast_limits:[11,4,1,""],scale_bar:[11,4,1,""],text_overlay:[11,4,1,""],title:[11,4,1,""],xlabel:[11,4,1,""],ylabel:[11,4,1,""]},"magicclass.ext.pyqtgraph.widgets.LayerList":{append:[11,2,1,""],clear:[11,2,1,""],insert:[11,2,1,""],move:[11,2,1,""],swap:[11,2,1,""]},"magicclass.ext.pyqtgraph.widgets.PlotItem":{legend:[11,4,1,""],region:[11,4,1,""],title:[11,4,1,""],xlabel:[11,4,1,""],ylabel:[11,4,1,""]},"magicclass.ext.pyqtgraph.widgets.Qt2YPlotCanvas":{updateViews:[11,2,1,""]},"magicclass.ext.pyqtgraph.widgets.QtImageCanvas":{background_color:[11,4,1,""]},"magicclass.ext.pyqtgraph.widgets.ViewBoxExt":{hoverEvent:[11,2,1,""]},"magicclass.ext.pyvista":{PyVistaCanvas:[13,1,1,""],widgets:[13,0,0,"-"]},"magicclass.ext.pyvista.PyVistaCanvas":{add_mesh:[13,2,1,""],add_points:[13,2,1,""]},"magicclass.ext.pyvista.widgets":{PyVistaCanvas:[13,1,1,""]},"magicclass.ext.pyvista.widgets.PyVistaCanvas":{add_mesh:[13,2,1,""],add_points:[13,2,1,""]},"magicclass.ext.qtconsole":{QtConsole:[14,1,1,""],widgets:[14,0,0,"-"]},"magicclass.ext.qtconsole.QtConsole":{central_widget:[14,5,1,""],execute:[14,2,1,""],executed:[14,5,1,""],name:[14,5,1,""],value:[14,4,1,""]},"magicclass.ext.qtconsole.widgets":{QtConsole:[14,1,1,""]},"magicclass.ext.qtconsole.widgets.QtConsole":{execute:[14,2,1,""],executed:[14,5,1,""],value:[14,4,1,""]},"magicclass.ext.vispy":{image:[15,0,0,"-"],widgets3d:[15,0,0,"-"],widgets:[15,0,0,"-"]},"magicclass.ext.vispy.image":{Image:[15,1,1,""],IsoSurface:[15,1,1,""],LayerItem:[15,1,1,""]},"magicclass.ext.vispy.image.Image":{attenuation:[15,4,1,""],contrast_limits:[15,4,1,""],data:[15,4,1,""],gamma:[15,4,1,""],interpolation:[15,4,1,""],iso_threshold:[15,4,1,""],rendering:[15,4,1,""]},"magicclass.ext.vispy.image.IsoSurface":{contrast_limits:[15,4,1,""],data:[15,4,1,""],edge_color:[15,4,1,""],face_color:[15,4,1,""],iso_threshold:[15,4,1,""]},"magicclass.ext.vispy.image.LayerItem":{visible:[15,4,1,""]},"magicclass.ext.vispy.widgets":{VispyPlotCanvas:[15,1,1,""]},"magicclass.ext.vispy.widgets.VispyPlotCanvas":{add_curve:[15,2,1,""],layers:[15,4,1,""]},"magicclass.ext.vispy.widgets3d":{Vispy3DCanvas:[15,1,1,""]},"magicclass.ext.vispy.widgets3d.Vispy3DCanvas":{add_image:[15,2,1,""],add_isosurface:[15,2,1,""],camera:[15,4,1,""],layers:[15,4,1,""]},"magicclass.fields":{MagicField:[8,1,1,""],MagicValueField:[8,1,1,""],field:[8,3,1,""],vfield:[8,3,1,""]},"magicclass.fields.MagicField":{"default":[8,5,1,""],annotation:[8,4,1,""],as_getter:[8,2,1,""],compare:[8,5,1,""],connect:[8,2,1,""],copy:[8,2,1,""],default_factory:[8,5,1,""],disconnect:[8,2,1,""],get_action:[8,2,1,""],get_widget:[8,2,1,""],hash:[8,5,1,""],init:[8,5,1,""],metadata:[8,5,1,""],name:[8,5,1,""],not_ready:[8,2,1,""],options:[8,4,1,""],ready:[8,2,1,""],repr:[8,5,1,""],to_action:[8,2,1,""],to_widget:[8,2,1,""],type:[8,5,1,""],value:[8,4,1,""],widget_type:[8,4,1,""],wraps:[8,2,1,""]},"magicclass.fields.MagicValueField":{"default":[8,5,1,""],callbacks:[8,5,1,""],compare:[8,5,1,""],default_factory:[8,5,1,""],get_widget:[8,2,1,""],guis:[8,5,1,""],hash:[8,5,1,""],init:[8,5,1,""],metadata:[8,5,1,""],name:[8,5,1,""],parent_class:[8,5,1,""],repr:[8,5,1,""],type:[8,5,1,""]},"magicclass.gui":{class_gui:[16,0,0,"-"],keybinding:[16,0,0,"-"],menu_gui:[16,0,0,"-"],mgui_ext:[16,0,0,"-"],toolbar:[16,0,0,"-"],utils:[16,0,0,"-"]},"magicclass.gui.class_gui":{ClassGuiBase:[16,1,1,""],make_gui:[16,3,1,""]},"magicclass.gui.class_gui.ClassGuiBase":{"native":[16,5,1,""]},"magicclass.gui.keybinding":{Key:[16,1,1,""],as_shortcut:[16,3,1,""],ismodifier:[16,3,1,""],parse_key_combo:[16,3,1,""],strs2keycombo:[16,3,1,""]},"magicclass.gui.keybinding.Key":{A:[16,5,1,""],Alt:[16,5,1,""],Ampersand:[16,5,1,""],Apostrophe:[16,5,1,""],Asterisk:[16,5,1,""],At:[16,5,1,""],B:[16,5,1,""],Backspace:[16,5,1,""],C:[16,5,1,""],Colon:[16,5,1,""],Comma:[16,5,1,""],Ctrl:[16,5,1,""],D:[16,5,1,""],Delete:[16,5,1,""],Dollar:[16,5,1,""],Down:[16,5,1,""],E:[16,5,1,""],Equal:[16,5,1,""],Exclam:[16,5,1,""],F10:[16,5,1,""],F11:[16,5,1,""],F12:[16,5,1,""],F1:[16,5,1,""],F2:[16,5,1,""],F3:[16,5,1,""],F4:[16,5,1,""],F5:[16,5,1,""],F6:[16,5,1,""],F7:[16,5,1,""],F8:[16,5,1,""],F9:[16,5,1,""],F:[16,5,1,""],G:[16,5,1,""],Greater:[16,5,1,""],H:[16,5,1,""],I:[16,5,1,""],J:[16,5,1,""],K:[16,5,1,""],L:[16,5,1,""],Left:[16,5,1,""],Less:[16,5,1,""],M:[16,5,1,""],Meta:[16,5,1,""],Minus:[16,5,1,""],N:[16,5,1,""],O:[16,5,1,""],P:[16,5,1,""],PageDown:[16,5,1,""],PageUp:[16,5,1,""],ParenLeft:[16,5,1,""],ParenRight:[16,5,1,""],Percent:[16,5,1,""],Period:[16,5,1,""],Plus:[16,5,1,""],Q:[16,5,1,""],Question:[16,5,1,""],R:[16,5,1,""],Right:[16,5,1,""],S:[16,5,1,""],Semicolon:[16,5,1,""],Shift:[16,5,1,""],Slash:[16,5,1,""],T:[16,5,1,""],Tab:[16,5,1,""],U:[16,5,1,""],Up:[16,5,1,""],V:[16,5,1,""],W:[16,5,1,""],X:[16,5,1,""],Y:[16,5,1,""],Z:[16,5,1,""],to_qtkey:[16,2,1,""],to_qtmodifier:[16,2,1,""]},"magicclass.gui.menu_gui":{ContextMenuGui:[16,1,1,""],MenuGui:[16,1,1,""],MenuGuiBase:[16,1,1,""],insert_action_like:[16,3,1,""]},"magicclass.gui.menu_gui.MenuGuiBase":{insert:[16,2,1,""]},"magicclass.gui.mgui_ext":{AbstractAction:[16,1,1,""],Action:[16,1,1,""],PushButtonPlus:[16,1,1,""],ToolButtonPlus:[16,1,1,""],WidgetAction:[16,1,1,""],mguiLike:[16,1,1,""]},"magicclass.gui.mgui_ext.AbstractAction":{"native":[16,5,1,""],changed:[16,5,1,""],from_options:[16,2,1,""],support_value:[16,5,1,""],value:[16,4,1,""]},"magicclass.gui.mgui_ext.Action":{"native":[16,5,1,""],from_options:[16,2,1,""],icon_path:[16,4,1,""],reset_choices:[16,2,1,""],running:[16,4,1,""],set_shortcut:[16,2,1,""],support_value:[16,5,1,""],text:[16,4,1,""],value:[16,4,1,""]},"magicclass.gui.mgui_ext.PushButtonPlus":{background_color:[16,4,1,""],font_color:[16,4,1,""],font_family:[16,4,1,""],font_size:[16,4,1,""],from_options:[16,2,1,""],icon_path:[16,4,1,""],icon_size:[16,4,1,""],reset_choices:[16,2,1,""],running:[16,4,1,""],set_shortcut:[16,2,1,""]},"magicclass.gui.mgui_ext.ToolButtonPlus":{reset_choices:[16,2,1,""],set_menu:[16,2,1,""],set_shortcut:[16,2,1,""]},"magicclass.gui.mgui_ext.WidgetAction":{"native":[16,5,1,""],render:[16,2,1,""],support_value:[16,5,1,""],text:[16,4,1,""],value:[16,4,1,""],widget_type:[16,4,1,""]},"magicclass.gui.mgui_ext.mguiLike":{"native":[16,5,1,""],enabled:[16,4,1,""],name:[16,4,1,""],parent:[16,4,1,""],tooltip:[16,4,1,""],visible:[16,4,1,""],widget_type:[16,4,1,""]},"magicclass.gui.toolbar":{QtTabToolBar:[16,1,1,""],ToolBarGui:[16,1,1,""]},"magicclass.gui.toolbar.QtTabToolBar":{addToolBar:[16,2,1,""]},"magicclass.gui.toolbar.ToolBarGui":{insert:[16,2,1,""],reset_choices:[16,2,1,""]},"magicclass.gui.utils":{MagicClassConstructionError:[16,6,1,""],copy_class:[16,3,1,""],define_callback:[16,3,1,""],get_parameters:[16,3,1,""],set_context_menu:[16,3,1,""]},"magicclass.help":{HelpWidget:[8,1,1,""],UiBoundTreeItem:[8,1,1,""],get_help_info:[8,3,1,""],get_keymap:[8,3,1,""]},"magicclass.help.UiBoundTreeItem":{child:[8,2,1,""],takeChild:[8,2,1,""],ui:[8,4,1,""]},"magicclass.qthreading":{Callbacks:[8,1,1,""],NapariProgressBar:[8,1,1,""],close_pbar:[8,3,1,""],increment:[8,3,1,""],init_pbar:[8,3,1,""],thread_worker:[8,1,1,""]},"magicclass.qthreading.Callbacks":{callbacks:[8,4,1,""],connect:[8,2,1,""],disconnect:[8,2,1,""]},"magicclass.qthreading.NapariProgressBar":{close:[8,2,1,""],label:[8,4,1,""],max:[8,4,1,""],show:[8,2,1,""],value:[8,4,1,""],visible:[8,4,1,""]},"magicclass.qthreading.thread_worker":{aborted:[8,4,1,""],errored:[8,4,1,""],finished:[8,4,1,""],not_ready:[8,4,1,""],returned:[8,4,1,""],started:[8,4,1,""],yielded:[8,4,1,""]},"magicclass.signature":{AdditionalOptions:[8,1,1,""],MagicMethodSignature:[8,1,1,""],get_additional_option:[8,3,1,""],upgrade_signature:[8,3,1,""]},"magicclass.signature.AdditionalOptions":{copyto:[8,5,1,""],gui:[8,5,1,""],into:[8,5,1,""],keybinding:[8,5,1,""],moveto:[8,5,1,""],record:[8,5,1,""]},"magicclass.signature.MagicMethodSignature":{from_signature:[8,2,1,""],get_gui_options:[8,2,1,""],replace:[8,2,1,""]},"magicclass.tqdm":{ProgressBar:[8,1,1,""],tqdm:[8,1,1,""],trange:[8,3,1,""]},"magicclass.tqdm.ProgressBar":{tqdm:[8,2,1,""],trange:[8,2,1,""]},"magicclass.tqdm.tqdm":{close:[8,2,1,""],disable:[8,5,1,""],display:[8,2,1,""]},"magicclass.types":{Bound:[8,1,1,""],List:[8,1,1,""],Optional:[8,1,1,""],Tuple:[8,1,1,""],WidgetType:[8,1,1,""],bound:[8,3,1,""]},"magicclass.types.WidgetType":{button:[8,5,1,""],collapsible:[8,5,1,""],draggable:[8,5,1,""],frame:[8,5,1,""],groupbox:[8,5,1,""],hcollapsible:[8,5,1,""],list:[8,5,1,""],mainwindow:[8,5,1,""],none:[8,5,1,""],scrollable:[8,5,1,""],split:[8,5,1,""],stacked:[8,5,1,""],subwindows:[8,5,1,""],tabbed:[8,5,1,""],toolbox:[8,5,1,""]},"magicclass.utils":{functions:[18,0,0,"-"]},"magicclass.utils.functions":{MessageBoxMode:[18,1,1,""],extract_tooltip:[18,3,1,""],get_signature:[18,3,1,""],iter_members:[18,3,1,""],open_url:[18,3,1,""],screen_center:[18,3,1,""],show_messagebox:[18,3,1,""],to_clipboard:[18,3,1,""]},"magicclass.utils.functions.MessageBoxMode":{ABOUT:[18,5,1,""],ERROR:[18,5,1,""],INFO:[18,5,1,""],QUESTION:[18,5,1,""],WARNING:[18,5,1,""]},"magicclass.widgets":{ButtonContainer:[19,1,1,""],CheckButton:[19,1,1,""],CollapsibleContainer:[19,1,1,""],ColorEdit:[19,1,1,""],ColorSlider:[19,1,1,""],ConsoleTextEdit:[19,1,1,""],DictWidget:[19,1,1,""],DraggableContainer:[19,1,1,""],Figure:[19,1,1,""],FloatRangeSlider:[19,1,1,""],FrameContainer:[19,1,1,""],FreeWidget:[19,1,1,""],GroupBoxContainer:[19,1,1,""],HCollapsibleContainer:[19,1,1,""],ListContainer:[19,1,1,""],ListEdit:[19,1,1,""],ListWidget:[19,1,1,""],Logger:[19,1,1,""],OptionalWidget:[19,1,1,""],RangeSlider:[19,1,1,""],ScrollableContainer:[19,1,1,""],Separator:[19,1,1,""],SplitterContainer:[19,1,1,""],SpreadSheet:[19,1,1,""],StackedContainer:[19,1,1,""],SubWindowsContainer:[19,1,1,""],TabbedContainer:[19,1,1,""],ToolBoxContainer:[19,1,1,""],TupleEdit:[19,1,1,""],color:[19,0,0,"-"],containers:[19,0,0,"-"],logger:[19,0,0,"-"],misc:[19,0,0,"-"],pywidgets:[20,0,0,"-"],separator:[19,0,0,"-"],sequence:[19,0,0,"-"],utils:[19,0,0,"-"]},"magicclass.widgets.ButtonContainer":{btn_text:[19,4,1,""],text:[19,4,1,""]},"magicclass.widgets.CollapsibleContainer":{btn_text:[19,4,1,""],collapsed:[19,4,1,""],text:[19,4,1,""]},"magicclass.widgets.ConsoleTextEdit":{append:[19,2,1,""],erase_first:[19,2,1,""],erase_last:[19,2,1,""],selected:[19,4,1,""],tab_size:[19,4,1,""]},"magicclass.widgets.DictWidget":{clear:[19,2,1,""],get:[19,2,1,""],items:[19,2,1,""],keys:[19,2,1,""],pop:[19,2,1,""],update:[19,2,1,""],value:[19,4,1,""],values:[19,2,1,""]},"magicclass.widgets.Figure":{autoscale:[19,2,1,""],ax:[19,4,1,""],axes:[19,4,1,""],axhline:[19,2,1,""],axline:[19,2,1,""],axvline:[19,2,1,""],box:[19,2,1,""],cla:[19,2,1,""],clf:[19,2,1,""],draw:[19,2,1,""],enabled:[19,4,1,""],hist:[19,2,1,""],imshow:[19,2,1,""],interactive:[19,4,1,""],legend:[19,2,1,""],mouse_click_callbacks:[19,4,1,""],plot:[19,2,1,""],quiver:[19,2,1,""],savefig:[19,2,1,""],scatter:[19,2,1,""],subplots:[19,2,1,""],text:[19,2,1,""],title:[19,2,1,""],twinx:[19,2,1,""],twiny:[19,2,1,""],xlabel:[19,2,1,""],xlim:[19,2,1,""],xscale:[19,2,1,""],xticks:[19,2,1,""],ylabel:[19,2,1,""],ylim:[19,2,1,""],yscale:[19,2,1,""],yticks:[19,2,1,""]},"magicclass.widgets.FloatRangeSlider":{name:[19,5,1,""]},"magicclass.widgets.FreeWidget":{set_contextmenu:[19,2,1,""],set_widget:[19,2,1,""]},"magicclass.widgets.GroupBoxContainer":{name:[19,4,1,""]},"magicclass.widgets.HCollapsibleContainer":{collapsed:[19,4,1,""]},"magicclass.widgets.ListContainer":{current_index:[19,4,1,""]},"magicclass.widgets.ListEdit":{annotation:[19,4,1,""],buttons_visible:[19,4,1,""],data:[19,4,1,""],value:[19,4,1,""]},"magicclass.widgets.ListWidget":{clear:[19,2,1,""],index:[19,2,1,""],insert:[19,2,1,""],value:[19,4,1,""]},"magicclass.widgets.Logger":{clear:[19,2,1,""],close:[19,2,1,""],current_logger:[19,5,1,""],emit:[19,2,1,""],flush:[19,2,1,""],print:[19,2,1,""],print_figure:[19,2,1,""],print_html:[19,2,1,""],print_image:[19,2,1,""],print_rst:[19,2,1,""],print_table:[19,2,1,""],set_logger:[19,2,1,""],set_plt:[19,2,1,""],set_stdout:[19,2,1,""],write:[19,2,1,""]},"magicclass.widgets.OptionalWidget":{text:[19,4,1,""],value:[19,4,1,""]},"magicclass.widgets.RangeSlider":{name:[19,5,1,""]},"magicclass.widgets.Separator":{btn_clicked:[19,5,1,""],btn_text:[19,4,1,""],central_widget:[19,5,1,""],name:[19,5,1,""]},"magicclass.widgets.SpreadSheet":{index:[19,2,1,""],insert:[19,2,1,""],rename:[19,2,1,""]},"magicclass.widgets.StackedContainer":{current_index:[19,4,1,""]},"magicclass.widgets.TabbedContainer":{current_index:[19,4,1,""]},"magicclass.widgets.ToolBoxContainer":{current_index:[19,4,1,""]},"magicclass.widgets.TupleEdit":{annotation:[19,4,1,""],value:[19,4,1,""]},"magicclass.widgets.color":{QColorEdit:[19,1,1,""],QColorLineEdit:[19,1,1,""],QColorSlider:[19,1,1,""],QColorSwatch:[19,1,1,""],QDoubleSlider:[19,1,1,""],qcolor_to_rgba:[19,3,1,""],rgba_to_html:[19,3,1,""],rgba_to_qcolor:[19,3,1,""]},"magicclass.widgets.color.QColorEdit":{color:[19,2,1,""],colorChanged:[19,5,1,""],setColor:[19,2,1,""]},"magicclass.widgets.color.QColorLineEdit":{getQColor:[19,2,1,""],setColor:[19,2,1,""],setText:[19,2,1,""]},"magicclass.widgets.color.QColorSlider":{addSlider:[19,2,1,""],color:[19,2,1,""],colorChanged:[19,5,1,""],setColor:[19,2,1,""]},"magicclass.widgets.color.QColorSwatch":{colorChanged:[19,5,1,""],getQColor:[19,2,1,""],heightForWidth:[19,2,1,""],mouseReleaseEvent:[19,2,1,""],setColor:[19,2,1,""]},"magicclass.widgets.color.QDoubleSlider":{changed:[19,5,1,""],doubleValueChanged:[19,2,1,""],setMaximum:[19,2,1,""],setMinimum:[19,2,1,""],setSingleStep:[19,2,1,""],setValue:[19,2,1,""],singleStep:[19,2,1,""],value:[19,2,1,""]},"magicclass.widgets.containers":{wrap_container:[19,3,1,""]},"magicclass.widgets.logger":{Logger:[19,1,1,""],Output:[19,1,1,""],QtLogger:[19,1,1,""],show:[19,3,1,""]},"magicclass.widgets.logger.Logger":{clear:[19,2,1,""],close:[19,2,1,""],current_logger:[19,5,1,""],emit:[19,2,1,""],flush:[19,2,1,""],print:[19,2,1,""],print_figure:[19,2,1,""],print_html:[19,2,1,""],print_image:[19,2,1,""],print_rst:[19,2,1,""],print_table:[19,2,1,""],set_logger:[19,2,1,""],set_plt:[19,2,1,""],set_stdout:[19,2,1,""],write:[19,2,1,""]},"magicclass.widgets.logger.Output":{HTML:[19,5,1,""],IMAGE:[19,5,1,""],TEXT:[19,5,1,""]},"magicclass.widgets.logger.QtLogger":{appendHtml:[19,2,1,""],appendImage:[19,2,1,""],appendText:[19,2,1,""],process:[19,5,1,""],update:[19,2,1,""]},"magicclass.widgets.misc":{AbstractRangeSlider:[19,1,1,""],CheckButton:[19,1,1,""],ConsoleTextEdit:[19,1,1,""],Figure:[19,1,1,""],FloatEdit:[19,1,1,""],FloatRangeSlider:[19,1,1,""],IntEdit:[19,1,1,""],QFloatEdit:[19,1,1,""],QIntEdit:[19,1,1,""],QRangeSlider:[19,1,1,""],RangeSlider:[19,1,1,""],SpreadSheet:[19,1,1,""]},"magicclass.widgets.misc.AbstractRangeSlider":{changed:[19,5,1,""],max:[19,4,1,""],min:[19,4,1,""],range:[19,4,1,""],value:[19,4,1,""]},"magicclass.widgets.misc.ConsoleTextEdit":{append:[19,2,1,""],erase_first:[19,2,1,""],erase_last:[19,2,1,""],selected:[19,4,1,""],tab_size:[19,4,1,""]},"magicclass.widgets.misc.Figure":{autoscale:[19,2,1,""],ax:[19,4,1,""],axes:[19,4,1,""],axhline:[19,2,1,""],axline:[19,2,1,""],axvline:[19,2,1,""],box:[19,2,1,""],cla:[19,2,1,""],clf:[19,2,1,""],draw:[19,2,1,""],enabled:[19,4,1,""],hist:[19,2,1,""],imshow:[19,2,1,""],interactive:[19,4,1,""],legend:[19,2,1,""],mouse_click_callbacks:[19,4,1,""],plot:[19,2,1,""],quiver:[19,2,1,""],savefig:[19,2,1,""],scatter:[19,2,1,""],subplots:[19,2,1,""],text:[19,2,1,""],title:[19,2,1,""],twinx:[19,2,1,""],twiny:[19,2,1,""],xlabel:[19,2,1,""],xlim:[19,2,1,""],xscale:[19,2,1,""],xticks:[19,2,1,""],ylabel:[19,2,1,""],ylim:[19,2,1,""],yscale:[19,2,1,""],yticks:[19,2,1,""]},"magicclass.widgets.misc.FloatRangeSlider":{name:[19,5,1,""]},"magicclass.widgets.misc.RangeSlider":{name:[19,5,1,""]},"magicclass.widgets.misc.SpreadSheet":{index:[19,2,1,""],insert:[19,2,1,""],rename:[19,2,1,""]},"magicclass.widgets.pywidgets":{DictWidget:[20,1,1,""],ListWidget:[20,1,1,""],dict:[20,0,0,"-"],list:[20,0,0,"-"],object:[20,0,0,"-"],tree:[20,0,0,"-"]},"magicclass.widgets.pywidgets.DictWidget":{clear:[20,2,1,""],get:[20,2,1,""],items:[20,2,1,""],keys:[20,2,1,""],pop:[20,2,1,""],update:[20,2,1,""],value:[20,4,1,""],values:[20,2,1,""]},"magicclass.widgets.pywidgets.ListWidget":{clear:[20,2,1,""],index:[20,2,1,""],insert:[20,2,1,""],value:[20,4,1,""]},"magicclass.widgets.pywidgets.dict":{DictItemView:[20,1,1,""],DictValueView:[20,1,1,""],DictWidget:[20,1,1,""],PyTableWidget:[20,1,1,""],PyTableWidgetItem:[20,1,1,""]},"magicclass.widgets.pywidgets.dict.DictWidget":{clear:[20,2,1,""],get:[20,2,1,""],items:[20,2,1,""],keys:[20,2,1,""],pop:[20,2,1,""],update:[20,2,1,""],value:[20,4,1,""],values:[20,2,1,""]},"magicclass.widgets.pywidgets.dict.PyTableWidget":{itemAt:[20,2,1,""]},"magicclass.widgets.pywidgets.list":{ListWidget:[20,1,1,""],PyListWidget:[20,1,1,""],PyListWidgetItem:[20,1,1,""]},"magicclass.widgets.pywidgets.list.ListWidget":{clear:[20,2,1,""],index:[20,2,1,""],insert:[20,2,1,""],value:[20,4,1,""]},"magicclass.widgets.pywidgets.list.PyListWidget":{item:[20,2,1,""],itemAt:[20,2,1,""]},"magicclass.widgets.pywidgets.object":{BaseWidget:[20,1,1,""],ContextMenuMixin:[20,1,1,""],PyObjectBound:[20,1,1,""],partial_event:[20,3,1,""]},"magicclass.widgets.pywidgets.object.BaseWidget":{register_callback:[20,2,1,""],register_contextmenu:[20,2,1,""],register_delegate:[20,2,1,""],register_tooltip:[20,2,1,""],title:[20,4,1,""],value:[20,4,1,""]},"magicclass.widgets.pywidgets.object.ContextMenuMixin":{contextMenu:[20,2,1,""],setContextMenu:[20,2,1,""],setParentWidget:[20,2,1,""]},"magicclass.widgets.pywidgets.object.PyObjectBound":{setObject:[20,2,1,""]},"magicclass.widgets.pywidgets.tree":{DictTreeWidget:[20,1,1,""],DictValueView:[20,1,1,""],PyTreeWidget:[20,1,1,""],PyTreeWidgetItem:[20,1,1,""]},"magicclass.widgets.pywidgets.tree.DictTreeWidget":{clear:[20,2,1,""],get:[20,2,1,""],keys:[20,2,1,""],pop:[20,2,1,""],update:[20,2,1,""],value:[20,4,1,""],values:[20,2,1,""]},"magicclass.widgets.pywidgets.tree.PyTreeWidget":{item:[20,2,1,""],itemAt:[20,2,1,""]},"magicclass.widgets.separator":{Separator:[19,1,1,""]},"magicclass.widgets.separator.Separator":{btn_clicked:[19,5,1,""],btn_text:[19,4,1,""]},"magicclass.widgets.sequence":{ListDataView:[19,1,1,""]},"magicclass.widgets.utils":{FreeWidget:[19,1,1,""],merge_super_sigs:[19,3,1,""]},"magicclass.widgets.utils.FreeWidget":{set_contextmenu:[19,2,1,""],set_widget:[19,2,1,""]},"magicclass.wrappers":{Canceled:[8,6,1,""],bind_key:[8,3,1,""],click:[8,3,1,""],confirm:[8,3,1,""],do_not_record:[8,3,1,""],nogui:[8,3,1,""],set_design:[8,3,1,""],set_options:[8,3,1,""]},magicclass:{core:[8,0,0,"-"],ext:[9,0,0,"-"],fields:[8,0,0,"-"],gui:[16,0,0,"-"],help:[8,0,0,"-"],qthreading:[8,0,0,"-"],signature:[8,0,0,"-"],stylesheets:[17,0,0,"-"],tqdm:[8,0,0,"-"],types:[8,0,0,"-"],utils:[18,0,0,"-"],widgets:[19,0,0,"-"],wrappers:[8,0,0,"-"]}},objnames:{"0":["py","module","Python module"],"1":["py","class","Python class"],"2":["py","method","Python method"],"3":["py","function","Python function"],"4":["py","property","Python property"],"5":["py","attribute","Python attribute"],"6":["py","exception","Python exception"]},objtypes:{"0":"py:module","1":"py:class","2":"py:method","3":"py:function","4":"py:property","5":"py:attribute","6":"py:exception"},terms:{"0":[8,11,15,19,20,21,30,31,32],"005":19,"008000":19,"02":11,"0x0000018e067891f0":29,"1":[7,8,11,14,15,16,19,20,21,25,27,28,30,31],"10":[3,11,19,20,26,27,29,30],"100":[11,19,21,26],"1000":[8,19],"12":19,"120":26,"128":11,"1d":19,"1x1":19,"1xm":19,"2":[7,8,10,19,21,25,27,28,30,32],"20":19,"21":31,"25":19,"255":19,"2d":[11,19,21],"3":[7,8,19,21,28,30,31],"3125":19,"337":19,"375":19,"3758413791656494":27,"4":[7,19,21,28,30],"400":19,"45":19,"5":[19,20,21,29,31],"500":19,"6":[11,19,21,30],"60":32,"64":21,"7":[11,15,19,32],"75":19,"8":19,"9":19,"95":19,"abstract":[2,16],"boolean":8,"case":[2,7,8,19,21,29,30,31],"class":[3,4,5,7,8,9,10,11,13,14,15,16,18,19,20,27,28,30,31,32],"default":[2,8,11,14,16,18,19,20,24,26,27,29],"do":[2,5,7,8,19,26,27,28,30,31],"enum":[4,8,16,18],"final":2,"float":[8,11,15,19,27,31],"function":[2,4,6,8,10,16,19,20,21,22,23,24,27,28,29,30],"goto":28,"import":[0,2,3,4,5,6,7,8,11,14,20,21,23,24,25,26,27,28,29,30,31,32],"int":[2,7,8,11,14,16,19,20,26,27,29,30,31],"long":[4,19],"new":[8,11,14,16,19,23,24,28,29,30],"return":[4,5,8,10,11,18,19,20,26,27,28,29,30],"static":28,"super":5,"true":[5,8,11,14,16,18,19,20,24,29,31],"try":19,"while":[26,31],A:[2,3,7,8,11,14,16,19,26,27,28,29,30,31,32],As:2,At:16,But:27,By:[8,11,14,16,19,24,26],For:[3,8,19,21,26],If:[5,7,8,11,14,16,18,19,20,21,23,24,26,27,28,29,30,31],In:[2,3,7,19,20,21,26,27,28,29,30,31],It:[2,3,6,19,21,25,26,30,31],NOT:[2,8],No:19,Of:30,On:30,One:[3,11,19,27,31],The:[3,4,5,8,19,20,21,23,25,26,27,29,31],Their:19,Then:[19,30],There:[7,14,19,30],These:[2,8,11,19,24],To:[4,5,19,23,24,26,27,28,29,30,31],With:31,_:[7,8,14,16,19,20,26],__:[8,18],__class__:[2,7],__init__:[5,26,28],__name__:[2,7,19],__post_init__:[26,27],_base:[8,16,19],_c:16,_callback:[2,29],_cd:28,_decrement:7,_f:8,_field_typ:29,_function_gui:16,_get_choic:28,_get_fil:28,_get_last_shap:27,_get_tim:27,_get_tot:30,_increment:7,_m:8,_missing_typ:[8,29],_multiplot:11,_on_return:30,_on_yield:30,_orientationmixin:19,_p:10,_qt:10,_qtpy:19,_tabl:19,_unset:19,_v:[8,19],_void:8,_w:[8,16],_x:8,a0:19,a10:19,aa:19,abbrevi:19,abc:[20,29],abil:29,abort:[8,30],about:[2,6,7,18,19,26],abov:[2,11,14,16,19,24,27,28],absolut:19,abstractact:[8,16],abstractpatheffect:19,abstractrangeslid:19,accept:[8,19,28],access:[5,7,8,19,21,27,29,30,31],accord:[3,5,19],accumul:19,across:19,act:19,action:[7,8,16,26,31],activ:[3,19],actual:[4,5,7,19,29,30],ad:[3,8,19,23,24,26,27],adapt:19,add:[2,5,11,14,16,19,20,27],add_bar:11,add_curv:[11,15],add_fillbetween:11,add_hist:11,add_imag:[15,32],add_inflin:11,add_isosurfac:15,add_mesh:13,add_point:13,add_scatt:11,add_subplot:19,add_text:11,addhandl:19,addit:[3,6,8,14,19],addition:19,additional_opt:8,additionalopt:8,addslid:19,addtoolbar:16,adjac:3,adjust:[3,19,32],adopt:19,advanc:[19,25],advantag:27,after:[5,8,24,30,31],ag:26,against:[11,14,16,19],agg:19,agg_filt:19,aim:[5,11],algorithm:19,alias:19,align:19,all:[2,3,4,7,11,18,19,20,21,23,26,27,29,31],allow:19,alon:19,along:19,alpha:19,alreadi:[8,19,26,27,31],also:[2,7,8,11,14,16,19,20,21,23,24,26,27,28,29,31],alt:16,alter:19,altern:19,although:[7,30],alwai:[8,19,26,27,31],ambigu:19,among:19,amount:19,ampersand:16,an:[3,4,5,6,7,8,11,14,16,18,19,27,28,29,30,31],anchor:[11,19],angl:[11,19],ani:[8,11,16,18,19,20,26,30],anim:19,annot:[8,19,26,29,31],anoth:[23,26,29,30],anti:19,antialias:19,antigrain:19,anyth:19,api:[3,5,6,8,11,16,20,21,23,25,29,30],apostroph:16,appear:[2,6,7,8,19,24,26,31],append:[3,5,8,11,19,20,23,26],appendhtml:19,appendimag:19,appendtext:19,appli:[19,29],applic:19,appropri:[3,19],ar:[2,3,5,7,8,10,11,14,19,20,21,23,24,26,27,28,29,30,31],arang:[19,20],arbitrari:19,area:[3,19],arg:[8,11,14,16,19,20],argument:[3,4,6,7,8,19,21,26,28,29,30,31],around:19,arr:[4,19],arrai:[4,11,19,20,27],arrang:[2,19],arrow:19,artifact:19,artist:19,as_dict:8,as_gett:8,as_magicclass:8,as_magiccontext:8,as_magicmenu:8,as_magictoolbar:8,as_shortcut:16,asid:[8,26],aspect:19,assign:[3,19],associ:19,assum:8,asterisk:16,attempt:19,attenu:15,attr:8,attribut:[8,11,14,16,19,21,26],auto:19,auto_cal:8,automat:[8,19,31],autosc:19,autoscal:19,autoscale_view:19,avail:[2,6,11,19,30],averag:19,avoid:[19,24,27],ax1:19,ax2:19,ax3:19,ax4:19,ax:19,axesimag:19,axhlin:19,axhspan:19,axi:[11,19,21],axis_label:10,axlin:19,axvlin:19,axvspan:19,b0:19,b10:19,b:[2,7,8,16,19,23,27,28],back:[19,28],backend:19,backend_kwarg:[8,19],backend_pdf:19,background:[11,19,30],background_color:[8,11,16],backgroundcolor:19,backspac:16,bad:19,bar:[3,8,10,11,16,19,23,26,31],barcontain:19,bargraphitem:11,barh:19,barplot:11,barstack:19,base:[3,8,10,11,13,14,15,16,18,19,20,25],basegui:[10,16],baselin:19,basewidget:[19,20],basic:[3,19,32],bbox:19,bbox_extra_artist:19,bbox_inch:19,bbox_to_anchor:19,bbox_transform:19,bboxbas:19,becaus:[2,4,7,10,16,19,26,27,30,31],been:19,befor:[2,11,16,19,30],behav:[2,19],behavior:[19,30],behind:19,being:[19,27],below:[4,8,19,24],beneath:8,benefit:19,bessel:19,best:19,better:[5,31],between:[3,7,10,11,19,30,31],bevel:19,bicub:19,bilinear:19,bin:[11,19],binari:19,bind:[6,7,8,19,28],bind_kei:[7,8],black:19,blackman:19,blend:19,block:[14,19],blue:19,bo:19,bold:19,book:19,bool:[8,11,15,16,18,19,20,24],border:[3,11,19],borderaxespad:19,borderpad:19,both:19,bottom:19,bound:[2,7,8,11,14,16,19,27,29],boundari:19,box:[3,7,11,18,19,24],br:19,browser:18,btn_click:19,btn_text:19,bubbl:19,bug:19,build:8,build_help:[8,26],builder:26,built:[8,26],builtin:[19,26],butt:19,button:[2,3,7,8,11,19,24,27,30,31],buttoncontain:19,buttons_vis:19,c:[3,7,8,16,19,23,28,29],cach:8,cairo:19,calcul:19,call:[2,5,6,7,8,10,19,20,21,24,26,27,28,29,30],call_button:8,callabl:[8,10,16,19],callback:[8,11,14,16,19,20],caller_opt:8,camera:15,can:[3,4,6,7,8,11,14,16,18,19,20,21,23,24,25,26,27,28,29,30,31],cancel:8,cannot:19,canva:[6,11,19],canvas:25,cap:19,capstyl:19,categor:[16,19,23],catrom:19,caus:10,caveat:2,cd:28,center:[18,19],center_baselin:19,central:19,central_widget:[14,19],certain:[4,20],chang:[5,7,8,11,14,16,19,21,24,28,29],channel:19,charact:19,chart:19,check:[8,11,14,16,19],check_narg:[11,14,16,19],check_nargs_on_connect:[11,14,16,19],check_typ:[11,14,16,19],check_types_on_connect:[11,14,16,19],checkabl:19,checkbox:19,checkbutton:19,child:[2,3,6,7,8,16,19,23,26],childclass:31,chind:31,choci:28,choic:[6,19],choos:30,chosen:19,circl:[11,19],cl:[16,18,19],cla:[19,21],class_:8,class_gui:[8,22],classgui:16,classguibas:[8,16],classmethod:[8,16],clean:31,cleanup:8,clear:[2,11,19,20,21],clearer:[2,27],clf:19,click:[3,7,8,18,19,20,23,26,27,30],clickabl:8,clim:19,clip:19,clip_box:19,clip_on:19,clip_path:19,clipboard:18,clockwis:19,close:[8,19,23,24],close_on_run:[8,16,24],close_pbar:8,cmap:[11,15,19,21],cn:19,code:[5,6,7,8,14,18,19,28,30,31],coincid:19,col:19,collaps:[3,8,19],collapsiblecontain:19,collect:19,collis:7,colon:16,color:[8,11,15,21,22],colorchang:19,coloredit:19,colormap:19,colorslid:19,colortyp:19,column:[19,20],columnspac:19,com:19,combin:[7,16,19],combobox:28,comma:16,common:[2,19],common_funct:2,commonli:19,compar:[8,19,29],compat:[4,8,19],complet:[5,8,19],complic:31,compon:[6,8,9,19],compos:[3,26,31],compress:19,comput:19,con:31,concept:[2,29],concret:[2,27],condens:19,condit:[8,19],configur:27,confirm:8,conflict:19,conjunct:19,connect:[2,5,8,11,14,16,19,29,31],consid:[2,19,26,29],consist:[5,19,23,25,30],consol:[14,19,26],consoletextedit:19,constant:24,constrction:11,construct:[5,8,19,23,29],constructor:[2,19],consum:[26,30],contain:[5,6,8,16,20,22,24,26],content:[3,21,22],context:[8,16,19,20,23],contextmenu:[16,20,23],contextmenugui:[8,16,19],contextmenumixin:20,contrast:11,contrast_limit:[11,15,32],contribut:19,control:[19,29],contructor:[11,14,16,19],conveni:19,convent:19,convers:4,convert:[6,7,8,16,19,26,27,29],coord:19,coord_item:11,coordin:[11,18,19],copi:[8,18,19,23],copy_class:16,copyto:8,core:22,corner:19,correct:[19,26],correctli:5,correspond:[5,19,26],correspondingli:19,could:[4,16,19,26],count:[11,19],counter:19,cours:30,cover:19,creat:[2,3,8,19,21,26,27,28,29,30],create_widget:[8,29],creation:[6,19,31],creator:19,cross:11,ctrl:[7,8,16],cumul:19,current:[3,8,10,11,14,19,28,30,31],current_index:[3,19],current_logg:19,cursiv:19,curv:11,custom:[5,6,8,19,20],cyan:19,cycl:19,d:[7,11,16,19,20,25],dash:19,dash_capstyl:19,dash_joinstyl:19,data1:19,data2:19,data:[4,11,15,18,19,20,21,25,27],dataclass:[8,26,29],datafram:19,datapoint:19,dataset:19,deal:2,decai:19,decim:19,declar:[11,14,16,19],decor:[2,8,10,19,23,24,26,30,31],def:[2,4,5,7,8,11,14,16,19,20,21,23,26,27,28,29,30,31],default_factori:[2,8,29],defaultpad:11,defin:[5,6,8,16,19,20,21,23,26,27,28,30,31],define_callback:16,definit:[2,8,16],degre:[11,19],deleg:20,delet:[8,16,31],deliv:11,demi:19,demibold:19,densiti:[11,19],depend:[4,19,20,27,30],deprec:[8,19,24],describ:[7,19],descript:[7,11,14,16,19],descriptor:[11,14,16,19],design:[2,8,11,14,16,19,30,31],desin:27,desir:2,destin:[11,19],detail:[11,19,26],detect:[19,26],determin:[3,8,19,27],develop:[14,30],developp:5,deviat:19,dialog:[8,18,24],diamet:19,diamond:19,dick:19,dict:[8,16,19],dictionari:[8,19,20],dictitemview:[19,20],dicttreewidget:20,dictvalueview:[19,20],dictwidget:19,diff:19,differ:[19,21,27,30,31],dimens:19,dimension:19,direct:19,directli:[6,10,19,23,26,27,29],directori:28,dirnam:28,disabl:[8,19,30],disconnect:8,discourag:19,discuss:19,dispatch:20,displai:[3,8,11,19,20,30],disregard:19,disturb:6,ditto:19,divid:19,do_not_record:[7,8,26],doan:19,dock:[7,24,32],docstr:[18,19],document:[11,19,20],doe:[3,4,8,10,19,26,30,31],doesn:19,dollar:16,don:[2,7,19,26,27,29,31],done:19,dot:19,doubl:20,doublevaluechang:19,down:[7,16,19],downsampl:19,downward:19,dpi:19,drag:[3,19],dragdrop:[19,20],draggabl:[3,8,19],draggablecontain:19,draw:[19,21],draw_idl:19,drawn:19,drawstyl:19,drop:[3,19],ds:19,dtype:19,due:31,dure:[8,23,30],dynam:[6,26],e:[8,16,19,29],each:[3,11,19],easi:7,easier:[16,30],easiest:5,easili:[19,31],ec:19,edg:[11,19],edge_color:[11,15],edgecolor:19,edit:[19,23,26],editor:26,effect:19,either:[8,19],element:19,els:[8,19,20,28],emb:14,embed:30,emiss:5,emit:[5,8,11,14,16,19,29],emitt:[11,14,16,19],empti:19,enabl:[3,5,8,11,16,19,28,31],enablemenu:11,enablemous:11,encapsul:16,enclos:[3,19],encod:19,encount:23,end:[11,19,21,30],enough:[8,26],ensur:19,entri:19,enumer:[8,16,18],ep:19,equal:[16,19],equip:[7,19,20],equival:19,eras:19,erase_first:19,erase_last:19,error:[8,18,19,30],error_mod:[8,16,24],errormod:[8,16,24],errormodestr:8,especi:[5,7,26],etc:19,ev:11,evalu:[8,30],even:[19,31],event:[7,8,11,19],everi:[3,8,19,27,28,29,30],evok:7,exactli:19,exampl:[2,4,5,7,11,14,16,19,27,28,30,31],except:[8,16,18,19,24],exclam:16,exclud:19,exclude_prefix:18,execut:[8,10,14,19,26,27,30,31],exist:[3,8,19,30,31],exit:19,expand:[3,19],expect:19,experienc:5,explicit:19,explicitli:19,explor:28,exponenti:19,express:8,ext:[1,8,22,25,32],extens:[6,19,26],extent:19,extern:9,extra:19,extract:18,extract_tooltip:18,f10:16,f11:16,f12:16,f1:[16,31],f2:[16,31],f3:[16,31],f4:16,f5:16,f6:16,f7:16,f8:16,f9:16,f:[4,8,10,16,19,20,26,28,29],face:[11,19],face_color:[11,15],facecolor:19,factor:19,factori:8,fall:19,fals:[5,8,11,14,16,18,19,24,26,28,29,31],famili:19,familiar:28,fancybboxpatch:19,fancybox:19,fantasi:19,far:19,faster:19,fc:19,fd:19,featur:[2,20,26,29],februari:19,fgui:16,field:[6,7,19,21,22,26,28,30,31,32],fig:[19,21],fig_kw:19,figsiz:19,figur:[6,19],figurecanvasagg:19,figurecanvassvg:19,file:[8,19,23,28],fill:[11,19],fillbetween:11,fillbetweenitem:11,fillstyl:19,filter:19,filternorm:19,filterrad:19,find:[19,20],find_ancestor:31,finish:[2,8,10,30],first:[2,10,19,21,24,29,30,31],first_a:23,first_b:23,fit:19,fix:19,flatten:19,fld:29,floatabl:3,floatedit:19,floatrangeslid:19,flush:19,fmt2:19,fmt:19,fname:19,follow:[2,3,5,6,19,28,30,31],font:[8,19],font_color:[8,16],font_famili:[8,16],font_manag:19,font_properti:19,font_siz:[8,16],fontdict:19,fontfamili:19,fontnam:19,fontproperti:19,fontsiz:19,fontstretch:19,fontstyl:19,fontvari:19,fontweight:19,footer:2,form:[4,8,19],format:[8,19],former:19,forward:19,forwardref:19,found:[19,20],four:19,fraction:19,frame1:23,frame2:23,frame:[3,8,18,19,31],framealpha:19,framecontain:19,frameon:19,freewidget:[5,8,10,11,13,14,15,19,20],freez:18,friendli:6,from:[0,2,3,4,5,6,7,8,10,11,14,16,19,20,21,23,24,25,26,27,28,29,30,32],from_opt:16,from_signatur:8,frozen:30,fucntion:29,full:19,func0:30,func1:30,func2:30,func3:30,func:[2,8,18,26,27,28,30,31],funcscal:19,function_1:7,function_2:7,function_3:7,function_4:7,function_a:23,function_b:23,function_c:23,function_that_log_someth:19,function_that_print_someth:19,functiongui:[8,16,26,28],functionguiplu:8,functionwork:10,functool:31,fundament:[2,19],further:19,furthermor:27,g:[16,19],gain:19,galleri:19,gamma:15,gaussian:19,gener:[8,16,19,26,30],generatorwork:10,geometri:26,get:[8,11,14,18,19,20,27,28,29,30,31],get_a_valu:27,get_act:8,get_additional_opt:8,get_b_valu:27,get_frame_on:19,get_function_gui:8,get_gui_opt:8,get_help_info:8,get_keymap:8,get_legend_handler_map:19,get_paramet:16,get_signatur:18,get_tim:27,get_widget:8,get_xlim:19,get_xtick:19,get_xticklabel:19,get_ylim:19,get_ytick:19,get_yticklabel:19,getcwd:28,getlogg:19,getmemb:18,getqcolor:19,getter:[5,27,28,30],gid:19,github:[6,19],give:[19,28],given:[8,19,20,27,30],global:27,go:[7,19,28],good:5,gradient:19,grai:[15,19,21],grammar:27,graph:19,graph_item:[8,9],graphic:11,graphiccompon:11,graphicsitem:11,graphicsobject:11,graphicsscen:11,grayscal:19,greater:16,green:19,grid:19,gridspec:19,gridspec_kw:19,group:[3,19],groupbox:[3,8],groupboxcontain:19,guess:21,gui:[2,5,7,8,10,14,18,19,21,22,26,27,30,31],gui_onli:[8,16,19],gui_opt:8,guid:8,h:[16,19,30],ha:[2,3,5,6,8,11,19,20,21,24,26,29,30,31],half:19,ham:19,han:19,hand:[19,30],handl:[11,19],handlelength:19,handler:19,handler_map:19,handletextpad:19,happen:[19,31],hard:31,hardli:19,hasbackground:11,hasdataitem:11,hash:[8,29],hasviewbox:11,hatch:19,have:[2,3,4,5,6,7,8,11,18,19,21,25,26,27,28,29,30,31,32],hcollaps:[3,8],hcollapsiblecontain:19,head:19,headaxislength:19,header:[2,19],headlength:19,headwidth:19,heavi:19,height:[8,19,30],heightforwidth:19,help:[22,26],helper:[8,30],helpwidget:8,here:[2,6,8,16,19,26,27,29,31],hermit:19,hex:19,hexagon1:19,hexagon2:19,hexagon:19,hidden:[8,19],hide:[5,8],high:19,highest:19,highli:26,hist2d:19,hist:[11,19,21],histogram:[11,19,21],histogram_bin_edg:19,histori:19,histtyp:19,hline:19,home:18,horizont:[3,8,19,23,24,31],horizontalalign:19,hover:19,hoverev:11,how:[2,5,8,20,24,31],howev:[2,19,21,26,27,31],html:19,http:19,hue:31,huge:5,i:[3,8,11,16,19,20,21,26,27,29,30,31],icon:8,icon_path:[8,16],icon_s:[8,16],id:26,idea:[5,30],ident:[8,18,19,31],idiom:19,ie:19,ignor:19,ignore_error:8,imag:[3,4,8,9,11,18,19,21,25,32],image_antialias:19,imageitem:11,images_contours_and_field:19,immedi:19,implement:[7,8,19,23,30,31],implicit:19,improv:6,imshow:[19,21,25],imshow_ext:19,in_layout:19,inch:19,includ:19,inconsist:10,increas:19,increment:8,independ:[19,21],index:[3,6,8,11,16,19,20,31],indistinguish:19,individu:[11,14,16,19],inf:19,infer:19,infinit:19,infinitelin:11,inflin:11,info:[11,18],inform:[8,19,26,27],inherit:[5,6,16,19,21,24,26],init:[8,26,29],init_pbar:8,initi:[5,8,19,24,29],ink:19,inlin:19,inner:[8,19,26],inner_widget:19,input:[8,19,26],input_paramet:26,insert:[8,11,16,19,20],insert_action_lik:16,insid:[7,19,23],inspect:[8,18],instal:[25,30],instanc:[3,8,11,14,16,19,26,27,28,29,31],instead:[11,19,24,26,27,29,30,31],intedit:19,integ:[19,31],integr:[8,19,25,31],intend:[5,19],interact:[6,11,19,21,25],intercept:11,interfac:11,interfer:26,intermedi:19,intern:[11,14,16,19],interpol:[15,19],interpolation_method:19,interpret:[5,10,19],intersect:19,introduc:29,intuit:[6,11],invert:19,inverti:11,invertx:11,invis:[7,8],ion:19,irrevers:8,ismodifi:16,iso_threshold:15,isosurfac:15,issu:19,ital:19,item:[11,19,20,25],itemat:20,iter:[8,18,19,20,31],iter_memb:18,its:[2,3,4,6,7,19,26],itself:[2,8,21,26,29],j:[8,16],januari:19,join:28,joinstyl:19,jpeg:19,jpeg_qual:19,jpg:19,jump:6,jupyt:14,just:[2,19,21,26,30,31],k:[16,19,20,28],kaiser:19,keep:[2,26,30,31],kei:[7,8,16,19,20],kept:19,key_combo:16,keybind:[6,8,22],keyboard:11,keycombo:16,keyword:[3,19,26],kit:4,know:[21,26,31],kw:19,kwarg:[8,10,11,13,14,16,19,20],l:16,label1:19,label2:19,label3:19,label:[2,8,11,16,19,21,24,26],labelcolor:19,labelloc:19,labelpad:19,labelspac:19,lanczo:19,landscap:19,languag:2,larg:[19,27],larger:[11,19],last:[19,24],lastpo:11,later:19,latter:19,law:19,layer:[11,15,27,32],layeritem:[11,15],layerlist:11,layout:[2,8,11,19,23,24,26,31],lead:19,learn:6,least:[19,30],leav:[8,19],ledger:19,left:[16,19],legal:19,legend:[11,19],legend_guid:19,legenditem:11,len:19,length:19,less:[16,19],let:[2,27],letter:19,level:19,librari:[21,25,29],light:19,like:[2,7,8,11,16,19,21,24,25,26,27,28,30,31],lime:11,limit:[11,19,21],line1:19,line2:19,line2d:19,line3:19,line:[2,3,11,18,19,26,30],linear:[11,15,19],linearregionitem:11,linearscal:19,linecolor:19,lineedit:[3,19,26,31],lineplot:19,linespac:19,linestyl:[11,19],linewidth:[11,19],link:18,linspac:19,list:[3,8,11,19,27],listcontain:19,listdataview:19,listdir:28,listedit:[8,19],listwidget:19,liter:[8,30],ll:[5,21,30,31],loation:19,loc:19,local:8,locat:19,lock_contrast_limit:11,lockaspect:11,log:19,logger:[8,22],logit:19,logitscal:19,loglog:19,logscal:19,longer:[19,26],look:[2,19,26,28,31],lot:27,lower:[2,19],lowest:19,ls:[11,15,19],lw:[11,15,19],m:[16,19],ma:19,macro:[6,7,8,27,31],macro_str:26,macrokit:4,made:[19,28],magenta:19,magic:[3,4,7,8,9,10,14,16,19,27,28,30,31],magic_class:10,magicclass:[0,1,2,3,5,7,21,23,24,25,26,27,28,29,30,31,32],magicclassconstructionerror:16,magicclassfactori:8,magiccontext:[8,23],magicfield:[2,8],magicgui:[3,4,5,6,8,11,16,19,24,25,26,27,29,30],magicmenu:[7,8,10,23,26,31],magicmethodsignatur:8,magicsignatur:8,magictempl:[2,8,26],magictoolbar:[8,10,23,31],magicvaluefield:[8,29],mai:[2,5,8,19,26,31],main:[2,3,6,7,8,14,19,21,23,26,27,28,30,31],main_funct:2,maintain:31,mainwindow:8,make:[2,4,7,8,16,19,27,30],make_gui:16,manag:19,mani:[2,3,5,6,7,19,21,24,25,26,27,29,31],manual:[19,27,30],map:[4,11,19],mappingproxi:29,march:19,margin:19,mark:19,marker:19,markeredgecolor:19,markeredgewidth:19,markerfacecolor:19,markerfacecoloralt:19,markerfirst:19,markers:19,markerscal:19,markerstyl:19,markeveri:19,mask:19,match:19,math_fontfamili:19,matplotlib:[6,19],matric:19,matrix:19,matshow:19,max:[7,8,19,26,27,29],max_height:8,max_histori:19,max_width:8,maximum:8,mean:19,measur:19,mec:19,mechan:19,medium:19,member:18,membership:19,meni:31,mention:[2,19],menu:[3,7,8,16,19,20,26,31],menu_gui:[8,22],menugui:[8,16],menuguibas:16,merge_super_sig:19,mesh:13,meshgrid:19,messag:[8,18,24],messagebox:18,messageboxmod:18,meta:16,metadata:[8,19,29],method:[4,5,6,7,8,14,16,19,20,21,26,29,30],mew:19,mfc:19,mfcalt:19,mgui_ext:[8,22],mguilik:16,mid:19,middl:[2,19],might:[19,29,31],min:[7,8,19],min_height:[8,26],min_width:8,mind:2,mini:32,minimum:[8,19],minlength:19,minshaft:19,minu:16,mip:15,misc:[8,22],miscellan:19,miss:8,mitchel:19,miter:19,mix:19,mixin:19,mode:[18,19],modifi:[11,19],modul:[6,22],monospac:19,more:[6,8,19,27],most:[2,3,7,19,21,27,29,30,31],mostli:32,mous:[3,11],mouse_click_callback:19,mouse_ev:[8,9],mouseclickev:11,mouseev:11,mousereleaseev:19,move:[11,28],moveto:8,ms:19,msg:[8,19],msgbox:[8,24],much:[2,27,30],multi:[6,19,21,23],multialign:19,multipl:[11,19,23,25],multipul:2,must:[2,3,8,16,18,19,31],mutablemap:[19,20],mutablesequ:[11,16,19,20],my:19,myclass:[8,26,29],myemitt:[11,14,16,19],myqwidget:5,mywidget:5,n0:19,n1:19,n:[16,19,30],n_iter:30,name:[2,3,7,8,11,14,15,16,18,19,20,24,26,29,30,31],nameerror:2,namespac:[8,30],nan:19,napari:[7,8,9,11,19,24,27,30,32],naparicanva:10,napariprogressbar:8,nativ:[11,16],natur:[2,26],nbin:19,ncol:[11,19,21],ndarrai:[4,8,11,13,15,18,19,20,27],ndata:11,ndisplai:10,nearest:19,necessari:[19,31],need:[3,8,16,19,21,26,27,28,29,31],nest:[6,8,26,31],never:[26,31],new_funct:26,next:19,nine:19,no_margin:16,node:19,nogui:8,noisi:31,non:[19,31],none:[3,8,10,11,14,15,16,18,19,20,24,28,29],nonfinit:19,norm:19,normal:[19,21],not_readi:8,notat:19,note:[11,14,16,19],noth:19,notic:31,notimplementederror:19,now:[5,11],np:[4,8,11,19,20,21,32],nrow:[11,19,21],nullabl:[8,19],num:19,number:[5,11,14,16,18,19],numcol:19,numer:19,numpi:[4,11,13,15,19],numpoint:19,numpy_to_str:4,numrow:19,nx1:19,nxm:19,o:[11,16,19],obj:[8,16,18,19,20],object:[5,7,8,11,15,16,18,19,21,23,26,27,28,29,30],obliqu:19,obtain:27,obviou:2,occasion:26,octagon:19,off:19,offer:11,offset:[11,19],offset_posit:19,often:[5,31],ok:[8,18,19],omit:31,onc:[8,27],one:[2,3,6,8,10,19,21,28,30],ones:19,onli:[2,8,19,26,28,29,30],opac:19,opaqu:19,open:[8,10,18,19,23,24,26],open_url:18,oper:[10,19,20,25],optim:19,option:[3,6,8,11,14,16,18,19,20,21,27,28,29,30,31],optionalwidget:[8,19],order:[10,11,18,19,31],ordinari:5,orient:[2,8,19],origin:[8,19,21,30],os:28,other:[2,8,11,19,21,23,27,30,31],otherwis:[2,8,10,18,19,30],our:19,out:19,outlier:19,outlin:19,output:[19,24,30],outsid:[8,31],outstand:26,over:[18,19,30],overlai:[11,19],overlap:19,overrid:[8,19],overriden:16,overview:19,overwrit:26,ow:29,own:[3,5],p:[8,16,19],pack:[2,3],packag:[1,22],pad:19,pad_inch:19,page:[6,18,19],pagedown:16,pageup:16,pair:19,panda:19,papertyp:19,parallel:10,param:[8,31],paramet:[2,8,11,14,16,18,19,20,24,27,31,32],parenleft:16,parenright:16,parent:[2,6,7,8,11,16,18,19,20,23,24,28],parent_class:8,parent_view:[26,27],parentlast:24,pars:19,parse_key_combo:16,part:[8,19],partial_ev:20,particular:19,particularli:19,pass:[2,8,19,21,26,30,31],past:23,patch:19,patches0:19,patches1:19,path:[4,8,19,28],path_effect:19,pathcollect:19,pathlib:19,pbar1:30,pbar2:30,pbar:[8,30],pdf:19,pdfpage:19,pentagon:19,per:19,percent:16,perform:19,period:16,perman:19,pg:11,pgf:19,pi:19,picker:19,pickradiu:19,pil:19,pil_kwarg:19,pip:[6,25,30],pivot:19,pixel:19,place:[19,26,31],placement:19,plai:31,plane:19,platform:26,pleas:19,plot:[11,19,20,21,25,31],plotcurveitem:11,plotdataitem:11,plotdatalay:11,plotitem:11,plotnonfinit:19,plt:[11,19,20,21,25],plu:[16,19],plugin:[26,27],plural:19,pluss:19,png:19,po:[8,11],point:[2,11,13,19,20],polar:19,polycollect:19,polygon:19,pop:[19,20,24,26],pope:8,popup:[8,24,26,30],popup_mod:[8,16,24],popupmod:[8,16,24],popupmodestr:8,portion:19,portrait:19,pos0:11,pos1:11,posit:[11,14,16,19,24],possibl:19,post:19,postscript:19,potenti:19,power:[19,26,30],pre:[2,8,19,31],preced:19,precis:19,predefinit:31,prefer:[19,27],premultipli:19,prepar:[2,6,21,28],present:19,press:11,prevent:26,previou:[11,19,28],print:[2,7,11,14,16,19,20,24,26,27,28,29,30],print_figur:19,print_html:19,print_imag:19,print_param:31,print_png:19,print_rst:19,print_svg:19,print_tabl:19,print_text:26,print_tim:27,print_valu:[7,26,29],privat:27,pro:31,probabl:19,problem:[26,27,31],procedur:26,process:[10,19],process_work:10,produc:19,program:31,programat:[27,30,32],programm:27,programmat:[3,14],progress:[8,10,19,32],progressbar:[8,30],project:19,prop:19,prop_cycl:19,proper:[10,19,26],properti:[3,5,8,11,14,15,16,19,20,26],protocol:[6,19],provid:[6,7,8,11,14,16,19,23,25,26,29,31,32],ps:19,pseudocolor:19,psygnal:5,pull:19,purpos:31,push:[3,7,8,26,31],pushbutton:[8,16,19,26],pushbuttonplu:16,put:[19,31],px:11,pylistwidget:20,pylistwidgetitem:[19,20],pyobject:20,pyobjectbound:20,pypi:6,pyplot:[19,21],pyqt5:[8,16,19,20],pyqtgraph:[6,8,9],pyqtgraph_avail:11,pytablewidget:20,pytablewidgetitem:20,python:[2,5,6,8,10,14,16,19,20,21,26,27,29],pytreewidget:20,pytreewidgetitem:20,pyvista:[8,9],pyvistacanva:13,pywidget:[1,8,19],q:16,qaction:16,qbasewidget:19,qcolor:19,qcolor_to_rgba:19,qcoloredit:19,qcolorlineedit:19,qcolorpopup:19,qcolorslid:19,qcolorswatch:19,qdoubleslid:19,qfloatedit:19,qframe:19,qgraphicsscenemouseev:11,qgroupbox:[3,19],qimag:19,qintedit:19,qkeysequ:16,qlineedit:19,qlistwidget:[3,20],qlistwidgetitem:20,qmdiarea:3,qmenu:16,qobject:16,qpoint:20,qpushbutton:3,qrangeslid:19,qrect:19,qregion:19,qrunnabl:30,qscrollarea:3,qslider:19,qsplitter:3,qstackedwidget:3,qt2yplotcanva:11,qt:[5,7,10,11,16,21,25],qtablewidget:20,qtablewidgetitem:20,qtabwidget:3,qtconsol:[8,9],qtextedit:19,qtgui:[16,19],qthread:[10,22,30],qtimagecanva:[11,25],qtkei:16,qtlogger:19,qtmodifi:16,qtmultiimagecanva:[11,25],qtmultiplotcanva:[11,25],qtoolbar:16,qtoolbox:3,qtoolbutton:3,qtplotcanva:[11,25],qtpy:5,qtreewidget:20,qtreewidgetitem:[8,20],qttabtoolbar:16,qtwidget:[6,8,16,19,20],quadrant:19,quadric:19,qualiti:19,quantiti:19,question:[16,18],quick:6,quickli:19,quit:[2,19],quiver:19,quiverkei:19,qwidg:19,qwidget:[5,14,16,18,19],qwidgetact:16,r:[11,16,19,21],radio:3,radiobutton:28,radiu:19,rais:[2,8,16,19,20,24,30],random:[11,19,21,27,28,32],randomli:28,rang:[3,8,11,19,30],rangeslid:19,rare:19,raster:19,rate:19,rather:19,ratio:19,raw:19,rc:19,rc_context:19,rcparam:19,re:[2,8,19],reach:31,read_coordin:27,readabl:[6,7,31],readi:[5,8,26,29,30],readout:8,real:2,reason:[6,19,30,31],receiv:[11,14,16,19],recogn:19,recommend:[19,26,31],record:[6,7,8,19,27,31],rectangl:[19,27],rectangular:19,red:19,redo:8,redraw:19,reduc:[7,19],redund:26,refer:[6,8,19,27],referenc:19,regardless:19,region:11,regist:[4,19,20],register_callback:20,register_contextmenu:20,register_deleg:20,register_scal:19,register_tooltip:20,register_typ:[4,27],regular:19,rel:19,relai:5,relat:[8,19],relev:19,reli:[6,30],remain:19,reminisc:29,remov:[8,11,19],renam:19,render:[15,16,19],replac:8,report:19,repositori:6,repr:[8,29],repres:[5,19],represent:19,reproduc:27,requir:19,resampl:[19,28],reset:[16,28],reset_choic:[16,28],resiz:[3,19],resolut:19,resolv:19,respect:19,restor:19,restrict:5,result:[2,18,19,27,31],retain:8,retriev:27,return_annot:8,returned_valu:30,revers:19,rewrit:30,rgb:19,rgba:19,rgba_to_html:19,rgba_to_qcolor:19,rice:19,rich:26,right:[16,19,23],righthand:19,ro:19,roi:11,roman:19,rotat:19,rotation_mod:19,round:19,row:[19,20],rs:19,rst:19,rule:[4,19],run:[8,10,16,21,26,27,30],runtimeerror:8,rwidth:19,s:[2,3,5,6,8,11,14,16,19,21,26,27,29,30,31],safe:[8,18,29,31],safeti:5,same:[2,3,8,11,19,23,24,27,29,30,31],san:19,save:19,savefig:19,scalar:19,scale:[11,19],scale_bar:11,scale_unit:19,scalebar:11,scalebas:19,scalei:19,scalex:19,scatter:[11,19],scatterplot:19,scatterplotitem:11,scatterpoint:19,scatteryoffset:19,scene:15,scope:2,scott:19,screen:[18,19],screen_cent:18,script:[10,14,26,27],scroll:3,scrollabl:[3,8,19],scrollablecontain:19,seaborn:31,search:[6,19,20,31],second:[4,10,19,21,30,31],second_a:23,second_b:23,second_c:23,section:19,see:[2,7,11,19,24,26,27,28],select:[3,19,28],self:[2,5,7,8,16,19,20,21,23,26,27,28,29,30,31],semant:19,semi:19,semibold:19,semicolon:16,semilog:19,send:10,sent:8,sep:[16,19],separ:[7,8,21,22,26],separet:31,seq:19,sequenc:[8,11,14,16,22],serif:19,set:[3,5,6,7,8,11,19,21,24,27,31],set_aspect:19,set_bad:19,set_context_menu:16,set_contextmenu:19,set_design:[8,26,31],set_directori:28,set_frame_on:19,set_hist:11,set_label:19,set_logg:19,set_menu:16,set_opt:[8,26,27,28],set_param:31,set_plt:19,set_shortcut:16,set_stdout:19,set_titl:19,set_unit:19,set_url:19,set_valu:26,set_widget:[5,19],set_xlim:19,set_xtick:19,set_xticklabel:19,set_ylim:19,set_ytick:19,set_yticklabel:19,setcolor:19,setcontextmenu:20,setmaximum:19,setminimum:19,setobject:20,setparentwidget:20,setsinglestep:19,setter:[5,8],settext:19,setvalu:[5,19],sever:[7,8,19,24,31],shadow:19,shaft:19,shape:[19,20,27],share:[2,19,20,30],sharei:[11,19],sharex:[11,19],sheet:19,shift:[16,19],shortcut:[7,8,19],shorthand:19,should:[5,7,19,20,26,27,28,29],show:[2,3,4,5,8,11,14,19,20,21,23,26,27,29,30,31,32],show_current_directori:28,show_messagebox:18,shown:[8,19,26],side:19,sig:8,signal:[5,11,14,16,19,29],signalinst:[11,14,16,19],signatur:[11,14,16,18,19,22],significantli:19,similar:[8,11,16,18,20,21,23,26,28,29,30,31],similarli:[2,19,26],simpl:[19,21,28],simpler:27,simpleviewbox:11,simpli:19,simplic:[5,29],sin:19,sinc:[19,21,26,27,28,30,31],singl:[19,20,30],singlestep:19,situat:7,six:30,size:[8,11,15,19,21],sketch_param:19,slash:16,sleep:30,slice:19,slider:[8,19,26,29],slight:19,slightli:19,slope:[11,19],slow:19,small:19,smaller:19,snap:19,so:[2,7,19,26,27],solid:19,solid_capstyl:19,solid_joinstyl:19,solv:27,some:[2,6,7,11,14,19,26,27,28,30,31],some_funct:7,someth:[2,8,19,28,30,31],sometim:[19,21,28,31],soon:19,sort:[18,31],sourc:[8,10,11,12,13,14,15,16,18,19,20],space:[3,19],span:19,speak:8,spec:19,specif:[2,16,19,24],specifi:[11,14,16,19,24,27,30],speed:19,spell:19,spin:7,spinbox:8,spline16:19,spline36:19,split:[3,8,23],splitter:[3,19],splittercontain:19,spread:19,spreadsheet:19,sqrt:19,squar:[11,19],squeez:19,stack:[3,8,19],stackedcontain:19,stale:19,standard:[4,19,23,24,29],standardize_color:19,star:[11,19],start:[6,7,8,10,19,20,21,30],state:[8,19,27,29,30],std:8,stderr:24,stdout:19,step:[8,19,26,31],stepfil:19,still:[5,8,26],stone:19,stop:[19,20],store:[19,26,29],str:[2,5,8,11,14,15,16,18,19,20,24,26,28,29,30,31],straight:19,strategi:[2,19],stretch:19,strictli:8,string:[4,7,8,11,19,20,26,30],strs2keycombo:16,structur:[2,19],sturg:19,style:[4,7,8,11,19],stylesheet:[8,22],sub:8,subclass:[2,8,19,29],submodul:[9,22,25],subpackag:22,subplot:[19,21],subplot_kw:19,subplots_axes_and_figur:19,substitut:19,subwindow:[3,8],subwindowscontain:19,sue:19,suffici:19,suitabl:19,sum:19,summer:26,superqt:[8,30],suppli:19,support:[10,11,14,16,19,21,27,28],support_valu:16,suppos:5,suppress:19,sure:[7,8],svg:19,swap:11,swatch:19,swept:19,sy:19,symbol:[11,15,19],symlog:19,symmetricallogscal:19,synchron:26,synonym:19,syntax:19,system:[11,19,26],t:[2,7,16,19,26,27,29,31],t_start:27,tab:[3,8,16,19,23],tab_siz:19,tabbedcontain:19,tabl:[18,19,20,29],tag:[19,20,26],tail:19,take:[4,19,26,31],takechild:8,taken:19,tandem:[10,23],target:31,technic:19,templat:[2,8],temporari:19,term:[5,31],terribl:19,test:[9,11,19],test_plot_canva:12,test_qtgraph:[9,11],text:[3,8,11,14,16,18,19,26,31],text_item:11,text_overlai:11,textedit:19,textgroup:11,textitem:11,textitemview:11,th:11,than:[2,19],thei:[8,19,20,23,26,29,30,31],them:[3,8,19,27,29],thereof:19,thi:[2,3,4,5,7,8,10,11,14,16,18,19,20,26,27,28,30,31,32],thick:19,thin_diamond:19,thing:[2,19,31],third:19,those:[2,7,11,19,26],though:19,thread:[6,10,19],thread_work:[8,30],three:19,through:19,thu:19,tick:[19,21],tick_param:19,ticklabel:19,tidi:6,tight:19,time:[2,3,7,8,11,14,16,19,24,26,27,28,30,31],tip:19,titl:[3,11,16,18,19,20,21],title_fonts:19,titlecolor:19,titlei:19,titleloc:19,titlepad:19,titles:19,titleweight:19,to_act:8,to_clipboard:18,to_napari:10,to_qtkei:16,to_qtmodifi:16,to_widget:[8,29],togeth:19,toggl:[3,11,19],toi:19,tolist:[4,20,27],tom:19,tool:[3,19,31],toolbar:[3,8,19,22,31],toolbargui:[8,16],toolbox:[3,8],toolboxcontain:19,toolbuttonplu:16,tooltip:[8,16,18,19,20,26],tooltipfor:20,top:[11,19],total:19,toward:19,tqdm:22,track:8,tradit:19,trang:8,transax:19,transform:19,transform_color:19,transform_rotates_text:19,transpar:19,transpos:19,treat:[11,19],tree:[8,19],tri:25,tri_down:19,tri_left:19,tri_right:19,tri_up:19,triangl:[11,19],triangle_down:19,triangle_left:19,triangle_right:19,triangle_up:19,trigger:7,truncat:19,tupl:[8,11,15,16,18,19],tupleedit:[8,19],turn:19,tutori:19,twice:31,twini:19,twinx:19,two:[2,3,4,8,11,19],two_scal:19,type:[2,4,5,6,7,10,11,14,16,18,19,20,22,24,26,29,30,31],type_:20,typeddict:8,typeerror:2,typic:[7,19,31],typing_extens:27,u:[16,19],ui:[2,8,14,23,26,27,29,30,31,32],uiboundtreeitem:8,ultra:19,ultralight:19,unassoci:19,unchang:19,undefin:19,under:[19,31],underscor:19,unequ:19,unfil:19,unifi:11,uniform:19,union:[8,10],unit:[11,19],unknown:19,unless:19,unlik:[3,8,19,28],unmask:19,unpack:19,unset:[8,19],until:[2,30,31],up:[3,7,8,16,19,24,26],updat:[8,11,19,20,21,26,30,31],updateview:11,upgrad:8,upgrade_signatur:8,upon:[19,29],upper:[2,19],upsampl:19,upward:19,url:19,us:[2,4,5,6,7,8,9,10,11,14,16,19,24,32],useless:27,user:[6,8,19,21,26,27],usetex:19,usual:[19,21,23,26,27,28,30,31],util:[1,8,9,11,13,14,15,20,22,30],uv:19,v0:21,v:[5,8,11,16,19],va:19,valid:[16,19],valu:[2,4,5,6,7,8,11,14,16,18,19,20,26,28,29,30,31],value_widget:[8,19],valuechang:5,valueerror:[8,19,20],valuewidget:[8,19],vari:[19,30],variabl:[2,19,29],variant:19,variat:[6,24],varieti:25,variou:19,vector:19,verbatim:19,veri:[4,5,7,14,21,27,28,29,30,31],version:[8,19,31],versu:19,vertic:[8,11,19,24],verticalalign:19,vfield:[8,29,30],via:[5,7,19,21,24,29,30,31],view:[19,20],viewbox:[11,15],viewboxext:11,viewer:[10,11,24,27,32],visibl:[3,5,8,11,15,16,19,20,24],vispi:[6,8,9],vispy3dcanva:[15,32],vispyplotcanva:15,visual:[11,21,25],vline:19,vmax:19,vmin:19,vs:19,w:[16,19,27,28,30],wa:[11,19,20,29,30],wai:[5,7,8,10,11,16,19,20,21,25,26,27,29,30],wait:10,want:[2,5,7,8,19,21,23,26,27,28,29,30,31],warn:[18,19],warp:31,wdt:[5,28],we:[6,18,21,23],web:19,websit:26,weight:19,well:[2,19,26],what:[8,19,31],whatev:19,when:[2,3,7,8,10,11,14,16,19,20,23,26,27,28,29,30,31],whenev:[19,26],where:[8,19],wherea:19,whether:[8,11,14,16,19,27],which:[2,7,8,10,16,19,20,26,27,29,30],white:19,whitespac:19,whose:[7,26],why:6,wide:21,widget:[1,6,7,8,9,16,18,22,23,24,25,27,28,29,30,32],widget_typ:[3,8,16,24,26,29,31],widgetact:[8,16],widgetopt:[8,19],widgetprotocol:8,widgets3d:[8,9],widgettyp:[3,8,24],widgettypestr:8,width:[8,11,19,30],window:[3,19,24,26,30],wire_color:15,wish:19,within:19,without:[6,7,8,19,30],word:19,work:[2,19,23,27,31,32],worker:[8,10,30],worri:[2,7,26],worst:19,would:14,wrap:[2,7,8,19,31],wrap_contain:19,wrapper:[7,11,19,20,22,27,28],write:[19,24,31],x0:[19,27],x1:[19,27],x2:19,x:[2,5,11,15,16,19,21,31],xaxi:19,xdata:[11,19],xlabel:[11,19,21],xlim:[11,19,21],xmax:19,xmin:19,xrang:19,xscale:19,xtick:[19,21],xx:19,xy1:19,xy2:19,xy:19,y1:[11,19],y2:[11,19],y:[2,11,15,16,19,21,31],yaxi:19,ydata:[11,19],ye:[18,31],yellow:19,yet:[2,26],yield:[8,19,30],yielded_valu:30,ylabel:[11,19],ylim:[11,19],ymax:19,ymin:19,you:[2,3,4,5,6,7,8,10,14,18,19,20,21,23,24,25,26,27,28,29,30,31,32],your:[5,7,19,21,28,31],yrang:19,yscale:19,ytick:19,z:[11,16],zero:19,zoom:19,zorder:[11,19]},titles:["Additional types","API References","Inherit Magic Class","Container Variations","Customize Macro Recording","Convert QtWidgets into a Magic Widget","Welcome to magic-class documentation!","Define Custom Keybindings","magicclass package","magicclass.ext package","magicclass.ext.napari package","magicclass.ext.pyqtgraph package","magicclass.ext.pyqtgraph.tests package","magicclass.ext.pyvista package","magicclass.ext.qtconsole package","magicclass.ext.vispy package","magicclass.gui package","magicclass.stylesheets package","magicclass.utils package","magicclass.widgets package","magicclass.widgets.pywidgets package","Use Matplotlib Figure","magicclass","Nest magic-classes","Options in magic-class","Use PyQtGraph Canvas","Quick Start","Binding Values to Arguments","Set Choices Dynamically","Use Fields in magic-class","Multi-threading","Call Parent Methods from its Child","Vispy Canvas"],titleterms:{"1":2,"class":[2,6,21,23,24,26,29],"default":3,"function":[7,18,26,31],A:5,It:5,The:2,add:26,addit:0,advanc:6,after:26,ancestor:31,annot:27,api:1,argument:27,automat:26,avail:3,ax:21,bar:30,base:2,basic:[5,6,21,23,26,30,31],behav:5,better:6,bind:[2,27],button:26,buttoncontain:3,call:31,callback:[2,29,30],canva:[25,32],chang:26,child:31,choic:28,class_gui:16,code:26,collapsiblecontain:3,color:19,compat:7,complet:26,compon:11,connect:30,construct:26,contain:[3,19],content:[1,6,8,9,10,11,12,13,14,15,16,17,18,19,20,26],convert:5,copi:31,core:8,custom:[4,7],data:6,decor:7,defin:[2,4,7,29],design:26,dict:20,dictwidget:20,document:[6,26],draggablecontain:3,dynam:28,ext:[9,10,11,12,13,14,15],featur:7,field:[2,8,27,29],figur:21,find:31,framecontain:3,from:31,graph_item:11,groupboxcontain:3,gui:[6,16],hcollapsiblecontain:3,help:8,how:[4,7,30],imag:15,indic:6,inherit:2,initi:26,instal:6,iter:30,its:31,keybind:[7,16],like:[5,29],list:20,listcontain:3,listwidget:20,logger:19,macro:[4,26],magic:[2,5,6,21,23,24,26,29],magicclass:[8,9,10,11,12,13,14,15,16,17,18,19,20,22],magicfield:[28,29],magicgui:28,mainwindow:3,make:[5,6,23,26,29,31],map:3,matplotlib:21,menu:23,menu_gui:16,method:[2,27,28,31],mgui_ext:16,misc:19,modul:[8,9,10,11,12,13,14,15,16,17,18,19,20],more:[5,29],mouse_ev:11,multi:30,multipl:21,napari:10,nest:[2,23],number:30,object:[2,4,20],option:[0,24,26],order:2,other:[3,7,26],packag:[8,9,10,11,12,13,14,15,16,17,18,19,20],paramet:26,parent:31,post:26,predefinit:2,privat:7,progress:30,proper:30,properti:29,pyqtgraph:[11,12,25],pyvista:13,pywidget:20,qt:3,qtconsol:14,qthread:8,qtwidget:5,quick:26,record:[4,26],refer:1,scrollablecontain:3,separ:19,sequenc:19,set:[28,30],signatur:8,sourc:6,splittercontain:3,stackedcontain:3,start:26,strategi:23,stylesheet:17,submodul:[8,10,11,12,13,14,15,16,18,19,20],subpackag:[8,9,11,19],subwindowscontain:3,syntax:31,tabbedcontain:3,tabl:6,templat:31,test:12,test_qtgraph:12,thread:30,toolbar:[16,23],toolboxcontain:3,topic:6,total:30,tqdm:8,tree:20,type:[0,3,8,27],us:[3,21,23,25,26,27,28,29,30,31],usag:[5,21,30],util:[10,16,18,19],valu:27,valuewidget:5,variat:3,vispi:[15,32],visual:6,welcom:6,widget:[2,3,5,10,11,13,14,15,19,20,21,26,31],widgets3d:15,wrapper:8,your:[6,26]}})
+Search.setIndex({docnames:["additional_types","api","class_inheritance","containers","customize_macro","freewidget","index","keybinding","magicclass","magicclass.ext","magicclass.ext.napari","magicclass.ext.pyqtgraph","magicclass.ext.pyqtgraph.tests","magicclass.ext.pyvista","magicclass.ext.qtconsole","magicclass.ext.vispy","magicclass.gui","magicclass.stylesheets","magicclass.utils","magicclass.widgets","magicclass.widgets.pywidgets","matplotlib","modules","nest","options","pyqtgraph","quick_start","use_bind","use_choices","use_field","use_preview","use_worker","use_wraps","vispy"],envversion:{"sphinx.domains.c":2,"sphinx.domains.changeset":1,"sphinx.domains.citation":1,"sphinx.domains.cpp":4,"sphinx.domains.index":1,"sphinx.domains.javascript":2,"sphinx.domains.math":2,"sphinx.domains.python":3,"sphinx.domains.rst":2,"sphinx.domains.std":2,"sphinx.ext.viewcode":1,sphinx:56},filenames:["additional_types.rst","api.rst","class_inheritance.rst","containers.rst","customize_macro.rst","freewidget.rst","index.rst","keybinding.rst","magicclass.rst","magicclass.ext.rst","magicclass.ext.napari.rst","magicclass.ext.pyqtgraph.rst","magicclass.ext.pyqtgraph.tests.rst","magicclass.ext.pyvista.rst","magicclass.ext.qtconsole.rst","magicclass.ext.vispy.rst","magicclass.gui.rst","magicclass.stylesheets.rst","magicclass.utils.rst","magicclass.widgets.rst","magicclass.widgets.pywidgets.rst","matplotlib.rst","modules.rst","nest.rst","options.rst","pyqtgraph.rst","quick_start.rst","use_bind.rst","use_choices.rst","use_field.rst","use_preview.rst","use_worker.rst","use_wraps.rst","vispy.rst"],objects:{"":{magicclass:[8,0,0,"-"]},"magicclass.core":{MagicClassFactory:[8,1,1,""],Parameters:[8,1,1,""],build_help:[8,3,1,""],get_function_gui:[8,3,1,""],magicclass:[8,3,1,""],magiccontext:[8,3,1,""],magicmenu:[8,3,1,""],magictoolbar:[8,3,1,""],redo:[8,3,1,""]},"magicclass.core.MagicClassFactory":{as_magicclass:[8,2,1,""],as_magiccontext:[8,2,1,""],as_magicmenu:[8,2,1,""],as_magictoolbar:[8,2,1,""]},"magicclass.core.Parameters":{as_dict:[8,2,1,""]},"magicclass.ext":{napari:[10,0,0,"-"],pyqtgraph:[11,0,0,"-"],pyvista:[13,0,0,"-"],qtconsole:[14,0,0,"-"],vispy:[15,0,0,"-"]},"magicclass.ext.napari":{NapariCanvas:[10,1,1,""],to_napari:[10,3,1,""],utils:[10,0,0,"-"],widgets:[10,0,0,"-"]},"magicclass.ext.napari.utils":{process_worker:[10,3,1,""],to_napari:[10,3,1,""]},"magicclass.ext.napari.widgets":{NapariCanvas:[10,1,1,""]},"magicclass.ext.pyqtgraph":{Qt2YPlotCanvas:[11,1,1,""],QtImageCanvas:[11,1,1,""],QtMultiImageCanvas:[11,1,1,""],QtMultiPlotCanvas:[11,1,1,""],QtPlotCanvas:[11,1,1,""],components:[11,0,0,"-"],graph_items:[11,0,0,"-"],mouse_event:[11,0,0,"-"],tests:[12,0,0,"-"],widgets:[11,0,0,"-"]},"magicclass.ext.pyqtgraph.Qt2YPlotCanvas":{updateViews:[11,2,1,""]},"magicclass.ext.pyqtgraph.QtImageCanvas":{background_color:[11,4,1,""]},"magicclass.ext.pyqtgraph.components":{GraphicComponent:[11,1,1,""],Legend:[11,1,1,""],Region:[11,1,1,""],Roi:[11,1,1,""],ScaleBar:[11,1,1,""],TextItem:[11,1,1,""]},"magicclass.ext.pyqtgraph.components.GraphicComponent":{"native":[11,5,1,""],update:[11,2,1,""],visible:[11,4,1,""]},"magicclass.ext.pyqtgraph.components.Legend":{"native":[11,5,1,""],background_color:[11,4,1,""],border:[11,4,1,""],color:[11,4,1,""],size:[11,4,1,""]},"magicclass.ext.pyqtgraph.components.Region":{"native":[11,5,1,""],changed:[11,5,1,""],color:[11,4,1,""],enabled:[11,4,1,""],value:[11,4,1,""]},"magicclass.ext.pyqtgraph.components.Roi":{"native":[11,5,1,""],border:[11,4,1,""]},"magicclass.ext.pyqtgraph.components.ScaleBar":{"native":[11,5,1,""],color:[11,4,1,""],unit:[11,4,1,""]},"magicclass.ext.pyqtgraph.components.TextItem":{"native":[11,5,1,""],anchor:[11,4,1,""],background_color:[11,4,1,""],border:[11,4,1,""],color:[11,4,1,""],pos:[11,4,1,""],text:[11,4,1,""]},"magicclass.ext.pyqtgraph.graph_items":{BarPlot:[11,1,1,""],Curve:[11,1,1,""],FillBetween:[11,1,1,""],Histogram:[11,1,1,""],InfLine:[11,1,1,""],LayerItem:[11,1,1,""],PlotDataLayer:[11,1,1,""],Scatter:[11,1,1,""],TextGroup:[11,1,1,""],TextItemView:[11,1,1,""]},"magicclass.ext.pyqtgraph.graph_items.BarPlot":{"native":[11,5,1,""],edge_color:[11,4,1,""],face_color:[11,4,1,""],xdata:[11,4,1,""],ydata:[11,4,1,""]},"magicclass.ext.pyqtgraph.graph_items.Curve":{"native":[11,5,1,""],edge_color:[11,4,1,""],face_color:[11,4,1,""],size:[11,4,1,""],symbol:[11,4,1,""]},"magicclass.ext.pyqtgraph.graph_items.FillBetween":{"native":[11,5,1,""],edge_color:[11,4,1,""],face_color:[11,4,1,""],linestyle:[11,4,1,""],linewidth:[11,4,1,""],ls:[11,4,1,""],lw:[11,4,1,""],name:[11,4,1,""]},"magicclass.ext.pyqtgraph.graph_items.Histogram":{"native":[11,5,1,""],set_hist:[11,2,1,""]},"magicclass.ext.pyqtgraph.graph_items.InfLine":{"native":[11,5,1,""],angle:[11,4,1,""],color:[11,4,1,""],edge_color:[11,4,1,""],intercept:[11,4,1,""],linestyle:[11,4,1,""],linewidth:[11,4,1,""],ls:[11,4,1,""],lw:[11,4,1,""],name:[11,4,1,""],pos:[11,4,1,""],slope:[11,4,1,""]},"magicclass.ext.pyqtgraph.graph_items.LayerItem":{"native":[11,5,1,""],visible:[11,4,1,""],zorder:[11,4,1,""]},"magicclass.ext.pyqtgraph.graph_items.PlotDataLayer":{"native":[11,5,1,""],add:[11,2,1,""],color:[11,4,1,""],edge_color:[11,4,1,""],face_color:[11,4,1,""],linestyle:[11,4,1,""],linewidth:[11,4,1,""],ls:[11,4,1,""],lw:[11,4,1,""],name:[11,4,1,""],ndata:[11,4,1,""],remove:[11,2,1,""],xdata:[11,4,1,""],ydata:[11,4,1,""]},"magicclass.ext.pyqtgraph.graph_items.Scatter":{"native":[11,5,1,""],size:[11,4,1,""],symbol:[11,4,1,""]},"magicclass.ext.pyqtgraph.graph_items.TextGroup":{"native":[11,5,1,""],anchor:[11,4,1,""],background_color:[11,4,1,""],border:[11,4,1,""],color:[11,4,1,""],text:[11,4,1,""],text_items:[11,4,1,""],xdata:[11,4,1,""],ydata:[11,4,1,""]},"magicclass.ext.pyqtgraph.graph_items.TextItemView":{anchor:[11,4,1,""],background_color:[11,4,1,""],border:[11,4,1,""],color:[11,4,1,""],text:[11,4,1,""]},"magicclass.ext.pyqtgraph.mouse_event":{MouseClickEvent:[11,1,1,""]},"magicclass.ext.pyqtgraph.mouse_event.MouseClickEvent":{buttons:[11,2,1,""],lastPos:[11,2,1,""],modifiers:[11,2,1,""],pos:[11,2,1,""]},"magicclass.ext.pyqtgraph.tests":{test_qtgraph:[12,0,0,"-"]},"magicclass.ext.pyqtgraph.tests.test_qtgraph":{test_plot_canvas:[12,3,1,""]},"magicclass.ext.pyqtgraph.widgets":{HasBackground:[11,1,1,""],HasDataItems:[11,1,1,""],HasViewBox:[11,1,1,""],ImageItem:[11,1,1,""],LayerList:[11,1,1,""],PlotItem:[11,1,1,""],Qt2YPlotCanvas:[11,1,1,""],QtImageCanvas:[11,1,1,""],QtMultiImageCanvas:[11,1,1,""],QtMultiPlotCanvas:[11,1,1,""],QtPlotCanvas:[11,1,1,""],SimpleViewBox:[11,1,1,""],ViewBoxExt:[11,1,1,""]},"magicclass.ext.pyqtgraph.widgets.HasBackground":{background_color:[11,4,1,""]},"magicclass.ext.pyqtgraph.widgets.HasDataItems":{add_bar:[11,2,1,""],add_curve:[11,2,1,""],add_fillbetween:[11,2,1,""],add_hist:[11,2,1,""],add_infline:[11,2,1,""],add_scatter:[11,2,1,""],add_text:[11,2,1,""],layers:[11,4,1,""]},"magicclass.ext.pyqtgraph.widgets.HasViewBox":{border:[11,4,1,""],enabled:[11,4,1,""],interactive:[11,4,1,""],xlim:[11,4,1,""],ylim:[11,4,1,""]},"magicclass.ext.pyqtgraph.widgets.ImageItem":{cmap:[11,4,1,""],contrast_limits:[11,4,1,""],image:[11,4,1,""],lock_contrast_limits:[11,4,1,""],scale_bar:[11,4,1,""],text_overlay:[11,4,1,""],title:[11,4,1,""],xlabel:[11,4,1,""],ylabel:[11,4,1,""]},"magicclass.ext.pyqtgraph.widgets.LayerList":{append:[11,2,1,""],clear:[11,2,1,""],insert:[11,2,1,""],move:[11,2,1,""],swap:[11,2,1,""]},"magicclass.ext.pyqtgraph.widgets.PlotItem":{legend:[11,4,1,""],region:[11,4,1,""],title:[11,4,1,""],xlabel:[11,4,1,""],ylabel:[11,4,1,""]},"magicclass.ext.pyqtgraph.widgets.Qt2YPlotCanvas":{updateViews:[11,2,1,""]},"magicclass.ext.pyqtgraph.widgets.QtImageCanvas":{background_color:[11,4,1,""]},"magicclass.ext.pyqtgraph.widgets.ViewBoxExt":{hoverEvent:[11,2,1,""]},"magicclass.ext.pyvista":{PyVistaCanvas:[13,1,1,""],widgets:[13,0,0,"-"]},"magicclass.ext.pyvista.PyVistaCanvas":{add_mesh:[13,2,1,""],add_points:[13,2,1,""]},"magicclass.ext.pyvista.widgets":{PyVistaCanvas:[13,1,1,""]},"magicclass.ext.pyvista.widgets.PyVistaCanvas":{add_mesh:[13,2,1,""],add_points:[13,2,1,""]},"magicclass.ext.qtconsole":{QtConsole:[14,1,1,""],widgets:[14,0,0,"-"]},"magicclass.ext.qtconsole.QtConsole":{central_widget:[14,5,1,""],execute:[14,2,1,""],executed:[14,5,1,""],name:[14,5,1,""],value:[14,4,1,""]},"magicclass.ext.qtconsole.widgets":{QtConsole:[14,1,1,""]},"magicclass.ext.qtconsole.widgets.QtConsole":{execute:[14,2,1,""],executed:[14,5,1,""],value:[14,4,1,""]},"magicclass.ext.vispy":{image:[15,0,0,"-"],widgets3d:[15,0,0,"-"],widgets:[15,0,0,"-"]},"magicclass.ext.vispy.image":{Image:[15,1,1,""],IsoSurface:[15,1,1,""],LayerItem:[15,1,1,""]},"magicclass.ext.vispy.image.Image":{attenuation:[15,4,1,""],contrast_limits:[15,4,1,""],data:[15,4,1,""],gamma:[15,4,1,""],interpolation:[15,4,1,""],iso_threshold:[15,4,1,""],rendering:[15,4,1,""]},"magicclass.ext.vispy.image.IsoSurface":{contrast_limits:[15,4,1,""],data:[15,4,1,""],edge_color:[15,4,1,""],face_color:[15,4,1,""],iso_threshold:[15,4,1,""]},"magicclass.ext.vispy.image.LayerItem":{visible:[15,4,1,""]},"magicclass.ext.vispy.widgets":{VispyPlotCanvas:[15,1,1,""]},"magicclass.ext.vispy.widgets.VispyPlotCanvas":{add_curve:[15,2,1,""],layers:[15,4,1,""]},"magicclass.ext.vispy.widgets3d":{Vispy3DCanvas:[15,1,1,""]},"magicclass.ext.vispy.widgets3d.Vispy3DCanvas":{add_image:[15,2,1,""],add_isosurface:[15,2,1,""],camera:[15,4,1,""],layers:[15,4,1,""]},"magicclass.fields":{MagicField:[8,1,1,""],MagicValueField:[8,1,1,""],field:[8,3,1,""],vfield:[8,3,1,""]},"magicclass.fields.MagicField":{"default":[8,5,1,""],annotation:[8,4,1,""],as_getter:[8,2,1,""],compare:[8,5,1,""],connect:[8,2,1,""],copy:[8,2,1,""],default_factory:[8,5,1,""],disconnect:[8,2,1,""],get_action:[8,2,1,""],get_widget:[8,2,1,""],hash:[8,5,1,""],init:[8,5,1,""],metadata:[8,5,1,""],name:[8,5,1,""],not_ready:[8,2,1,""],options:[8,4,1,""],ready:[8,2,1,""],repr:[8,5,1,""],to_action:[8,2,1,""],to_widget:[8,2,1,""],type:[8,5,1,""],value:[8,4,1,""],widget_type:[8,4,1,""],wraps:[8,2,1,""]},"magicclass.fields.MagicValueField":{"default":[8,5,1,""],callbacks:[8,5,1,""],compare:[8,5,1,""],default_factory:[8,5,1,""],get_widget:[8,2,1,""],guis:[8,5,1,""],hash:[8,5,1,""],init:[8,5,1,""],metadata:[8,5,1,""],name:[8,5,1,""],parent_class:[8,5,1,""],repr:[8,5,1,""],type:[8,5,1,""]},"magicclass.gui":{class_gui:[16,0,0,"-"],keybinding:[16,0,0,"-"],menu_gui:[16,0,0,"-"],mgui_ext:[16,0,0,"-"],toolbar:[16,0,0,"-"],utils:[16,0,0,"-"]},"magicclass.gui.class_gui":{ClassGuiBase:[16,1,1,""],make_gui:[16,3,1,""]},"magicclass.gui.class_gui.ClassGuiBase":{"native":[16,5,1,""]},"magicclass.gui.keybinding":{Key:[16,1,1,""],as_shortcut:[16,3,1,""],ismodifier:[16,3,1,""],parse_key_combo:[16,3,1,""],strs2keycombo:[16,3,1,""]},"magicclass.gui.keybinding.Key":{A:[16,5,1,""],Alt:[16,5,1,""],Ampersand:[16,5,1,""],Apostrophe:[16,5,1,""],Asterisk:[16,5,1,""],At:[16,5,1,""],B:[16,5,1,""],Backspace:[16,5,1,""],C:[16,5,1,""],Colon:[16,5,1,""],Comma:[16,5,1,""],Ctrl:[16,5,1,""],D:[16,5,1,""],Delete:[16,5,1,""],Dollar:[16,5,1,""],Down:[16,5,1,""],E:[16,5,1,""],Equal:[16,5,1,""],Exclam:[16,5,1,""],F10:[16,5,1,""],F11:[16,5,1,""],F12:[16,5,1,""],F1:[16,5,1,""],F2:[16,5,1,""],F3:[16,5,1,""],F4:[16,5,1,""],F5:[16,5,1,""],F6:[16,5,1,""],F7:[16,5,1,""],F8:[16,5,1,""],F9:[16,5,1,""],F:[16,5,1,""],G:[16,5,1,""],Greater:[16,5,1,""],H:[16,5,1,""],I:[16,5,1,""],J:[16,5,1,""],K:[16,5,1,""],L:[16,5,1,""],Left:[16,5,1,""],Less:[16,5,1,""],M:[16,5,1,""],Meta:[16,5,1,""],Minus:[16,5,1,""],N:[16,5,1,""],O:[16,5,1,""],P:[16,5,1,""],PageDown:[16,5,1,""],PageUp:[16,5,1,""],ParenLeft:[16,5,1,""],ParenRight:[16,5,1,""],Percent:[16,5,1,""],Period:[16,5,1,""],Plus:[16,5,1,""],Q:[16,5,1,""],Question:[16,5,1,""],R:[16,5,1,""],Right:[16,5,1,""],S:[16,5,1,""],Semicolon:[16,5,1,""],Shift:[16,5,1,""],Slash:[16,5,1,""],T:[16,5,1,""],Tab:[16,5,1,""],U:[16,5,1,""],Up:[16,5,1,""],V:[16,5,1,""],W:[16,5,1,""],X:[16,5,1,""],Y:[16,5,1,""],Z:[16,5,1,""],to_qtkey:[16,2,1,""],to_qtmodifier:[16,2,1,""]},"magicclass.gui.menu_gui":{ContextMenuGui:[16,1,1,""],MenuGui:[16,1,1,""],MenuGuiBase:[16,1,1,""],insert_action_like:[16,3,1,""]},"magicclass.gui.menu_gui.MenuGuiBase":{insert:[16,2,1,""]},"magicclass.gui.mgui_ext":{AbstractAction:[16,1,1,""],Action:[16,1,1,""],PushButtonPlus:[16,1,1,""],ToolButtonPlus:[16,1,1,""],WidgetAction:[16,1,1,""],mguiLike:[16,1,1,""]},"magicclass.gui.mgui_ext.AbstractAction":{"native":[16,5,1,""],changed:[16,5,1,""],from_options:[16,2,1,""],support_value:[16,5,1,""],value:[16,4,1,""]},"magicclass.gui.mgui_ext.Action":{"native":[16,5,1,""],from_options:[16,2,1,""],icon_path:[16,4,1,""],reset_choices:[16,2,1,""],running:[16,4,1,""],set_shortcut:[16,2,1,""],support_value:[16,5,1,""],text:[16,4,1,""],value:[16,4,1,""]},"magicclass.gui.mgui_ext.PushButtonPlus":{background_color:[16,4,1,""],font_color:[16,4,1,""],font_family:[16,4,1,""],font_size:[16,4,1,""],from_options:[16,2,1,""],icon_path:[16,4,1,""],icon_size:[16,4,1,""],reset_choices:[16,2,1,""],running:[16,4,1,""],set_shortcut:[16,2,1,""]},"magicclass.gui.mgui_ext.ToolButtonPlus":{reset_choices:[16,2,1,""],set_menu:[16,2,1,""],set_shortcut:[16,2,1,""]},"magicclass.gui.mgui_ext.WidgetAction":{"native":[16,5,1,""],render:[16,2,1,""],support_value:[16,5,1,""],text:[16,4,1,""],value:[16,4,1,""],widget_type:[16,4,1,""]},"magicclass.gui.mgui_ext.mguiLike":{"native":[16,5,1,""],enabled:[16,4,1,""],name:[16,4,1,""],parent:[16,4,1,""],tooltip:[16,4,1,""],visible:[16,4,1,""],widget_type:[16,4,1,""]},"magicclass.gui.toolbar":{QtTabToolBar:[16,1,1,""],ToolBarGui:[16,1,1,""]},"magicclass.gui.toolbar.QtTabToolBar":{addToolBar:[16,2,1,""]},"magicclass.gui.toolbar.ToolBarGui":{insert:[16,2,1,""],reset_choices:[16,2,1,""]},"magicclass.gui.utils":{MagicClassConstructionError:[16,6,1,""],copy_class:[16,3,1,""],define_callback:[16,3,1,""],get_parameters:[16,3,1,""],set_context_menu:[16,3,1,""]},"magicclass.help":{HelpWidget:[8,1,1,""],UiBoundTreeItem:[8,1,1,""],get_help_info:[8,3,1,""],get_keymap:[8,3,1,""]},"magicclass.help.UiBoundTreeItem":{child:[8,2,1,""],takeChild:[8,2,1,""],ui:[8,4,1,""]},"magicclass.qthreading":{thread_worker:[8,1,1,""]},"magicclass.qthreading.thread_worker":{aborted:[8,4,1,""],errored:[8,4,1,""],finished:[8,4,1,""],returned:[8,4,1,""],set_default:[8,2,1,""],started:[8,4,1,""],yielded:[8,4,1,""]},"magicclass.signature":{AdditionalOptions:[8,1,1,""],MagicMethodSignature:[8,1,1,""],get_additional_option:[8,3,1,""],upgrade_signature:[8,3,1,""]},"magicclass.signature.AdditionalOptions":{copyto:[8,5,1,""],gui:[8,5,1,""],into:[8,5,1,""],keybinding:[8,5,1,""],moveto:[8,5,1,""],record:[8,5,1,""]},"magicclass.signature.MagicMethodSignature":{from_signature:[8,2,1,""],get_gui_options:[8,2,1,""],replace:[8,2,1,""]},"magicclass.tqdm":{ProgressBar:[8,1,1,""],tqdm:[8,1,1,""],trange:[8,3,1,""]},"magicclass.tqdm.ProgressBar":{tqdm:[8,2,1,""],trange:[8,2,1,""]},"magicclass.tqdm.tqdm":{close:[8,2,1,""],disable:[8,5,1,""],display:[8,2,1,""]},"magicclass.types":{Bound:[8,1,1,""],List:[8,1,1,""],Optional:[8,1,1,""],Tuple:[8,1,1,""],WidgetType:[8,1,1,""],bound:[8,3,1,""]},"magicclass.types.WidgetType":{button:[8,5,1,""],collapsible:[8,5,1,""],draggable:[8,5,1,""],frame:[8,5,1,""],groupbox:[8,5,1,""],hcollapsible:[8,5,1,""],list:[8,5,1,""],mainwindow:[8,5,1,""],none:[8,5,1,""],scrollable:[8,5,1,""],split:[8,5,1,""],stacked:[8,5,1,""],subwindows:[8,5,1,""],tabbed:[8,5,1,""],toolbox:[8,5,1,""]},"magicclass.utils":{functions:[18,0,0,"-"],qt:[18,0,0,"-"]},"magicclass.utils.functions":{extract_tooltip:[18,3,1,""],get_signature:[18,3,1,""],iter_members:[18,3,1,""],rst_to_html:[18,3,1,""],show_tree:[18,3,1,""]},"magicclass.utils.qt":{MessageBoxMode:[18,1,1,""],move_to_screen_center:[18,3,1,""],open_url:[18,3,1,""],screen_center:[18,3,1,""],screen_scale:[18,3,1,""],show_messagebox:[18,3,1,""],to_clipboard:[18,3,1,""]},"magicclass.utils.qt.MessageBoxMode":{ABOUT:[18,5,1,""],ERROR:[18,5,1,""],INFO:[18,5,1,""],QUESTION:[18,5,1,""],WARNING:[18,5,1,""]},"magicclass.widgets":{ButtonContainer:[19,1,1,""],CheckButton:[19,1,1,""],CollapsibleContainer:[19,1,1,""],ColorEdit:[19,1,1,""],ColorSlider:[19,1,1,""],ConsoleTextEdit:[19,1,1,""],DictWidget:[19,1,1,""],DraggableContainer:[19,1,1,""],Figure:[19,1,1,""],FloatRangeSlider:[19,1,1,""],FrameContainer:[19,1,1,""],FreeWidget:[19,1,1,""],GroupBoxContainer:[19,1,1,""],HCollapsibleContainer:[19,1,1,""],ListContainer:[19,1,1,""],ListEdit:[19,1,1,""],ListWidget:[19,1,1,""],Logger:[19,1,1,""],OptionalWidget:[19,1,1,""],RangeSlider:[19,1,1,""],ScrollableContainer:[19,1,1,""],Separator:[19,1,1,""],SplitterContainer:[19,1,1,""],SpreadSheet:[19,1,1,""],StackedContainer:[19,1,1,""],SubWindowsContainer:[19,1,1,""],TabbedContainer:[19,1,1,""],ToolBoxContainer:[19,1,1,""],TupleEdit:[19,1,1,""],color:[19,0,0,"-"],containers:[19,0,0,"-"],logger:[19,0,0,"-"],misc:[19,0,0,"-"],pywidgets:[20,0,0,"-"],separator:[19,0,0,"-"],sequence:[19,0,0,"-"],utils:[19,0,0,"-"]},"magicclass.widgets.ButtonContainer":{btn_text:[19,4,1,""],text:[19,4,1,""]},"magicclass.widgets.CollapsibleContainer":{btn_text:[19,4,1,""],collapsed:[19,4,1,""],text:[19,4,1,""]},"magicclass.widgets.ConsoleTextEdit":{append:[19,2,1,""],erase_first:[19,2,1,""],erase_last:[19,2,1,""],selected:[19,4,1,""],tab_size:[19,4,1,""]},"magicclass.widgets.DictWidget":{clear:[19,2,1,""],get:[19,2,1,""],items:[19,2,1,""],keys:[19,2,1,""],pop:[19,2,1,""],update:[19,2,1,""],value:[19,4,1,""],values:[19,2,1,""]},"magicclass.widgets.Figure":{autoscale:[19,2,1,""],ax:[19,4,1,""],axes:[19,4,1,""],axhline:[19,2,1,""],axline:[19,2,1,""],axvline:[19,2,1,""],box:[19,2,1,""],cla:[19,2,1,""],clf:[19,2,1,""],draw:[19,2,1,""],enabled:[19,4,1,""],hist:[19,2,1,""],imshow:[19,2,1,""],interactive:[19,4,1,""],legend:[19,2,1,""],mouse_click_callbacks:[19,4,1,""],plot:[19,2,1,""],quiver:[19,2,1,""],savefig:[19,2,1,""],scatter:[19,2,1,""],subplots:[19,2,1,""],text:[19,2,1,""],title:[19,2,1,""],twinx:[19,2,1,""],twiny:[19,2,1,""],xlabel:[19,2,1,""],xlim:[19,2,1,""],xscale:[19,2,1,""],xticks:[19,2,1,""],ylabel:[19,2,1,""],ylim:[19,2,1,""],yscale:[19,2,1,""],yticks:[19,2,1,""]},"magicclass.widgets.FloatRangeSlider":{name:[19,5,1,""]},"magicclass.widgets.FreeWidget":{set_contextmenu:[19,2,1,""],set_widget:[19,2,1,""]},"magicclass.widgets.GroupBoxContainer":{name:[19,4,1,""]},"magicclass.widgets.HCollapsibleContainer":{collapsed:[19,4,1,""]},"magicclass.widgets.ListContainer":{current_index:[19,4,1,""]},"magicclass.widgets.ListEdit":{annotation:[19,4,1,""],buttons_visible:[19,4,1,""],data:[19,4,1,""],value:[19,4,1,""]},"magicclass.widgets.ListWidget":{clear:[19,2,1,""],index:[19,2,1,""],insert:[19,2,1,""],value:[19,4,1,""]},"magicclass.widgets.Logger":{clear:[19,2,1,""],close:[19,2,1,""],current_logger:[19,5,1,""],emit:[19,2,1,""],flush:[19,2,1,""],print:[19,2,1,""],print_figure:[19,2,1,""],print_html:[19,2,1,""],print_image:[19,2,1,""],print_rst:[19,2,1,""],print_table:[19,2,1,""],set_logger:[19,2,1,""],set_plt:[19,2,1,""],set_stdout:[19,2,1,""],write:[19,2,1,""]},"magicclass.widgets.OptionalWidget":{text:[19,4,1,""],value:[19,4,1,""]},"magicclass.widgets.RangeSlider":{name:[19,5,1,""]},"magicclass.widgets.Separator":{btn_clicked:[19,5,1,""],btn_text:[19,4,1,""],central_widget:[19,5,1,""],name:[19,5,1,""]},"magicclass.widgets.SpreadSheet":{index:[19,2,1,""],insert:[19,2,1,""],rename:[19,2,1,""]},"magicclass.widgets.StackedContainer":{current_index:[19,4,1,""]},"magicclass.widgets.TabbedContainer":{current_index:[19,4,1,""]},"magicclass.widgets.ToolBoxContainer":{current_index:[19,4,1,""]},"magicclass.widgets.TupleEdit":{annotation:[19,4,1,""],value:[19,4,1,""]},"magicclass.widgets.color":{QColorEdit:[19,1,1,""],QColorLineEdit:[19,1,1,""],QColorSlider:[19,1,1,""],QColorSwatch:[19,1,1,""],QDoubleSlider:[19,1,1,""],qcolor_to_rgba:[19,3,1,""],rgba_to_html:[19,3,1,""],rgba_to_qcolor:[19,3,1,""]},"magicclass.widgets.color.QColorEdit":{color:[19,2,1,""],colorChanged:[19,5,1,""],setColor:[19,2,1,""]},"magicclass.widgets.color.QColorLineEdit":{getQColor:[19,2,1,""],setColor:[19,2,1,""],setText:[19,2,1,""]},"magicclass.widgets.color.QColorSlider":{addSlider:[19,2,1,""],color:[19,2,1,""],colorChanged:[19,5,1,""],setColor:[19,2,1,""]},"magicclass.widgets.color.QColorSwatch":{colorChanged:[19,5,1,""],getQColor:[19,2,1,""],heightForWidth:[19,2,1,""],mouseReleaseEvent:[19,2,1,""],setColor:[19,2,1,""]},"magicclass.widgets.color.QDoubleSlider":{changed:[19,5,1,""],doubleValueChanged:[19,2,1,""],setMaximum:[19,2,1,""],setMinimum:[19,2,1,""],setSingleStep:[19,2,1,""],setValue:[19,2,1,""],singleStep:[19,2,1,""],value:[19,2,1,""]},"magicclass.widgets.containers":{wrap_container:[19,3,1,""]},"magicclass.widgets.logger":{Logger:[19,1,1,""],Output:[19,1,1,""],QtLogger:[19,1,1,""],show:[19,3,1,""]},"magicclass.widgets.logger.Logger":{clear:[19,2,1,""],close:[19,2,1,""],current_logger:[19,5,1,""],emit:[19,2,1,""],flush:[19,2,1,""],print:[19,2,1,""],print_figure:[19,2,1,""],print_html:[19,2,1,""],print_image:[19,2,1,""],print_rst:[19,2,1,""],print_table:[19,2,1,""],set_logger:[19,2,1,""],set_plt:[19,2,1,""],set_stdout:[19,2,1,""],write:[19,2,1,""]},"magicclass.widgets.logger.Output":{HTML:[19,5,1,""],IMAGE:[19,5,1,""],TEXT:[19,5,1,""]},"magicclass.widgets.logger.QtLogger":{appendHtml:[19,2,1,""],appendImage:[19,2,1,""],appendText:[19,2,1,""],process:[19,5,1,""],update:[19,2,1,""]},"magicclass.widgets.misc":{AbstractRangeSlider:[19,1,1,""],CheckButton:[19,1,1,""],ConsoleTextEdit:[19,1,1,""],Figure:[19,1,1,""],FloatEdit:[19,1,1,""],FloatRangeSlider:[19,1,1,""],IntEdit:[19,1,1,""],QFloatEdit:[19,1,1,""],QIntEdit:[19,1,1,""],QRangeSlider:[19,1,1,""],RangeSlider:[19,1,1,""],SpreadSheet:[19,1,1,""]},"magicclass.widgets.misc.AbstractRangeSlider":{changed:[19,5,1,""],max:[19,4,1,""],min:[19,4,1,""],range:[19,4,1,""],value:[19,4,1,""]},"magicclass.widgets.misc.ConsoleTextEdit":{append:[19,2,1,""],erase_first:[19,2,1,""],erase_last:[19,2,1,""],selected:[19,4,1,""],tab_size:[19,4,1,""]},"magicclass.widgets.misc.Figure":{autoscale:[19,2,1,""],ax:[19,4,1,""],axes:[19,4,1,""],axhline:[19,2,1,""],axline:[19,2,1,""],axvline:[19,2,1,""],box:[19,2,1,""],cla:[19,2,1,""],clf:[19,2,1,""],draw:[19,2,1,""],enabled:[19,4,1,""],hist:[19,2,1,""],imshow:[19,2,1,""],interactive:[19,4,1,""],legend:[19,2,1,""],mouse_click_callbacks:[19,4,1,""],plot:[19,2,1,""],quiver:[19,2,1,""],savefig:[19,2,1,""],scatter:[19,2,1,""],subplots:[19,2,1,""],text:[19,2,1,""],title:[19,2,1,""],twinx:[19,2,1,""],twiny:[19,2,1,""],xlabel:[19,2,1,""],xlim:[19,2,1,""],xscale:[19,2,1,""],xticks:[19,2,1,""],ylabel:[19,2,1,""],ylim:[19,2,1,""],yscale:[19,2,1,""],yticks:[19,2,1,""]},"magicclass.widgets.misc.FloatRangeSlider":{name:[19,5,1,""]},"magicclass.widgets.misc.RangeSlider":{name:[19,5,1,""]},"magicclass.widgets.misc.SpreadSheet":{index:[19,2,1,""],insert:[19,2,1,""],rename:[19,2,1,""]},"magicclass.widgets.pywidgets":{DictWidget:[20,1,1,""],ListWidget:[20,1,1,""],dict:[20,0,0,"-"],list:[20,0,0,"-"],object:[20,0,0,"-"],tree:[20,0,0,"-"]},"magicclass.widgets.pywidgets.DictWidget":{clear:[20,2,1,""],get:[20,2,1,""],items:[20,2,1,""],keys:[20,2,1,""],pop:[20,2,1,""],update:[20,2,1,""],value:[20,4,1,""],values:[20,2,1,""]},"magicclass.widgets.pywidgets.ListWidget":{clear:[20,2,1,""],index:[20,2,1,""],insert:[20,2,1,""],value:[20,4,1,""]},"magicclass.widgets.pywidgets.dict":{DictItemView:[20,1,1,""],DictValueView:[20,1,1,""],DictWidget:[20,1,1,""],PyTableWidget:[20,1,1,""],PyTableWidgetItem:[20,1,1,""]},"magicclass.widgets.pywidgets.dict.DictWidget":{clear:[20,2,1,""],get:[20,2,1,""],items:[20,2,1,""],keys:[20,2,1,""],pop:[20,2,1,""],update:[20,2,1,""],value:[20,4,1,""],values:[20,2,1,""]},"magicclass.widgets.pywidgets.dict.PyTableWidget":{itemAt:[20,2,1,""]},"magicclass.widgets.pywidgets.list":{ListWidget:[20,1,1,""],PyListWidget:[20,1,1,""],PyListWidgetItem:[20,1,1,""]},"magicclass.widgets.pywidgets.list.ListWidget":{clear:[20,2,1,""],index:[20,2,1,""],insert:[20,2,1,""],value:[20,4,1,""]},"magicclass.widgets.pywidgets.list.PyListWidget":{item:[20,2,1,""],itemAt:[20,2,1,""]},"magicclass.widgets.pywidgets.object":{BaseWidget:[20,1,1,""],ContextMenuMixin:[20,1,1,""],PyObjectBound:[20,1,1,""],partial_event:[20,3,1,""]},"magicclass.widgets.pywidgets.object.BaseWidget":{register_callback:[20,2,1,""],register_contextmenu:[20,2,1,""],register_delegate:[20,2,1,""],register_tooltip:[20,2,1,""],title:[20,4,1,""],value:[20,4,1,""]},"magicclass.widgets.pywidgets.object.ContextMenuMixin":{contextMenu:[20,2,1,""],setContextMenu:[20,2,1,""],setParentWidget:[20,2,1,""]},"magicclass.widgets.pywidgets.object.PyObjectBound":{setObject:[20,2,1,""]},"magicclass.widgets.pywidgets.tree":{DictTreeWidget:[20,1,1,""],DictValueView:[20,1,1,""],PyTreeWidget:[20,1,1,""],PyTreeWidgetItem:[20,1,1,""]},"magicclass.widgets.pywidgets.tree.DictTreeWidget":{clear:[20,2,1,""],get:[20,2,1,""],keys:[20,2,1,""],pop:[20,2,1,""],update:[20,2,1,""],value:[20,4,1,""],values:[20,2,1,""]},"magicclass.widgets.pywidgets.tree.PyTreeWidget":{item:[20,2,1,""],itemAt:[20,2,1,""]},"magicclass.widgets.separator":{Separator:[19,1,1,""]},"magicclass.widgets.separator.Separator":{btn_clicked:[19,5,1,""],btn_text:[19,4,1,""]},"magicclass.widgets.sequence":{ListDataView:[19,1,1,""]},"magicclass.widgets.utils":{FreeWidget:[19,1,1,""],merge_super_sigs:[19,3,1,""]},"magicclass.widgets.utils.FreeWidget":{set_contextmenu:[19,2,1,""],set_widget:[19,2,1,""]},"magicclass.wrappers":{Canceled:[8,6,1,""],bind_key:[8,3,1,""],click:[8,3,1,""],confirm:[8,3,1,""],do_not_record:[8,3,1,""],mark_preview:[8,3,1,""],nogui:[8,3,1,""],set_design:[8,3,1,""],set_options:[8,3,1,""]},magicclass:{core:[8,0,0,"-"],ext:[9,0,0,"-"],fields:[8,0,0,"-"],gui:[16,0,0,"-"],help:[8,0,0,"-"],qthreading:[8,0,0,"-"],signature:[8,0,0,"-"],stylesheets:[17,0,0,"-"],tqdm:[8,0,0,"-"],types:[8,0,0,"-"],utils:[18,0,0,"-"],widgets:[19,0,0,"-"],wrappers:[8,0,0,"-"]}},objnames:{"0":["py","module","Python module"],"1":["py","class","Python class"],"2":["py","method","Python method"],"3":["py","function","Python function"],"4":["py","property","Python property"],"5":["py","attribute","Python attribute"],"6":["py","exception","Python exception"]},objtypes:{"0":"py:module","1":"py:class","2":"py:method","3":"py:function","4":"py:property","5":"py:attribute","6":"py:exception"},terms:{"0":[8,11,15,19,20,21,31,32,33],"005":19,"008000":19,"02":11,"0x0000018e067891f0":29,"1":[7,8,11,14,15,16,19,20,21,25,27,28,31,32],"10":[3,11,19,20,26,27,29,31],"100":[11,19,21,26],"1000":[8,19],"12":19,"120":26,"128":11,"1d":19,"1x1":19,"1xm":19,"2":[7,8,10,19,21,25,27,28,31,33],"20":19,"21":32,"25":19,"255":19,"2d":[11,19,21],"3":[7,8,19,21,28,31,32],"3125":19,"337":19,"375":19,"3758413791656494":27,"4":[7,19,21,28,31],"400":19,"45":19,"5":[19,20,21,29,32],"500":19,"6":[11,19,21,31],"60":33,"64":21,"7":[11,15,19,33],"75":19,"8":19,"9":19,"95":19,"abstract":[2,16],"boolean":8,"case":[2,7,8,19,21,29,30,31,32],"class":[3,4,5,7,8,9,10,11,13,14,15,16,18,19,20,27,28,30,31,32,33],"default":[2,8,11,14,16,18,19,20,24,26,27,29],"do":[2,5,7,8,19,26,27,28,31,32],"enum":[4,8,16,18],"final":2,"float":[8,11,15,18,19,27,30,32],"function":[2,4,6,8,10,16,19,20,21,22,23,24,27,28,29,31],"goto":28,"import":[0,2,3,4,5,6,7,8,11,14,20,21,23,24,25,26,27,28,29,30,31,32,33],"int":[2,7,8,11,14,16,19,20,26,27,29,31,32],"long":[4,8,19],"new":[8,11,14,16,19,23,24,28,29,31],"return":[4,5,8,10,11,18,19,20,26,27,28,29,31],"static":28,"super":5,"true":[5,8,11,14,16,18,19,20,24,29,32],"try":19,"while":[26,32],A:[2,3,7,8,11,14,16,19,26,27,28,29,30,31,32,33],As:[2,8],At:16,But:27,By:[8,11,14,16,19,24,26],For:[3,8,19,21,26],If:[5,7,8,11,14,16,18,19,20,21,23,24,26,27,28,29,30,31,32],In:[2,3,7,8,19,20,21,26,27,28,29,30,31,32],It:[2,3,6,19,21,25,26,30,31,32],NOT:[2,8],No:19,Of:31,On:31,One:[3,11,19,27,32],The:[3,4,5,8,19,20,21,23,25,26,27,29,30,32],Their:19,Then:[19,31],There:[7,14,19,31],These:[2,8,11,19,24],To:[4,5,8,19,23,24,26,27,28,29,31,32],With:32,_:[7,8,14,16,19,20,26],__:[8,18],__class__:[2,7],__init__:[5,26,28],__name__:[2,7,19],__post_init__:[26,27],_base:[8,16,19],_c:16,_callback:[2,29],_cd:28,_decrement:7,_f_prev:30,_field_typ:29,_func_prev:8,_function_gui:16,_get_choic:28,_get_fil:28,_get_last_shap:27,_get_tim:27,_get_tot:31,_increment:7,_m:8,_missing_typ:[8,29],_multiplot:11,_on_return:31,_on_yield:31,_orientationmixin:19,_p:10,_preview_csv:30,_qt:10,_qtpy:19,_supportprogress:8,_tabl:19,_unset:19,_v:[8,19],_void:8,_w:[8,16],_x:8,a0:19,a10:19,aa:19,abbrevi:19,abc:[20,29],abil:29,abort:[8,31],about:[2,6,7,18,19,26],abov:[2,11,14,16,19,24,27,28,30],absolut:19,abstractact:[8,16],abstractpatheffect:19,abstractrangeslid:19,accept:[8,19,28,30],access:[5,7,8,19,21,27,29,31,32],accord:[3,5,19],accumul:19,across:19,act:19,action:[7,8,16,26,32],activ:[3,19],actual:[4,5,7,19,29,30,31],ad:[3,8,19,23,24,26,27],adapt:19,add:[2,5,6,11,14,16,19,20,27],add_bar:11,add_curv:[11,15],add_fillbetween:11,add_hist:11,add_imag:[15,33],add_inflin:11,add_isosurfac:15,add_mesh:13,add_point:13,add_scatt:11,add_subplot:19,add_text:11,addhandl:19,addit:[3,6,8,14,19,30],addition:19,additional_opt:8,additionalopt:8,addslid:19,addtoolbar:16,adjac:3,adjust:[3,19,33],adopt:19,advanc:[8,19,25],advantag:27,after:[5,8,24,31,32],ag:26,against:[11,14,16,19],agg:[19,30],agg_filt:19,aim:[5,11],algorithm:19,alias:19,align:19,all:[2,3,4,7,11,18,19,20,21,23,26,27,29,30,32],allow:19,alon:19,along:19,alpha:19,alreadi:[8,19,26,27,32],also:[2,7,8,11,14,16,19,20,21,23,24,26,27,28,29,30,32],alt:16,alter:19,altern:19,although:[7,31],alwai:[8,19,26,27,32],ambigu:19,among:19,amount:19,ampersand:16,an:[3,4,5,6,7,8,11,14,16,18,19,27,28,29,30,31,32],anchor:[11,19],angl:[11,19],ani:[8,11,16,18,19,20,26,31],anim:19,annot:[8,19,26,29,32],anoth:[23,26,29,30,31],anti:19,antialias:19,antigrain:19,anyth:19,api:[3,5,6,11,16,20,21,23,25,29,31],apostroph:16,appear:[2,6,7,8,19,24,26,32],append:[3,5,8,11,19,20,23,26],appendhtml:19,appendimag:19,appendtext:19,appli:[19,29],applic:19,appropri:[3,19],ar:[2,3,5,7,8,10,11,14,19,20,21,23,24,26,27,28,29,30,31,32],arang:[19,20],arbitrari:19,area:[3,19],arg:[8,11,14,16,19,20],argument:[3,4,6,7,8,19,21,26,28,29,30,31,32],around:19,arr:[4,19],arrai:[4,11,19,20,27],arrang:[2,19],arrow:19,artifact:19,artist:19,as_dict:8,as_gett:8,as_magicclass:8,as_magiccontext:8,as_magicmenu:8,as_magictoolbar:8,as_shortcut:16,asid:[8,26],aspect:19,assign:[3,19],associ:19,assum:8,asterisk:16,attempt:19,attenu:15,attr:8,attribut:[8,11,14,16,19,21,26],auto:19,auto_cal:8,automat:[8,19,32],autosc:19,autoscal:19,autoscale_view:19,avail:[2,6,11,19,31],averag:19,avoid:[19,24,27],ax1:19,ax2:19,ax3:19,ax4:19,ax:19,axesimag:19,axhlin:19,axhspan:19,axi:[11,19,21],axis_label:10,axlin:19,axvlin:19,axvspan:19,b0:19,b10:19,b:[2,7,8,16,19,23,27,28],back:[19,28],backend:19,backend_kwarg:[8,19],backend_pdf:19,background:[11,19,31],background_color:[8,11,16],backgroundcolor:19,backspac:16,bad:19,bar:[3,8,10,11,16,19,23,26,32],barcontain:19,bargraphitem:11,barh:19,barplot:11,barstack:19,base:[3,8,10,11,13,14,15,16,18,19,20,25],basegui:[10,16,18],baselin:19,basewidget:[19,20],basic:[3,19,33],bbox:19,bbox_extra_artist:19,bbox_inch:19,bbox_to_anchor:19,bbox_transform:19,bboxbas:19,becaus:[2,4,7,10,16,19,26,27,31,32],been:19,befor:[2,11,16,19,30,31],behav:[2,19],behavior:[19,31],behind:19,being:[19,27],below:[4,8,19,24],beneath:8,benefit:19,bessel:19,best:19,better:[5,32],between:[3,7,10,11,19,30,31,32],bevel:19,bicub:19,bilinear:19,bin:[11,19],binari:19,bind:[6,7,8,19,28],bind_kei:[7,8],black:19,blackman:19,blend:19,block:[14,19],blue:19,bo:19,bold:19,book:19,bool:[8,11,15,16,18,19,20,24],border:[3,11,19],borderaxespad:19,borderpad:19,both:19,bottom:[8,19,30],bound:[2,7,8,11,14,16,19,27,29],boundari:19,box:[3,7,11,18,19,24],br:19,browser:18,btn_click:19,btn_text:19,bubbl:19,bug:19,build:8,build_help:[8,26],builder:26,built:[8,26],builtin:[19,26],butt:19,button:[2,3,7,8,11,19,24,27,30,31,32],buttoncontain:19,buttons_vis:19,c:[3,7,8,16,19,23,28,29],cach:8,cairo:19,calc_csv:30,calc_someth:30,calcul:[19,30],call:[2,5,6,7,8,10,19,20,21,24,26,27,28,29,30,31],call_button:8,callabl:[8,10,16,19],callback:[8,11,14,16,19,20],caller_opt:8,camera:15,can:[3,4,6,7,8,11,14,16,18,19,20,21,23,24,25,26,27,28,29,30,31,32],cancel:8,cannot:19,canva:[6,11,19],canvas:25,cap:19,capstyl:19,categor:[16,19,23],catrom:19,caus:10,caveat:2,cd:28,center:[18,19],center_baselin:19,central:19,central_widget:[14,19],certain:[4,20],chang:[5,7,8,11,14,16,19,21,24,28,29],channel:19,charact:19,chart:19,check:[8,11,14,16,19],check_narg:[11,14,16,19],check_nargs_on_connect:[11,14,16,19],check_typ:[11,14,16,19],check_types_on_connect:[11,14,16,19],checkabl:19,checkbox:19,checkbutton:19,child:[2,3,6,7,8,16,19,23,26],childclass:32,chind:32,choci:28,choic:[6,19],choos:31,chose:30,chosen:19,circl:[11,19],cl:[16,18,19],cla:[19,21],class_:8,class_gui:[8,22],classgui:16,classguibas:[8,16],classmethod:[8,16],clean:32,cleanup:8,clear:[2,11,19,20,21],clearer:[2,27],clf:19,click:[3,7,8,18,19,20,23,26,27,31],clickabl:8,clim:19,clip:19,clip_box:19,clip_on:19,clip_path:19,clipboard:18,clockwis:19,close:[8,19,23,24],close_on_run:[8,16,24],cmap:[11,15,19,21],cn:19,code:[5,6,7,8,14,18,19,28,31,32],coincid:19,col:19,collaps:[3,8,19],collapsiblecontain:19,collect:19,collis:7,colon:16,color:[8,11,15,21,22],colorchang:19,coloredit:19,colormap:19,colorslid:19,colortyp:19,column:[19,20],columnspac:19,com:19,combin:[7,16,19],combobox:28,comma:16,common:[2,19],common_funct:2,commonli:19,compar:[8,19,29],compat:[4,8,19],complet:[5,8,19],complic:32,compon:[6,8,9,19],compos:[3,26,30,32],compress:19,comput:19,con:32,concept:[2,29],concret:[2,27],condens:19,condit:[8,19],configur:27,confirm:8,conflict:19,conjunct:19,connect:[2,5,8,11,14,16,19,29,32],consid:[2,19,26,29],consist:[5,19,23,25,31],consol:[14,19,26],consoletextedit:19,constant:24,constrction:11,construct:[5,8,19,23,29],constructor:[2,19],consum:[26,31],contain:[5,6,8,16,20,22,24,26],content:[3,21,22,30],context:[8,16,19,20,23],contextmenu:[16,20,23],contextmenugui:[8,16,19],contextmenumixin:20,contrast:11,contrast_limit:[11,15,33],contribut:19,control:[19,29],contructor:[11,14,16,19],conveni:19,convent:19,convers:4,convert:[6,7,8,16,18,19,26,27,29],coord:19,coord_item:11,coordin:[11,18,19],copi:[8,18,19,23],copy_class:16,copyto:8,core:22,corner:19,correct:[19,26,30],correctli:5,correspond:[5,19,26],correspondingli:19,could:[4,16,19,26],count:[11,19],counter:19,cours:31,cover:19,creat:[2,3,8,19,21,26,27,28,29,30,31],create_widget:[8,29],creation:[6,8,19,32],creator:19,cross:11,csv:30,ctrl:[7,8,16],cumul:19,current:[3,8,10,11,14,19,28,31,32],current_index:[3,19],current_logg:19,cursiv:19,curv:11,custom:[5,6,8,19,20],cyan:19,cycl:19,d:[7,11,16,19,20,25],dash:19,dash_capstyl:19,dash_joinstyl:19,data1:19,data2:19,data:[4,11,15,18,19,20,21,25,27,30],dataclass:[8,26,29],datafram:19,datapoint:19,dataset:19,deal:2,decai:19,decim:19,declar:[11,14,16,19],decor:[2,8,10,19,23,24,26,30,31,32],def:[2,4,5,7,8,11,14,16,19,20,21,23,26,27,28,29,30,31,32],default_factori:[2,8,29],defaultpad:11,defin:[5,6,8,16,19,20,21,23,26,27,28,30,31,32],define_callback:16,definit:[2,8,16],degre:[11,19],deleg:20,delet:[8,16,32],deliv:11,demi:19,demibold:19,densiti:[11,19],depend:[4,19,20,27,31],deprec:[8,19,24],describ:[7,19],descript:[7,11,14,16,19],descriptor:[11,14,16,19],design:[2,8,11,14,16,19,31,32],desin:27,desir:2,destin:[11,19],detail:[11,19,26],detect:[19,26],determin:[3,8,19,27],develop:[14,31],developp:5,deviat:19,df:30,dialog:[8,18,24],diamet:19,diamond:19,dick:19,dict:[8,16,19],dictionari:[8,19,20],dictitemview:[19,20],dicttreewidget:20,dictvalueview:[19,20],dictwidget:19,diff:19,differ:[19,21,27,31,32],dimens:19,dimension:19,direct:19,directli:[6,10,19,23,26,27,29,30],directori:28,dirnam:28,disabl:[8,19,31],disconnect:8,discourag:19,discuss:19,dispatch:20,displai:[3,8,11,19,20,31],disregard:19,disturb:6,ditto:19,divid:19,do_not_record:[7,8,26],doan:19,dock:[7,24,33],docstr:[18,19],document:[11,19,20],doe:[3,4,8,10,19,26,31,32],doesn:19,dollar:16,don:[2,7,19,26,27,29,30,32],done:19,dot:19,doubl:20,doublevaluechang:19,down:[7,16,19],downsampl:19,downward:19,dpi:19,drag:[3,19],dragdrop:[19,20],draggabl:[3,8,19],draggablecontain:19,draw:[19,21],draw_idl:19,drawn:19,drawstyl:19,drop:[3,19],ds:19,dtype:19,due:32,dure:[8,23,31],dynam:[6,26],e:[8,16,19,29],each:[3,11,19],easi:7,easier:[16,31],easiest:5,easili:[19,30,32],ec:19,edg:[11,19],edge_color:[11,15],edgecolor:19,edit:[19,23,26],editor:26,effect:19,either:[8,19],element:19,els:[8,19,20,28],emb:14,embed:31,emiss:5,emit:[5,8,11,14,16,19,29],emitt:[11,14,16,19],empti:19,enabl:[3,5,8,11,16,19,28,32],enablemenu:11,enablemous:11,encapsul:16,enclos:[3,19],encod:19,encount:23,end:[11,19,21,31],enough:[8,26],ensur:19,entri:19,enumer:[8,16,18],ep:19,equal:[16,19],equip:[7,19,20],equival:19,eras:19,erase_first:19,erase_last:19,error:[8,18,19,31],error_mod:[8,16,24],errormod:[8,16,24],errormodestr:8,especi:[5,7,26],etc:19,ev:11,evalu:[8,31],even:[19,32],event:[7,8,11,19],everi:[3,8,19,27,28,29,31],evok:7,exactli:19,exampl:[2,4,5,7,8,11,14,16,19,27,28,31,32],except:[8,16,18,19,24],exclam:16,exclud:19,exclude_prefix:18,execut:[8,10,14,19,26,27,31,32],exist:[3,8,19,31,32],exit:19,expand:[3,19],expect:19,experienc:5,explicit:19,explicitli:19,explor:28,exponenti:19,express:8,ext:[1,8,22,25,33],extens:[6,19,26],extent:19,extern:9,extra:19,extract:18,extract_tooltip:18,f10:16,f11:16,f12:16,f1:[16,32],f2:[16,32],f3:[16,32],f4:16,f5:16,f6:16,f7:16,f8:16,f9:16,f:[4,8,10,16,19,20,26,28,29,30],face:[11,19],face_color:[11,15],facecolor:19,factor:19,factori:8,fall:19,fals:[5,8,11,14,16,18,19,24,26,28,29,32],famili:19,familiar:28,fancybboxpatch:19,fancybox:19,fantasi:19,far:19,faster:19,fc:19,fd:19,featur:[2,20,26,29],februari:19,fgui:16,field:[6,7,19,21,22,26,28,31,32,33],fig:[19,21],fig_kw:19,figsiz:19,figur:[6,19],figurecanvasagg:19,figurecanvassvg:19,file:[8,19,23,28,30],fill:[11,19],fillbetween:11,fillbetweenitem:11,fillstyl:19,filter:19,filternorm:19,filterrad:19,find:[19,20],find_ancestor:32,finish:[2,8,10,31],first:[2,10,19,21,24,29,31,32],first_a:23,first_b:23,fit:19,fix:19,flatten:19,fld:29,floatabl:3,floatedit:19,floatrangeslid:19,flush:19,fmt2:19,fmt:19,fname:19,follow:[2,3,5,6,8,19,28,31,32],font:[8,19],font_color:[8,16],font_famili:[8,16],font_manag:19,font_properti:19,font_siz:[8,16],fontdict:19,fontfamili:19,fontnam:19,fontproperti:19,fontsiz:19,fontstretch:19,fontstyl:19,fontvari:19,fontweight:19,footer:2,form:[4,8,19],format:[8,19],former:19,forward:19,forwardref:19,found:[19,20],four:19,fraction:19,frame1:23,frame2:23,frame:[3,8,18,19,30,32],framealpha:19,framecontain:19,frameon:19,freewidget:[5,8,10,11,13,14,15,19,20],freez:18,friendli:6,from:[0,2,3,4,5,6,7,8,10,11,14,16,19,20,21,23,24,25,26,27,28,29,30,31,33],from_opt:16,from_signatur:8,frozen:31,fucntion:29,full:19,func0:31,func1:31,func2:31,func3:31,func:[2,8,18,26,27,28,31,32],funcscal:19,function_1:7,function_2:7,function_3:7,function_4:7,function_a:23,function_b:23,function_c:23,function_that_log_someth:19,function_that_print_someth:19,functiongui:[8,16,26,28,30],functionguiplu:8,functionwork:10,functool:32,fundament:[2,19],further:19,furthermor:27,g:[16,19],gain:19,galleri:19,gamma:15,gaussian:19,gener:[8,16,19,26,31],generatorwork:10,geometri:26,get:[8,11,14,18,19,20,27,28,29,31,32],get_a_valu:27,get_act:8,get_additional_opt:8,get_b_valu:27,get_frame_on:19,get_function_gui:8,get_gui_opt:8,get_help_info:8,get_keymap:8,get_legend_handler_map:19,get_paramet:16,get_signatur:18,get_tim:27,get_widget:8,get_xlim:19,get_xtick:19,get_xticklabel:19,get_ylim:19,get_ytick:19,get_yticklabel:19,getcwd:28,getlogg:19,getmemb:18,getqcolor:19,getter:[5,27,28,31],gid:19,github:[6,19],give:[19,28],given:[8,19,20,27,31],global:27,go:[7,19,28],good:5,gradient:19,grai:[15,19,21],grammar:27,graph:19,graph_item:[8,9],graphic:11,graphiccompon:11,graphicsitem:11,graphicsobject:11,graphicsscen:11,grayscal:19,greater:16,green:19,grid:19,gridspec:19,gridspec_kw:19,group:[3,19],groupbox:[3,8],groupboxcontain:19,guess:21,gui:[2,5,7,8,10,14,18,19,21,22,26,27,30,31,32],gui_onli:[8,16,19],gui_opt:8,guid:8,h:[16,19,31],ha:[2,3,5,6,8,11,19,20,21,24,26,29,31,32],half:19,ham:19,han:19,hand:[19,31],handl:[11,19],handlelength:19,handler:19,handler_map:19,handletextpad:19,happen:[19,32],hard:[30,32],hardli:19,hasbackground:11,hasdataitem:11,hash:[8,29],hasviewbox:11,hatch:19,have:[2,3,4,5,6,7,8,11,18,19,21,25,26,27,28,29,30,31,32,33],hcollaps:[3,8],hcollapsiblecontain:19,head:19,headaxislength:19,header:[2,19],headlength:19,headwidth:19,heavi:19,height:[8,19,31],heightforwidth:19,help:[22,26],helper:[8,31],helpwidget:8,here:[2,6,8,16,19,26,27,29,30,32],hermit:19,hex:19,hexagon1:19,hexagon2:19,hexagon:19,hidden:[8,19],hide:[5,8],high:19,highest:19,highli:26,hist2d:19,hist:[11,19,21],histogram:[11,19,21],histogram_bin_edg:19,histori:19,histtyp:19,hline:19,home:18,horizont:[3,8,19,23,24,32],horizontalalign:19,hover:19,hoverev:11,how:[2,5,8,20,24,32],howev:[2,19,21,26,27,30,32],html:[18,19],http:19,hue:32,huge:5,i:[3,8,11,16,19,20,21,26,27,29,31,32],icon:8,icon_path:[8,16],icon_s:[8,16],id:26,idea:[5,31],ident:[8,18,19,32],idiom:19,ie:19,ignor:19,ignore_error:8,imag:[3,4,8,9,11,18,19,21,25,33],image_antialias:19,imageitem:11,images_contours_and_field:19,immedi:19,implement:[7,8,19,23,30,31,32],implicit:19,improv:6,imshow:[19,21,25],imshow_ext:19,in_layout:19,inch:19,includ:19,inconsist:10,increas:19,independ:[19,21],index:[3,6,8,11,16,19,20,32],indistinguish:19,individu:[11,14,16,19],inf:19,infer:19,infinit:19,infinitelin:11,inflin:11,info:[11,18],inform:[8,19,26,27],inherit:[5,6,16,19,21,24,26],init:[8,26,29],initi:[5,8,19,24,29],ink:19,inlin:19,inner:[8,19,26],inner_widget:19,input:[8,19,26,30],input_paramet:26,insert:[8,11,16,19,20],insert_action_lik:16,insid:[7,19,23],inspect:[8,18],instal:[25,31],instanc:[3,8,11,14,16,19,26,27,28,29,32],instead:[11,19,24,26,27,29,31,32],intedit:19,integ:[19,32],integr:[8,19,25,30,32],intend:[5,19],interact:[6,11,19,21,25],intercept:11,interfac:11,interfer:26,intermedi:19,intern:[11,14,16,19],interpol:[15,19],interpolation_method:19,interpret:[5,10,19],intersect:19,introduc:29,intuit:[6,11],invert:19,inverti:11,invertx:11,invis:[7,8],ion:19,irrevers:8,ismodifi:16,iso_threshold:15,isosurfac:15,issu:19,ital:19,item:[11,19,20,25],itemat:20,iter:[8,18,19,20,32],iter_memb:18,its:[2,3,4,6,7,19,26,30],itself:[2,8,21,26,29],j:[8,16],januari:19,join:28,joinstyl:19,jpeg:19,jpeg_qual:19,jpg:19,jump:6,jupyt:14,just:[2,19,21,26,31,32],k:[16,19,20,28],kaiser:19,keep:[2,26,31,32],kei:[7,8,16,19,20],kept:19,key_combo:16,keybind:[6,8,22],keyboard:11,keycombo:16,keyword:[3,19,26],kit:4,know:[21,26,32],kw:19,kwarg:[8,10,11,13,14,16,19,20],l:16,label1:19,label2:19,label3:19,label:[2,8,11,16,19,21,24,26],labelcolor:19,labelloc:19,labelpad:19,labelspac:19,lanczo:19,landscap:19,languag:2,larg:[19,27],larger:[11,19],last:[19,24],lastpo:11,later:19,latter:19,law:19,layer:[11,15,27,33],layeritem:[11,15],layerlist:11,layout:[2,8,11,19,23,24,26,32],lead:19,learn:6,least:[19,31],leav:[8,19],ledger:19,left:[16,19],legal:19,legend:[11,19],legend_guid:19,legenditem:11,len:19,length:19,less:[16,19],let:[2,27],letter:19,level:19,librari:[21,25,29],light:19,like:[2,7,8,11,16,19,21,24,25,26,27,28,30,31,32],lime:11,limit:[11,19,21],line1:19,line2:19,line2d:19,line3:19,line:[2,3,11,18,19,26,31],linear:[11,15,19],linearregionitem:11,linearscal:19,linecolor:19,lineedit:[3,19,26,32],lineplot:19,linespac:19,linestyl:[11,19],linewidth:[11,19],link:18,linspac:19,list:[3,8,11,19,27],listcontain:19,listdataview:19,listdir:28,listedit:[8,19],listwidget:19,liter:[8,31],ll:[5,21,31,32],load:30,loation:19,loc:19,local:8,locat:19,lock_contrast_limit:11,lockaspect:11,log:19,logger:[8,22],logit:19,logitscal:19,loglog:19,logscal:19,longer:[19,26],look:[2,19,26,28,32],lot:27,lower:[2,19],lowest:19,ls:[11,15,19],lw:[11,15,19],m:[16,19],ma:19,macro:[6,7,8,27,32],macro_str:26,macrokit:4,made:[19,28],magenta:19,magic:[3,4,7,8,9,10,14,16,19,27,28,30,31,32],magic_class:10,magicclass:[0,1,2,3,5,7,21,23,24,25,26,27,28,29,30,31,32,33],magicclassconstructionerror:16,magicclassfactori:8,magiccontext:[8,23],magicfield:[2,8],magicgui:[3,4,5,6,8,11,16,19,24,25,26,27,29,30,31],magicmenu:[7,8,10,23,26,32],magicmethodsignatur:8,magicsignatur:8,magictempl:[2,8,26],magictoolbar:[8,10,23,32],magicvaluefield:[8,29],mai:[2,5,8,19,26,30,32],main:[2,3,6,7,8,14,18,19,21,23,26,27,28,31,32],main_funct:2,maintain:[30,32],mainwindow:8,make:[2,4,7,8,16,19,27,31],make_gui:16,manag:19,mani:[2,3,5,6,7,19,21,24,25,26,27,29,32],manual:[19,27,31],map:[4,11,19],mappingproxi:29,march:19,margin:19,mark:[19,30],mark_preview:[8,30],marker:19,markeredgecolor:19,markeredgewidth:19,markerfacecolor:19,markerfacecoloralt:19,markerfirst:19,markers:19,markerscal:19,markerstyl:19,markeveri:19,mask:19,match:19,math_fontfamili:19,matplotlib:[6,19],matric:19,matrix:19,matshow:19,max:[7,8,19,26,27,29],max_height:8,max_histori:19,max_width:8,maximum:8,mean:[19,30],measur:19,mec:19,mechan:19,medium:19,member:18,membership:19,meni:32,mention:[2,19],menu:[3,7,8,16,19,20,26,32],menu_gui:[8,22],menugui:[8,16],menuguibas:16,merge_super_sig:19,mesh:13,meshgrid:19,messag:[8,18,24],messagebox:18,messageboxmod:18,meta:16,metadata:[8,19,29],method:[4,5,6,7,8,14,16,19,20,21,26,29,31],mew:19,mfc:19,mfcalt:19,mgui_ext:[8,22],mguilik:16,mid:19,middl:[2,19],might:[19,29,32],min:[7,8,19],min_height:[8,26],min_width:8,mind:2,mini:33,minimum:[8,19],minlength:19,minshaft:19,minu:16,mip:15,misc:[8,22],miscellan:19,miss:8,mitchel:19,miter:19,mix:19,mixin:19,mode:[8,18,19],modifi:[11,19],modul:[6,22],monospac:19,more:[6,8,19,27],most:[2,3,7,19,21,27,29,31,32],mostli:33,mous:[3,11],mouse_click_callback:19,mouse_ev:[8,9],mouseclickev:11,mouseev:11,mousereleaseev:19,move:[11,18,28],move_to_screen_cent:18,moveto:8,ms:19,msg:[8,19],msgbox:[8,24],much:[2,27,31],multi:[6,19,21,23],multialign:19,multipl:[11,19,23,25,30],multipul:2,must:[2,3,8,16,18,19,30,32],mutablemap:[19,20],mutablesequ:[11,16,19,20],my:19,myclass:[8,26,29],myemitt:[11,14,16,19],myqwidget:5,mywidget:5,n0:19,n1:19,n:[16,19,31],n_iter:31,name:[2,3,7,8,11,14,15,16,18,19,20,24,26,29,31,32],nameerror:2,namespac:[8,31],nan:19,napari:[7,8,9,11,19,24,27,31,33],naparicanva:10,nativ:[11,16],natur:[2,26],nbin:19,ncol:[11,19,21],ndarrai:[4,8,11,13,15,18,19,20,27],ndata:11,ndisplai:10,nearest:19,necessari:[19,32],need:[3,8,16,19,21,26,27,28,29,30,32],nest:[6,8,26,32],never:[26,32],new_funct:26,next:19,nine:19,no_margin:16,node:19,nogui:8,noisi:32,non:[19,32],none:[3,8,10,11,14,15,16,18,19,20,24,28,29],nonfinit:19,norm:19,normal:[19,21],not_readi:8,notat:19,note:[11,14,16,19],noth:19,notic:32,notimplementederror:19,now:[5,11],np:[4,8,11,19,20,21,30,33],nrow:[11,19,21],nullabl:[8,19],num:19,number:[5,11,14,16,18,19],numcol:19,numer:19,numpi:[4,11,13,15,19],numpoint:19,numpy_to_str:4,numrow:19,nx1:19,nxm:19,o:[11,16,19],obj:[8,16,18,19,20],object:[5,7,8,11,15,16,18,19,21,23,26,27,28,29,31],obliqu:19,obtain:27,obviou:2,occasion:26,octagon:19,off:19,offer:11,offset:[11,19],offset_posit:19,often:[5,32],ok:[8,18,19],omit:32,onc:[8,27],one:[2,3,6,8,10,19,21,28,31],ones:19,onli:[2,8,19,26,28,29,31],opac:19,opaqu:19,open:[8,10,18,19,23,24,26,30],open_url:18,oper:[10,19,20,25],optim:19,option:[3,6,8,11,14,16,18,19,20,21,27,28,29,31,32],optionalwidget:[8,19],order:[10,11,18,19,32],ordinari:5,orient:[2,8,19],origin:[8,19,21,31],os:28,other:[2,8,11,19,21,23,27,31,32],otherwis:[2,8,10,18,19,31],our:19,out:19,outlier:19,outlin:19,output:[19,24,31],outsid:[8,32],outstand:26,over:[18,19,31],overlai:[11,19],overlap:19,overrid:[8,19],overriden:16,overview:19,overwrit:26,ow:29,own:[3,5],p:[8,16,19],pack:[2,3],packag:[1,22],pad:19,pad_inch:19,page:[6,18,19],pagedown:16,pageup:16,pair:19,panda:[19,30],papertyp:19,parallel:10,param:[8,30,32],paramet:[2,8,11,14,16,18,19,20,24,27,30,32,33],parenleft:16,parenright:16,parent:[2,6,7,8,11,16,18,19,20,23,24,28],parent_class:8,parent_view:[26,27],parentlast:24,pars:19,parse_key_combo:16,part:[8,19],partial_ev:20,particular:19,particularli:19,pass:[2,8,19,21,26,31,32],past:23,patch:19,patches0:19,patches1:19,path:[4,8,19,28,30],path_effect:19,pathcollect:19,pathlib:[19,30],pbar1:31,pbar2:31,pbar:31,pbar_cl:8,pd:30,pdf:19,pdfpage:19,pentagon:19,per:19,percent:16,perform:19,period:16,perman:19,pg:11,pgf:19,pi:19,picker:19,pickradiu:19,pil:19,pil_kwarg:19,pip:[6,25,31],pivot:19,pixel:19,place:[19,26,32],placement:19,plai:32,plane:19,platform:26,pleas:19,plot:[11,19,20,21,25,30,32],plot_csv:30,plotcurveitem:11,plotdataitem:11,plotdatalay:11,plotitem:11,plotnonfinit:19,plt:[11,19,20,21,25],plu:[16,19],plugin:[26,27],plural:19,pluss:19,png:19,po:[8,11],point:[2,11,13,19,20],polar:19,polycollect:19,polygon:19,pop:[19,20,24,26],pope:8,popup:[8,24,26,31],popup_mod:[8,16,24],popupmod:[8,16,24],popupmodestr:8,portion:19,portrait:19,pos0:11,pos1:11,posit:[11,14,16,19,24],possibl:19,post:19,postscript:19,potenti:19,power:[19,26,31],pre:[2,8,19,32],preced:19,precis:19,predefinit:32,prefer:[19,27],premultipli:19,prepar:[2,6,21,28],present:19,press:11,prevent:26,preview:[6,8],previou:[11,19,28],principl:8,print:[2,7,8,11,14,16,19,20,24,26,27,28,29,30,31],print_figur:19,print_html:19,print_imag:19,print_param:32,print_png:19,print_rst:19,print_svg:19,print_tabl:19,print_text:26,print_tim:27,print_valu:[7,26,29],privat:27,pro:32,probabl:19,problem:[26,27,32],procedur:26,process:[10,19],process_work:10,produc:19,program:32,programat:[27,31,33],programm:27,programmat:[3,14],progress:[8,10,19,33],progressbar:[8,31],project:19,prop:19,prop_cycl:19,proper:[10,19,26],properti:[3,5,8,11,14,15,16,19,20,26],protocol:[6,8,19],provid:[6,7,11,14,16,19,23,25,26,29,32,33],ps:19,pseudocolor:19,psygnal:5,pull:19,purpos:[30,32],push:[3,7,8,26,32],pushbutton:[8,16,19,26],pushbuttonplu:16,put:[19,32],px:11,pylistwidget:20,pylistwidgetitem:[19,20],pyobject:20,pyobjectbound:20,pypi:6,pyplot:[19,21],pyqt5:[8,16,18,19,20],pyqtgraph:[6,8,9],pyqtgraph_avail:11,pytablewidget:20,pytablewidgetitem:20,python:[2,5,6,8,10,14,16,19,20,21,26,27,29],pytreewidget:20,pytreewidgetitem:20,pyvista:[8,9],pyvistacanva:13,pywidget:[1,8,19],q:16,qaction:16,qbasewidget:19,qcolor:19,qcolor_to_rgba:19,qcoloredit:19,qcolorlineedit:19,qcolorpopup:19,qcolorslid:19,qcolorswatch:19,qdoubleslid:19,qfloatedit:19,qframe:19,qgraphicsscenemouseev:11,qgroupbox:[3,19],qimag:19,qintedit:19,qkeysequ:16,qlineedit:19,qlistwidget:[3,20],qlistwidgetitem:20,qmdiarea:3,qmenu:16,qobject:16,qpoint:20,qpushbutton:3,qrangeslid:19,qrect:19,qregion:19,qrunnabl:31,qscrollarea:3,qslider:19,qsplitter:3,qstackedwidget:3,qt2yplotcanva:11,qt:[5,7,8,10,11,16,21,22,25],qtablewidget:20,qtablewidgetitem:20,qtabwidget:3,qtconsol:[8,9],qtextedit:19,qtgui:[16,19],qthread:[10,22,31],qtimagecanva:[11,25],qtkei:16,qtlogger:19,qtmodifi:16,qtmultiimagecanva:[11,25],qtmultiplotcanva:[11,25],qtoolbar:16,qtoolbox:3,qtoolbutton:3,qtplotcanva:[11,25],qtpy:5,qtreewidget:20,qtreewidgetitem:[8,20],qttabtoolbar:16,qtwidget:[6,8,16,18,19,20],quadrant:19,quadric:19,qualiti:19,quantiti:19,question:[16,18],quick:6,quickli:19,quit:[2,19],quiver:19,quiverkei:19,qwidg:19,qwidget:[5,14,16,18,19],qwidgetact:16,r:[8,11,16,19,21],radio:3,radiobutton:28,radiu:19,rais:[2,8,16,19,20,24,31],random:[11,19,21,27,28,33],randomli:28,rang:[3,8,11,19,31],rangeslid:19,rare:19,raster:19,rate:19,rather:19,ratio:19,raw:19,rc:19,rc_context:19,rcparam:19,re:[2,8,19],reach:32,read:8,read_coordin:27,read_csv:30,readabl:[6,7,32],readi:[5,8,26,29,31],readout:8,real:2,reason:[6,19,31,32],receiv:[11,14,16,19],recogn:19,recommend:[19,26,32],record:[6,7,8,19,27,32],rectangl:[19,27],rectangular:19,red:19,redo:8,redraw:19,reduc:[7,19],redund:26,refer:[6,8,19,27],referenc:19,regardless:19,region:11,regist:[4,19,20],register_callback:20,register_contextmenu:20,register_deleg:20,register_scal:19,register_tooltip:20,register_typ:[4,27],regular:19,rel:19,relai:5,relat:[8,19],relev:19,reli:[6,31],remain:19,reminisc:29,remov:[11,19],renam:19,render:[15,16,19],replac:8,report:19,repositori:6,repr:[8,29],repres:[5,19],represent:19,reproduc:27,requir:19,resampl:[19,28],reset:[16,28],reset_choic:[16,28],resiz:[3,19],resolut:19,resolv:19,respect:19,restor:19,restrict:5,result:[2,18,19,27,30,32],retain:8,retriev:27,return_annot:8,returned_valu:31,revers:19,rewrit:31,rgb:19,rgba:19,rgba_to_html:19,rgba_to_qcolor:19,rice:19,rich:26,right:[16,19,23],righthand:19,ro:19,roi:11,roman:19,rotat:19,rotation_mod:19,round:19,row:[19,20],rs:19,rst:[18,19],rst_to_html:18,rule:[4,19],run:[8,10,16,21,26,27,30,31],runtimeerror:8,rwidth:19,s:[2,3,5,6,8,11,14,16,19,21,26,27,29,31,32],safe:[8,18,29,32],safeti:5,sai:30,same:[2,3,8,11,19,23,24,27,29,30,31,32],san:19,save:19,savefig:19,scalar:19,scale:[11,18,19],scale_bar:11,scale_unit:19,scalebar:11,scalebas:19,scalei:19,scalex:19,scatter:[11,19],scatterplot:19,scatterplotitem:11,scatterpoint:19,scatteryoffset:19,scene:15,scope:2,scott:19,screen:[18,19],screen_cent:18,screen_scal:18,script:[10,14,26,27],scroll:3,scrollabl:[3,8,19],scrollablecontain:19,seaborn:32,search:[6,19,20,32],second:[4,10,19,21,31,32],second_a:23,second_b:23,second_c:23,section:19,see:[2,7,11,19,24,26,27,28,30],select:[3,8,19,28],self:[2,5,7,8,16,19,20,21,23,26,27,28,29,30,31,32],semant:19,semi:19,semibold:19,semicolon:16,semilog:19,send:10,sent:8,sep:[16,19],separ:[7,8,21,22,26,30],separet:32,seq:19,sequenc:[8,11,14,16,22],serif:19,set:[3,5,6,7,8,11,19,21,24,27,30,32],set_aspect:19,set_bad:19,set_context_menu:16,set_contextmenu:19,set_default:8,set_design:[8,26,32],set_directori:28,set_frame_on:19,set_hist:11,set_label:19,set_logg:19,set_menu:16,set_opt:[8,26,27,28],set_param:32,set_plt:19,set_shortcut:16,set_stdout:19,set_titl:19,set_unit:19,set_url:19,set_valu:26,set_widget:[5,19],set_xlim:19,set_xtick:19,set_xticklabel:19,set_ylim:19,set_ytick:19,set_yticklabel:19,setcolor:19,setcontextmenu:20,setmaximum:19,setminimum:19,setobject:20,setparentwidget:20,setsinglestep:19,setter:[5,8],settext:19,setvalu:[5,19],sever:[7,8,19,24,32],shadow:19,shaft:19,shape:[19,20,27],share:[2,19,20,31],sharei:[11,19],sharex:[11,19],sheet:19,shift:[16,19],shortcut:[7,8,19],shorthand:19,should:[5,7,19,20,26,27,28,29],show:[2,3,4,5,8,11,14,19,20,21,23,26,27,29,30,31,32,33],show_current_directori:28,show_messagebox:18,show_tre:18,shown:[8,19,26],side:19,sig:8,signal:[5,11,14,16,19,29],signalinst:[11,14,16,19],signatur:[11,14,16,18,19,22],significantli:19,similar:[8,11,16,18,20,21,23,26,28,29,31,32],similarli:[2,19,26],simpl:[19,21,28,30],simpler:27,simpleviewbox:11,simpli:19,simplic:[5,29],sin:19,sinc:[19,21,26,27,28,31,32],singl:[19,20,31],singlestep:19,situat:7,six:31,size:[8,11,15,19,21],sketch_param:19,slash:16,sleep:31,slice:19,slider:[8,19,26,29],slight:19,slightli:19,slope:[11,19],slow:19,small:19,smaller:19,snap:19,so:[2,7,19,26,27],solid:19,solid_capstyl:19,solid_joinstyl:19,solv:27,some:[2,6,7,11,14,19,26,27,28,31,32],some_funct:7,someth:[2,8,19,28,30,31,32],sometim:[19,21,28,32],soon:19,sort:[18,32],sourc:[8,10,11,12,13,14,15,16,18,19,20],space:[3,19],span:19,speak:8,spec:19,specif:[2,16,19,24],specifi:[11,14,16,19,24,27,31],speed:19,spell:19,spin:7,spinbox:8,spline16:19,spline36:19,split:[3,8,23],splitter:[3,19],splittercontain:19,spread:19,spreadsheet:19,sqrt:19,squar:[11,19],squeez:19,stack:[3,8,19],stackedcontain:19,stale:19,standard:[4,19,23,24,29],standardize_color:19,star:[11,19],start:[6,7,8,10,19,20,21,31],state:[8,19,27,29,31],std:[8,30],stderr:24,stdout:19,step:[8,19,26,32],stepfil:19,still:[5,8,26],stone:19,stop:[19,20],store:[19,26,29],str:[2,5,8,11,14,15,16,18,19,20,24,26,28,29,31,32],straight:19,strategi:[2,19],stretch:19,strictli:8,string:[4,7,8,11,18,19,20,26,31],strs2keycombo:16,structur:[2,19],sturg:19,style:[4,7,8,11,19],stylesheet:[8,22],sub:8,subclass:[2,8,19,29],submodul:[9,22,25],subpackag:22,subplot:[19,21],subplot_kw:19,subplots_axes_and_figur:19,substitut:19,subwindow:[3,8],subwindowscontain:19,sue:19,suffici:19,suitabl:19,sum:19,summar:30,summari:30,summarize_csv:30,summer:26,superqt:[8,31],suppli:19,support:[10,11,14,16,19,21,27,28],support_valu:16,suppos:[5,30],suppress:19,sure:[7,8],svg:19,swap:11,swatch:19,swept:19,sy:19,symbol:[11,15,19],symlog:19,symmetricallogscal:19,synchron:[26,30],synonym:19,syntax:19,system:[11,19,26],t:[2,7,16,19,26,27,29,30,32],t_start:27,tab:[3,8,16,19,23],tab_siz:19,tabbedcontain:19,tabl:[18,19,20,29,30],tag:[19,20,26],tail:19,take:[4,19,26,32],takechild:8,taken:19,tandem:[10,23],target:32,technic:19,templat:[2,8],temporari:19,term:[5,32],terribl:19,test:[9,11,19],test_plot_canva:12,test_qtgraph:[9,11],text:[3,8,11,14,16,18,19,26,30,32],text_item:11,text_overlai:11,textedit:19,textgroup:11,textitem:11,textitemview:11,th:11,than:[2,19],thei:[8,19,20,23,26,29,30,31,32],them:[3,8,19,27,29],thereof:19,thi:[2,3,4,5,7,8,10,11,14,16,18,19,20,26,27,28,30,31,32,33],thick:19,thin_diamond:19,thing:[2,19,32],third:19,those:[2,7,11,19,26,30],though:19,thread:[6,10,19],thread_work:[8,31],three:19,through:19,thu:19,tick:[19,21],tick_param:19,ticklabel:19,tidi:6,tight:19,time:[2,3,7,8,11,14,16,19,24,26,27,28,31,32],tip:19,titl:[3,11,16,18,19,20,21],title_fonts:19,titlecolor:19,titlei:19,titleloc:19,titlepad:19,titles:19,titleweight:19,to_act:8,to_clipboard:18,to_napari:10,to_qtkei:16,to_qtmodifi:16,to_widget:[8,29],togeth:19,toggl:[3,11,19],toi:19,tolist:[4,20,27],tom:19,tool:[3,19,32],toolbar:[3,8,19,22,32],toolbargui:[8,16],toolbox:[3,8],toolboxcontain:19,toolbuttonplu:16,tooltip:[8,16,18,19,20,26],tooltipfor:20,top:[11,19],total:19,toward:19,tqdm:22,track:8,tradit:19,trang:8,transax:19,transform:19,transform_color:19,transform_rotates_text:19,transpar:19,transpos:19,treat:[11,19],tree:[8,19],tri:25,tri_down:19,tri_left:19,tri_right:19,tri_up:19,triangl:[11,19],triangle_down:19,triangle_left:19,triangle_right:19,triangle_up:19,trigger:7,truncat:19,tupl:[8,11,15,16,18,19],tupleedit:[8,19],turn:19,tutori:19,twice:32,twini:19,twinx:19,two:[2,3,4,8,11,19,30],two_scal:19,type:[2,4,5,6,7,10,11,14,16,18,19,20,22,24,26,29,31,32],type_:20,typeddict:8,typeerror:2,typic:[7,19,32],typing_extens:27,u:[16,19],ui:[2,8,14,18,23,26,27,29,31,32,33],uiboundtreeitem:8,ultra:19,ultralight:19,unassoci:19,unchang:19,undefin:19,under:[19,32],underscor:19,unequ:19,unescap:18,unexpectedli:30,unfil:19,unifi:11,uniform:19,union:[8,10],unit:[11,19],unknown:19,unless:19,unlik:[3,8,19,28],unmask:19,unpack:19,unset:[8,19],until:[2,31,32],up:[3,7,8,16,19,24,26],updat:[8,11,19,20,21,26,31,32],updateview:11,upgrad:8,upgrade_signatur:8,upon:[19,29],upper:[2,19],upsampl:19,upward:19,url:19,us:[2,4,5,6,7,8,9,10,11,14,16,19,24,30,33],useless:27,user:[6,8,19,21,26,27,30],usetex:19,usual:[19,21,23,26,27,28,30,31,32],util:[1,8,9,11,13,14,15,20,22,31],uv:19,v0:21,v:[5,8,11,16,19],va:19,valid:[16,19],valu:[2,4,5,6,7,8,11,14,16,18,19,20,26,28,29,30,31,32],value_widget:[8,19],valuechang:5,valueerror:[8,19,20],valuewidget:[8,19],vari:[19,31],variabl:[2,19,29],variant:19,variat:[6,24],varieti:25,variou:19,vector:19,verbatim:19,veri:[4,5,7,14,21,27,28,29,30,31,32],version:[8,19,32],versu:19,vertic:[8,11,19,24],verticalalign:19,vfield:[8,29,31],via:[5,7,19,21,24,29,31,32],view:[19,20],viewbox:[11,15],viewboxext:11,viewer:[10,11,24,27,33],visibl:[3,5,8,11,15,16,19,20,24],vispi:[6,8,9],vispy3dcanva:[15,33],vispyplotcanva:15,visual:[11,21,25],vline:19,vmax:19,vmin:19,vs:19,w:[16,19,27,28,31],wa:[11,19,20,29,31],wai:[5,7,8,10,11,16,19,20,21,25,26,27,29,31],wait:10,want:[2,5,7,8,19,21,23,26,27,28,29,30,31,32],warn:[18,19],warp:32,wdt:[5,28],we:[6,18,21,23],web:19,websit:26,weight:19,well:[2,19,26],what:[8,19,32],whatev:19,when:[2,3,7,8,10,11,14,16,19,20,23,26,27,28,29,30,31,32],whenev:[19,26],where:[8,19],wherea:19,whether:[8,11,14,16,19,27],which:[2,7,8,10,16,19,20,26,27,29,31],white:19,whitespac:19,whose:[7,26],why:6,wide:21,widget:[1,6,7,8,9,16,18,22,23,24,25,27,28,29,30,31,33],widget_typ:[3,8,16,24,26,29,32],widgetact:[8,16],widgetopt:[8,19],widgetprotocol:8,widgets3d:[8,9],widgettyp:[3,8,24],widgettypestr:8,width:[8,11,19,31],window:[3,19,24,26,31],wire_color:15,wish:19,within:19,without:[6,7,8,19,31],word:19,work:[2,8,19,23,27,32,33],worker:[8,10,31],worri:[2,7,26],worst:19,would:14,wrap:[2,7,8,19,32],wrap_contain:19,wrapper:[7,11,19,20,22,27,28],write:[19,24,32],x0:[19,27],x1:[19,27],x2:19,x:[2,5,11,15,16,19,21,32],xaxi:19,xdata:[11,19],xlabel:[11,19,21],xlim:[11,19,21],xmax:19,xmin:19,xrang:19,xscale:19,xtick:[19,21],xx:19,xxx:30,xy1:19,xy2:19,xy:19,y1:[11,19],y2:[11,19],y:[2,11,15,16,19,21,32],yaxi:19,ydata:[11,19],ye:[18,32],yellow:19,yet:[2,26],yield:[8,19,31],yielded_valu:31,ylabel:[11,19],ylim:[11,19],ymax:19,ymin:19,you:[2,3,4,5,6,7,8,10,14,18,19,20,21,23,24,25,26,27,28,29,30,31,32,33],your:[5,7,19,21,28,30,32],yrang:19,yscale:19,ytick:19,z:[11,16],zero:19,zoom:19,zorder:[11,19]},titles:["Additional types","API References","Inherit Magic Class","Container Variations","Customize Macro Recording","Convert QtWidgets into a Magic Widget","Welcome to magic-class documentation!","Define Custom Keybindings","magicclass package","magicclass.ext package","magicclass.ext.napari package","magicclass.ext.pyqtgraph package","magicclass.ext.pyqtgraph.tests package","magicclass.ext.pyvista package","magicclass.ext.qtconsole package","magicclass.ext.vispy package","magicclass.gui package","magicclass.stylesheets package","magicclass.utils package","magicclass.widgets package","magicclass.widgets.pywidgets package","Use Matplotlib Figure","magicclass","Nest magic-classes","Options in magic-class","Use PyQtGraph Canvas","Quick Start","Binding Values to Arguments","Set Choices Dynamically","Use Fields in magic-class","Add Preview Functionalities","Multi-threading","Call Parent Methods from its Child","Vispy Canvas"],titleterms:{"1":2,"class":[2,6,21,23,24,26,29],"default":3,"function":[7,18,26,30,32],A:5,It:5,The:2,add:[26,30],addit:0,advanc:6,after:26,ancestor:32,annot:27,api:1,argument:27,automat:26,avail:3,ax:21,bar:31,base:2,basic:[5,6,21,23,26,30,31,32],behav:5,better:6,bind:[2,27],button:26,buttoncontain:3,call:32,callback:[2,29,31],canva:[25,33],chang:26,child:32,choic:28,class_gui:16,code:26,collapsiblecontain:3,color:19,compat:7,complet:26,compon:11,connect:31,construct:26,contain:[3,19],content:[1,6,8,9,10,11,12,13,14,15,16,17,18,19,20,26],convert:5,copi:32,core:8,custom:[4,7],data:6,decor:7,defin:[2,4,7,29],design:26,dict:20,dictwidget:20,document:[6,26],draggablecontain:3,dynam:28,ext:[9,10,11,12,13,14,15],featur:7,field:[2,8,27,29],figur:21,find:32,framecontain:3,from:32,graph_item:11,groupboxcontain:3,gui:[6,16],hcollapsiblecontain:3,help:8,how:[4,7,31],imag:15,indic:6,inherit:2,initi:26,instal:6,iter:31,its:32,keybind:[7,16],like:[5,29],list:20,listcontain:3,listwidget:20,logger:19,macro:[4,26],magic:[2,5,6,21,23,24,26,29],magicclass:[8,9,10,11,12,13,14,15,16,17,18,19,20,22],magicfield:[28,29],magicgui:28,mainwindow:3,make:[5,6,23,26,29,32],map:3,matplotlib:21,menu:23,menu_gui:16,method:[2,27,28,32],mgui_ext:16,misc:19,modul:[8,9,10,11,12,13,14,15,16,17,18,19,20],more:[5,29],mouse_ev:11,multi:31,multipl:21,napari:10,nest:[2,23],number:31,object:[2,4,20],option:[0,24,26],order:2,other:[3,7,26],packag:[8,9,10,11,12,13,14,15,16,17,18,19,20],paramet:26,parent:32,post:26,predefinit:2,preview:30,privat:7,progress:31,proper:31,properti:29,pyqtgraph:[11,12,25],pyvista:13,pywidget:20,qt:[3,18],qtconsol:14,qthread:8,qtwidget:5,quick:26,record:[4,26],refer:1,scrollablecontain:3,separ:19,sequenc:19,set:[28,31],signatur:8,sourc:6,splittercontain:3,stackedcontain:3,start:26,strategi:23,stylesheet:17,submodul:[8,10,11,12,13,14,15,16,18,19,20],subpackag:[8,9,11,19],subwindowscontain:3,syntax:32,tabbedcontain:3,tabl:6,templat:32,test:12,test_qtgraph:12,thread:31,toolbar:[16,23],toolboxcontain:3,topic:6,total:31,tqdm:8,tree:20,type:[0,3,8,27],us:[3,21,23,25,26,27,28,29,31,32],usag:[5,21,30,31],util:[10,16,18,19],valu:27,valuewidget:5,variat:3,vispi:[15,33],visual:6,welcom:6,widget:[2,3,5,10,11,13,14,15,19,20,21,26,32],widgets3d:15,wrapper:8,your:[6,26]}})
diff --git a/docs/use_bind.html b/docs/use_bind.html
index c9651631..997d0903 100644
--- a/docs/use_bind.html
+++ b/docs/use_bind.html
@@ -4,7 +4,7 @@
   <meta charset="utf-8" /><meta name="generator" content="Docutils 0.17.1: http://docutils.sourceforge.net/" />
 
   <meta name="viewport" content="width=device-width, initial-scale=1.0" />
-  <title>Binding Values to Arguments &mdash; magic-class 0.6.1 documentation</title>
+  <title>Binding Values to Arguments &mdash; magic-class 0.6.2.dev0 documentation</title>
       <link rel="stylesheet" href="_static/pygments.css" type="text/css" />
       <link rel="stylesheet" href="_static/css/theme.css" type="text/css" />
       <link rel="stylesheet" href="_static/columns.css" type="text/css" />
@@ -31,7 +31,7 @@
             <a href="index.html" class="icon icon-home"> magic-class
           </a>
               <div class="version">
-                0.6.1
+                0.6.2.dev0
               </div>
 <div role="search">
   <form id="rtd-search-form" class="wy-form" action="search.html" method="get">
@@ -58,6 +58,7 @@
 </ul>
 </li>
 <li class="toctree-l1"><a class="reference internal" href="use_choices.html">Set Choices Dynamically</a></li>
+<li class="toctree-l1"><a class="reference internal" href="use_preview.html">Add Preview Functionalities</a></li>
 <li class="toctree-l1"><a class="reference internal" href="use_worker.html">Multi-threading</a></li>
 <li class="toctree-l1"><a class="reference internal" href="additional_types.html">Additional types</a></li>
 <li class="toctree-l1"><a class="reference internal" href="containers.html">Container Variations</a></li>
diff --git a/docs/use_choices.html b/docs/use_choices.html
index f11cab11..7df1f036 100644
--- a/docs/use_choices.html
+++ b/docs/use_choices.html
@@ -4,7 +4,7 @@
   <meta charset="utf-8" /><meta name="generator" content="Docutils 0.17.1: http://docutils.sourceforge.net/" />
 
   <meta name="viewport" content="width=device-width, initial-scale=1.0" />
-  <title>Set Choices Dynamically &mdash; magic-class 0.6.1 documentation</title>
+  <title>Set Choices Dynamically &mdash; magic-class 0.6.2.dev0 documentation</title>
       <link rel="stylesheet" href="_static/pygments.css" type="text/css" />
       <link rel="stylesheet" href="_static/css/theme.css" type="text/css" />
       <link rel="stylesheet" href="_static/columns.css" type="text/css" />
@@ -19,7 +19,7 @@
     <script src="_static/js/theme.js"></script>
     <link rel="index" title="Index" href="genindex.html" />
     <link rel="search" title="Search" href="search.html" />
-    <link rel="next" title="Multi-threading" href="use_worker.html" />
+    <link rel="next" title="Add Preview Functionalities" href="use_preview.html" />
     <link rel="prev" title="Binding Values to Arguments" href="use_bind.html" />
 </head>
 
@@ -31,7 +31,7 @@
             <a href="index.html" class="icon icon-home"> magic-class
           </a>
               <div class="version">
-                0.6.1
+                0.6.2.dev0
               </div>
 <div role="search">
   <form id="rtd-search-form" class="wy-form" action="search.html" method="get">
@@ -58,6 +58,7 @@
 <li class="toctree-l2"><a class="reference internal" href="#choices-in-magicfield">Choices in MagicField</a></li>
 </ul>
 </li>
+<li class="toctree-l1"><a class="reference internal" href="use_preview.html">Add Preview Functionalities</a></li>
 <li class="toctree-l1"><a class="reference internal" href="use_worker.html">Multi-threading</a></li>
 <li class="toctree-l1"><a class="reference internal" href="additional_types.html">Additional types</a></li>
 <li class="toctree-l1"><a class="reference internal" href="containers.html">Container Variations</a></li>
@@ -201,7 +202,7 @@ <h2>Choices in MagicField<a class="headerlink" href="#choices-in-magicfield" tit
           </div>
           <footer><div class="rst-footer-buttons" role="navigation" aria-label="Footer">
         <a href="use_bind.html" class="btn btn-neutral float-left" title="Binding Values to Arguments" accesskey="p" rel="prev"><span class="fa fa-arrow-circle-left" aria-hidden="true"></span> Previous</a>
-        <a href="use_worker.html" class="btn btn-neutral float-right" title="Multi-threading" accesskey="n" rel="next">Next <span class="fa fa-arrow-circle-right" aria-hidden="true"></span></a>
+        <a href="use_preview.html" class="btn btn-neutral float-right" title="Add Preview Functionalities" accesskey="n" rel="next">Next <span class="fa fa-arrow-circle-right" aria-hidden="true"></span></a>
     </div>
 
   <hr/>
diff --git a/docs/use_field.html b/docs/use_field.html
index f21d22d0..9886e6be 100644
--- a/docs/use_field.html
+++ b/docs/use_field.html
@@ -4,7 +4,7 @@
   <meta charset="utf-8" /><meta name="generator" content="Docutils 0.17.1: http://docutils.sourceforge.net/" />
 
   <meta name="viewport" content="width=device-width, initial-scale=1.0" />
-  <title>Use Fields in magic-class &mdash; magic-class 0.6.1 documentation</title>
+  <title>Use Fields in magic-class &mdash; magic-class 0.6.2.dev0 documentation</title>
       <link rel="stylesheet" href="_static/pygments.css" type="text/css" />
       <link rel="stylesheet" href="_static/css/theme.css" type="text/css" />
       <link rel="stylesheet" href="_static/columns.css" type="text/css" />
@@ -31,7 +31,7 @@
             <a href="index.html" class="icon icon-home"> magic-class
           </a>
               <div class="version">
-                0.6.1
+                0.6.2.dev0
               </div>
 <div role="search">
   <form id="rtd-search-form" class="wy-form" action="search.html" method="get">
@@ -58,6 +58,7 @@
 <li class="toctree-l1"><a class="reference internal" href="use_wraps.html">Call Parent Methods from its Child</a></li>
 <li class="toctree-l1"><a class="reference internal" href="use_bind.html">Binding Values to Arguments</a></li>
 <li class="toctree-l1"><a class="reference internal" href="use_choices.html">Set Choices Dynamically</a></li>
+<li class="toctree-l1"><a class="reference internal" href="use_preview.html">Add Preview Functionalities</a></li>
 <li class="toctree-l1"><a class="reference internal" href="use_worker.html">Multi-threading</a></li>
 <li class="toctree-l1"><a class="reference internal" href="additional_types.html">Additional types</a></li>
 <li class="toctree-l1"><a class="reference internal" href="containers.html">Container Variations</a></li>
diff --git a/docs/use_preview.html b/docs/use_preview.html
new file mode 100644
index 00000000..3abd0725
--- /dev/null
+++ b/docs/use_preview.html
@@ -0,0 +1,220 @@
+<!DOCTYPE html>
+<html class="writer-html5" lang="English" >
+<head>
+  <meta charset="utf-8" /><meta name="generator" content="Docutils 0.17.1: http://docutils.sourceforge.net/" />
+
+  <meta name="viewport" content="width=device-width, initial-scale=1.0" />
+  <title>Add Preview Functionalities &mdash; magic-class 0.6.2.dev0 documentation</title>
+      <link rel="stylesheet" href="_static/pygments.css" type="text/css" />
+      <link rel="stylesheet" href="_static/css/theme.css" type="text/css" />
+      <link rel="stylesheet" href="_static/columns.css" type="text/css" />
+  <!--[if lt IE 9]>
+    <script src="_static/js/html5shiv.min.js"></script>
+  <![endif]-->
+
+        <script data-url_root="./" id="documentation_options" src="_static/documentation_options.js"></script>
+        <script src="_static/jquery.js"></script>
+        <script src="_static/underscore.js"></script>
+        <script src="_static/doctools.js"></script>
+    <script src="_static/js/theme.js"></script>
+    <link rel="index" title="Index" href="genindex.html" />
+    <link rel="search" title="Search" href="search.html" />
+    <link rel="next" title="Multi-threading" href="use_worker.html" />
+    <link rel="prev" title="Set Choices Dynamically" href="use_choices.html" />
+</head>
+
+<body class="wy-body-for-nav">
+  <div class="wy-grid-for-nav">
+    <nav data-toggle="wy-nav-shift" class="wy-nav-side">
+      <div class="wy-side-scroll">
+        <div class="wy-side-nav-search" >
+            <a href="index.html" class="icon icon-home"> magic-class
+          </a>
+              <div class="version">
+                0.6.2.dev0
+              </div>
+<div role="search">
+  <form id="rtd-search-form" class="wy-form" action="search.html" method="get">
+    <input type="text" name="q" placeholder="Search docs" />
+    <input type="hidden" name="check_keywords" value="yes" />
+    <input type="hidden" name="area" value="default" />
+  </form>
+</div>
+        </div><div class="wy-menu wy-menu-vertical" data-spy="affix" role="navigation" aria-label="Navigation menu">
+              <ul>
+<li class="toctree-l1"><a class="reference internal" href="quick_start.html">Quick Start</a></li>
+</ul>
+<ul>
+<li class="toctree-l1"><a class="reference internal" href="options.html">Options in magic-class</a></li>
+<li class="toctree-l1"><a class="reference internal" href="nest.html">Nest magic-classes</a></li>
+<li class="toctree-l1"><a class="reference internal" href="use_field.html">Use Fields in magic-class</a></li>
+</ul>
+<ul class="current">
+<li class="toctree-l1"><a class="reference internal" href="use_wraps.html">Call Parent Methods from its Child</a></li>
+<li class="toctree-l1"><a class="reference internal" href="use_bind.html">Binding Values to Arguments</a></li>
+<li class="toctree-l1"><a class="reference internal" href="use_choices.html">Set Choices Dynamically</a></li>
+<li class="toctree-l1 current"><a class="current reference internal" href="#">Add Preview Functionalities</a><ul>
+<li class="toctree-l2"><a class="reference internal" href="#basic-usage">Basic Usage</a></li>
+</ul>
+</li>
+<li class="toctree-l1"><a class="reference internal" href="use_worker.html">Multi-threading</a></li>
+<li class="toctree-l1"><a class="reference internal" href="additional_types.html">Additional types</a></li>
+<li class="toctree-l1"><a class="reference internal" href="containers.html">Container Variations</a></li>
+</ul>
+<ul>
+<li class="toctree-l1"><a class="reference internal" href="matplotlib.html">Use Matplotlib Figure</a></li>
+<li class="toctree-l1"><a class="reference internal" href="pyqtgraph.html">Use PyQtGraph Canvas</a></li>
+<li class="toctree-l1"><a class="reference internal" href="vispy.html">Vispy Canvas</a></li>
+</ul>
+<ul>
+<li class="toctree-l1"><a class="reference internal" href="freewidget.html">Convert QtWidgets into a Magic Widget</a></li>
+<li class="toctree-l1"><a class="reference internal" href="keybinding.html">Define Custom Keybindings</a></li>
+<li class="toctree-l1"><a class="reference internal" href="customize_macro.html">Customize Macro Recording</a></li>
+<li class="toctree-l1"><a class="reference internal" href="class_inheritance.html">Inherit Magic Class</a></li>
+<li class="toctree-l1"><a class="reference internal" href="api.html">API References</a></li>
+</ul>
+
+        </div>
+      </div>
+    </nav>
+
+    <section data-toggle="wy-nav-shift" class="wy-nav-content-wrap"><nav class="wy-nav-top" aria-label="Mobile navigation menu" >
+          <i data-toggle="wy-nav-top" class="fa fa-bars"></i>
+          <a href="index.html">magic-class</a>
+      </nav>
+
+      <div class="wy-nav-content">
+        <div class="rst-content">
+          <div role="navigation" aria-label="Page navigation">
+  <ul class="wy-breadcrumbs">
+      <li><a href="index.html" class="icon icon-home"></a> &raquo;</li>
+      <li>Add Preview Functionalities</li>
+      <li class="wy-breadcrumbs-aside">
+            <a href="_sources/use_preview.rst.txt" rel="nofollow"> View page source</a>
+      </li>
+  </ul>
+  <hr/>
+</div>
+          <div role="main" class="document" itemscope="itemscope" itemtype="http://schema.org/Article">
+           <div itemprop="articleBody">
+
+  <section id="add-preview-functionalities">
+<h1>Add Preview Functionalities<a class="headerlink" href="#add-preview-functionalities" title="Permalink to this headline">¶</a></h1>
+<p>It is a very usual case when you want to preview something before actually running a
+function. Suppose in your GUI you implemented a function that can load a csv file and
+summarize its contents, you may want to open the csv file and see if you chose the
+correct file.</p>
+<p>The preview functionality is, however, unexpectedly hard to be implemented in <code class="docutils literal notranslate"><span class="pre">magicgui</span></code>
+or <code class="docutils literal notranslate"><span class="pre">magic-class</span></code>.</p>
+<ul class="simple">
+<li><p>If they are implemented in separate buttons, say in button &quot;summarize csv&quot; and
+&quot;preview csv&quot;, users have to synchronize all the input arguments between these
+two widgets.</p></li>
+<li><p>If they are implemented in a same button, you have to add an additional button in the
+bottom of the <code class="docutils literal notranslate"><span class="pre">FunctionGui</span></code>. This is not simple and hard to maintain.</p></li>
+</ul>
+<p>In <code class="docutils literal notranslate"><span class="pre">magic-class</span></code>, <code class="docutils literal notranslate"><span class="pre">mark_preview</span></code> decorator is very useful for this purpose. You can
+define a preview function and directly integrate it into another function easily.</p>
+<section id="basic-usage">
+<h2>Basic Usage<a class="headerlink" href="#basic-usage" title="Permalink to this headline">¶</a></h2>
+<div class="highlight-python notranslate"><div class="highlight"><pre><span></span><span class="nd">@mark_preview</span><span class="p">(</span><span class="n">f</span><span class="p">)</span>
+<span class="k">def</span> <span class="nf">_f_prev</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">xxx</span><span class="p">):</span>
+    <span class="o">...</span>
+</pre></div>
+</div>
+<p>will define a previewer <code class="docutils literal notranslate"><span class="pre">_f_prev</span></code> for function <code class="docutils literal notranslate"><span class="pre">f</span></code>. Arguments of <code class="docutils literal notranslate"><span class="pre">_f_prev</span></code> must be
+composed of those in <code class="docutils literal notranslate"><span class="pre">f</span></code>. The <code class="docutils literal notranslate"><span class="pre">_f_prev</span></code> can be called from the <code class="docutils literal notranslate"><span class="pre">FunctionGui</span></code>
+created by <code class="docutils literal notranslate"><span class="pre">f</span></code>, as a preview button above the call button.</p>
+<div class="highlight-python notranslate"><div class="highlight"><pre><span></span><span class="kn">from</span> <span class="nn">pathlib</span> <span class="kn">import</span> <span class="n">Path</span>
+<span class="kn">import</span> <span class="nn">pandas</span> <span class="k">as</span> <span class="nn">pd</span>
+<span class="kn">from</span> <span class="nn">magicgui.widgets</span> <span class="kn">import</span> <span class="n">Table</span>  <span class="c1"># for preview</span>
+<span class="kn">from</span> <span class="nn">magicclass</span> <span class="kn">import</span> <span class="n">magicclass</span><span class="p">,</span> <span class="n">mark_preview</span>
+
+<span class="nd">@magicclass</span>
+<span class="k">class</span> <span class="nc">A</span><span class="p">:</span>
+    <span class="k">def</span> <span class="nf">summarize_csv</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">path</span><span class="p">:</span> <span class="n">Path</span><span class="p">):</span>
+        <span class="n">df</span> <span class="o">=</span> <span class="n">pd</span><span class="o">.</span><span class="n">read_csv</span><span class="p">(</span><span class="n">path</span><span class="p">)</span>
+        <span class="nb">print</span><span class="p">(</span><span class="n">df</span><span class="o">.</span><span class="n">agg</span><span class="p">([</span><span class="n">np</span><span class="o">.</span><span class="n">mean</span><span class="p">,</span> <span class="n">np</span><span class="o">.</span><span class="n">std</span><span class="p">]))</span>  <span class="c1"># print summary</span>
+
+    <span class="nd">@mark_preview</span><span class="p">(</span><span class="n">summarize_csv</span><span class="p">)</span>
+    <span class="k">def</span> <span class="nf">_preview_csv</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">path</span><span class="p">):</span>
+        <span class="n">df</span> <span class="o">=</span> <span class="n">pd</span><span class="o">.</span><span class="n">read_csv</span><span class="p">(</span><span class="n">path</span><span class="p">)</span>
+        <span class="n">Table</span><span class="p">(</span><span class="n">value</span><span class="o">=</span><span class="n">df</span><span class="p">)</span><span class="o">.</span><span class="n">show</span><span class="p">()</span>  <span class="c1"># open table widget as the preview</span>
+</pre></div>
+</div>
+<p>Previewer don't have to accept all the arguments. Suppose you defined a function
+<code class="docutils literal notranslate"><span class="pre">calc_something</span></code> that calculate something using a data frame and a input parameter
+like <code class="docutils literal notranslate"><span class="pre">calc_something(df,</span> <span class="pre">param)</span></code>, the <code class="docutils literal notranslate"><span class="pre">param</span></code> in not needed for preview.</p>
+<div class="highlight-python notranslate"><div class="highlight"><pre><span></span><span class="nd">@magicclass</span>
+<span class="k">class</span> <span class="nc">A</span><span class="p">:</span>
+    <span class="k">def</span> <span class="nf">calc_csv</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">path</span><span class="p">:</span> <span class="n">Path</span><span class="p">,</span> <span class="n">param</span><span class="p">:</span> <span class="nb">float</span><span class="p">):</span>
+        <span class="n">df</span> <span class="o">=</span> <span class="n">pd</span><span class="o">.</span><span class="n">read_csv</span><span class="p">(</span><span class="n">path</span><span class="p">)</span>
+        <span class="n">result</span> <span class="o">=</span> <span class="n">calc_something</span><span class="p">(</span><span class="n">df</span><span class="p">,</span> <span class="n">param</span><span class="p">)</span>
+        <span class="nb">print</span><span class="p">(</span><span class="n">result</span><span class="p">)</span>
+
+    <span class="nd">@mark_preview</span><span class="p">(</span><span class="n">calc_csv</span><span class="p">)</span>
+    <span class="k">def</span> <span class="nf">_preview_csv</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">path</span><span class="p">):</span>  <span class="c1"># &quot;param&quot; is not needed here</span>
+        <span class="n">df</span> <span class="o">=</span> <span class="n">pd</span><span class="o">.</span><span class="n">read_csv</span><span class="p">(</span><span class="n">path</span><span class="p">)</span>
+        <span class="n">Table</span><span class="p">(</span><span class="n">value</span><span class="o">=</span><span class="n">df</span><span class="p">)</span><span class="o">.</span><span class="n">show</span><span class="p">()</span>
+</pre></div>
+</div>
+<p>You can mark the same function as a previewer for multiple functions. You can also set
+the text of preview button using <code class="docutils literal notranslate"><span class="pre">text=...</span></code> argument.</p>
+<div class="highlight-python notranslate"><div class="highlight"><pre><span></span><span class="nd">@magicclass</span>
+<span class="k">class</span> <span class="nc">A</span><span class="p">:</span>
+    <span class="k">def</span> <span class="nf">summarize_csv</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">path</span><span class="p">:</span> <span class="n">Path</span><span class="p">):</span>
+        <span class="n">df</span> <span class="o">=</span> <span class="n">pd</span><span class="o">.</span><span class="n">read_csv</span><span class="p">(</span><span class="n">path</span><span class="p">)</span>
+        <span class="nb">print</span><span class="p">(</span><span class="n">df</span><span class="o">.</span><span class="n">agg</span><span class="p">([</span><span class="n">np</span><span class="o">.</span><span class="n">mean</span><span class="p">,</span> <span class="n">np</span><span class="o">.</span><span class="n">std</span><span class="p">]))</span>
+
+    <span class="k">def</span> <span class="nf">calc_csv</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">path</span><span class="p">:</span> <span class="n">Path</span><span class="p">,</span> <span class="n">param</span><span class="p">:</span> <span class="nb">float</span><span class="p">):</span>
+        <span class="n">df</span> <span class="o">=</span> <span class="n">pd</span><span class="o">.</span><span class="n">read_csv</span><span class="p">(</span><span class="n">path</span><span class="p">)</span>
+        <span class="n">result</span> <span class="o">=</span> <span class="n">calc_something</span><span class="p">(</span><span class="n">df</span><span class="p">,</span> <span class="n">param</span><span class="p">)</span>
+        <span class="nb">print</span><span class="p">(</span><span class="n">result</span><span class="p">)</span>
+
+    <span class="k">def</span> <span class="nf">plot_csv</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">path</span><span class="p">:</span> <span class="n">Path</span><span class="p">):</span>
+        <span class="n">df</span> <span class="o">=</span> <span class="n">pd</span><span class="o">.</span><span class="n">read_csv</span><span class="p">(</span><span class="n">path</span><span class="p">)</span>
+        <span class="n">df</span><span class="o">.</span><span class="n">plot</span><span class="p">()</span>
+
+    <span class="nd">@mark_preview</span><span class="p">(</span><span class="n">summarize_csv</span><span class="p">)</span>
+    <span class="nd">@mark_preview</span><span class="p">(</span><span class="n">calc_csv</span><span class="p">)</span>
+    <span class="nd">@mark_preview</span><span class="p">(</span><span class="n">plot_csv</span><span class="p">,</span> <span class="n">text</span><span class="o">=</span><span class="s2">&quot;preview CSV&quot;</span><span class="p">)</span>
+    <span class="k">def</span> <span class="nf">_preview_csv</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">path</span><span class="p">):</span>  <span class="c1"># &quot;param&quot; is not needed here</span>
+        <span class="n">df</span> <span class="o">=</span> <span class="n">pd</span><span class="o">.</span><span class="n">read_csv</span><span class="p">(</span><span class="n">path</span><span class="p">)</span>
+        <span class="n">Table</span><span class="p">(</span><span class="n">value</span><span class="o">=</span><span class="n">df</span><span class="p">)</span><span class="o">.</span><span class="n">show</span><span class="p">()</span>
+</pre></div>
+</div>
+</section>
+</section>
+
+
+           </div>
+          </div>
+          <footer><div class="rst-footer-buttons" role="navigation" aria-label="Footer">
+        <a href="use_choices.html" class="btn btn-neutral float-left" title="Set Choices Dynamically" accesskey="p" rel="prev"><span class="fa fa-arrow-circle-left" aria-hidden="true"></span> Previous</a>
+        <a href="use_worker.html" class="btn btn-neutral float-right" title="Multi-threading" accesskey="n" rel="next">Next <span class="fa fa-arrow-circle-right" aria-hidden="true"></span></a>
+    </div>
+
+  <hr/>
+
+  <div role="contentinfo">
+    <p>&#169; Copyright 2021, Hanjin Liu.</p>
+  </div>
+
+  Built with <a href="https://www.sphinx-doc.org/">Sphinx</a> using a
+    <a href="https://github.com/readthedocs/sphinx_rtd_theme">theme</a>
+    provided by <a href="https://readthedocs.org">Read the Docs</a>.
+
+
+</footer>
+        </div>
+      </div>
+    </section>
+  </div>
+  <script>
+      jQuery(function () {
+          SphinxRtdTheme.Navigation.enable(true);
+      });
+  </script>
+
+</body>
+</html>
diff --git a/docs/use_worker.html b/docs/use_worker.html
index 2c987876..1b8e3094 100644
--- a/docs/use_worker.html
+++ b/docs/use_worker.html
@@ -4,7 +4,7 @@
   <meta charset="utf-8" /><meta name="generator" content="Docutils 0.17.1: http://docutils.sourceforge.net/" />
 
   <meta name="viewport" content="width=device-width, initial-scale=1.0" />
-  <title>Multi-threading &mdash; magic-class 0.6.1 documentation</title>
+  <title>Multi-threading &mdash; magic-class 0.6.2.dev0 documentation</title>
       <link rel="stylesheet" href="_static/pygments.css" type="text/css" />
       <link rel="stylesheet" href="_static/css/theme.css" type="text/css" />
       <link rel="stylesheet" href="_static/columns.css" type="text/css" />
@@ -20,7 +20,7 @@
     <link rel="index" title="Index" href="genindex.html" />
     <link rel="search" title="Search" href="search.html" />
     <link rel="next" title="Additional types" href="additional_types.html" />
-    <link rel="prev" title="Set Choices Dynamically" href="use_choices.html" />
+    <link rel="prev" title="Add Preview Functionalities" href="use_preview.html" />
 </head>
 
 <body class="wy-body-for-nav">
@@ -31,7 +31,7 @@
             <a href="index.html" class="icon icon-home"> magic-class
           </a>
               <div class="version">
-                0.6.1
+                0.6.2.dev0
               </div>
 <div role="search">
   <form id="rtd-search-form" class="wy-form" action="search.html" method="get">
@@ -53,6 +53,7 @@
 <li class="toctree-l1"><a class="reference internal" href="use_wraps.html">Call Parent Methods from its Child</a></li>
 <li class="toctree-l1"><a class="reference internal" href="use_bind.html">Binding Values to Arguments</a></li>
 <li class="toctree-l1"><a class="reference internal" href="use_choices.html">Set Choices Dynamically</a></li>
+<li class="toctree-l1"><a class="reference internal" href="use_preview.html">Add Preview Functionalities</a></li>
 <li class="toctree-l1 current"><a class="current reference internal" href="#">Multi-threading</a><ul>
 <li class="toctree-l2"><a class="reference internal" href="#basic-usage">Basic Usage</a></li>
 <li class="toctree-l2"><a class="reference internal" href="#connect-callbacks">Connect Callbacks</a></li>
@@ -345,7 +346,7 @@ <h3>How to set proper total iteration numbers?<a class="headerlink" href="#how-t
            </div>
           </div>
           <footer><div class="rst-footer-buttons" role="navigation" aria-label="Footer">
-        <a href="use_choices.html" class="btn btn-neutral float-left" title="Set Choices Dynamically" accesskey="p" rel="prev"><span class="fa fa-arrow-circle-left" aria-hidden="true"></span> Previous</a>
+        <a href="use_preview.html" class="btn btn-neutral float-left" title="Add Preview Functionalities" accesskey="p" rel="prev"><span class="fa fa-arrow-circle-left" aria-hidden="true"></span> Previous</a>
         <a href="additional_types.html" class="btn btn-neutral float-right" title="Additional types" accesskey="n" rel="next">Next <span class="fa fa-arrow-circle-right" aria-hidden="true"></span></a>
     </div>
 
diff --git a/docs/use_wraps.html b/docs/use_wraps.html
index 47ddf986..831d25e2 100644
--- a/docs/use_wraps.html
+++ b/docs/use_wraps.html
@@ -4,7 +4,7 @@
   <meta charset="utf-8" /><meta name="generator" content="Docutils 0.17.1: http://docutils.sourceforge.net/" />
 
   <meta name="viewport" content="width=device-width, initial-scale=1.0" />
-  <title>Call Parent Methods from its Child &mdash; magic-class 0.6.1 documentation</title>
+  <title>Call Parent Methods from its Child &mdash; magic-class 0.6.2.dev0 documentation</title>
       <link rel="stylesheet" href="_static/pygments.css" type="text/css" />
       <link rel="stylesheet" href="_static/css/theme.css" type="text/css" />
       <link rel="stylesheet" href="_static/columns.css" type="text/css" />
@@ -31,7 +31,7 @@
             <a href="index.html" class="icon icon-home"> magic-class
           </a>
               <div class="version">
-                0.6.1
+                0.6.2.dev0
               </div>
 <div role="search">
   <form id="rtd-search-form" class="wy-form" action="search.html" method="get">
@@ -59,6 +59,7 @@
 </li>
 <li class="toctree-l1"><a class="reference internal" href="use_bind.html">Binding Values to Arguments</a></li>
 <li class="toctree-l1"><a class="reference internal" href="use_choices.html">Set Choices Dynamically</a></li>
+<li class="toctree-l1"><a class="reference internal" href="use_preview.html">Add Preview Functionalities</a></li>
 <li class="toctree-l1"><a class="reference internal" href="use_worker.html">Multi-threading</a></li>
 <li class="toctree-l1"><a class="reference internal" href="additional_types.html">Additional types</a></li>
 <li class="toctree-l1"><a class="reference internal" href="containers.html">Container Variations</a></li>
diff --git a/docs/vispy.html b/docs/vispy.html
index 84ca38cf..b6df9d28 100644
--- a/docs/vispy.html
+++ b/docs/vispy.html
@@ -4,7 +4,7 @@
   <meta charset="utf-8" /><meta name="generator" content="Docutils 0.17.1: http://docutils.sourceforge.net/" />
 
   <meta name="viewport" content="width=device-width, initial-scale=1.0" />
-  <title>Vispy Canvas &mdash; magic-class 0.6.1 documentation</title>
+  <title>Vispy Canvas &mdash; magic-class 0.6.2.dev0 documentation</title>
       <link rel="stylesheet" href="_static/pygments.css" type="text/css" />
       <link rel="stylesheet" href="_static/css/theme.css" type="text/css" />
       <link rel="stylesheet" href="_static/columns.css" type="text/css" />
@@ -31,7 +31,7 @@
             <a href="index.html" class="icon icon-home"> magic-class
           </a>
               <div class="version">
-                0.6.1
+                0.6.2.dev0
               </div>
 <div role="search">
   <form id="rtd-search-form" class="wy-form" action="search.html" method="get">
@@ -53,6 +53,7 @@
 <li class="toctree-l1"><a class="reference internal" href="use_wraps.html">Call Parent Methods from its Child</a></li>
 <li class="toctree-l1"><a class="reference internal" href="use_bind.html">Binding Values to Arguments</a></li>
 <li class="toctree-l1"><a class="reference internal" href="use_choices.html">Set Choices Dynamically</a></li>
+<li class="toctree-l1"><a class="reference internal" href="use_preview.html">Add Preview Functionalities</a></li>
 <li class="toctree-l1"><a class="reference internal" href="use_worker.html">Multi-threading</a></li>
 <li class="toctree-l1"><a class="reference internal" href="additional_types.html">Additional types</a></li>
 <li class="toctree-l1"><a class="reference internal" href="containers.html">Container Variations</a></li>
diff --git a/magicclass/__init__.py b/magicclass/__init__.py
index e50fcadc..fc34ad01 100644
--- a/magicclass/__init__.py
+++ b/magicclass/__init__.py
@@ -19,6 +19,7 @@
     bind_key,
     confirm,
     nogui,
+    mark_preview,
 )
 
 from .fields import field, vfield
diff --git a/magicclass/gui/_base.py b/magicclass/gui/_base.py
index c152039e..8ca1f047 100644
--- a/magicclass/gui/_base.py
+++ b/magicclass/gui/_base.py
@@ -17,7 +17,6 @@
 import os
 from enum import Enum
 import warnings
-import weakref
 from docstring_parser import parse, compose
 from qtpy.QtWidgets import QWidget, QDockWidget
 from qtpy.QtGui import QIcon
@@ -581,7 +580,9 @@ def _create_widget_from_method(self, obj: MethodType):
                 obj_sig, "additional_options", {}
             )
 
-        if nparams == 0:
+        has_preview = get_additional_option(func, "preview", None) is not None
+
+        if nparams == 0 and not has_preview:
             # We don't want a dialog with a single widget "Run" to show up.
             def run_function():
                 # NOTE: callback must be defined inside function. Magic class must be
@@ -592,7 +593,7 @@ def run_function():
 
                 return out
 
-        elif nparams == 1 and isinstance(fgui[0], FileEdit):
+        elif nparams == 1 and isinstance(fgui[0], FileEdit) and not has_preview:
             # We don't want to open a magicgui dialog and again open a file dialog.
             def run_function():
                 mgui = _build_mgui(widget, func, self)
@@ -912,6 +913,11 @@ def _build_mgui(widget_: Action | PushButtonPlus, func: Callable, parent: BaseGu
         mgui = FunctionGuiPlus(
             func, call_button, layout=layout, labels=labels, auto_call=auto_call
         )
+        preview = opt.get("preview", None)
+        if preview is not None:
+            btn_text, previewer = preview
+            mgui.append_preview(previewer.__get__(parent), btn_text)
+
     except Exception as e:
         msg = (
             "Exception was raised during building magicgui from method "
@@ -922,7 +928,6 @@ def _build_mgui(widget_: Action | PushButtonPlus, func: Callable, parent: BaseGu
     widget_.mgui = mgui
     name = widget_.name or ""
     mgui.native.setWindowTitle(name.replace("_", " ").strip())
-    mgui._magicclass_parent_ref = weakref.ref(parent)
     return mgui
 
 
diff --git a/magicclass/gui/_function_gui.py b/magicclass/gui/_function_gui.py
index d9bad7d6..a7021e85 100644
--- a/magicclass/gui/_function_gui.py
+++ b/magicclass/gui/_function_gui.py
@@ -1,7 +1,7 @@
 from __future__ import annotations
-from typing import Any, TYPE_CHECKING, TypeVar
+from typing import Any, TYPE_CHECKING, Callable, TypeVar
 import re
-import weakref
+from magicgui.widgets import PushButton
 from magicgui.widgets._concrete import _LabeledWidget
 from magicgui.widgets._bases import ValueWidget, ButtonWidget, ContainerWidget
 from magicgui.widgets._function_gui import (
@@ -20,7 +20,7 @@
 class FunctionGuiPlus(FunctionGui[_R]):
     """FunctionGui class with a parameter recording functionality etc."""
 
-    _magicclass_parent_ref: weakref.ReferenceType[BaseGui] | None = None
+    _preview = None
 
     def __call__(self, *args: Any, update_widget: bool = False, **kwargs: Any) -> _R:
         sig = self.__signature__
@@ -94,10 +94,46 @@ def insert(self, key: int, widget: Widget):
                 _widget = _LabeledWidget(widget)
                 widget.label_changed.connect(self._unify_label_widths)
 
-        self._list.insert(key, widget)
         if key < 0:
             key += len(self)
+        self._list.insert(key, widget)
         # NOTE: if someone has manually mucked around with self.native.layout()
         # it's possible that indices will be off.
         self._widget._mgui_insert_widget(key, _widget)
         self._unify_label_widths()
+
+    def append_preview(self, f: Callable, text: str = "Preview"):
+        self._preview = f
+        btn = PushButton(text=text)
+        if isinstance(self[-1], PushButton):
+            self.insert(len(self) - 1, btn)
+        else:
+            self.append(btn)
+
+        @btn.changed.connect
+        def _call_preview():
+            sig = self.__signature__
+            try:
+                bound = sig.bind()
+            except TypeError as e:
+                if "missing a required argument" in str(e):
+                    match = re.search("argument: '(.+)'", str(e))
+                    missing = match.groups()[0] if match else "<param>"
+                    msg = (
+                        f"{e} in call to '{self._callable_name}{sig}'.\n"
+                        "To avoid this error, you can bind a value or callback to the "
+                        f"parameter:\n\n    {self._callable_name}.{missing}.bind(value)"
+                        "\n\nOr use the 'bind' option in the set_option decorator:\n\n"
+                        f"    @set_option({missing}={{'bind': value}})\n"
+                        f"    def {self._callable_name}{sig}: ..."
+                    )
+                    raise TypeError(msg) from None
+                else:
+                    raise
+
+            bound.apply_defaults()
+
+            f(*bound.args, **bound.kwargs)
+            return None
+
+        return f
diff --git a/magicclass/qthreading.py b/magicclass/qthreading.py
index a125f498..d2570178 100644
--- a/magicclass/qthreading.py
+++ b/magicclass/qthreading.py
@@ -400,9 +400,9 @@ def _create_worker(*args, **kwargs):
                     worker.pbar = pbar  # avoid garbage collection
                     worker.yielded.connect(increment.__get__(pbar))
 
+                if hasattr(pbar, "set_worker"):
+                    pbar.set_worker(worker)
             _push_button: PushButtonPlus = gui[self._func.__name__]
-            if hasattr(pbar, "set_worker"):
-                pbar.set_worker(worker)
             if _push_button.running:
                 _push_button.enabled = False
 
@@ -462,7 +462,10 @@ def _find_progressbar(self, gui: BaseGui, desc: str | None = None, total: int =
             _pbar = self.__class__._DEFAULT_PROGRESS_BAR(max=total)
             if isinstance(_pbar, Widget) and _pbar.parent is None:
                 # Popup progressbar as a splashscreen if it is not a child widget.
-                _pbar.native.setParent(gui.native, Qt.SplashScreen)
+                _pbar.native.setParent(
+                    gui.native,
+                    Qt.WindowTitleHint | Qt.WindowMinimizeButtonHint | Qt.Window,
+                )
                 move_to_screen_center(_pbar.native)
         else:
             _pbar.max = total
diff --git a/magicclass/wrappers.py b/magicclass/wrappers.py
index ff99aaf1..6a3ad8f2 100644
--- a/magicclass/wrappers.py
+++ b/magicclass/wrappers.py
@@ -366,6 +366,79 @@ def nogui(method: F) -> F:
     return method
 
 
+def mark_preview(function: F, text: str = "Preview") -> F:
+    """
+    Define a preview of a function.
+
+    This decorator is useful for advanced magicgui creation. A "Preview" button
+    appears in the bottom of the widget built from the input function and the
+    decorated function will be called with the same arguments.
+    Following example shows how to define a previewer that prints the content of
+    the selected file.
+
+    .. code-block:: python
+
+        def func(self, path: Path):
+            ...
+
+        @mark_preview(func)
+        def _func_prev(self, path: Path):
+            with open(path, mode="r") as f:
+                print(f.read())
+
+    Parameters
+    ----------
+    function : callable
+        To which function previewer will be defined.
+    text : str, optional
+        Text of preview button.
+    """
+
+    def _wrapper(preview):
+        sig_preview = inspect.signature(preview)
+        sig_func = inspect.signature(function)
+        params_preview = sig_preview.parameters
+        params_func = sig_func.parameters
+        prev_ns = preview.__qualname__.split(".")[-2]
+
+        less = len(params_func) - len(params_preview)
+        if less == 0:
+            if params_preview.keys() != params_func.keys():
+                raise TypeError(
+                    f"Arguments mismatch between {sig_preview} and {sig_func}."
+                )
+            # If argument names are identical, input arguments don't have to be filtered.
+            _filter = lambda a: a
+
+        elif less > 0:
+            idx: list[int] = []
+            for i, param in enumerate(params_func.keys()):
+                if param in params_preview:
+                    idx.append(i)
+            # If argument names are not identical, input arguments have to be filtered so
+            # that arguments match the inputs.
+            _filter = lambda a: filter(lambda x: x in idx, a)
+
+        else:
+            raise TypeError(
+                f"Number of arguments of preview function {preview!r} must be equal"
+                f"or smaller than that of running function {function!r}."
+            )
+
+        def _preview(self: BaseGui, *args):
+            # find proper parent instance in the case of classes being nested
+            ins = self
+            while ins.__class__.__name__ != prev_ns:
+                ins = ins.__magicclass_parent__
+            # filter input arguments
+            return preview(ins, *_filter(args))
+
+        upgrade_signature(function, additional_options={"preview": (text, _preview)})
+        return preview
+
+    return _wrapper
+
+
 def _assert_iterable(obj):
     if obj is None:
         obj = []
diff --git a/rst/index.rst b/rst/index.rst
index faa1963c..c2f408a7 100644
--- a/rst/index.rst
+++ b/rst/index.rst
@@ -56,6 +56,7 @@ and tidiness of the source code.
    use_wraps
    use_bind
    use_choices
+   use_preview
    use_worker
    additional_types
    containers
diff --git a/rst/magicclass.utils.rst b/rst/magicclass.utils.rst
index 9d1dc78e..c7fa8437 100644
--- a/rst/magicclass.utils.rst
+++ b/rst/magicclass.utils.rst
@@ -12,6 +12,14 @@ magicclass.utils.functions module
    :undoc-members:
    :show-inheritance:
 
+magicclass.utils.qt module
+--------------------------
+
+.. automodule:: magicclass.utils.qt
+   :members:
+   :undoc-members:
+   :show-inheritance:
+
 Module contents
 ---------------
 
diff --git a/rst/use_preview.rst b/rst/use_preview.rst
new file mode 100644
index 00000000..4afd24f3
--- /dev/null
+++ b/rst/use_preview.rst
@@ -0,0 +1,96 @@
+===========================
+Add Preview Functionalities
+===========================
+
+It is a very usual case when you want to preview something before actually running a
+function. Suppose in your GUI you implemented a function that can load a csv file and
+summarize its contents, you may want to open the csv file and see if you chose the
+correct file.
+
+The preview functionality is, however, unexpectedly hard to be implemented in ``magicgui``
+or ``magic-class``.
+
+- If they are implemented in separate buttons, say in button "summarize csv" and
+  "preview csv", users have to synchronize all the input arguments between these
+  two widgets.
+- If they are implemented in a same button, you have to add an additional button in the
+  bottom of the ``FunctionGui``. This is not simple and hard to maintain.
+
+In ``magic-class``, ``mark_preview`` decorator is very useful for this purpose. You can
+define a preview function and directly integrate it into another function easily.
+
+Basic Usage
+-----------
+
+.. code-block:: python
+
+    @mark_preview(f)
+    def _f_prev(self, xxx):
+        ...
+
+will define a previewer ``_f_prev`` for function ``f``. Arguments of ``_f_prev`` must be
+composed of those in ``f``. The ``_f_prev`` can be called from the ``FunctionGui``
+created by ``f``, as a preview button above the call button.
+
+.. code-block:: python
+
+    from pathlib import Path
+    import pandas as pd
+    from magicgui.widgets import Table  # for preview
+    from magicclass import magicclass, mark_preview
+
+    @magicclass
+    class A:
+        def summarize_csv(self, path: Path):
+            df = pd.read_csv(path)
+            print(df.agg([np.mean, np.std]))  # print summary
+
+        @mark_preview(summarize_csv)
+        def _preview_csv(self, path):
+            df = pd.read_csv(path)
+            Table(value=df).show()  # open table widget as the preview
+
+Previewer don't have to accept all the arguments. Suppose you defined a function
+``calc_something`` that calculate something using a data frame and a input parameter
+like ``calc_something(df, param)``, the ``param`` in not needed for preview.
+
+.. code-block:: python
+
+    @magicclass
+    class A:
+        def calc_csv(self, path: Path, param: float):
+            df = pd.read_csv(path)
+            result = calc_something(df, param)
+            print(result)
+
+        @mark_preview(calc_csv)
+        def _preview_csv(self, path):  # "param" is not needed here
+            df = pd.read_csv(path)
+            Table(value=df).show()
+
+You can mark the same function as a previewer for multiple functions. You can also set
+the text of preview button using ``text=...`` argument.
+
+.. code-block:: python
+
+    @magicclass
+    class A:
+        def summarize_csv(self, path: Path):
+            df = pd.read_csv(path)
+            print(df.agg([np.mean, np.std]))
+
+        def calc_csv(self, path: Path, param: float):
+            df = pd.read_csv(path)
+            result = calc_something(df, param)
+            print(result)
+
+        def plot_csv(self, path: Path):
+            df = pd.read_csv(path)
+            df.plot()
+
+        @mark_preview(summarize_csv)
+        @mark_preview(calc_csv)
+        @mark_preview(plot_csv, text="preview CSV")
+        def _preview_csv(self, path):  # "param" is not needed here
+            df = pd.read_csv(path)
+            Table(value=df).show()


Test patch:
diff --git a/docs/magicclass.ext.pyqtgraph.tests.html b/docs/magicclass.ext.pyqtgraph.tests.html
index 826b8593..187b33c8 100644
--- a/docs/magicclass.ext.pyqtgraph.tests.html
+++ b/docs/magicclass.ext.pyqtgraph.tests.html
@@ -4,7 +4,7 @@
   <meta charset="utf-8" /><meta name="generator" content="Docutils 0.17.1: http://docutils.sourceforge.net/" />
 
   <meta name="viewport" content="width=device-width, initial-scale=1.0" />
-  <title>magicclass.ext.pyqtgraph.tests package &mdash; magic-class 0.6.1 documentation</title>
+  <title>magicclass.ext.pyqtgraph.tests package &mdash; magic-class 0.6.2.dev0 documentation</title>
       <link rel="stylesheet" href="_static/pygments.css" type="text/css" />
       <link rel="stylesheet" href="_static/css/theme.css" type="text/css" />
       <link rel="stylesheet" href="_static/columns.css" type="text/css" />
@@ -31,7 +31,7 @@
             <a href="index.html" class="icon icon-home"> magic-class
           </a>
               <div class="version">
-                0.6.1
+                0.6.2.dev0
               </div>
 <div role="search">
   <form id="rtd-search-form" class="wy-form" action="search.html" method="get">
@@ -53,6 +53,7 @@
 <li class="toctree-l1"><a class="reference internal" href="use_wraps.html">Call Parent Methods from its Child</a></li>
 <li class="toctree-l1"><a class="reference internal" href="use_bind.html">Binding Values to Arguments</a></li>
 <li class="toctree-l1"><a class="reference internal" href="use_choices.html">Set Choices Dynamically</a></li>
+<li class="toctree-l1"><a class="reference internal" href="use_preview.html">Add Preview Functionalities</a></li>
 <li class="toctree-l1"><a class="reference internal" href="use_worker.html">Multi-threading</a></li>
 <li class="toctree-l1"><a class="reference internal" href="additional_types.html">Additional types</a></li>
 <li class="toctree-l1"><a class="reference internal" href="containers.html">Container Variations</a></li>
diff --git a/tests/test_wrappers.py b/tests/test_wrappers.py
index 1aea031a..ade28ced 100644
--- a/tests/test_wrappers.py
+++ b/tests/test_wrappers.py
@@ -1,7 +1,10 @@
 from types import MethodType
-from magicclass import magicclass, set_options, set_design, do_not_record, nogui
+from unittest.mock import MagicMock
+from magicclass import magicclass, set_options, set_design, do_not_record, nogui, mark_preview
 from magicgui.widgets import PushButton
 
+from magicclass.core import get_function_gui
+
 def test_set_options():
     @magicclass
     class A:
@@ -95,3 +98,79 @@ def g(self):
     ui = A()
     assert isinstance(ui["f"], MethodType)
     assert isinstance(ui["g"], PushButton)
+
+def test_mark_preview():
+    mock = MagicMock()
+    @magicclass
+    class A:
+        def f0(self, x: int, y: str = "v"):
+            mock(x=x, y=y)
+
+        def f1(self, x: int = 10):
+            mock(x=x)
+
+        @mark_preview(f0, text="preview 0")
+        @mark_preview(f1, text="preview 1")
+        def _preview(self, x):
+            mock(x=x, preview=True)
+
+    ui = A()
+    f0_gui = get_function_gui(ui, "f0")
+    assert f0_gui[-2].widget_type == "PushButton"
+    assert f0_gui[-2].text == "preview 0"
+    f1_gui = get_function_gui(ui, "f1")
+    assert f1_gui[-2].widget_type == "PushButton"
+    assert f1_gui[-2].text == "preview 1"
+
+    f0_gui[-2].changed()
+    mock.assert_called_with(x=0, preview=True)
+    assert str(ui.macro[-1]).startswith("#")
+    f0_gui[-1].changed()
+    mock.assert_called_with(x=0, y="v")
+    assert str(ui.macro[-1]) == "ui.f0(x=0, y='v')"
+
+    f1_gui[-2].changed()
+    mock.assert_called_with(x=10, preview=True)
+    assert str(ui.macro[-1]) == "ui.f0(x=0, y='v')"
+    f1_gui[-1].changed()
+    mock.assert_called_with(x=10)
+    assert str(ui.macro[-1]) == "ui.f1(x=10)"
+
+    mock = MagicMock()
+
+    @magicclass
+    class A:
+        @magicclass
+        class B:
+            def f0(self, x: int, y: str = "v"):
+                mock(type=type(self), x=x, y=y)
+
+            def f1(self, x: int = 10):
+                mock(type=type(self), x=x)
+
+        @mark_preview(B.f0, text="preview 0")
+        @mark_preview(B.f1, text="preview 1")
+        def _preview(self, x):
+            mock(type=type(self), x=x, preview=True)
+
+    ui = A()
+    f0_gui = get_function_gui(ui.B, "f0")
+    assert f0_gui[-2].widget_type == "PushButton"
+    assert f0_gui[-2].text == "preview 0"
+    f1_gui = get_function_gui(ui.B, "f1")
+    assert f1_gui[-2].widget_type == "PushButton"
+    assert f1_gui[-2].text == "preview 1"
+
+    f0_gui[-2].changed()
+    mock.assert_called_with(type=A, x=0, preview=True)
+    assert str(ui.macro[-1]).startswith("#")
+    f0_gui[-1].changed()
+    mock.assert_called_with(type=type(ui.B), x=0, y="v")
+    assert str(ui.macro[-1]) == "ui.B.f0(x=0, y='v')"
+
+    f1_gui[-2].changed()
+    mock.assert_called_with(type=A, x=10, preview=True)
+    assert str(ui.macro[-1]) == "ui.B.f0(x=0, y='v')"
+    f1_gui[-1].changed()
+    mock.assert_called_with(type=type(ui.B), x=10)
+    assert str(ui.macro[-1]) == "ui.B.f1(x=10)"