
    Dfe6              
       0   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                  j                  dej                  j                  ej                  j                  ej                  j                  e            dz                ej                  j                  dej                  j                  ej                  j                  ej                  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                  j                  ej                  j                  e            Zej.                  Zd Zd	 Zd
 Zd Zedk(  r ej:                   e              yy)ax  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
    - PyQt6 or PyQt5 or PyQt4 or PySide6 or PySide2 or PySide
    - PyQtGraph or Qt.Py (if chosen)

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: pyqt6, pyqt5, pyside6, 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                        } | j	                  ddt
        g dd       | j	                  ddt
        g d	d
       | j	                  ddd       | j	                  ddd       | j	                  ddd       | j	                  ddd       | j                         }|j                  s|j                  rdt        j                  d<   |j                  dv r|j                  t        j                  d<   nd|j                  dk(  r%t        j                  d   t        j                  d<   n0|j                  dv r"	 ddl}|j                  t        j                  d<   ddlm}m}m}m}m} dd lm} dd!lm}	m}
m d"}|r|}n|r|}nd#}j5                  t6        j8                        }|j;                  d$       |j=                  d%       d"}|j>                  dk(  rtA        jB                  tD        &      }n)|j>                  d'k(  rtA        jB                  tF        &      }|jI                  |       jK                         jM                  d(       |jO                  t        jP                  jS                  tT        d)             d*d+|j>                   d,z   d-t@        j,                   d,z   d.| d,z   | d/| d,z   d0| d,z   d1tW        jX                          d,z   d2tW        jZ                          d,z   d3tW        j\                          d,z   d4tW        j^                          d,z   d5tW        jV                          z   d6z   }t`        jc                  |       je                  |       jg                         }|jM                  d7       |jO                  t        jP                  jS                  tT        d8      |       ji                  |	j                  jj                  |       |jl                  jn                  jq                  |jr                  jt                         |jl                  ju                  |	j                  jv                         jy                         }d9D ]  }|j{                  |        |j|                  j                  |       |j                  j                  |       |j                  j                  |       j                  d:j                        }|j                  |       j                  j{                  |       j                  j                         j                  d;|
j                  d<             j                  j                  jq                  fd=       j                  j                  jq                  fd>       j                  j                  jq                  fd?       j                  j                  jq                  fd@       j                  j                  jq                  fdA       j                  j                  jq                  fdB       j                  j                  jq                  fdC       j                  j                  jq                  fdD       jg                         }|jM                  dE       |jO                  t        jP                  jS                  tT        dF      |       ji                  |	j                  jj                  |       jg                         }|jM                  dG       |jO                  t        jP                  jS                  tT        dH      |       ji                  |	j                  jj                  |       jg                         }|jM                  dI       |jO                  t        jP                  jS                  tT        dJ      |       ji                  |	j                  jj                  |       jg                         }|jM                  dK       |jO                  t        jP                  jS                  tT        dL      |       ji                  |	j                  j                  |       jg                         }|jM                  dM       |jO                  t        jP                  jS                  tT        dN      |       ji                  |	j                  j                  |       jg                         }|jM                  dO       |jO                  t        jP                  jS                  tT        dP      |       ji                  |	j                  j                  |       jg                         }|jM                  dQ       |jO                  t        jP                  jS                  tT        dR      |       ji                  |	j                  j                  |       j                  ||       j                  ||       j                  ||       j                  ||       j                  ||       j                  ||       j                         }|j                  j                  dS             |j                  j                  dT             |j                  j                  dU|z                j                  |       |j                  r&|	j                  j                  dV|j                         |j                  rj                          t        ||       n1t        |j                  |	j                         j                          |j                          t        |	j                         y# t        $ r t        d       Y 
Bw xY w)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pyqt5)	pyqt6r   pyqtpyside6pyside2pysideqtpy	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   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Palette=z, zQDarkStyle=vz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                  @     j                         j                         S N)QColorDialogexecr(   s   =/usr/lib/python3/dist-packages/qdarkstyle/example/__main__.py<lambda>zmain.<locals>.<lambda>       9O9O9Q9V9V9X     c                  @     j                         j                         S r3   )QFileDialogr5   r6   s   r7   r8   zmain.<locals>.<lambda>       	8M8M8O8T8T8V r:   c                  8     j                   j                         S r3   )r<   getOpenFileNamesr6   s   r7   r8   zmain.<locals>.<lambda>   s    i>S>S>d>d>f r:   c                  @     j                         j                         S r3   )QFontDialogr5   r6   s   r7   r8   zmain.<locals>.<lambda>   r=   r:   c                  @     j                         j                         S r3   )QInputDialogr5   r6   s   r7   r8   zmain.<locals>.<lambda>   r9   r:   c                  @     j                         j                         S r3   )QMessageBoxr5   r6   s   r7   r8   zmain.<locals>.<lambda>   r=   r:   c                  >     j                   j                  dd      S )NzCritical titlezCritical message)rE   critical)r(   windows   r7   r8   zmain.<locals>.<lambda>   s&    i>S>S>\>\]ceu  xJ  ?K r:   c                  @     j                         j                         S r3   )QProgressDialogr5   r6   s   r7   r8   zmain.<locals>.<lambda>   s    I<U<U<W<\<\<^ r:   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  )d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PartiallyChecked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(   rH   s                              @@r7   mainr   G   s	   $$5=5Y5Y[F
V# 9i  k W3 xz  | :  <
E  G
lQ  S
	,N  P D yyDNN(3

$% ||QQ#||

8		$!zz*<=

8		(	2 $&>>BJJx  ML0-- K"	$! 
 
 
*CL)/0E||v**;?		 **<@e ""$F
&JJrww||D"23V<%$,,r*+j445R89 ~R() 2k]"-	.
 j\$% (1134B78 *+2.	/ (**,-R0
1 (**,-R01 8,,./01 E LL
%  &&(JY'JJrww||D"45zB
66
C ,,44Z5S5S5a5ab--fii.H.HI ??D6 v %%--d3%%--d3((006 ##NF4G4GHK
!!+. --ae1DE   ((001XY
''//0VW
%%--556fg
''//0VW
  ((001XY
''//0VW
%%--55  7K  L
##++334^_ '')Kj)JJrww||D"56D
66D $//1%%&89JJrww||D"=>@ST
668KL !,,.""?3JJrww||D":;=MN
668HI &&(JY'JJrww||D"45zB
55zB $$&H7#JJrww||D"23X>
55x@ &113''(<=JJrww||D"?@BWX
557LM #..0$$%67JJrww||D"<=?QR
557IJ J4
K)9:
,.AB 13EF
.
;
J1 %%'J))*`ab..t45 ))(U*:;<

#
 yy  sxx0 3- 	vtzz6+;+;<IIKFF,,-[  	1/0	1s   n* *ooc                      |dd      }|j                  d| j                                |j                  d| j                                |j                  d| j                                y)z-Get window settings and write it into a file.r*   r+   possizestateN)setValuer   r   	saveState)rH   QSettingsClasssettingss      r7   r   r     sT    l,@AHeVZZ\*ffkkm,gv//12r:   c                 .    |dd      }	 |j                  d| j                               }|j                  d| j                               }|j                  d| j                               }|s4| j                  |       | j                  |       | j                  |       y
y
# t        $ ri |j                  d| j                         d      }|j                  d| j                         d      }|j                  d| j                         d	      }Y w xY w)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)rH   r   r   r   r   r   r   s          r7   r   r   !  s    l,@AHOnnUFJJL1~~ffkkm4w(8(8(:; E"dC   OnnUFJJLxn@~~ffkkm'~Bw(8(8(:NOs   A B" "A/DDc                    |j                   }t        dj                  |             |j                  t        j
                        }|j                  t        j                        }ddgddgddgdd	gd
}|D cg c]  }|j                         dk\  s| c}d   }|j                  d       t        j                  j                          |j                         D ]  \  }}	t        j                  j                  t         ||      }
t        d|
z          |D ]m  }|j#                         |	v st        d|j#                                |j%                          |j'                          t        j                  j                          o |j)                          |j+                          t        j                  j                          t-        j.                  d       t        j                  j                          t0        j2                  j5                         }t        j                  j                          |j7                  |j9                               }t0        j2                  j5                         }t        j                  j                          |j7                  |j9                               }|j;                         }|j=                  |
       t        j                  j                           t        j                  j                          |j?                          t        d       | jA                  tC        j@                                yc c}w )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.png   r   	zEvidencing : g      ?
N)"r,   ra   formatfindChildrenr(   rx   
QTabWidgetcountsetCurrentIndexr&   QCoreApplicationprocessEventsitemsr[   rm   rn   SCREENSHOTS_PATHwindowTitleraise_showupdater   timesleepr'   QGuiApplicationprimaryScreen
grabWindowwinIdtoImagesavecloser   rc   )r   rH   r   themedockstabswidget_datatabfname_suffix	dw_titlespng_pathdwscreenpixmapimgs                  r7   r   r   4  s    LLE	
%
,
,U
34	 5 56Ey334D #+

  )

 &

  '
K( 
43#))+"33
4Q
7C
))+#.#4#4#6 "0i77<< 0%FdXo 	8B~~9,or~~'78			''557	8 	--/

3--/&&446--/""6<<>2 &&446--/""6<<>2nn--/E"0H ))+
LLN	$KHHSXXZY 5s   8MM__main__)rU   rS   loggingr[   rc   rp   r   rm   insertabspathdirname__file__rg   qdarkstyle.dark.paletter   qdarkstyle.light.paletter   basicConfigINFO	getLogger__name__ru   ro   IMAGES_PATHr   r   r   r   r   r    r:   r7   <module>r     s6  %R   	 
   277??277??277??83L#MPX#XY Z 277??277??277??83L#MPX#XY Z  / 1   ',, '
'

H
%	wwrwwx01 )) O.d3&JZ zCHHTV r:   