
    \g`7              
          d Z ddlZddlZddlZddlZddlZddlZej                            dej        	                    ej        
                    ej        	                    e                    dz                        ej                            dej        	                    ej        
                    ej        	                    e                    dz                        ddlZddlmZ ddlmZ  ej        ej                    ej        e          Zej        	                    ej        
                    e                    Zej        Zd Zd	 Zd
 Zd Zedk    r ej         e                       dS dS )aT  Example of qdarkstyle use for Python and Qt applications.

This module a main window with every item that could be created with
Qt Design (common ones) in the basic states (enabled/disabled), and
(checked/unchecked) for those who has this attribute.

Requirements:

    - Python 3
    - QtPy
    - PyQt5 or PyQt4 or PySide2 or PySide
    - PyQtGraph or Qt.Py (if choosen)

To run this example using PyQt5, simple do

.. code-block:: python

    python example.py

or

.. code-block:: python

    python example.py  --qt_from=pyqt5

Other options for qt_from are: pyqt5, pyside2, pyqt, pyside, qtpy, pyqtgraph, and qt.py.
Also, you can run the example without any theme (none), to check for problems.

.. code-block:: python

    python example.py  --qt_from=pyqt5 --palette=none

Note:
    qdarkstyle does not have to be installed to run the example.

    Nz/../..z/../ui)DarkPalette)LightPalette)levelc                     t          j        t          t           j                  } |                     ddt
          g dd           |                     ddt
          g d	d
           |                     ddd           |                     ddd           |                     ddd           |                     ddd           |                                 }|j        s|j        rdt          j
        d<   |j        dv r|j        t          j
        d<   nm|j        dk    r t          j
        d         t          j
        d<   nB|j        dv r9	 ddl}|j        t          j
        d<   n# t          $ r t          d           Y nw xY wddlm}m}m}m}m} dd lm} dd!lm}	m}
m d"}|r|}n|r|}nd#}                    t6          j                  }|                    d$           |                    d%           d"}|j        dk    rtA          j!        tD          &          }n%|j        d'k    rtA          j!        tF          &          }|$                    |           %                                &                    d(           |'                    t          j(        )                    tT          d)                     d*d+t@          j         d,z   d-| d,z   | d.| d,z   d/| d,z   d0tW          j,                     d,z   d1tW          j-                     d,z   d2tW          j.                     d,z   d3tW          j/                     d,z   d4tW          j+                     z   d5z   }t`          1                    |           2                    |           3                                }|&                    d6           |'                    t          j(        )                    tT          d7          |           4                    |	j        j5        |           |j6        j7        8                    |j9        j:                   |j6        :                    d8           ;                                }d9D ]}|<                    |           |j=        >                    |           |j?        >                    |           |j@        >                    |           A                    d:jB                  }|>                    |           jB        <                    |           jC        D                                E                    d;|
F                    d<                     jG        jH        8                    fd=           jI        jH        8                    fd>           jJ        jH        8                    fd?           jK        jH        8                    fd@           jL        jH        8                    fdA           jM        jH        8                    fdB           jN        jH        8                    fdC           jO        jH        8                    fdD           3                                }|&                    dE           |'                    t          j(        )                    tT          dF          |           4                    |	j        j5        |           3                                }|&                    dG           |'                    t          j(        )                    tT          dH          |           4                    |	j        j5        |           3                                }|&                    dI           |'                    t          j(        )                    tT          dJ          |           4                    |	j        j5        |           3                                }|&                    dK           |'                    t          j(        )                    tT          dL          |           4                    |	j        jP        |           3                                }|&                    dM           |'                    t          j(        )                    tT          dN          |           4                    |	j        jP        |           3                                }|&                    dO           |'                    t          j(        )                    tT          dP          |           4                    |	j        jP        |           3                                }|&                    dQ           |'                    t          j(        )                    tT          dR          |           4                    |	j        jP        |           Q                    ||           Q                    ||           Q                    ||           Q                    ||           Q                    ||           Q                    ||           R                                }|S                    T                    dS                     |S                    U                    dT                     |S                    T                    dU|z                        V                    |           |j        r |	jW        X                    dV|jY                   |jZ        r&[                                 t          ||           n/t          |j^        |	j_                   `                                 |a                                 t          |	j_                   dS )WzExecute QDarkStyle example.)descriptionformatter_classz	--palettedark)r	   lightnonezJPalette to display. Using 'none' there is no style sheet applied, OS like.)defaulttypechoiceshelpz	--qt_fromqtpy)pyqt5pyqtpyside2pysider   	pyqtgraphqt.pyz[Choose which binding and/or abstraction is to be used to run the example. Default is 'qtpy'z--test
store_truezAuto close window after 2s.)actionr   z--screenshotsz&Generate screenshots on images folder.z--offscreenz2Do not try to show the screen (running on server).z--resetz/Reset GUI settings (position, size) then opens.	offscreenQT_QPA_PLATFORM)r   r   r   r   QT_APIr   PYQTGRAPH_QT_LIB)r   qtr   NzCould not import Qt (Qt.Py))API_NAME
QT_VERSIONPYQT_VERSIONPYSIDE_VERSIONuic)__version__)QtCoreQtGui	QtWidgets z	Not found
QDarkStyleQDarkStyle Example)paletter
   
mainwindowzui/mw_menus.uizQDarkStyle Example - (zQDarkStyle=vz, zQtPy=vz=vzQt=vzPython=vzSystem=zRelease=zVersion=z	Platform=)buttonszui/dw_buttons.ui   )zAction AzAction BzAction CzMenu action   redc                  P                                                                      S N)QColorDialogexecr&   s   ;lib/python3.11/site-packages/qdarkstyle/example/__main__.py<lambda>zmain.<locals>.<lambda>       9O9O9Q9Q9V9V9X9X     c                  P                                                                      S r2   )QFileDialogr4   r5   s   r6   r7   zmain.<locals>.<lambda>       	8M8M8O8O8T8T8V8V r9   c                  6     j                                         S r2   )r;   getOpenFileNamesr5   s   r6   r7   zmain.<locals>.<lambda>   s    i>S>d>d>f>f r9   c                  P                                                                      S r2   )QFontDialogr4   r5   s   r6   r7   zmain.<locals>.<lambda>   r<   r9   c                  P                                                                      S r2   )QInputDialogr4   r5   s   r6   r7   zmain.<locals>.<lambda>   r8   r9   c                  P                                                                      S r2   )QMessageBoxr4   r5   s   r6   r7   zmain.<locals>.<lambda>   r<   r9   c                  <     j                             dd          S )NzCritical titlezCritical message)rD   critical)r&   windows   r6   r7   zmain.<locals>.<lambda>   s)    i>S>\>\]ceu  xJ  ?K  ?K r9   c                  P                                                                      S r2   )QProgressDialogr4   r5   s   r6   r7   zmain.<locals>.<lambda>   s    I<U<U<W<W<\<\<^<^ r9   displayszui/dw_displays.uiinputs_no_fieldszui/dw_inputs_no_fields.uiinputs_fieldszui/dw_inputs_fields.uiwidgetszui/dw_widgets.uiviewszui/dw_views.uicontainers_no_tabszui/dw_containers_no_tabs.uicontainers_tabszui/dw_containers_tabs.uiz4Issue Spyder #9120, #9121 - background not matching.OKzINFO: i  )cargparseArgumentParser__doc__RawDescriptionHelpFormatteradd_argumentstr
parse_argstestr   osenvironqt_fromQt__binding__ImportErrorprintr   r   r   r    r!   r"   r#   r$   r%   r&   QApplicationsysargvsetOrganizationNamesetApplicationNamer*   
qdarkstyleload_stylesheetr   r   setStyleSheetQMainWindowsetObjectNameloadUipathjoinhereplatformpython_versionsystemreleaseversion_loggerinfosetWindowTitleQDockWidgetaddDockWidgetRightDockWidgetAreacheckBoxTristatestateChangedconnectcheckBoxTristateDissetCheckStateQMenu	addActiontoolButtonDelayedPopupsetMenutoolButtonInstantPopuptoolButtonMenuButtonPopupQActiontoolBarMenus	tabWidgettabBarsetTabTextColorQColortoolButtonColorDialogclickedtoolButtonFileDialogtoolButtonFileDialogStatictoolButtonFontDialogtoolButtonInputDialogtoolButtonMessageBoxtoolButtonMessageBoxStatictoolButtonProgressDialogLeftDockWidgetAreatabifyDockWidget
QStatusBar	addWidgetQLabelQPushButtonsetStatusBarQTimer
singleShotexitscreenshotsshowFullScreencreate_screenshots_read_settingsreset	QSettingsshowMaximizedexec__write_settings)parserargsr]   r   r   r    r!   r"   QTPY_VERSIONr$   r%   API_VERSIONappstyletitle
dw_buttonsmenur   action_menudw_displaysdw_inputs_no_fieldsdw_inputs_fields
dw_widgetsdw_viewsdw_containers_no_tabsdw_containers_tabs
qstatusbarr&   rG   s                              @@r6   mainr   E   s   $5=5Y[ [ [F
V# 9 9 9i  k k k V# d d dz  | | | :  < < <
E  G G G
lQ  S S S
	,N  P P P D y 4DN 4(3
$% |===#|
8		$	$!z*<=
8		(	(	2III $&>BJx    	1 	1 	1/00000	1 MLLLLLLLLLLLLL000000---------- K ""	 "$! 
 
 
*
*CL)))/000E|v*;???		 	 *<@@@e ""$$F
&&&JJrw||D"233V<<<%8j48889(((() --k---. %j$$$	%
 8(1337778 /**.../ 1(*,,000	1 1(*,,000
1 18,..001 E LL
%    &&((JY'''JJrw||D"455zBBB
6
CCC ,44Z5S5abbb--a000 ??D6  v %--d333%--d333(00666 ##NF4GHHK
!!+... --ae1D1DEEE  (001X1X1X1XYYY
'//0V0V0V0VWWW
%-556f6f6f6fggg
'//0V0V0V0VWWW
 (001X1X1X1XYYY
'//0V0V0V0VWWW
%-55  7K  7K  7K  7K  7K  L  L  L
#+334^4^4^4^___ ''))Kj)))JJrw||D"566DDD
6DDD $//11%%&8999JJrw||D"=>>@STTT
68KLLL !,,..""?333JJrw||D":;;=MNNN
68HIII &&((JY'''JJrw||D"455zBBB
5zBBB $$&&H7###JJrw||D"233X>>>
5x@@@ &1133''(<===JJrw||D"?@@BWXXX
57LMMM #..00$$%6777JJrw||D"<==?QRRR
57IJJJ J444
K)9:::
,.ABBB 13EFFF
.
;;;
J111 %%''J))*`aabbb..t44555 ))(U*:;;<<<

###
 y 1  sx000  3---- 	vtz6+;<<<IIKKKFF,-----s   E' 'FFc                     |dd          }|                     d|                                            |                     d|                                            |                     d|                                            dS )z-Get window settings and write it into a file.r(   r)   possizestateN)setValuer   r   	saveState)rG   QSettingsClasssettingss      r6   r   r     sx    ~l,@AAHeVZZ\\***ffkkmm,,,gv//1122222r9   c                     |dd          }	 |                     d|                                           }|                     d|                                           }|                     d|                                           }n# t          $ r |                     d|                                 d          }|                     d|                                 d          }|                     d|                                 d	          }Y nw xY w|sA|                     |           |                     |           |                     |           d
S d
S )z)Read and set window settings from a file.r(   r)   r   r   r   QPoint)r   QSize
QByteArrayN)valuer   r   r   	ExceptionrestoreStateresizemove)rG   r   r   r   r   r   r   s          r6   r   r     sG   ~l,@AAHOnnUFJJLL11~~ffkkmm44w(8(8(:(:;; O O OnnUFJJLLxn@@~~ffkkmm'~BBw(8(8(:(:NNO
  E"""dC s   A8B BDDc                    |j         }t          d                    |                     |                    t          j                  }|                    t          j                  }ddgddgddgdd	gd
}d |D             d         }|                    d           t          j	        
                                 |                                D ]F\  }}	t          j                            t          ||          }
t          d|
z              |D ]}|                                |	v rht          d|                                           |                                 |                                 t          j	        
                                 |                                 |                                 t          j	        
                                 t+          j        d           t          j	        
                                 t.          j                                        }t          j	        
                                 |                    |                                          }t.          j                                        }t          j	        
                                 |                    |                                          }|                                }|                    |
           t          j	        
                                 Ht          j	        
                                 |                                 t          d           |                     tA          j                               dS )z:Save screenshots for different application views and quit.z
Creating {} screenshotszContainers - No TabsButtonszContainers - TabsDisplaysWidgetszInputs - FieldsViewszInputs - No Fields)zcontainers_no_tabs_buttons.pngzcontainers_tabs_displays.pngzwidgets_inputs_fields.pngzviews_inputs_no_fields.pngc                 B    g | ]}|                                 d k    |S )   )count).0tabs     r6   
<listcomp>z&create_screenshots.<locals>.<listcomp>O  s*    
4
4
43#))++"3"33"3"3"3r9   r   	zEvidencing : g      ?
N)!r*   r`   formatfindChildrenr&   rw   
QTabWidgetsetCurrentIndexr$   QCoreApplicationprocessEventsitemsrZ   rl   rm   SCREENSHOTS_PATHwindowTitleraise_showupdater   timesleepr%   QGuiApplicationprimaryScreen
grabWindowwinIdtoImagesavecloser   rb   )r   rG   r   themedockstabswidget_datar   fname_suffix	dw_titlespng_pathdwscreenpixmapimgs                  r6   r   r   1  s    LE	
%
,
,U
3
3444	 566Ey344D #+

  )

 &

  '
 K( 5
4$
4
4
4Q
7C
))+++#.#4#4#6#6 "0 "0i7<< 0%FFdXo 	8 	8B~~9,,or~~'7'7888					'55777 	--///
3--///&4466--///""6<<>>22 &4466--///""6<<>>22nn--////
))+++
LLNNN	$KKKHHSXZZr9   __main__)rT   rR   loggingrZ   rb   ro   r   rl   insertabspathdirname__file__rf   qdarkstyle.dark.paletter   qdarkstyle.light.paletter   basicConfigINFO	getLogger__name__rt   rn   IMAGES_PATHr   r   r   r   r   r    r9   r6   <module>r     s  # #N   				 



   27??27??27??83L3L#M#MPX#XYY Z Z Z 27??27??27??83L3L#M#MPX#XYY Z Z Z     / / / / / / 1 1 1 1 1 1  ', ' ' ' '
'
H
%
%	wrwx0011 ) N. N. N.b3 3 3  &J J JZ zCHTTVV r9   