├── .gitignore ├── LICENSE ├── PyQt5_stylesheets ├── .gitignore ├── DarkOrange_rc │ ├── checkbox.png │ ├── down_arrow.png │ └── handle.png ├── Dark_rc │ ├── Hmovetoolbar.png │ ├── Hsepartoolbar.png │ ├── Vmovetoolbar.png │ ├── Vsepartoolbar.png │ ├── branch_closed-on.png │ ├── branch_closed.png │ ├── branch_open-on.png │ ├── branch_open.png │ ├── checkbox_checked.png │ ├── checkbox_checked_disabled.png │ ├── checkbox_checked_focus.png │ ├── checkbox_indeterminate.png │ ├── checkbox_indeterminate_disabled.png │ ├── checkbox_indeterminate_focus.png │ ├── checkbox_unchecked.png │ ├── checkbox_unchecked_disabled.png │ ├── checkbox_unchecked_focus.png │ ├── close-hover.png │ ├── close-pressed.png │ ├── close.png │ ├── down_arrow.png │ ├── down_arrow_disabled.png │ ├── left_arrow.png │ ├── left_arrow_disabled.png │ ├── radio_checked.png │ ├── radio_checked_disabled.png │ ├── radio_checked_focus.png │ ├── radio_unchecked.png │ ├── radio_unchecked_disabled.png │ ├── radio_unchecked_focus.png │ ├── right_arrow.png │ ├── right_arrow_disabled.png │ ├── sizegrip.png │ ├── stylesheet-branch-end.png │ ├── stylesheet-branch-more.png │ ├── stylesheet-vline.png │ ├── transparent.png │ ├── undock.png │ ├── up_arrow.png │ └── up_arrow_disabled.png ├── __init__.py ├── compile_qrc.py ├── img_rc │ ├── add-line_horizontal.png │ ├── add-line_vertical.png │ ├── array_down.png │ ├── checkbox_checked.png │ ├── checkbox_unchecked.png │ ├── radio_normal.png │ ├── radio_selected.png │ ├── sub-line_horizontal.png │ └── sub-line_vertical.png ├── pyqt5_style_Classic_rc.py ├── pyqt5_style_DarkOrange_rc.py ├── pyqt5_style_Dark_rc.py ├── pyqt5_style_black_rc.py ├── pyqt5_style_blue_rc.py ├── pyqt5_style_gray_rc.py ├── pyqt5_style_navy_rc.py ├── style_Classic.qrc ├── style_Classic.qss ├── style_Dark.qrc ├── style_Dark.qss ├── style_DarkOrange.qrc ├── style_DarkOrange.qss ├── style_black.css ├── style_black.qrc ├── style_blue.css ├── style_blue.qrc ├── style_gray.css ├── style_gray.qrc ├── style_navy.css └── style_navy.qrc ├── README.md ├── example ├── example_pyqt.py ├── example_pyqt5.py ├── example_pyside.py └── ui │ ├── __init__.py │ ├── compile_ui.sh │ ├── example.py │ ├── example.ui │ ├── example_pyqt5_ui.py │ ├── example_pyqt_ui.py │ └── example_pyside_ui.py ├── screenshots ├── example.png ├── example1.png ├── example2.png ├── example3.png ├── example4.png └── example5.png ├── setup.py └── svg ├── checkbox_checked.svg ├── checkbox_checked_disabled.svg ├── checkbox_checked_focus.svg ├── checkbox_indeterminate.svg ├── checkbox_indeterminate_disabled.svg ├── checkbox_indeterminate_focus.svg ├── checkbox_unchecked.svg ├── checkbox_unchecked_disabled.svg ├── checkbox_unchecked_focus.svg ├── radio_checked.svg ├── radio_checked_disabled.svg ├── radio_checked_focus.svg ├── radio_unchecked.svg ├── radio_unchecked_disabled.svg └── radio_unchecked_focus.svg /.gitignore: -------------------------------------------------------------------------------- 1 | # Byte-compiled / optimized / DLL files 2 | __pycache__/ 3 | *.py[cod] 4 | 5 | #Pycharm 6 | .idea/ 7 | 8 | # C extensions 9 | *.so 10 | 11 | # Distribution / packaging 12 | .Python 13 | env/ 14 | build/ 15 | develop-eggs/ 16 | dist/ 17 | downloads/ 18 | eggs/ 19 | .eggs/ 20 | lib/ 21 | lib64/ 22 | parts/ 23 | sdist/ 24 | var/ 25 | *.egg-info/ 26 | .installed.cfg 27 | *.egg 28 | 29 | # PyInstaller 30 | # Usually these files are written by a python script from a template 31 | # before PyInstaller builds the exe, so as to inject date/other infos into it. 32 | *.manifest 33 | *.spec 34 | 35 | # Installer logs 36 | pip-log.txt 37 | pip-delete-this-directory.txt 38 | 39 | # Unit test / coverage reports 40 | htmlcov/ 41 | .tox/ 42 | .coverage 43 | .coverage.* 44 | .cache 45 | nosetests.xml 46 | coverage.xml 47 | *,cover 48 | 49 | # Translations 50 | *.mo 51 | *.pot 52 | 53 | # Django stuff: 54 | *.log 55 | 56 | # Sphinx documentation 57 | docs/_build/ 58 | 59 | # PyBuilder 60 | target/ 61 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | Apache License 2 | Version 2.0, January 2004 3 | http://www.apache.org/licenses/ 4 | 5 | TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION 6 | 7 | 1. Definitions. 8 | 9 | "License" shall mean the terms and conditions for use, reproduction, 10 | and distribution as defined by Sections 1 through 9 of this document. 11 | 12 | "Licensor" shall mean the copyright owner or entity authorized by 13 | the copyright owner that is granting the License. 14 | 15 | "Legal Entity" shall mean the union of the acting entity and all 16 | other entities that control, are controlled by, or are under common 17 | control with that entity. For the purposes of this definition, 18 | "control" means (i) the power, direct or indirect, to cause the 19 | direction or management of such entity, whether by contract or 20 | otherwise, or (ii) ownership of fifty percent (50%) or more of the 21 | outstanding shares, or (iii) beneficial ownership of such entity. 22 | 23 | "You" (or "Your") shall mean an individual or Legal Entity 24 | exercising permissions granted by this License. 25 | 26 | "Source" form shall mean the preferred form for making modifications, 27 | including but not limited to software source code, documentation 28 | source, and configuration files. 29 | 30 | "Object" form shall mean any form resulting from mechanical 31 | transformation or translation of a Source form, including but 32 | not limited to compiled object code, generated documentation, 33 | and conversions to other media types. 34 | 35 | "Work" shall mean the work of authorship, whether in Source or 36 | Object form, made available under the License, as indicated by a 37 | copyright notice that is included in or attached to the work 38 | (an example is provided in the Appendix below). 39 | 40 | "Derivative Works" shall mean any work, whether in Source or Object 41 | form, that is based on (or derived from) the Work and for which the 42 | editorial revisions, annotations, elaborations, or other modifications 43 | represent, as a whole, an original work of authorship. For the purposes 44 | of this License, Derivative Works shall not include works that remain 45 | separable from, or merely link (or bind by name) to the interfaces of, 46 | the Work and Derivative Works thereof. 47 | 48 | "Contribution" shall mean any work of authorship, including 49 | the original version of the Work and any modifications or additions 50 | to that Work or Derivative Works thereof, that is intentionally 51 | submitted to Licensor for inclusion in the Work by the copyright owner 52 | or by an individual or Legal Entity authorized to submit on behalf of 53 | the copyright owner. For the purposes of this definition, "submitted" 54 | means any form of electronic, verbal, or written communication sent 55 | to the Licensor or its representatives, including but not limited to 56 | communication on electronic mailing lists, source code control systems, 57 | and issue tracking systems that are managed by, or on behalf of, the 58 | Licensor for the purpose of discussing and improving the Work, but 59 | excluding communication that is conspicuously marked or otherwise 60 | designated in writing by the copyright owner as "Not a Contribution." 61 | 62 | "Contributor" shall mean Licensor and any individual or Legal Entity 63 | on behalf of whom a Contribution has been received by Licensor and 64 | subsequently incorporated within the Work. 65 | 66 | 2. Grant of Copyright License. Subject to the terms and conditions of 67 | this License, each Contributor hereby grants to You a perpetual, 68 | worldwide, non-exclusive, no-charge, royalty-free, irrevocable 69 | copyright license to reproduce, prepare Derivative Works of, 70 | publicly display, publicly perform, sublicense, and distribute the 71 | Work and such Derivative Works in Source or Object form. 72 | 73 | 3. Grant of Patent License. Subject to the terms and conditions of 74 | this License, each Contributor hereby grants to You a perpetual, 75 | worldwide, non-exclusive, no-charge, royalty-free, irrevocable 76 | (except as stated in this section) patent license to make, have made, 77 | use, offer to sell, sell, import, and otherwise transfer the Work, 78 | where such license applies only to those patent claims licensable 79 | by such Contributor that are necessarily infringed by their 80 | Contribution(s) alone or by combination of their Contribution(s) 81 | with the Work to which such Contribution(s) was submitted. If You 82 | institute patent litigation against any entity (including a 83 | cross-claim or counterclaim in a lawsuit) alleging that the Work 84 | or a Contribution incorporated within the Work constitutes direct 85 | or contributory patent infringement, then any patent licenses 86 | granted to You under this License for that Work shall terminate 87 | as of the date such litigation is filed. 88 | 89 | 4. Redistribution. You may reproduce and distribute copies of the 90 | Work or Derivative Works thereof in any medium, with or without 91 | modifications, and in Source or Object form, provided that You 92 | meet the following conditions: 93 | 94 | (a) You must give any other recipients of the Work or 95 | Derivative Works a copy of this License; and 96 | 97 | (b) You must cause any modified files to carry prominent notices 98 | stating that You changed the files; and 99 | 100 | (c) You must retain, in the Source form of any Derivative Works 101 | that You distribute, all copyright, patent, trademark, and 102 | attribution notices from the Source form of the Work, 103 | excluding those notices that do not pertain to any part of 104 | the Derivative Works; and 105 | 106 | (d) If the Work includes a "NOTICE" text file as part of its 107 | distribution, then any Derivative Works that You distribute must 108 | include a readable copy of the attribution notices contained 109 | within such NOTICE file, excluding those notices that do not 110 | pertain to any part of the Derivative Works, in at least one 111 | of the following places: within a NOTICE text file distributed 112 | as part of the Derivative Works; within the Source form or 113 | documentation, if provided along with the Derivative Works; or, 114 | within a display generated by the Derivative Works, if and 115 | wherever such third-party notices normally appear. The contents 116 | of the NOTICE file are for informational purposes only and 117 | do not modify the License. You may add Your own attribution 118 | notices within Derivative Works that You distribute, alongside 119 | or as an addendum to the NOTICE text from the Work, provided 120 | that such additional attribution notices cannot be construed 121 | as modifying the License. 122 | 123 | You may add Your own copyright statement to Your modifications and 124 | may provide additional or different license terms and conditions 125 | for use, reproduction, or distribution of Your modifications, or 126 | for any such Derivative Works as a whole, provided Your use, 127 | reproduction, and distribution of the Work otherwise complies with 128 | the conditions stated in this License. 129 | 130 | 5. Submission of Contributions. Unless You explicitly state otherwise, 131 | any Contribution intentionally submitted for inclusion in the Work 132 | by You to the Licensor shall be under the terms and conditions of 133 | this License, without any additional terms or conditions. 134 | Notwithstanding the above, nothing herein shall supersede or modify 135 | the terms of any separate license agreement you may have executed 136 | with Licensor regarding such Contributions. 137 | 138 | 6. Trademarks. This License does not grant permission to use the trade 139 | names, trademarks, service marks, or product names of the Licensor, 140 | except as required for reasonable and customary use in describing the 141 | origin of the Work and reproducing the content of the NOTICE file. 142 | 143 | 7. Disclaimer of Warranty. Unless required by applicable law or 144 | agreed to in writing, Licensor provides the Work (and each 145 | Contributor provides its Contributions) on an "AS IS" BASIS, 146 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or 147 | implied, including, without limitation, any warranties or conditions 148 | of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A 149 | PARTICULAR PURPOSE. You are solely responsible for determining the 150 | appropriateness of using or redistributing the Work and assume any 151 | risks associated with Your exercise of permissions under this License. 152 | 153 | 8. Limitation of Liability. In no event and under no legal theory, 154 | whether in tort (including negligence), contract, or otherwise, 155 | unless required by applicable law (such as deliberate and grossly 156 | negligent acts) or agreed to in writing, shall any Contributor be 157 | liable to You for damages, including any direct, indirect, special, 158 | incidental, or consequential damages of any character arising as a 159 | result of this License or out of the use or inability to use the 160 | Work (including but not limited to damages for loss of goodwill, 161 | work stoppage, computer failure or malfunction, or any and all 162 | other commercial damages or losses), even if such Contributor 163 | has been advised of the possibility of such damages. 164 | 165 | 9. Accepting Warranty or Additional Liability. While redistributing 166 | the Work or Derivative Works thereof, You may choose to offer, 167 | and charge a fee for, acceptance of support, warranty, indemnity, 168 | or other liability obligations and/or rights consistent with this 169 | License. However, in accepting such obligations, You may act only 170 | on Your own behalf and on Your sole responsibility, not on behalf 171 | of any other Contributor, and only if You agree to indemnify, 172 | defend, and hold each Contributor harmless for any liability 173 | incurred by, or claims asserted against, such Contributor by reason 174 | of your accepting any such warranty or additional liability. 175 | 176 | END OF TERMS AND CONDITIONS 177 | 178 | APPENDIX: How to apply the Apache License to your work. 179 | 180 | To apply the Apache License to your work, attach the following 181 | boilerplate notice, with the fields enclosed by brackets "{}" 182 | replaced with your own identifying information. (Don't include 183 | the brackets!) The text should be enclosed in the appropriate 184 | comment syntax for the file format. We also recommend that a 185 | file or class name and description of purpose be included on the 186 | same "printed page" as the copyright notice for easier 187 | identification within third-party archives. 188 | 189 | Copyright {yyyy} {name of copyright owner} 190 | 191 | Licensed under the Apache License, Version 2.0 (the "License"); 192 | you may not use this file except in compliance with the License. 193 | You may obtain a copy of the License at 194 | 195 | http://www.apache.org/licenses/LICENSE-2.0 196 | 197 | Unless required by applicable law or agreed to in writing, software 198 | distributed under the License is distributed on an "AS IS" BASIS, 199 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 200 | See the License for the specific language governing permissions and 201 | limitations under the License. 202 | -------------------------------------------------------------------------------- /PyQt5_stylesheets/.gitignore: -------------------------------------------------------------------------------- 1 | /*.pyc 2 | -------------------------------------------------------------------------------- /PyQt5_stylesheets/DarkOrange_rc/checkbox.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RedFalsh/PyQt5_stylesheets/fa4ceb5c6fcd598b0d400b9d11525175d98d560b/PyQt5_stylesheets/DarkOrange_rc/checkbox.png -------------------------------------------------------------------------------- /PyQt5_stylesheets/DarkOrange_rc/down_arrow.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RedFalsh/PyQt5_stylesheets/fa4ceb5c6fcd598b0d400b9d11525175d98d560b/PyQt5_stylesheets/DarkOrange_rc/down_arrow.png -------------------------------------------------------------------------------- /PyQt5_stylesheets/DarkOrange_rc/handle.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RedFalsh/PyQt5_stylesheets/fa4ceb5c6fcd598b0d400b9d11525175d98d560b/PyQt5_stylesheets/DarkOrange_rc/handle.png -------------------------------------------------------------------------------- /PyQt5_stylesheets/Dark_rc/Hmovetoolbar.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RedFalsh/PyQt5_stylesheets/fa4ceb5c6fcd598b0d400b9d11525175d98d560b/PyQt5_stylesheets/Dark_rc/Hmovetoolbar.png -------------------------------------------------------------------------------- /PyQt5_stylesheets/Dark_rc/Hsepartoolbar.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RedFalsh/PyQt5_stylesheets/fa4ceb5c6fcd598b0d400b9d11525175d98d560b/PyQt5_stylesheets/Dark_rc/Hsepartoolbar.png -------------------------------------------------------------------------------- /PyQt5_stylesheets/Dark_rc/Vmovetoolbar.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RedFalsh/PyQt5_stylesheets/fa4ceb5c6fcd598b0d400b9d11525175d98d560b/PyQt5_stylesheets/Dark_rc/Vmovetoolbar.png -------------------------------------------------------------------------------- /PyQt5_stylesheets/Dark_rc/Vsepartoolbar.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RedFalsh/PyQt5_stylesheets/fa4ceb5c6fcd598b0d400b9d11525175d98d560b/PyQt5_stylesheets/Dark_rc/Vsepartoolbar.png -------------------------------------------------------------------------------- /PyQt5_stylesheets/Dark_rc/branch_closed-on.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RedFalsh/PyQt5_stylesheets/fa4ceb5c6fcd598b0d400b9d11525175d98d560b/PyQt5_stylesheets/Dark_rc/branch_closed-on.png -------------------------------------------------------------------------------- /PyQt5_stylesheets/Dark_rc/branch_closed.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RedFalsh/PyQt5_stylesheets/fa4ceb5c6fcd598b0d400b9d11525175d98d560b/PyQt5_stylesheets/Dark_rc/branch_closed.png -------------------------------------------------------------------------------- /PyQt5_stylesheets/Dark_rc/branch_open-on.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RedFalsh/PyQt5_stylesheets/fa4ceb5c6fcd598b0d400b9d11525175d98d560b/PyQt5_stylesheets/Dark_rc/branch_open-on.png -------------------------------------------------------------------------------- /PyQt5_stylesheets/Dark_rc/branch_open.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RedFalsh/PyQt5_stylesheets/fa4ceb5c6fcd598b0d400b9d11525175d98d560b/PyQt5_stylesheets/Dark_rc/branch_open.png -------------------------------------------------------------------------------- /PyQt5_stylesheets/Dark_rc/checkbox_checked.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RedFalsh/PyQt5_stylesheets/fa4ceb5c6fcd598b0d400b9d11525175d98d560b/PyQt5_stylesheets/Dark_rc/checkbox_checked.png -------------------------------------------------------------------------------- /PyQt5_stylesheets/Dark_rc/checkbox_checked_disabled.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RedFalsh/PyQt5_stylesheets/fa4ceb5c6fcd598b0d400b9d11525175d98d560b/PyQt5_stylesheets/Dark_rc/checkbox_checked_disabled.png -------------------------------------------------------------------------------- /PyQt5_stylesheets/Dark_rc/checkbox_checked_focus.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RedFalsh/PyQt5_stylesheets/fa4ceb5c6fcd598b0d400b9d11525175d98d560b/PyQt5_stylesheets/Dark_rc/checkbox_checked_focus.png -------------------------------------------------------------------------------- /PyQt5_stylesheets/Dark_rc/checkbox_indeterminate.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RedFalsh/PyQt5_stylesheets/fa4ceb5c6fcd598b0d400b9d11525175d98d560b/PyQt5_stylesheets/Dark_rc/checkbox_indeterminate.png -------------------------------------------------------------------------------- /PyQt5_stylesheets/Dark_rc/checkbox_indeterminate_disabled.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RedFalsh/PyQt5_stylesheets/fa4ceb5c6fcd598b0d400b9d11525175d98d560b/PyQt5_stylesheets/Dark_rc/checkbox_indeterminate_disabled.png -------------------------------------------------------------------------------- /PyQt5_stylesheets/Dark_rc/checkbox_indeterminate_focus.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RedFalsh/PyQt5_stylesheets/fa4ceb5c6fcd598b0d400b9d11525175d98d560b/PyQt5_stylesheets/Dark_rc/checkbox_indeterminate_focus.png -------------------------------------------------------------------------------- /PyQt5_stylesheets/Dark_rc/checkbox_unchecked.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RedFalsh/PyQt5_stylesheets/fa4ceb5c6fcd598b0d400b9d11525175d98d560b/PyQt5_stylesheets/Dark_rc/checkbox_unchecked.png -------------------------------------------------------------------------------- /PyQt5_stylesheets/Dark_rc/checkbox_unchecked_disabled.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RedFalsh/PyQt5_stylesheets/fa4ceb5c6fcd598b0d400b9d11525175d98d560b/PyQt5_stylesheets/Dark_rc/checkbox_unchecked_disabled.png -------------------------------------------------------------------------------- /PyQt5_stylesheets/Dark_rc/checkbox_unchecked_focus.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RedFalsh/PyQt5_stylesheets/fa4ceb5c6fcd598b0d400b9d11525175d98d560b/PyQt5_stylesheets/Dark_rc/checkbox_unchecked_focus.png -------------------------------------------------------------------------------- /PyQt5_stylesheets/Dark_rc/close-hover.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RedFalsh/PyQt5_stylesheets/fa4ceb5c6fcd598b0d400b9d11525175d98d560b/PyQt5_stylesheets/Dark_rc/close-hover.png -------------------------------------------------------------------------------- /PyQt5_stylesheets/Dark_rc/close-pressed.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RedFalsh/PyQt5_stylesheets/fa4ceb5c6fcd598b0d400b9d11525175d98d560b/PyQt5_stylesheets/Dark_rc/close-pressed.png -------------------------------------------------------------------------------- /PyQt5_stylesheets/Dark_rc/close.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RedFalsh/PyQt5_stylesheets/fa4ceb5c6fcd598b0d400b9d11525175d98d560b/PyQt5_stylesheets/Dark_rc/close.png -------------------------------------------------------------------------------- /PyQt5_stylesheets/Dark_rc/down_arrow.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RedFalsh/PyQt5_stylesheets/fa4ceb5c6fcd598b0d400b9d11525175d98d560b/PyQt5_stylesheets/Dark_rc/down_arrow.png -------------------------------------------------------------------------------- /PyQt5_stylesheets/Dark_rc/down_arrow_disabled.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RedFalsh/PyQt5_stylesheets/fa4ceb5c6fcd598b0d400b9d11525175d98d560b/PyQt5_stylesheets/Dark_rc/down_arrow_disabled.png -------------------------------------------------------------------------------- /PyQt5_stylesheets/Dark_rc/left_arrow.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RedFalsh/PyQt5_stylesheets/fa4ceb5c6fcd598b0d400b9d11525175d98d560b/PyQt5_stylesheets/Dark_rc/left_arrow.png -------------------------------------------------------------------------------- /PyQt5_stylesheets/Dark_rc/left_arrow_disabled.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RedFalsh/PyQt5_stylesheets/fa4ceb5c6fcd598b0d400b9d11525175d98d560b/PyQt5_stylesheets/Dark_rc/left_arrow_disabled.png -------------------------------------------------------------------------------- /PyQt5_stylesheets/Dark_rc/radio_checked.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RedFalsh/PyQt5_stylesheets/fa4ceb5c6fcd598b0d400b9d11525175d98d560b/PyQt5_stylesheets/Dark_rc/radio_checked.png -------------------------------------------------------------------------------- /PyQt5_stylesheets/Dark_rc/radio_checked_disabled.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RedFalsh/PyQt5_stylesheets/fa4ceb5c6fcd598b0d400b9d11525175d98d560b/PyQt5_stylesheets/Dark_rc/radio_checked_disabled.png -------------------------------------------------------------------------------- /PyQt5_stylesheets/Dark_rc/radio_checked_focus.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RedFalsh/PyQt5_stylesheets/fa4ceb5c6fcd598b0d400b9d11525175d98d560b/PyQt5_stylesheets/Dark_rc/radio_checked_focus.png -------------------------------------------------------------------------------- /PyQt5_stylesheets/Dark_rc/radio_unchecked.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RedFalsh/PyQt5_stylesheets/fa4ceb5c6fcd598b0d400b9d11525175d98d560b/PyQt5_stylesheets/Dark_rc/radio_unchecked.png -------------------------------------------------------------------------------- /PyQt5_stylesheets/Dark_rc/radio_unchecked_disabled.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RedFalsh/PyQt5_stylesheets/fa4ceb5c6fcd598b0d400b9d11525175d98d560b/PyQt5_stylesheets/Dark_rc/radio_unchecked_disabled.png -------------------------------------------------------------------------------- /PyQt5_stylesheets/Dark_rc/radio_unchecked_focus.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RedFalsh/PyQt5_stylesheets/fa4ceb5c6fcd598b0d400b9d11525175d98d560b/PyQt5_stylesheets/Dark_rc/radio_unchecked_focus.png -------------------------------------------------------------------------------- /PyQt5_stylesheets/Dark_rc/right_arrow.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RedFalsh/PyQt5_stylesheets/fa4ceb5c6fcd598b0d400b9d11525175d98d560b/PyQt5_stylesheets/Dark_rc/right_arrow.png -------------------------------------------------------------------------------- /PyQt5_stylesheets/Dark_rc/right_arrow_disabled.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RedFalsh/PyQt5_stylesheets/fa4ceb5c6fcd598b0d400b9d11525175d98d560b/PyQt5_stylesheets/Dark_rc/right_arrow_disabled.png -------------------------------------------------------------------------------- /PyQt5_stylesheets/Dark_rc/sizegrip.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RedFalsh/PyQt5_stylesheets/fa4ceb5c6fcd598b0d400b9d11525175d98d560b/PyQt5_stylesheets/Dark_rc/sizegrip.png -------------------------------------------------------------------------------- /PyQt5_stylesheets/Dark_rc/stylesheet-branch-end.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RedFalsh/PyQt5_stylesheets/fa4ceb5c6fcd598b0d400b9d11525175d98d560b/PyQt5_stylesheets/Dark_rc/stylesheet-branch-end.png -------------------------------------------------------------------------------- /PyQt5_stylesheets/Dark_rc/stylesheet-branch-more.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RedFalsh/PyQt5_stylesheets/fa4ceb5c6fcd598b0d400b9d11525175d98d560b/PyQt5_stylesheets/Dark_rc/stylesheet-branch-more.png -------------------------------------------------------------------------------- /PyQt5_stylesheets/Dark_rc/stylesheet-vline.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RedFalsh/PyQt5_stylesheets/fa4ceb5c6fcd598b0d400b9d11525175d98d560b/PyQt5_stylesheets/Dark_rc/stylesheet-vline.png -------------------------------------------------------------------------------- /PyQt5_stylesheets/Dark_rc/transparent.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RedFalsh/PyQt5_stylesheets/fa4ceb5c6fcd598b0d400b9d11525175d98d560b/PyQt5_stylesheets/Dark_rc/transparent.png -------------------------------------------------------------------------------- /PyQt5_stylesheets/Dark_rc/undock.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RedFalsh/PyQt5_stylesheets/fa4ceb5c6fcd598b0d400b9d11525175d98d560b/PyQt5_stylesheets/Dark_rc/undock.png -------------------------------------------------------------------------------- /PyQt5_stylesheets/Dark_rc/up_arrow.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RedFalsh/PyQt5_stylesheets/fa4ceb5c6fcd598b0d400b9d11525175d98d560b/PyQt5_stylesheets/Dark_rc/up_arrow.png -------------------------------------------------------------------------------- /PyQt5_stylesheets/Dark_rc/up_arrow_disabled.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RedFalsh/PyQt5_stylesheets/fa4ceb5c6fcd598b0d400b9d11525175d98d560b/PyQt5_stylesheets/Dark_rc/up_arrow_disabled.png -------------------------------------------------------------------------------- /PyQt5_stylesheets/__init__.py: -------------------------------------------------------------------------------- 1 | # -*- coding: utf-8 -*- 2 | # 3 | # The MIT License (MIT) 4 | # 5 | # Copyright (c) <2013-2014> 6 | # 7 | # Permission is hereby granted, free of charge, to any person obtaining a copy 8 | # of this software and associated documentation files (the "Software"), to deal 9 | # in the Software without restriction, including without limitation the rights 10 | # to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 11 | # copies of the Software, and to permit persons to whom the Software is 12 | # furnished to do so, subject to the following conditions: 13 | # 14 | # The above copyright notice and this permission notice shall be included in 15 | # all copies or substantial portions of the Software. 16 | # 17 | # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 18 | # IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 19 | # FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 20 | # AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 21 | # LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 22 | # OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 23 | # THE SOFTWARE. 24 | # 25 | """ 26 | Initialise the QDarkStyleSheet module when used with python. 27 | 28 | This modules provides a function to transparently load the stylesheets 29 | with the correct rc file. 30 | """ 31 | import logging 32 | import platform 33 | 34 | 35 | __version__ = "2.3.0" 36 | 37 | 38 | def _logger(): 39 | return logging.getLogger('qdarkstyle') 40 | 41 | 42 | def load_stylesheet(pyside=True): 43 | """ 44 | Loads the stylesheet. Takes care of importing the rc module. 45 | 46 | :param pyside: True to load the pyside rc file, False to load the PyQt rc file 47 | 48 | :return the stylesheet string 49 | """ 50 | # Smart import of the rc file 51 | if pyside: 52 | import qdarkstyle.pyside_style_rc 53 | else: 54 | import qdarkstyle.pyqt_style_rc 55 | 56 | # Load the stylesheet content from resources 57 | if not pyside: 58 | from PyQt4.QtCore import QFile, QTextStream 59 | else: 60 | from PySide.QtCore import QFile, QTextStream 61 | 62 | f = QFile(":qdarkstyle/style.qss") 63 | if not f.exists(): 64 | _logger().error("Unable to load stylesheet, file not found in " 65 | "resources") 66 | return "" 67 | else: 68 | f.open(QFile.ReadOnly | QFile.Text) 69 | ts = QTextStream(f) 70 | stylesheet = ts.readAll() 71 | if platform.system().lower() == 'darwin': # see issue #12 on github 72 | mac_fix = ''' 73 | QDockWidget::title 74 | { 75 | background-color: #31363b; 76 | text-align: center; 77 | height: 12px; 78 | } 79 | ''' 80 | stylesheet += mac_fix 81 | return stylesheet 82 | 83 | 84 | def load_stylesheet_pyqt5(**kwargs): 85 | """ 86 | Loads the stylesheet for use in a pyqt5 application. 87 | 88 | :param pyside: True to load the pyside rc file, False to load the PyQt rc file 89 | 90 | :return the stylesheet string 91 | """ 92 | # Smart import of the rc file 93 | 94 | if kwargs["style"] == "style_Dark": 95 | import PyQt5_stylesheets.pyqt5_style_Dark_rc 96 | if kwargs["style"] == "style_DarkOrange": 97 | import PyQt5_stylesheets.pyqt5_style_DarkOrange_rc 98 | if kwargs["style"] == "style_Classic": 99 | import PyQt5_stylesheets.pyqt5_style_Classic_rc 100 | 101 | if kwargs["style"] == "style_navy": 102 | import PyQt5_stylesheets.pyqt5_style_navy_rc 103 | 104 | if kwargs["style"] == "style_gray": 105 | import PyQt5_stylesheets.pyqt5_style_gray_rc 106 | 107 | if kwargs["style"] == "style_blue": 108 | import PyQt5_stylesheets.pyqt5_style_blue_rc 109 | 110 | if kwargs["style"] == "style_black": 111 | import PyQt5_stylesheets.pyqt5_style_black_rc 112 | # Load the stylesheet content from resources 113 | from PyQt5.QtCore import QFile, QTextStream 114 | 115 | f = QFile(":PyQt5_stylesheets/%s.qss"%kwargs["style"]) 116 | if not f.exists(): 117 | f = QFile(":PyQt5_stylesheets/%s.css"%kwargs["style"]) 118 | if not f.exists(): 119 | _logger().error("Unable to load stylesheet, file not found in " 120 | "resources") 121 | return "" 122 | else: 123 | f.open(QFile.ReadOnly | QFile.Text) 124 | ts = QTextStream(f) 125 | stylesheet = ts.readAll() 126 | if platform.system().lower() == 'darwin': # see issue #12 on github 127 | mac_fix = ''' 128 | QDockWidget::title 129 | { 130 | background-color: #31363b; 131 | text-align: center; 132 | height: 12px; 133 | } 134 | ''' 135 | stylesheet += mac_fix 136 | return stylesheet 137 | -------------------------------------------------------------------------------- /PyQt5_stylesheets/compile_qrc.py: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env python 2 | # -*- coding: utf-8 -*- 3 | # 4 | # The MIT License (MIT) 5 | # 6 | # Copyright (c) <2013-2014> 7 | # 8 | # Permission is hereby granted, free of charge, to any person obtaining a copy 9 | # of this software and associated documentation files (the "Software"), to deal 10 | # in the Software without restriction, including without limitation the rights 11 | # to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 12 | # copies of the Software, and to permit persons to whom the Software is 13 | # furnished to do so, subject to the following conditions: 14 | # 15 | # The above copyright notice and this permission notice shall be included in 16 | # all copies or substantial portions of the Software. 17 | # 18 | # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 19 | # IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 20 | # FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 21 | # AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 22 | # LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 23 | # OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 24 | # THE SOFTWARE. 25 | # 26 | """ 27 | Utility scripts to compile the qrc file. The script will 28 | attempt to compile the qrc file using the following tools: 29 | - rcc 30 | - pyside-rcc 31 | - pyrcc4 32 | 33 | Delete the compiled files that you don't want to use 34 | manually after running this script. 35 | """ 36 | import os 37 | 38 | 39 | def compile_all(): 40 | """ 41 | Compile style.qrc using rcc, pyside-rcc and pyrcc4 42 | """ 43 | print("Compiling for PyQt5: style_Dark.qrc -> pyqt5_style_Dark_rc.py") 44 | os.system("pyrcc5 style_Dark.qrc -o pyqt5_style_Dark_rc.py") 45 | 46 | print("Compiling for PyQt5: style_DarkOrange.qrc -> pyqt5_style_DarkOrange_rc.py") 47 | os.system("pyrcc5 style_DarkOrange.qrc -o pyqt5_style_DarkOrange_rc.py") 48 | 49 | print("Compiling for PyQt5: style_Classic.qrc -> pyqt5_style_Classic_rc.py") 50 | os.system("pyrcc5 style_Classic.qrc -o pyqt5_style_Classic_rc.py") 51 | 52 | print("Compiling for PyQt5: style_black.qrc -> pyqt5_style_black_rc.py") 53 | os.system("pyrcc5 style_black.qrc -o pyqt5_style_black_rc.py") 54 | 55 | print("Compiling for PyQt5: style_blue.qrc -> pyqt5_style_blue_rc.py") 56 | os.system("pyrcc5 style_blue.qrc -o pyqt5_style_blue_rc.py") 57 | 58 | print("Compiling for PyQt5: style_gray.qrc -> pyqt5_style_gray_rc.py") 59 | os.system("pyrcc5 style_gray.qrc -o pyqt5_style_gray_rc.py") 60 | 61 | print("Compiling for PyQt5: style_navy.qrc -> pyqt5_style_navy_rc.py") 62 | os.system("pyrcc5 style_navy.qrc -o pyqt5_style_navy_rc.py") 63 | 64 | 65 | if __name__ == "__main__": 66 | compile_all() 67 | -------------------------------------------------------------------------------- /PyQt5_stylesheets/img_rc/add-line_horizontal.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RedFalsh/PyQt5_stylesheets/fa4ceb5c6fcd598b0d400b9d11525175d98d560b/PyQt5_stylesheets/img_rc/add-line_horizontal.png -------------------------------------------------------------------------------- /PyQt5_stylesheets/img_rc/add-line_vertical.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RedFalsh/PyQt5_stylesheets/fa4ceb5c6fcd598b0d400b9d11525175d98d560b/PyQt5_stylesheets/img_rc/add-line_vertical.png -------------------------------------------------------------------------------- /PyQt5_stylesheets/img_rc/array_down.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RedFalsh/PyQt5_stylesheets/fa4ceb5c6fcd598b0d400b9d11525175d98d560b/PyQt5_stylesheets/img_rc/array_down.png -------------------------------------------------------------------------------- /PyQt5_stylesheets/img_rc/checkbox_checked.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RedFalsh/PyQt5_stylesheets/fa4ceb5c6fcd598b0d400b9d11525175d98d560b/PyQt5_stylesheets/img_rc/checkbox_checked.png -------------------------------------------------------------------------------- /PyQt5_stylesheets/img_rc/checkbox_unchecked.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RedFalsh/PyQt5_stylesheets/fa4ceb5c6fcd598b0d400b9d11525175d98d560b/PyQt5_stylesheets/img_rc/checkbox_unchecked.png -------------------------------------------------------------------------------- /PyQt5_stylesheets/img_rc/radio_normal.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RedFalsh/PyQt5_stylesheets/fa4ceb5c6fcd598b0d400b9d11525175d98d560b/PyQt5_stylesheets/img_rc/radio_normal.png -------------------------------------------------------------------------------- /PyQt5_stylesheets/img_rc/radio_selected.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RedFalsh/PyQt5_stylesheets/fa4ceb5c6fcd598b0d400b9d11525175d98d560b/PyQt5_stylesheets/img_rc/radio_selected.png -------------------------------------------------------------------------------- /PyQt5_stylesheets/img_rc/sub-line_horizontal.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RedFalsh/PyQt5_stylesheets/fa4ceb5c6fcd598b0d400b9d11525175d98d560b/PyQt5_stylesheets/img_rc/sub-line_horizontal.png -------------------------------------------------------------------------------- /PyQt5_stylesheets/img_rc/sub-line_vertical.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RedFalsh/PyQt5_stylesheets/fa4ceb5c6fcd598b0d400b9d11525175d98d560b/PyQt5_stylesheets/img_rc/sub-line_vertical.png -------------------------------------------------------------------------------- /PyQt5_stylesheets/pyqt5_style_Classic_rc.py: -------------------------------------------------------------------------------- 1 | # -*- coding: utf-8 -*- 2 | 3 | # Resource object code 4 | # 5 | # Created: 周六 12月 3 14:26:39 2016 6 | # by: The Resource Compiler for PyQt (Qt v5.4.0) 7 | # 8 | # WARNING! All changes made in this file will be lost! 9 | 10 | from PyQt5 import QtCore 11 | 12 | qt_resource_data = b"\ 13 | \x00\x00\x05\x51\ 14 | \x0a\ 15 | \x51\x57\x69\x64\x67\x65\x74\x20\x7b\x0a\x20\x20\x20\x20\x66\x6f\ 16 | \x6e\x74\x2d\x73\x69\x7a\x65\x3a\x20\x31\x31\x70\x78\x3b\x0a\x7d\ 17 | \x0a\x0a\x51\x54\x61\x62\x6c\x65\x56\x69\x65\x77\x20\x7b\x0a\x20\ 18 | \x20\x20\x20\x66\x6f\x6e\x74\x2d\x73\x69\x7a\x65\x3a\x20\x31\x30\ 19 | \x70\x78\x3b\x0a\x20\x20\x20\x20\x61\x6c\x74\x65\x72\x6e\x61\x74\ 20 | \x65\x2d\x62\x61\x63\x6b\x67\x72\x6f\x75\x6e\x64\x2d\x63\x6f\x6c\ 21 | \x6f\x72\x3a\x20\x23\x45\x45\x45\x45\x46\x46\x3b\x0a\x7d\x0a\x0a\ 22 | \x42\x72\x6f\x77\x73\x65\x72\x20\x51\x50\x75\x73\x68\x42\x75\x74\ 23 | \x74\x6f\x6e\x20\x7b\x0a\x20\x20\x20\x20\x66\x6f\x6e\x74\x2d\x73\ 24 | \x69\x7a\x65\x3a\x20\x31\x30\x70\x78\x3b\x0a\x20\x20\x20\x20\x6d\ 25 | \x69\x6e\x2d\x77\x69\x64\x74\x68\x3a\x20\x31\x30\x70\x78\x3b\x0a\ 26 | \x7d\x0a\x0a\x43\x6f\x6c\x6f\x72\x42\x75\x74\x74\x6f\x6e\x3a\x3a\ 27 | \x65\x6e\x61\x62\x6c\x65\x64\x20\x7b\x0a\x20\x20\x20\x20\x62\x6f\ 28 | \x72\x64\x65\x72\x3a\x20\x31\x70\x78\x20\x73\x6f\x6c\x69\x64\x20\ 29 | \x23\x34\x34\x34\x34\x34\x34\x3b\x0a\x7d\x0a\x0a\x43\x6f\x6c\x6f\ 30 | \x72\x42\x75\x74\x74\x6f\x6e\x3a\x3a\x64\x69\x73\x61\x62\x6c\x65\ 31 | \x64\x20\x7b\x0a\x20\x20\x20\x20\x62\x6f\x72\x64\x65\x72\x3a\x20\ 32 | \x31\x70\x78\x20\x73\x6f\x6c\x69\x64\x20\x23\x41\x41\x41\x41\x41\ 33 | \x41\x3b\x0a\x7d\x0a\x0a\x0a\x42\x72\x6f\x77\x73\x65\x72\x20\x51\ 34 | \x47\x72\x6f\x75\x70\x42\x6f\x78\x20\x7b\x0a\x20\x20\x20\x20\x62\ 35 | \x61\x63\x6b\x67\x72\x6f\x75\x6e\x64\x2d\x63\x6f\x6c\x6f\x72\x3a\ 36 | \x20\x71\x6c\x69\x6e\x65\x61\x72\x67\x72\x61\x64\x69\x65\x6e\x74\ 37 | \x28\x78\x31\x3a\x20\x30\x2c\x20\x79\x31\x3a\x20\x30\x2c\x20\x78\ 38 | \x32\x3a\x20\x30\x2c\x20\x79\x32\x3a\x20\x31\x2c\x0a\x20\x20\x20\ 39 | \x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\ 40 | \x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\ 41 | \x20\x20\x20\x73\x74\x6f\x70\x3a\x20\x30\x20\x23\x45\x30\x45\x30\ 42 | \x45\x30\x2c\x20\x73\x74\x6f\x70\x3a\x20\x31\x20\x23\x46\x46\x46\ 43 | \x46\x46\x46\x29\x3b\x0a\x20\x20\x20\x20\x62\x6f\x72\x64\x65\x72\ 44 | \x3a\x20\x32\x70\x78\x20\x73\x6f\x6c\x69\x64\x20\x23\x39\x39\x39\ 45 | \x39\x39\x39\x3b\x0a\x20\x20\x20\x20\x62\x6f\x72\x64\x65\x72\x2d\ 46 | \x72\x61\x64\x69\x75\x73\x3a\x20\x35\x70\x78\x3b\x0a\x20\x20\x20\ 47 | \x20\x6d\x61\x72\x67\x69\x6e\x2d\x74\x6f\x70\x3a\x20\x31\x65\x78\ 48 | \x3b\x20\x2f\x2a\x20\x6c\x65\x61\x76\x65\x20\x73\x70\x61\x63\x65\ 49 | \x20\x61\x74\x20\x74\x68\x65\x20\x74\x6f\x70\x20\x66\x6f\x72\x20\ 50 | \x74\x68\x65\x20\x74\x69\x74\x6c\x65\x20\x2a\x2f\x0a\x20\x20\x20\ 51 | \x20\x66\x6f\x6e\x74\x2d\x73\x69\x7a\x65\x3a\x20\x31\x33\x70\x78\ 52 | \x3b\x0a\x20\x20\x20\x20\x63\x6f\x6c\x6f\x72\x3a\x20\x62\x6c\x61\ 53 | \x63\x6b\x3b\x0a\x7d\x0a\x0a\x42\x72\x6f\x77\x73\x65\x72\x20\x51\ 54 | \x47\x72\x6f\x75\x70\x42\x6f\x78\x3a\x3a\x74\x69\x74\x6c\x65\x20\ 55 | \x7b\x0a\x20\x20\x20\x20\x73\x75\x62\x63\x6f\x6e\x74\x72\x6f\x6c\ 56 | \x2d\x6f\x72\x69\x67\x69\x6e\x3a\x20\x6d\x61\x72\x67\x69\x6e\x3b\ 57 | \x0a\x20\x20\x20\x20\x73\x75\x62\x63\x6f\x6e\x74\x72\x6f\x6c\x2d\ 58 | \x70\x6f\x73\x69\x74\x69\x6f\x6e\x3a\x20\x74\x6f\x70\x20\x63\x65\ 59 | \x6e\x74\x65\x72\x3b\x20\x2f\x2a\x20\x70\x6f\x73\x69\x74\x69\x6f\ 60 | \x6e\x20\x61\x74\x20\x74\x68\x65\x20\x74\x6f\x70\x20\x63\x65\x6e\ 61 | \x74\x65\x72\x20\x2a\x2f\x0a\x20\x20\x20\x20\x70\x61\x64\x64\x69\ 62 | \x6e\x67\x3a\x20\x30\x20\x33\x70\x78\x3b\x0a\x20\x20\x20\x20\x66\ 63 | \x6f\x6e\x74\x2d\x73\x69\x7a\x65\x3a\x20\x31\x33\x70\x78\x3b\x0a\ 64 | \x20\x20\x20\x20\x63\x6f\x6c\x6f\x72\x3a\x20\x62\x6c\x61\x63\x6b\ 65 | \x3b\x0a\x7d\x0a\x0a\x50\x6c\x75\x67\x69\x6e\x49\x74\x65\x6d\x20\ 66 | \x7b\x0a\x20\x20\x20\x20\x62\x6f\x72\x64\x65\x72\x3a\x20\x32\x70\ 67 | \x78\x20\x73\x6f\x6c\x69\x64\x20\x62\x6c\x61\x63\x6b\x3b\x0a\x20\ 68 | \x20\x20\x20\x62\x61\x63\x6b\x67\x72\x6f\x75\x6e\x64\x3a\x20\x77\ 69 | \x68\x69\x74\x65\x3b\x0a\x7d\x0a\x0a\x0a\x50\x6c\x75\x67\x69\x6e\ 70 | \x49\x74\x65\x6d\x20\x46\x72\x61\x6d\x65\x20\x7b\x0a\x20\x20\x20\ 71 | \x20\x62\x61\x63\x6b\x67\x72\x6f\x75\x6e\x64\x3a\x20\x23\x43\x43\ 72 | \x43\x43\x43\x43\x3b\x0a\x7d\x0a\x0a\x0a\x54\x61\x62\x42\x75\x74\ 73 | \x74\x6f\x6e\x20\x7b\x0a\x20\x20\x20\x20\x62\x6f\x72\x64\x65\x72\ 74 | \x3a\x20\x31\x70\x78\x20\x73\x6f\x6c\x69\x64\x20\x23\x38\x66\x38\ 75 | \x66\x39\x31\x3b\x0a\x20\x20\x20\x20\x62\x6f\x72\x64\x65\x72\x2d\ 76 | \x72\x61\x64\x69\x75\x73\x3a\x20\x32\x70\x78\x3b\x0a\x20\x20\x20\ 77 | \x20\x70\x61\x64\x64\x69\x6e\x67\x3a\x20\x33\x70\x78\x3b\x0a\x20\ 78 | \x20\x20\x20\x6d\x69\x6e\x2d\x77\x69\x64\x74\x68\x3a\x20\x31\x32\ 79 | \x30\x70\x78\x3b\x0a\x7d\x0a\x0a\x54\x61\x62\x42\x75\x74\x74\x6f\ 80 | \x6e\x3a\x3a\x63\x68\x65\x63\x6b\x65\x64\x20\x7b\x0a\x20\x20\x20\ 81 | \x20\x62\x61\x63\x6b\x67\x72\x6f\x75\x6e\x64\x2d\x63\x6f\x6c\x6f\ 82 | \x72\x3a\x20\x71\x6c\x69\x6e\x65\x61\x72\x67\x72\x61\x64\x69\x65\ 83 | \x6e\x74\x28\x78\x31\x3a\x20\x30\x2c\x20\x79\x31\x3a\x20\x30\x20\ 84 | \x2c\x20\x78\x32\x3a\x20\x30\x2c\x20\x79\x32\x3a\x20\x31\x2c\x0a\ 85 | \x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\ 86 | \x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\ 87 | \x20\x20\x20\x20\x20\x20\x73\x74\x6f\x70\x3a\x20\x30\x20\x23\x39\ 88 | \x61\x39\x62\x39\x65\x2c\x20\x73\x74\x6f\x70\x3a\x20\x31\x20\x23\ 89 | \x62\x61\x62\x62\x62\x65\x29\x3b\x0a\x7d\x0a\x0a\x0a\x54\x61\x62\ 90 | \x42\x75\x74\x74\x6f\x6e\x3a\x3a\x70\x72\x65\x73\x73\x65\x64\x20\ 91 | \x7b\x0a\x20\x20\x20\x20\x62\x61\x63\x6b\x67\x72\x6f\x75\x6e\x64\ 92 | \x2d\x63\x6f\x6c\x6f\x72\x3a\x20\x71\x6c\x69\x6e\x65\x61\x72\x67\ 93 | \x72\x61\x64\x69\x65\x6e\x74\x28\x78\x31\x3a\x20\x30\x2c\x20\x79\ 94 | \x31\x3a\x20\x30\x20\x2c\x20\x78\x32\x3a\x20\x30\x2c\x20\x79\x32\ 95 | \x3a\x20\x31\x2c\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\ 96 | \x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\ 97 | \x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x73\x74\x6f\x70\x3a\ 98 | \x20\x30\x20\x23\x39\x61\x39\x62\x39\x65\x2c\x20\x73\x74\x6f\x70\ 99 | \x3a\x20\x31\x20\x23\x62\x61\x62\x62\x62\x65\x29\x3b\x0a\x7d\x0a\ 100 | \ 101 | " 102 | 103 | qt_resource_name = b"\ 104 | \x00\x11\ 105 | \x0b\x14\x5d\x13\ 106 | \x00\x50\ 107 | \x00\x79\x00\x51\x00\x74\x00\x35\x00\x5f\x00\x73\x00\x74\x00\x79\x00\x6c\x00\x65\x00\x73\x00\x68\x00\x65\x00\x65\x00\x74\x00\x73\ 108 | \ 109 | \x00\x11\ 110 | \x0e\x6d\x09\x43\ 111 | \x00\x73\ 112 | \x00\x74\x00\x79\x00\x6c\x00\x65\x00\x5f\x00\x43\x00\x6c\x00\x61\x00\x73\x00\x73\x00\x69\x00\x63\x00\x2e\x00\x71\x00\x73\x00\x73\ 113 | \ 114 | " 115 | 116 | qt_resource_struct = b"\ 117 | \x00\x00\x00\x00\x00\x02\x00\x00\x00\x01\x00\x00\x00\x01\ 118 | \x00\x00\x00\x00\x00\x02\x00\x00\x00\x01\x00\x00\x00\x02\ 119 | \x00\x00\x00\x28\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\ 120 | " 121 | 122 | def qInitResources(): 123 | QtCore.qRegisterResourceData(0x01, qt_resource_struct, qt_resource_name, qt_resource_data) 124 | 125 | def qCleanupResources(): 126 | QtCore.qUnregisterResourceData(0x01, qt_resource_struct, qt_resource_name, qt_resource_data) 127 | 128 | qInitResources() 129 | -------------------------------------------------------------------------------- /PyQt5_stylesheets/style_Classic.qrc: -------------------------------------------------------------------------------- 1 | 2 | 3 | style_Classic.qss 4 | 5 | 6 | -------------------------------------------------------------------------------- /PyQt5_stylesheets/style_Classic.qss: -------------------------------------------------------------------------------- 1 | 2 | QWidget { 3 | font-size: 11px; 4 | } 5 | 6 | QTableView { 7 | font-size: 10px; 8 | alternate-background-color: #EEEEFF; 9 | } 10 | 11 | Browser QPushButton { 12 | font-size: 10px; 13 | min-width: 10px; 14 | } 15 | 16 | ColorButton::enabled { 17 | border: 1px solid #444444; 18 | } 19 | 20 | ColorButton::disabled { 21 | border: 1px solid #AAAAAA; 22 | } 23 | 24 | 25 | Browser QGroupBox { 26 | background-color: qlineargradient(x1: 0, y1: 0, x2: 0, y2: 1, 27 | stop: 0 #E0E0E0, stop: 1 #FFFFFF); 28 | border: 2px solid #999999; 29 | border-radius: 5px; 30 | margin-top: 1ex; /* leave space at the top for the title */ 31 | font-size: 13px; 32 | color: black; 33 | } 34 | 35 | Browser QGroupBox::title { 36 | subcontrol-origin: margin; 37 | subcontrol-position: top center; /* position at the top center */ 38 | padding: 0 3px; 39 | font-size: 13px; 40 | color: black; 41 | } 42 | 43 | PluginItem { 44 | border: 2px solid black; 45 | background: white; 46 | } 47 | 48 | 49 | PluginItem Frame { 50 | background: #CCCCCC; 51 | } 52 | 53 | 54 | TabButton { 55 | border: 1px solid #8f8f91; 56 | border-radius: 2px; 57 | padding: 3px; 58 | min-width: 120px; 59 | } 60 | 61 | TabButton::checked { 62 | background-color: qlineargradient(x1: 0, y1: 0 , x2: 0, y2: 1, 63 | stop: 0 #9a9b9e, stop: 1 #babbbe); 64 | } 65 | 66 | 67 | TabButton::pressed { 68 | background-color: qlineargradient(x1: 0, y1: 0 , x2: 0, y2: 1, 69 | stop: 0 #9a9b9e, stop: 1 #babbbe); 70 | } 71 | -------------------------------------------------------------------------------- /PyQt5_stylesheets/style_Dark.qrc: -------------------------------------------------------------------------------- 1 | 2 | 3 | Dark_rc/up_arrow_disabled.png 4 | Dark_rc/Hmovetoolbar.png 5 | Dark_rc/stylesheet-branch-end.png 6 | Dark_rc/branch_closed-on.png 7 | Dark_rc/stylesheet-vline.png 8 | Dark_rc/branch_closed.png 9 | Dark_rc/branch_open-on.png 10 | Dark_rc/transparent.png 11 | Dark_rc/right_arrow_disabled.png 12 | Dark_rc/sizegrip.png 13 | Dark_rc/close.png 14 | Dark_rc/close-hover.png 15 | Dark_rc/close-pressed.png 16 | Dark_rc/down_arrow.png 17 | Dark_rc/Vmovetoolbar.png 18 | Dark_rc/left_arrow.png 19 | Dark_rc/stylesheet-branch-more.png 20 | Dark_rc/up_arrow.png 21 | Dark_rc/right_arrow.png 22 | Dark_rc/left_arrow_disabled.png 23 | Dark_rc/Hsepartoolbar.png 24 | Dark_rc/branch_open.png 25 | Dark_rc/Vsepartoolbar.png 26 | Dark_rc/down_arrow_disabled.png 27 | Dark_rc/undock.png 28 | Dark_rc/checkbox_checked_disabled.png 29 | Dark_rc/checkbox_checked_focus.png 30 | Dark_rc/checkbox_checked.png 31 | Dark_rc/checkbox_indeterminate.png 32 | Dark_rc/checkbox_indeterminate_focus.png 33 | Dark_rc/checkbox_unchecked_disabled.png 34 | Dark_rc/checkbox_unchecked_focus.png 35 | Dark_rc/checkbox_unchecked.png 36 | Dark_rc/radio_checked_disabled.png 37 | Dark_rc/radio_checked_focus.png 38 | Dark_rc/radio_checked.png 39 | Dark_rc/radio_unchecked_disabled.png 40 | Dark_rc/radio_unchecked_focus.png 41 | Dark_rc/radio_unchecked.png 42 | 43 | 44 | style_Dark.qss 45 | 46 | 47 | -------------------------------------------------------------------------------- /PyQt5_stylesheets/style_DarkOrange.qrc: -------------------------------------------------------------------------------- 1 | 2 | 3 | DarkOrange_rc/checkbox.png 4 | DarkOrange_rc/down_arrow.png 5 | DarkOrange_rc/handle.png 6 | 7 | 8 | style_DarkOrange.qss 9 | 10 | 11 | -------------------------------------------------------------------------------- /PyQt5_stylesheets/style_DarkOrange.qss: -------------------------------------------------------------------------------- 1 | QToolTip 2 | { 3 | border: 1px solid black; 4 | background-color: #ffa02f; 5 | padding: 1px; 6 | border-radius: 3px; 7 | opacity: 100; 8 | } 9 | 10 | QWidget 11 | { 12 | color: #b1b1b1; 13 | background-color: #323232; 14 | } 15 | 16 | QTreeView, QListView 17 | { 18 | background-color: silver; 19 | margin-left: 5px; 20 | } 21 | 22 | QWidget:item:hover 23 | { 24 | background-color: QLinearGradient( x1: 0, y1: 0, x2: 0, y2: 1, stop: 0 #ffa02f, stop: 1 #ca0619); 25 | color: #000000; 26 | } 27 | 28 | QWidget:item:selected 29 | { 30 | background-color: QLinearGradient( x1: 0, y1: 0, x2: 0, y2: 1, stop: 0 #ffa02f, stop: 1 #d7801a); 31 | } 32 | 33 | QMenuBar::item 34 | { 35 | background: transparent; 36 | } 37 | 38 | QMenuBar::item:selected 39 | { 40 | background: transparent; 41 | border: 1px solid #ffaa00; 42 | } 43 | 44 | QMenuBar::item:pressed 45 | { 46 | background: #444; 47 | border: 1px solid #000; 48 | background-color: QLinearGradient( 49 | x1:0, y1:0, 50 | x2:0, y2:1, 51 | stop:1 #212121, 52 | stop:0.4 #343434/*, 53 | stop:0.2 #343434, 54 | stop:0.1 #ffaa00*/ 55 | ); 56 | margin-bottom:-1px; 57 | padding-bottom:1px; 58 | } 59 | 60 | QMenu 61 | { 62 | border: 1px solid #000; 63 | } 64 | 65 | QMenu::item 66 | { 67 | padding: 2px 20px 2px 20px; 68 | } 69 | 70 | QMenu::item:selected 71 | { 72 | color: #000000; 73 | } 74 | 75 | QWidget:disabled 76 | { 77 | color: #808080; 78 | background-color: #323232; 79 | } 80 | 81 | QAbstractItemView 82 | { 83 | background-color: QLinearGradient( x1: 0, y1: 0, x2: 0, y2: 1, stop: 0 #4d4d4d, stop: 0.1 #646464, stop: 1 #5d5d5d); 84 | } 85 | 86 | QWidget:focus 87 | { 88 | /*border: 1px solid darkgray;*/ 89 | } 90 | 91 | QLineEdit 92 | { 93 | background-color: QLinearGradient( x1: 0, y1: 0, x2: 0, y2: 1, stop: 0 #4d4d4d, stop: 0 #646464, stop: 1 #5d5d5d); 94 | padding: 1px; 95 | border-style: solid; 96 | border: 1px solid #1e1e1e; 97 | border-radius: 5; 98 | } 99 | 100 | QPushButton 101 | { 102 | color: #b1b1b1; 103 | background-color: QLinearGradient( x1: 0, y1: 0, x2: 0, y2: 1, stop: 0 #565656, stop: 0.1 #525252, stop: 0.5 #4e4e4e, stop: 0.9 #4a4a4a, stop: 1 #464646); 104 | border-width: 1px; 105 | border-color: #1e1e1e; 106 | border-style: solid; 107 | border-radius: 6; 108 | padding: 3px; 109 | font-size: 12px; 110 | padding-left: 5px; 111 | padding-right: 5px; 112 | min-width: 40px; 113 | } 114 | 115 | QPushButton:pressed 116 | { 117 | background-color: QLinearGradient( x1: 0, y1: 0, x2: 0, y2: 1, stop: 0 #2d2d2d, stop: 0.1 #2b2b2b, stop: 0.5 #292929, stop: 0.9 #282828, stop: 1 #252525); 118 | } 119 | 120 | QComboBox 121 | { 122 | selection-background-color: #ffaa00; 123 | background-color: QLinearGradient( x1: 0, y1: 0, x2: 0, y2: 1, stop: 0 #565656, stop: 0.1 #525252, stop: 0.5 #4e4e4e, stop: 0.9 #4a4a4a, stop: 1 #464646); 124 | border-style: solid; 125 | border: 1px solid #1e1e1e; 126 | border-radius: 5; 127 | } 128 | 129 | QComboBox:hover,QPushButton:hover 130 | { 131 | border: 2px solid QLinearGradient( x1: 0, y1: 0, x2: 0, y2: 1, stop: 0 #ffa02f, stop: 1 #d7801a); 132 | } 133 | 134 | 135 | QComboBox:on 136 | { 137 | padding-top: 3px; 138 | padding-left: 4px; 139 | background-color: QLinearGradient( x1: 0, y1: 0, x2: 0, y2: 1, stop: 0 #2d2d2d, stop: 0.1 #2b2b2b, stop: 0.5 #292929, stop: 0.9 #282828, stop: 1 #252525); 140 | selection-background-color: #ffaa00; 141 | } 142 | 143 | QComboBox QAbstractItemView 144 | { 145 | border: 2px solid darkgray; 146 | selection-background-color: QLinearGradient( x1: 0, y1: 0, x2: 0, y2: 1, stop: 0 #ffa02f, stop: 1 #d7801a); 147 | } 148 | 149 | QComboBox::drop-down 150 | { 151 | subcontrol-origin: padding; 152 | subcontrol-position: top right; 153 | width: 15px; 154 | 155 | border-left-width: 0px; 156 | border-left-color: darkgray; 157 | border-left-style: solid; /* just a single line */ 158 | border-top-right-radius: 3px; /* same radius as the QComboBox */ 159 | border-bottom-right-radius: 3px; 160 | } 161 | 162 | QComboBox::down-arrow 163 | { 164 | image: url(:/qss_icons/DarkOrange/down_arrow.png); 165 | } 166 | 167 | QGroupBox 168 | { 169 | border: 1px solid darkgray; 170 | margin-top: 10px; 171 | } 172 | 173 | QGroupBox:focus 174 | { 175 | border: 1px solid darkgray; 176 | } 177 | 178 | QTextEdit:focus 179 | { 180 | border: 1px solid darkgray; 181 | } 182 | 183 | QScrollBar:horizontal { 184 | border: 1px solid #222222; 185 | background: QLinearGradient( x1: 0, y1: 0, x2: 0, y2: 1, stop: 0.0 #121212, stop: 0.2 #282828, stop: 1 #484848); 186 | height: 7px; 187 | margin: 0px 16px 0 16px; 188 | } 189 | 190 | QScrollBar::handle:horizontal 191 | { 192 | background: QLinearGradient( x1: 0, y1: 0, x2: 1, y2: 0, stop: 0 #ffa02f, stop: 0.5 #d7801a, stop: 1 #ffa02f); 193 | min-height: 20px; 194 | border-radius: 2px; 195 | } 196 | 197 | QScrollBar::add-line:horizontal { 198 | border: 1px solid #1b1b19; 199 | border-radius: 2px; 200 | background: QLinearGradient( x1: 0, y1: 0, x2: 1, y2: 0, stop: 0 #ffa02f, stop: 1 #d7801a); 201 | width: 14px; 202 | subcontrol-position: right; 203 | subcontrol-origin: margin; 204 | } 205 | 206 | QScrollBar::sub-line:horizontal { 207 | border: 1px solid #1b1b19; 208 | border-radius: 2px; 209 | background: QLinearGradient( x1: 0, y1: 0, x2: 1, y2: 0, stop: 0 #ffa02f, stop: 1 #d7801a); 210 | width: 14px; 211 | subcontrol-position: left; 212 | subcontrol-origin: margin; 213 | } 214 | 215 | QScrollBar::right-arrow:horizontal, QScrollBar::left-arrow:horizontal 216 | { 217 | border: 1px solid black; 218 | width: 1px; 219 | height: 1px; 220 | background: white; 221 | } 222 | 223 | QScrollBar::add-page:horizontal, QScrollBar::sub-page:horizontal 224 | { 225 | background: none; 226 | } 227 | 228 | QScrollBar:vertical 229 | { 230 | background: QLinearGradient( x1: 0, y1: 0, x2: 1, y2: 0, stop: 0.0 #121212, stop: 0.2 #282828, stop: 1 #484848); 231 | width: 7px; 232 | margin: 16px 0 16px 0; 233 | border: 1px solid #222222; 234 | } 235 | 236 | QScrollBar::handle:vertical 237 | { 238 | background: QLinearGradient( x1: 0, y1: 0, x2: 0, y2: 1, stop: 0 #ffa02f, stop: 0.5 #d7801a, stop: 1 #ffa02f); 239 | min-height: 20px; 240 | border-radius: 2px; 241 | } 242 | 243 | QScrollBar::add-line:vertical 244 | { 245 | border: 1px solid #1b1b19; 246 | border-radius: 2px; 247 | background: QLinearGradient( x1: 0, y1: 0, x2: 0, y2: 1, stop: 0 #ffa02f, stop: 1 #d7801a); 248 | height: 14px; 249 | subcontrol-position: bottom; 250 | subcontrol-origin: margin; 251 | } 252 | 253 | QScrollBar::sub-line:vertical 254 | { 255 | border: 1px solid #1b1b19; 256 | border-radius: 2px; 257 | background: QLinearGradient( x1: 0, y1: 0, x2: 0, y2: 1, stop: 0 #d7801a, stop: 1 #ffa02f); 258 | height: 14px; 259 | subcontrol-position: top; 260 | subcontrol-origin: margin; 261 | } 262 | 263 | QScrollBar::up-arrow:vertical, QScrollBar::down-arrow:vertical 264 | { 265 | border: 1px solid black; 266 | width: 1px; 267 | height: 1px; 268 | background: white; 269 | } 270 | 271 | 272 | QScrollBar::add-page:vertical, QScrollBar::sub-page:vertical 273 | { 274 | background: none; 275 | } 276 | 277 | QTextEdit 278 | { 279 | background-color: #242424; 280 | } 281 | 282 | QPlainTextEdit 283 | { 284 | background-color: #242424; 285 | } 286 | 287 | QHeaderView::section 288 | { 289 | background-color: QLinearGradient(x1:0, y1:0, x2:0, y2:1, stop:0 #616161, stop: 0.5 #505050, stop: 0.6 #434343, stop:1 #656565); 290 | color: white; 291 | padding-left: 4px; 292 | border: 1px solid #6c6c6c; 293 | } 294 | 295 | QCheckBox:disabled 296 | { 297 | color: #414141; 298 | } 299 | 300 | QDockWidget::title 301 | { 302 | text-align: center; 303 | spacing: 3px; /* spacing between items in the tool bar */ 304 | background-color: QLinearGradient(x1:0, y1:0, x2:0, y2:1, stop:0 #323232, stop: 0.5 #242424, stop:1 #323232); 305 | } 306 | 307 | QDockWidget::close-button, QDockWidget::float-button 308 | { 309 | text-align: center; 310 | spacing: 1px; /* spacing between items in the tool bar */ 311 | background-color: QLinearGradient(x1:0, y1:0, x2:0, y2:1, stop:0 #323232, stop: 0.5 #242424, stop:1 #323232); 312 | } 313 | 314 | QDockWidget::close-button:hover, QDockWidget::float-button:hover 315 | { 316 | background: #242424; 317 | } 318 | 319 | QDockWidget::close-button:pressed, QDockWidget::float-button:pressed 320 | { 321 | padding: 1px -1px -1px 1px; 322 | } 323 | 324 | QMainWindow::separator 325 | { 326 | background-color: QLinearGradient(x1:0, y1:0, x2:0, y2:1, stop:0 #161616, stop: 0.5 #151515, stop: 0.6 #212121, stop:1 #343434); 327 | color: white; 328 | padding-left: 4px; 329 | border: 1px solid #4c4c4c; 330 | spacing: 3px; /* spacing between items in the tool bar */ 331 | } 332 | 333 | QMainWindow::separator:hover 334 | { 335 | 336 | background-color: QLinearGradient(x1:0, y1:0, x2:0, y2:1, stop:0 #d7801a, stop:0.5 #b56c17 stop:1 #ffa02f); 337 | color: white; 338 | padding-left: 4px; 339 | border: 1px solid #6c6c6c; 340 | spacing: 3px; /* spacing between items in the tool bar */ 341 | } 342 | 343 | QToolBar::handle 344 | { 345 | spacing: 3px; /* spacing between items in the tool bar */ 346 | background: url(:/qss_icons/DarkOrange/handle.png); 347 | } 348 | 349 | QMenu::separator 350 | { 351 | height: 2px; 352 | background-color: QLinearGradient(x1:0, y1:0, x2:0, y2:1, stop:0 #161616, stop: 0.5 #151515, stop: 0.6 #212121, stop:1 #343434); 353 | color: white; 354 | padding-left: 4px; 355 | margin-left: 10px; 356 | margin-right: 5px; 357 | } 358 | 359 | QProgressBar 360 | { 361 | border: 2px solid grey; 362 | border-radius: 5px; 363 | text-align: center; 364 | } 365 | 366 | QProgressBar::chunk 367 | { 368 | background-color: #d7801a; 369 | width: 2.15px; 370 | margin: 0.5px; 371 | } 372 | 373 | QTabBar::tab { 374 | color: #b1b1b1; 375 | border: 1px solid #444; 376 | border-bottom-style: none; 377 | background-color: #323232; 378 | padding-left: 10px; 379 | padding-right: 10px; 380 | padding-top: 3px; 381 | padding-bottom: 2px; 382 | margin-right: -1px; 383 | } 384 | 385 | QTabWidget::pane { 386 | border: 1px solid #444; 387 | top: 1px; 388 | } 389 | 390 | QTabBar::tab:last 391 | { 392 | margin-right: 0; /* the last selected tab has nothing to overlap with on the right */ 393 | border-top-right-radius: 3px; 394 | } 395 | 396 | QTabBar::tab:first:!selected 397 | { 398 | margin-left: 0px; /* the last selected tab has nothing to overlap with on the right */ 399 | 400 | 401 | border-top-left-radius: 3px; 402 | } 403 | 404 | QTabBar::tab:!selected 405 | { 406 | color: #b1b1b1; 407 | border-bottom-style: solid; 408 | margin-top: 3px; 409 | background-color: QLinearGradient(x1:0, y1:0, x2:0, y2:1, stop:1 #212121, stop:.4 #343434); 410 | } 411 | 412 | QTabBar::tab:selected 413 | { 414 | border-top-left-radius: 3px; 415 | border-top-right-radius: 3px; 416 | margin-bottom: 0px; 417 | } 418 | 419 | QTabBar::tab:!selected:hover 420 | { 421 | /*border-top: 2px solid #ffaa00; 422 | padding-bottom: 3px;*/ 423 | border-top-left-radius: 3px; 424 | border-top-right-radius: 3px; 425 | background-color: QLinearGradient(x1:0, y1:0, x2:0, y2:1, stop:1 #212121, stop:0.4 #343434, stop:0.2 #343434, stop:0.1 #ffaa00); 426 | } 427 | 428 | QRadioButton::indicator:checked, QRadioButton::indicator:unchecked{ 429 | color: #b1b1b1; 430 | background-color: #323232; 431 | border: 1px solid #b1b1b1; 432 | border-radius: 6px; 433 | } 434 | 435 | QRadioButton::indicator:checked 436 | { 437 | background-color: qradialgradient( 438 | cx: 0.5, cy: 0.5, 439 | fx: 0.5, fy: 0.5, 440 | radius: 1.0, 441 | stop: 0.25 #ffaa00, 442 | stop: 0.3 #323232 443 | ); 444 | } 445 | 446 | QCheckBox::indicator{ 447 | color: #b1b1b1; 448 | background-color: #323232; 449 | border: 1px solid #b1b1b1; 450 | width: 9px; 451 | height: 9px; 452 | } 453 | 454 | QRadioButton::indicator 455 | { 456 | border-radius: 6px; 457 | } 458 | 459 | QRadioButton::indicator:hover, QCheckBox::indicator:hover 460 | { 461 | border: 1px solid #ffaa00; 462 | } 463 | 464 | QCheckBox::indicator:checked 465 | { 466 | image:url(:/qss_icons/DarkOrange/checkbox.png); 467 | } 468 | 469 | QCheckBox::indicator:disabled, QRadioButton::indicator:disabled 470 | { 471 | border: 1px solid #444; 472 | } 473 | 474 | 475 | QSlider::groove:horizontal { 476 | border: 1px solid #3A3939; 477 | height: 8px; 478 | background: #201F1F; 479 | margin: 2px 0; 480 | border-radius: 2px; 481 | } 482 | 483 | QSlider::handle:horizontal { 484 | background: QLinearGradient( x1: 0, y1: 0, x2: 0, y2: 1, 485 | stop: 0.0 silver, stop: 0.2 #a8a8a8, stop: 1 #727272); 486 | border: 1px solid #3A3939; 487 | width: 14px; 488 | height: 14px; 489 | margin: -4px 0; 490 | border-radius: 2px; 491 | } 492 | 493 | QSlider::groove:vertical { 494 | border: 1px solid #3A3939; 495 | width: 8px; 496 | background: #201F1F; 497 | margin: 0 0px; 498 | border-radius: 2px; 499 | } 500 | 501 | QSlider::handle:vertical { 502 | background: QLinearGradient( x1: 0, y1: 0, x2: 0, y2: 1, stop: 0.0 silver, 503 | stop: 0.2 #a8a8a8, stop: 1 #727272); 504 | border: 1px solid #3A3939; 505 | width: 14px; 506 | height: 14px; 507 | margin: 0 -4px; 508 | border-radius: 2px; 509 | } 510 | 511 | QAbstractSpinBox { 512 | padding-top: 2px; 513 | padding-bottom: 2px; 514 | border: 1px solid darkgray; 515 | 516 | border-radius: 2px; 517 | min-width: 50px; 518 | } 519 | 520 | 521 | -------------------------------------------------------------------------------- /PyQt5_stylesheets/style_black.css: -------------------------------------------------------------------------------- 1 | QWidget#frmLogin,QWidget#frmPopup,QWidget#frmHostInfo,QWidget#frmLogout,QWidget#frmConfig,QWidget#frmData,QWidget#frmDefence,QWidget#frmHost,QWidget#frmMain,QWidget#frmPwd,QWidget#frmSelect,QWidget#frmMessageBox{ 2 | border:1px solid #4D4D4D; 3 | border-radius:0px; 4 | } 5 | 6 | .QFrame{ 7 | border:1px solid #636363; 8 | border-radius:5px; 9 | } 10 | 11 | QWidget#widget_title{ 12 | background: qlineargradient(spread:pad, x1:0, y1:0, x2:0, y2:1, stop:0 #4D4D4D, stop:1 #292929); 13 | } 14 | 15 | QLabel#lab_Ico,QLabel#lab_Title{ 16 | border-radius:0px; 17 | color: #F0F0F0; 18 | background-color:rgba(0,0,0,0); 19 | border-style:none; 20 | } 21 | 22 | QLineEdit { 23 | border: 1px solid #636363; 24 | border-radius: 5px; 25 | padding: 2px; 26 | background: none; 27 | selection-background-color: #4D4D4D; 28 | } 29 | 30 | QLineEdit[echoMode="2"] { 31 | lineedit-password-character: 9679; 32 | } 33 | 34 | .QGroupBox{ 35 | border: 1px solid #636363; 36 | border-radius: 5px; 37 | } 38 | 39 | .QPushButton{ 40 | border-style: none; 41 | border: 0px; 42 | color: #F0F0F0; 43 | padding: 5px; 44 | min-height: 20px; 45 | border-radius:5px; 46 | background: qlineargradient(spread:pad, x1:0, y1:0, x2:0, y2:1, stop:0 #4D4D4D, stop:1 #292929); 47 | } 48 | 49 | .QPushButton[focusPolicy="0"] { 50 | border-style: none; 51 | border: 0px; 52 | color: #F0F0F0; 53 | padding: 0px; 54 | min-height: 10px; 55 | border-radius:3px; 56 | background: qlineargradient(spread:pad, x1:0, y1:0, x2:0, y2:1, stop:0 #4D4D4D, stop:1 #292929); 57 | } 58 | 59 | .QPushButton:hover{ 60 | background: qlineargradient(spread:pad, x1:0, y1:0, x2:0, y2:1, stop:0 #636363, stop:1 #575757); 61 | } 62 | 63 | .QPushButton:pressed{ 64 | background: qlineargradient(spread:pad, x1:0, y1:0, x2:0, y2:1, stop:0 #4D4D4D, stop:1 #292929); 65 | } 66 | 67 | QPushButton#btnMenu,QPushButton#btnMenu_Min,QPushButton#btnMenu_Max,QPushButton#btnMenu_Close{ 68 | border-radius:0px; 69 | color: #F0F0F0; 70 | background-color:rgba(0,0,0,0); 71 | border-style:none; 72 | } 73 | 74 | QPushButton#btnMenu:hover,QPushButton#btnMenu_Min:hover,QPushButton#btnMenu_Max:hover{ 75 | background-color: qlineargradient(spread:pad, x1:0, y1:1, x2:0, y2:0, stop:0 rgba(25, 134, 199, 0), stop:1 #636363); 76 | } 77 | 78 | QPushButton#btnMenu_Close:hover{ 79 | background-color: qlineargradient(spread:pad, x1:0, y1:1, x2:0, y2:0, stop:0 rgba(238, 0, 0, 128), stop:1 rgba(238, 44, 44, 255)); 80 | } 81 | 82 | QCheckBox { 83 | spacing: 2px; 84 | } 85 | 86 | QCheckBox::indicator { 87 | width: 20px; 88 | height: 20px; 89 | } 90 | 91 | QCheckBox::indicator:unchecked { 92 | image: url(:/qss_icons/img_rc/checkbox_unchecked.png); 93 | } 94 | 95 | QCheckBox::indicator:checked { 96 | image: url(:/qss_icons/img_rc/checkbox_checked.png); 97 | } 98 | 99 | QRadioButton { 100 | spacing: 2px; 101 | } 102 | 103 | QRadioButton::indicator { 104 | width: 15px; 105 | height: 15px; 106 | } 107 | 108 | QRadioButton::indicator::unchecked { 109 | image: url(:/qss_icons/img_rc/radio_normal.png); 110 | } 111 | 112 | QRadioButton::indicator::checked { 113 | image: url(:/qss_icons/img_rc/radio_selected.png); 114 | } 115 | 116 | QComboBox,QDateEdit{ 117 | border-radius: 3px; 118 | padding: 1px 10px 1px 5px; 119 | border: 1px solid #636363; 120 | } 121 | 122 | QComboBox::drop-down,QDateEdit::drop-down { 123 | subcontrol-origin: padding; 124 | subcontrol-position: top right; 125 | width: 15px; 126 | border-left-width: 1px; 127 | border-left-style: solid; 128 | border-top-right-radius: 3px; 129 | border-bottom-right-radius: 3px; 130 | border-left-color: #636363; 131 | } 132 | 133 | QComboBox::down-arrow,QDateEdit::down-arrow { 134 | image: url(:/qss_icons/img_rc/array_down.png); 135 | } 136 | 137 | QMenu { 138 | background-color:#F0F0F0; 139 | margin: 2px; 140 | } 141 | 142 | QMenu::item { 143 | padding: 2px 12px 2px 12px; 144 | } 145 | 146 | QMenu::indicator { 147 | width: 13px; 148 | height: 13px; 149 | } 150 | 151 | QMenu::item:selected { 152 | color: #F0F0F0; 153 | background: qlineargradient(spread:pad, x1:0, y1:0, x2:0, y2:1, stop:0 #4D4D4D, stop:1 #292929); 154 | } 155 | 156 | QMenu::separator { 157 | height: 1px; 158 | background: #636363; 159 | } 160 | 161 | QProgressBar { 162 | border-radius: 5px; 163 | text-align: center; 164 | border: 1px solid #636363; 165 | } 166 | 167 | QProgressBar::chunk { 168 | width: 5px; 169 | margin: 0.5px; 170 | background-color: #4D4D4D; 171 | } 172 | 173 | QSlider::groove:horizontal,QSlider::add-page:horizontal { 174 | background: #808080; 175 | height: 8px; 176 | border-radius: 3px; 177 | } 178 | 179 | QSlider::sub-page:horizontal { 180 | height: 8px; 181 | border-radius: 3px; 182 | background: qlineargradient(spread:pad, x1:0, y1:0, x2:0, y2:1, stop:0 #4D4D4D, stop:1 #292929); 183 | } 184 | 185 | QSlider::handle:horizontal { 186 | width: 13px; 187 | margin-top: -3px; 188 | margin-bottom: -3px; 189 | border-radius: 6px; 190 | background: qradialgradient(spread:pad, cx:0.5, cy:0.5, radius:0.5, fx:0.5, fy:0.5,stop:0.6 #F0F0F0, stop:0.778409 #636363); 191 | } 192 | 193 | QSlider::handle:horizontal:hover { 194 | background: qradialgradient(spread: pad, cx: 0.5, cy: 0.5, radius: 0.5, fx: 0.5, fy: 0.5, stop: 0.6 #F0F0F0,stop:0.778409 #4D4D4D); 195 | } 196 | 197 | QSlider::groove:vertical,QSlider::sub-page:vertical { 198 | background:#808080; 199 | width: 8px; 200 | border-radius: 3px; 201 | } 202 | 203 | QSlider::add-page:vertical { 204 | width: 8px; 205 | border-radius: 3px; 206 | background: qlineargradient(spread:pad, x1:0, y1:0, x2:0, y2:1, stop:0 #4D4D4D, stop:1 #292929); 207 | } 208 | 209 | QSlider::handle:vertical { 210 | height: 14px; 211 | margin-left: -3px; 212 | margin-right: -3px; 213 | border-radius: 6px; 214 | background: qradialgradient(spread: pad, cx: 0.5, cy: 0.5, radius: 0.5, fx: 0.5, fy: 0.5, stop: 0.6 #F0F0F0, stop:0.778409 #636363); 215 | } 216 | 217 | QSlider::handle:vertical:hover { 218 | background: qradialgradient(spread: pad, cx: 0.5, cy: 0.5, radius: 0.5, fx: 0.5, fy: 0.5, stop: 0.6 #F0F0F0,stop:0.778409 #4D4D4D); 219 | } 220 | 221 | QScrollBar:vertical { 222 | width:10px; 223 | background-color:rgba(0,0,0,0%); 224 | padding-top:10px; 225 | padding-bottom:10px; 226 | } 227 | 228 | QScrollBar:horizontal { 229 | height:10px; 230 | background-color:rgba(0,0,0,0%); 231 | padding-left:10px; padding-right:10px; 232 | } 233 | 234 | QScrollBar::handle:vertical { 235 | width:10px; 236 | background: qlineargradient(spread:pad, x1:0, y1:0, x2:0, y2:1, stop:0 #636363, stop:1 #575757); 237 | } 238 | 239 | QScrollBar::handle:horizontal { 240 | height:10px; 241 | background: qlineargradient(spread:pad, x1:0, y1:0, x2:0, y2:1, stop:0 #636363, stop:1 #575757); 242 | } 243 | 244 | QScrollBar::handle:vertical:hover { 245 | width:10px; 246 | background: qlineargradient(spread:pad, x1:0, y1:0, x2:0, y2:1, stop:0 #4D4D4D, stop:1 #292929); 247 | } 248 | 249 | QScrollBar::handle:horizontal:hover { 250 | height:10px; 251 | background: qlineargradient(spread:pad, x1:0, y1:0, x2:0, y2:1, stop:0 #4D4D4D, stop:1 #292929); 252 | } 253 | 254 | QScrollBar::add-line:vertical { 255 | height:10px; 256 | width:10px; 257 | subcontrol-position: bottom; 258 | subcontrol-origin: margin; 259 | border-image:url(:/qss_icons/img_rc/add-line_vertical.png); 260 | } 261 | 262 | QScrollBar::add-line:horizontal { 263 | height:10px; 264 | width:10px; 265 | subcontrol-position: right; 266 | subcontrol-origin: margin; 267 | border-image:url(:/qss_icons/img_rc/add-line_horizontal.png); 268 | } 269 | 270 | QScrollBar::sub-line:vertical { 271 | height:10px; 272 | width:10px; 273 | subcontrol-position: top; 274 | subcontrol-origin: margin; 275 | border-image:url(:/qss_icons/img_rc/sub-line_vertical.png); 276 | } 277 | 278 | QScrollBar::sub-line:horizontal { 279 | height:10px; 280 | width:10px; 281 | subcontrol-position: left; 282 | subcontrol-origin: margin; 283 | border-image:url(:/qss_icons/img_rc/sub-line_horizontal.png); 284 | } 285 | 286 | QScrollBar::add-page:vertical,QScrollBar::sub-page:vertical { 287 | width:10px; 288 | background: #C0C0C0; 289 | } 290 | 291 | QScrollBar::add-page:horizontal,QScrollBar::sub-page:horizontal { 292 | height:10px; 293 | background: #C0C0C0; 294 | } 295 | 296 | QScrollArea { 297 | border: 0px ; 298 | } 299 | 300 | QTreeView,QListView,QTableView{ 301 | border: 1px solid #636363; 302 | selection-background-color: #4D4D4D; 303 | selection-color: #F0F0F0; 304 | } 305 | 306 | QTableView::item:selected, QListView::item:selected, QTreeView::item:selected { 307 | color: #F0F0F0; 308 | background: qlineargradient(spread:pad, x1:0, y1:0, x2:0, y2:1, stop:0 #4D4D4D, stop:1 #292929); 309 | } 310 | 311 | QTableView::item:hover, QListView::item:hover, QTreeView::item:hover { 312 | color: #F0F0F0; 313 | background: qlineargradient(spread:pad, x1:0, y1:0, x2:0, y2:1, stop:0 #636363, stop:1 #575757); 314 | } 315 | 316 | QTableView::item, QListView::item, QTreeView::item { 317 | padding: 5px; 318 | margin: 0px; 319 | } 320 | 321 | QHeaderView::section { 322 | padding:3px; 323 | margin:0px; 324 | color:#F0F0F0; 325 | border: 1px solid #F0F0F0; 326 | background: qlineargradient(spread:pad, x1:0, y1:0, x2:0, y2:1, stop:0 #636363, stop:1 #575757); 327 | } 328 | 329 | QTabBar::tab { 330 | border-bottom-left-radius:0px; 331 | border-bottom-right-radius:0px; 332 | color: #F0F0F0; 333 | min-width: 60px; 334 | min-height: 20px; 335 | padding: 3px 8px 3px 8px; 336 | margin:1px; 337 | background: qlineargradient(spread:pad, x1:0, y1:0, x2:0, y2:1, stop:0 #636363, stop:1 #575757); 338 | } 339 | 340 | QTabBar::tab:selected, QTabBar::tab:hover { 341 | background: qlineargradient(spread:pad, x1:0, y1:0, x2:0, y2:1, stop:0 #4D4D4D, stop:1 #292929); 342 | } 343 | 344 | QStatusBar::item { 345 | border: 1px solid #636363; 346 | border-radius: 3px; 347 | } -------------------------------------------------------------------------------- /PyQt5_stylesheets/style_black.qrc: -------------------------------------------------------------------------------- 1 | 2 | 3 | img_rc/add-line_horizontal.png 4 | img_rc/add-line_vertical.png 5 | img_rc/array_down.png 6 | img_rc/checkbox_checked.png 7 | img_rc/checkbox_unchecked.png 8 | img_rc/radio_normal.png 9 | img_rc/radio_selected.png 10 | img_rc/sub-line_horizontal.png 11 | img_rc/sub-line_vertical.png 12 | 13 | 14 | style_black.css 15 | 16 | 17 | -------------------------------------------------------------------------------- /PyQt5_stylesheets/style_blue.css: -------------------------------------------------------------------------------- 1 | QWidget#frmLogin,QWidget#frmPopup,QWidget#frmHostInfo,QWidget#frmLogout,QWidget#frmConfig,QWidget#frmData,QWidget#frmDefence,QWidget#frmHost,QWidget#frmMain,QWidget#frmPwd,QWidget#frmSelect,QWidget#frmMessageBox{ 2 | border:1px solid #1B89CA; 3 | border-radius:0px; 4 | } 5 | 6 | .QFrame{ 7 | border:1px solid #5CACEE; 8 | border-radius:5px; 9 | } 10 | 11 | QWidget#widget_title{ 12 | background: qlineargradient(spread:pad, x1:0, y1:0, x2:0, y2:1, stop:0 #1B89CA, stop:1 #1077B5); 13 | } 14 | 15 | QLabel#lab_Ico,QLabel#lab_Title{ 16 | border-radius:0px; 17 | color: #F0F0F0; 18 | background-color:rgba(0,0,0,0); 19 | border-style:none; 20 | } 21 | 22 | QLineEdit { 23 | border: 1px solid #5CACEE; 24 | border-radius: 5px; 25 | padding: 2px; 26 | background: none; 27 | selection-background-color: #1B89CA; 28 | } 29 | 30 | QLineEdit[echoMode="2"] { 31 | lineedit-password-character: 9679; 32 | } 33 | 34 | .QGroupBox{ 35 | border: 1px solid #5CACEE; 36 | border-radius: 5px; 37 | } 38 | 39 | .QPushButton{ 40 | border-style: none; 41 | border: 0px; 42 | color: #F0F0F0; 43 | padding: 5px; 44 | min-height: 20px; 45 | border-radius:5px; 46 | background: qlineargradient(spread:pad, x1:0, y1:0, x2:0, y2:1, stop:0 #1B89CA, stop:1 #1077B5); 47 | } 48 | 49 | .QPushButton[focusPolicy="0"] { 50 | border-style: none; 51 | border: 0px; 52 | color: #F0F0F0; 53 | padding: 0px; 54 | min-height: 10px; 55 | border-radius:3px; 56 | background: qlineargradient(spread:pad, x1:0, y1:0, x2:0, y2:1, stop:0 #1B89CA, stop:1 #1077B5); 57 | } 58 | 59 | .QPushButton:hover{ 60 | background: qlineargradient(spread:pad, x1:0, y1:0, x2:0, y2:1, stop:0 #5CACEE, stop:1 #4F94CD); 61 | } 62 | 63 | .QPushButton:pressed{ 64 | background: qlineargradient(spread:pad, x1:0, y1:0, x2:0, y2:1, stop:0 #1B89CA, stop:1 #1077B5); 65 | } 66 | 67 | QPushButton#btnMenu,QPushButton#btnMenu_Min,QPushButton#btnMenu_Max,QPushButton#btnMenu_Close{ 68 | border-radius:0px; 69 | color: #F0F0F0; 70 | background-color:rgba(0,0,0,0); 71 | border-style:none; 72 | } 73 | 74 | QPushButton#btnMenu:hover,QPushButton#btnMenu_Min:hover,QPushButton#btnMenu_Max:hover{ 75 | background-color: qlineargradient(spread:pad, x1:0, y1:1, x2:0, y2:0, stop:0 rgba(25, 134, 199, 0), stop:1 #5CACEE); 76 | } 77 | 78 | QPushButton#btnMenu_Close:hover{ 79 | background-color: qlineargradient(spread:pad, x1:0, y1:1, x2:0, y2:0, stop:0 rgba(238, 0, 0, 128), stop:1 rgba(238, 44, 44, 255)); 80 | } 81 | 82 | QCheckBox { 83 | spacing: 2px; 84 | } 85 | 86 | QCheckBox::indicator { 87 | width: 20px; 88 | height: 20px; 89 | } 90 | 91 | QCheckBox::indicator:unchecked { 92 | image: url(:/qss_icons/img_rc/checkbox_unchecked.png); 93 | } 94 | 95 | QCheckBox::indicator:checked { 96 | image: url(:/qss_icons/img_rc/checkbox_checked.png); 97 | } 98 | 99 | QRadioButton { 100 | spacing: 2px; 101 | } 102 | 103 | QRadioButton::indicator { 104 | width: 15px; 105 | height: 15px; 106 | } 107 | 108 | QRadioButton::indicator::unchecked { 109 | image: url(:/qss_icons/img_rc/radio_normal.png); 110 | } 111 | 112 | QRadioButton::indicator::checked { 113 | image: url(:/qss_icons/img_rc/radio_selected.png); 114 | } 115 | 116 | QComboBox,QDateEdit{ 117 | border-radius: 3px; 118 | padding: 1px 10px 1px 5px; 119 | border: 1px solid #5CACEE; 120 | } 121 | 122 | QComboBox::drop-down,QDateEdit::drop-down { 123 | subcontrol-origin: padding; 124 | subcontrol-position: top right; 125 | width: 15px; 126 | border-left-width: 1px; 127 | border-left-style: solid; 128 | border-top-right-radius: 3px; 129 | border-bottom-right-radius: 3px; 130 | border-left-color: #5CACEE; 131 | } 132 | 133 | QComboBox::down-arrow,QDateEdit::down-arrow { 134 | image: url(:/qss_icons/img_rc/array_down.png); 135 | } 136 | 137 | QMenu { 138 | background-color:#F0F0F0; 139 | margin: 2px; 140 | } 141 | 142 | QMenu::item { 143 | padding: 2px 12px 2px 12px; 144 | } 145 | 146 | QMenu::indicator { 147 | width: 13px; 148 | height: 13px; 149 | } 150 | 151 | QMenu::item:selected { 152 | color: #FFFFFF; 153 | background: qlineargradient(spread:pad, x1:0, y1:0, x2:0, y2:1, stop:0 #1B89CA, stop:1 #1077B5); 154 | } 155 | 156 | QMenu::separator { 157 | height: 1px; 158 | background: #5CACEE; 159 | } 160 | 161 | QProgressBar { 162 | border-radius: 5px; 163 | text-align: center; 164 | border: 1px solid #5CACEE; 165 | } 166 | 167 | QProgressBar::chunk { 168 | width: 5px; 169 | margin: 0.5px; 170 | background-color: #1B89CA; 171 | } 172 | 173 | QSlider::groove:horizontal,QSlider::add-page:horizontal { 174 | background: #808080; 175 | height: 8px; 176 | border-radius: 3px; 177 | } 178 | 179 | QSlider::sub-page:horizontal { 180 | height: 8px; 181 | border-radius: 3px; 182 | background: qlineargradient(spread:pad, x1:0, y1:0, x2:0, y2:1, stop:0 #1B89CA, stop:1 #1077B5); 183 | } 184 | 185 | QSlider::handle:horizontal { 186 | width: 13px; 187 | margin-top: -3px; 188 | margin-bottom: -3px; 189 | border-radius: 6px; 190 | background: qradialgradient(spread:pad, cx:0.5, cy:0.5, radius:0.5, fx:0.5, fy:0.5,stop:0.6 #F0F0F0, stop:0.778409 #5CACEE); 191 | } 192 | 193 | QSlider::handle:horizontal:hover { 194 | background: qradialgradient(spread: pad, cx: 0.5, cy: 0.5, radius: 0.5, fx: 0.5, fy: 0.5, stop: 0.6 #F0F0F0,stop:0.778409 #1B89CA); 195 | } 196 | 197 | QSlider::groove:vertical,QSlider::sub-page:vertical { 198 | background:#808080; 199 | width: 8px; 200 | border-radius: 3px; 201 | } 202 | 203 | QSlider::add-page:vertical { 204 | width: 8px; 205 | border-radius: 3px; 206 | background: qlineargradient(spread:pad, x1:0, y1:0, x2:0, y2:1, stop:0 #1B89CA, stop:1 #1077B5); 207 | } 208 | 209 | QSlider::handle:vertical { 210 | height: 14px; 211 | margin-left: -3px; 212 | margin-right: -3px; 213 | border-radius: 6px; 214 | background: qradialgradient(spread: pad, cx: 0.5, cy: 0.5, radius: 0.5, fx: 0.5, fy: 0.5, stop: 0.6 #F0F0F0, stop:0.778409 #5CACEE); 215 | } 216 | 217 | QSlider::handle:vertical:hover { 218 | background: qradialgradient(spread: pad, cx: 0.5, cy: 0.5, radius: 0.5, fx: 0.5, fy: 0.5, stop: 0.6 #F0F0F0,stop:0.778409 #1B89CA); 219 | } 220 | 221 | QScrollBar:vertical { 222 | width:10px; 223 | background-color:rgba(0,0,0,0%); 224 | padding-top:10px; 225 | padding-bottom:10px; 226 | } 227 | 228 | QScrollBar:horizontal { 229 | height:10px; 230 | background-color:rgba(0,0,0,0%); 231 | padding-left:10px; padding-right:10px; 232 | } 233 | 234 | QScrollBar::handle:vertical { 235 | width:10px; 236 | background: qlineargradient(spread:pad, x1:0, y1:0, x2:0, y2:1, stop:0 #5CACEE, stop:1 #4F94CD); 237 | } 238 | 239 | QScrollBar::handle:horizontal { 240 | height:10px; 241 | background: qlineargradient(spread:pad, x1:0, y1:0, x2:0, y2:1, stop:0 #5CACEE, stop:1 #4F94CD); 242 | } 243 | 244 | QScrollBar::handle:vertical:hover { 245 | width:10px; 246 | background: qlineargradient(spread:pad, x1:0, y1:0, x2:0, y2:1, stop:0 #1B89CA, stop:1 #1077B5); 247 | } 248 | 249 | QScrollBar::handle:horizontal:hover { 250 | height:10px; 251 | background: qlineargradient(spread:pad, x1:0, y1:0, x2:0, y2:1, stop:0 #1B89CA, stop:1 #1077B5); 252 | } 253 | 254 | QScrollBar::add-line:vertical { 255 | height:10px; 256 | width:10px; 257 | subcontrol-position: bottom; 258 | subcontrol-origin: margin; 259 | border-image:url(:/qss_icons/img_rc/add-line_vertical.png); 260 | } 261 | 262 | QScrollBar::add-line:horizontal { 263 | height:10px; 264 | width:10px; 265 | subcontrol-position: right; 266 | subcontrol-origin: margin; 267 | border-image:url(:/qss_icons/img_rc/add-line_horizontal.png); 268 | } 269 | 270 | QScrollBar::sub-line:vertical { 271 | height:10px; 272 | width:10px; 273 | subcontrol-position: top; 274 | subcontrol-origin: margin; 275 | border-image:url(:/qss_icons/img_rc/sub-line_vertical.png); 276 | } 277 | 278 | QScrollBar::sub-line:horizontal { 279 | height:10px; 280 | width:10px; 281 | subcontrol-position: left; 282 | subcontrol-origin: margin; 283 | border-image:url(:/qss_icons/img_rc/sub-line_horizontal.png); 284 | } 285 | 286 | QScrollBar::add-page:vertical,QScrollBar::sub-page:vertical { 287 | width:10px; 288 | background: #C0C0C0; 289 | } 290 | 291 | QScrollBar::add-page:horizontal,QScrollBar::sub-page:horizontal { 292 | height:10px; 293 | background: #C0C0C0; 294 | } 295 | 296 | QScrollArea { 297 | border: 0px ; 298 | } 299 | 300 | QTreeView,QListView,QTableView{ 301 | border: 1px solid #5CACEE; 302 | selection-background-color: #1B89CA; 303 | selection-color: #F0F0F0; 304 | } 305 | 306 | QTableView::item:selected, QListView::item:selected, QTreeView::item:selected { 307 | color: #F0F0F0; 308 | background: qlineargradient(spread:pad, x1:0, y1:0, x2:0, y2:1, stop:0 #1B89CA, stop:1 #1077B5); 309 | } 310 | 311 | QTableView::item:hover, QListView::item:hover, QTreeView::item:hover { 312 | color: #F0F0F0; 313 | background: qlineargradient(spread:pad, x1:0, y1:0, x2:0, y2:1, stop:0 #5CACEE, stop:1 #4F94CD); 314 | } 315 | 316 | QTableView::item, QListView::item, QTreeView::item { 317 | padding: 5px; 318 | margin: 0px; 319 | } 320 | 321 | QHeaderView::section { 322 | padding:3px; 323 | margin:0px; 324 | color:#F0F0F0; 325 | border: 1px solid #F0F0F0; 326 | background: qlineargradient(spread:pad, x1:0, y1:0, x2:0, y2:1, stop:0 #5CACEE, stop:1 #4F94CD); 327 | } 328 | 329 | QTabBar::tab { 330 | border-bottom-left-radius:0px; 331 | border-bottom-right-radius:0px; 332 | color: #F0F0F0; 333 | min-width: 60px; 334 | min-height: 20px; 335 | padding: 3px 8px 3px 8px; 336 | margin:1px; 337 | background: qlineargradient(spread:pad, x1:0, y1:0, x2:0, y2:1, stop:0 #5CACEE, stop:1 #4F94CD); 338 | } 339 | 340 | QTabBar::tab:selected, QTabBar::tab:hover { 341 | background: qlineargradient(spread:pad, x1:0, y1:0, x2:0, y2:1, stop:0 #1B89CA, stop:1 #1077B5); 342 | } 343 | 344 | QStatusBar::item { 345 | border: 1px solid #5CACEE; 346 | border-radius: 3px; 347 | } -------------------------------------------------------------------------------- /PyQt5_stylesheets/style_blue.qrc: -------------------------------------------------------------------------------- 1 | 2 | 3 | img_rc/add-line_horizontal.png 4 | img_rc/add-line_vertical.png 5 | img_rc/array_down.png 6 | img_rc/checkbox_checked.png 7 | img_rc/checkbox_unchecked.png 8 | img_rc/radio_normal.png 9 | img_rc/radio_selected.png 10 | img_rc/sub-line_horizontal.png 11 | img_rc/sub-line_vertical.png 12 | 13 | 14 | style_blue.css 15 | 16 | 17 | -------------------------------------------------------------------------------- /PyQt5_stylesheets/style_gray.css: -------------------------------------------------------------------------------- 1 | QWidget#frmLogin,QWidget#frmPopup,QWidget#frmHostInfo,QWidget#frmLogout,QWidget#frmConfig,QWidget#frmData,QWidget#frmDefence,QWidget#frmHost,QWidget#frmMain,QWidget#frmPwd,QWidget#frmSelect,QWidget#frmMessageBox{ 2 | border:1px solid #454648; 3 | border-radius:0px; 4 | } 5 | 6 | .QFrame{ 7 | border:1px solid #B8B8B8; 8 | border-radius:5px; 9 | } 10 | 11 | QWidget#widget_title{ 12 | background: qlineargradient(spread:pad, x1:0, y1:0, x2:0, y2:1, stop:0 #454648, stop:1 #7A7A7A); 13 | } 14 | 15 | QLabel#lab_Ico,QLabel#lab_Title{ 16 | border-radius:0px; 17 | color: #F0F0F0; 18 | background-color:rgba(0,0,0,0); 19 | border-style:none; 20 | } 21 | 22 | QLineEdit { 23 | border: 1px solid #B8B8B8; 24 | border-radius: 5px; 25 | padding: 2px; 26 | background: none; 27 | selection-background-color: #454648; 28 | } 29 | 30 | QLineEdit[echoMode="2"] { 31 | lineedit-password-character: 9679; 32 | } 33 | 34 | .QGroupBox{ 35 | border: 1px solid #B8B8B8; 36 | border-radius: 5px; 37 | } 38 | 39 | .QPushButton{ 40 | border-style: none; 41 | border: 0px; 42 | color: #F0F0F0; 43 | padding: 5px; 44 | min-height: 20px; 45 | border-radius:5px; 46 | background: qlineargradient(spread:pad, x1:0, y1:0, x2:0, y2:1, stop:0 #454648, stop:1 #7A7A7A); 47 | } 48 | 49 | .QPushButton[focusPolicy="0"] { 50 | border-style: none; 51 | border: 0px; 52 | color: #F0F0F0; 53 | padding: 0px; 54 | min-height: 10px; 55 | border-radius:3px; 56 | background: qlineargradient(spread:pad, x1:0, y1:0, x2:0, y2:1, stop:0 #454648, stop:1 #7A7A7A); 57 | } 58 | 59 | .QPushButton:hover{ 60 | background: qlineargradient(spread:pad, x1:0, y1:0, x2:0, y2:1, stop:0 #B8B8B8, stop:1 #D6D6D6); 61 | } 62 | 63 | .QPushButton:pressed{ 64 | background: qlineargradient(spread:pad, x1:0, y1:0, x2:0, y2:1, stop:0 #454648, stop:1 #7A7A7A); 65 | } 66 | 67 | QPushButton#btnMenu,QPushButton#btnMenu_Min,QPushButton#btnMenu_Max,QPushButton#btnMenu_Close{ 68 | border-radius:0px; 69 | color: #F0F0F0; 70 | background-color:rgba(0,0,0,0); 71 | border-style:none; 72 | } 73 | 74 | QPushButton#btnMenu:hover,QPushButton#btnMenu_Min:hover,QPushButton#btnMenu_Max:hover{ 75 | background-color: qlineargradient(spread:pad, x1:0, y1:1, x2:0, y2:0, stop:0 rgba(25, 134, 199, 0), stop:1 #B8B8B8); 76 | } 77 | 78 | QPushButton#btnMenu_Close:hover{ 79 | background-color: qlineargradient(spread:pad, x1:0, y1:1, x2:0, y2:0, stop:0 rgba(238, 0, 0, 128), stop:1 rgba(238, 44, 44, 255)); 80 | } 81 | 82 | QCheckBox { 83 | spacing: 2px; 84 | } 85 | 86 | QCheckBox::indicator { 87 | width: 20px; 88 | height: 20px; 89 | } 90 | 91 | QCheckBox::indicator:unchecked { 92 | image: url(:/qss_icons/img_rc/checkbox_unchecked.png); 93 | } 94 | 95 | QCheckBox::indicator:checked { 96 | image: url(:/qss_icons/img_rc/checkbox_checked.png); 97 | } 98 | 99 | QRadioButton { 100 | spacing: 2px; 101 | } 102 | 103 | QRadioButton::indicator { 104 | width: 15px; 105 | height: 15px; 106 | } 107 | 108 | QRadioButton::indicator::unchecked { 109 | image: url(:/qss_icons/img_rc/radio_normal.png); 110 | } 111 | 112 | QRadioButton::indicator::checked { 113 | image: url(:/qss_icons/img_rc/radio_selected.png); 114 | } 115 | 116 | QComboBox,QDateEdit{ 117 | border-radius: 3px; 118 | padding: 1px 10px 1px 5px; 119 | border: 1px solid #B8B8B8; 120 | } 121 | 122 | QComboBox::drop-down,QDateEdit::drop-down { 123 | subcontrol-origin: padding; 124 | subcontrol-position: top right; 125 | width: 15px; 126 | border-left-width: 1px; 127 | border-left-style: solid; 128 | border-top-right-radius: 3px; 129 | border-bottom-right-radius: 3px; 130 | border-left-color: #B8B8B8; 131 | } 132 | 133 | QComboBox::down-arrow,QDateEdit::down-arrow { 134 | image: url(:/qss_icons/img_rc/array_down.png); 135 | } 136 | 137 | QMenu { 138 | background-color:#F0F0F0; 139 | margin: 2px; 140 | } 141 | 142 | QMenu::item { 143 | padding: 2px 12px 2px 12px; 144 | } 145 | 146 | QMenu::indicator { 147 | width: 13px; 148 | height: 13px; 149 | } 150 | 151 | QMenu::item:selected { 152 | color: #F0F0F0; 153 | background: qlineargradient(spread:pad, x1:0, y1:0, x2:0, y2:1, stop:0 #454648, stop:1 #7A7A7A); 154 | } 155 | 156 | QMenu::separator { 157 | height: 1px; 158 | background: #B8B8B8; 159 | } 160 | 161 | QProgressBar { 162 | border-radius: 5px; 163 | text-align: center; 164 | border: 1px solid #B8B8B8; 165 | } 166 | 167 | QProgressBar::chunk { 168 | width: 5px; 169 | margin: 0.5px; 170 | background-color: #454648; 171 | } 172 | 173 | QSlider::groove:horizontal,QSlider::add-page:horizontal { 174 | background: #808080; 175 | height: 8px; 176 | border-radius: 3px; 177 | } 178 | 179 | QSlider::sub-page:horizontal { 180 | height: 8px; 181 | border-radius: 3px; 182 | background: qlineargradient(spread:pad, x1:0, y1:0, x2:0, y2:1, stop:0 #454648, stop:1 #7A7A7A); 183 | } 184 | 185 | QSlider::handle:horizontal { 186 | width: 13px; 187 | margin-top: -3px; 188 | margin-bottom: -3px; 189 | border-radius: 6px; 190 | background: qradialgradient(spread:pad, cx:0.5, cy:0.5, radius:0.5, fx:0.5, fy:0.5,stop:0.6 #F0F0F0, stop:0.778409 #B8B8B8); 191 | } 192 | 193 | QSlider::handle:horizontal:hover { 194 | background: qradialgradient(spread: pad, cx: 0.5, cy: 0.5, radius: 0.5, fx: 0.5, fy: 0.5, stop: 0.6 #F0F0F0,stop:0.778409 #454648); 195 | } 196 | 197 | QSlider::groove:vertical,QSlider::sub-page:vertical { 198 | background:#808080; 199 | width: 8px; 200 | border-radius: 3px; 201 | } 202 | 203 | QSlider::add-page:vertical { 204 | width: 8px; 205 | border-radius: 3px; 206 | background: qlineargradient(spread:pad, x1:0, y1:0, x2:0, y2:1, stop:0 #454648, stop:1 #7A7A7A); 207 | } 208 | 209 | QSlider::handle:vertical { 210 | height: 14px; 211 | margin-left: -3px; 212 | margin-right: -3px; 213 | border-radius: 6px; 214 | background: qradialgradient(spread: pad, cx: 0.5, cy: 0.5, radius: 0.5, fx: 0.5, fy: 0.5, stop: 0.6 #F0F0F0, stop:0.778409 #B8B8B8); 215 | } 216 | 217 | QSlider::handle:vertical:hover { 218 | background: qradialgradient(spread: pad, cx: 0.5, cy: 0.5, radius: 0.5, fx: 0.5, fy: 0.5, stop: 0.6 #F0F0F0,stop:0.778409 #454648); 219 | } 220 | 221 | QScrollBar:vertical { 222 | width:10px; 223 | background-color:rgba(0,0,0,0%); 224 | padding-top:10px; 225 | padding-bottom:10px; 226 | } 227 | 228 | QScrollBar:horizontal { 229 | height:10px; 230 | background-color:rgba(0,0,0,0%); 231 | padding-left:10px; padding-right:10px; 232 | } 233 | 234 | QScrollBar::handle:vertical { 235 | width:10px; 236 | background: qlineargradient(spread:pad, x1:0, y1:0, x2:0, y2:1, stop:0 #B8B8B8, stop:1 #D6D6D6); 237 | } 238 | 239 | QScrollBar::handle:horizontal { 240 | height:10px; 241 | background: qlineargradient(spread:pad, x1:0, y1:0, x2:0, y2:1, stop:0 #B8B8B8, stop:1 #D6D6D6); 242 | } 243 | 244 | QScrollBar::handle:vertical:hover { 245 | width:10px; 246 | background: qlineargradient(spread:pad, x1:0, y1:0, x2:0, y2:1, stop:0 #454648, stop:1 #7A7A7A); 247 | } 248 | 249 | QScrollBar::handle:horizontal:hover { 250 | height:10px; 251 | background: qlineargradient(spread:pad, x1:0, y1:0, x2:0, y2:1, stop:0 #454648, stop:1 #7A7A7A); 252 | } 253 | 254 | QScrollBar::add-line:vertical { 255 | height:10px; 256 | width:10px; 257 | subcontrol-position: bottom; 258 | subcontrol-origin: margin; 259 | border-image:url(:/qss_icons/img_rc/add-line_vertical.png); 260 | } 261 | 262 | QScrollBar::add-line:horizontal { 263 | height:10px; 264 | width:10px; 265 | subcontrol-position: right; 266 | subcontrol-origin: margin; 267 | border-image:url(:/qss_icons/img_rc/add-line_horizontal.png); 268 | } 269 | 270 | QScrollBar::sub-line:vertical { 271 | height:10px; 272 | width:10px; 273 | subcontrol-position: top; 274 | subcontrol-origin: margin; 275 | border-image:url(:/qss_icons/img_rc/sub-line_vertical.png); 276 | } 277 | 278 | QScrollBar::sub-line:horizontal { 279 | height:10px; 280 | width:10px; 281 | subcontrol-position: left; 282 | subcontrol-origin: margin; 283 | border-image:url(:/qss_icons/img_rc/sub-line_horizontal.png); 284 | } 285 | 286 | QScrollBar::add-page:vertical,QScrollBar::sub-page:vertical { 287 | width:10px; 288 | background: #C0C0C0; 289 | } 290 | 291 | QScrollBar::add-page:horizontal,QScrollBar::sub-page:horizontal { 292 | height:10px; 293 | background: #C0C0C0; 294 | } 295 | 296 | QScrollArea { 297 | border: 0px ; 298 | } 299 | 300 | QTreeView,QListView,QTableView{ 301 | border: 1px solid #B8B8B8; 302 | selection-background-color: #454648; 303 | selection-color: #F0F0F0; 304 | } 305 | 306 | QTableView::item:selected, QListView::item:selected, QTreeView::item:selected { 307 | color: #F0F0F0; 308 | background: qlineargradient(spread:pad, x1:0, y1:0, x2:0, y2:1, stop:0 #454648, stop:1 #7A7A7A); 309 | } 310 | 311 | QTableView::item:hover, QListView::item:hover, QTreeView::item:hover { 312 | color: #F0F0F0; 313 | background: qlineargradient(spread:pad, x1:0, y1:0, x2:0, y2:1, stop:0 #B8B8B8, stop:1 #D6D6D6); 314 | } 315 | 316 | QTableView::item, QListView::item, QTreeView::item { 317 | padding: 5px; 318 | margin: 0px; 319 | } 320 | 321 | QHeaderView::section { 322 | padding:3px; 323 | margin:0px; 324 | color:#F0F0F0; 325 | border: 1px solid #F0F0F0; 326 | background: qlineargradient(spread:pad, x1:0, y1:0, x2:0, y2:1, stop:0 #B8B8B8, stop:1 #D6D6D6); 327 | } 328 | 329 | QTabBar::tab { 330 | border-bottom-left-radius:0px; 331 | border-bottom-right-radius:0px; 332 | color: #F0F0F0; 333 | min-width: 60px; 334 | min-height: 20px; 335 | padding: 3px 8px 3px 8px; 336 | margin:1px; 337 | background: qlineargradient(spread:pad, x1:0, y1:0, x2:0, y2:1, stop:0 #B8B8B8, stop:1 #D6D6D6); 338 | } 339 | 340 | QTabBar::tab:selected, QTabBar::tab:hover { 341 | background: qlineargradient(spread:pad, x1:0, y1:0, x2:0, y2:1, stop:0 #454648, stop:1 #7A7A7A); 342 | } 343 | 344 | QStatusBar::item { 345 | border: 1px solid #B8B8B8; 346 | border-radius: 3px; 347 | } -------------------------------------------------------------------------------- /PyQt5_stylesheets/style_gray.qrc: -------------------------------------------------------------------------------- 1 | 2 | 3 | img_rc/add-line_horizontal.png 4 | img_rc/add-line_vertical.png 5 | img_rc/array_down.png 6 | img_rc/checkbox_checked.png 7 | img_rc/checkbox_unchecked.png 8 | img_rc/radio_normal.png 9 | img_rc/radio_selected.png 10 | img_rc/sub-line_horizontal.png 11 | img_rc/sub-line_vertical.png 12 | 13 | 14 | style_gray.css 15 | 16 | 17 | -------------------------------------------------------------------------------- /PyQt5_stylesheets/style_navy.css: -------------------------------------------------------------------------------- 1 | QWidget#frmLogin,QWidget#frmPopup,QWidget#frmHostInfo,QWidget#frmLogout,QWidget#frmConfig,QWidget#frmData,QWidget#frmDefence,QWidget#frmHost,QWidget#frmMain,QWidget#frmPwd,QWidget#frmSelect,QWidget#frmMessageBox{ 2 | border:1px solid #0F7DBE; 3 | border-radius:0px; 4 | } 5 | 6 | .QFrame{ 7 | border:1px solid #50A3F0; 8 | border-radius:5px; 9 | } 10 | 11 | QWidget#widget_title{ 12 | background: qlineargradient(spread:pad, x1:0, y1:0, x2:0, y2:1, stop:0 #0F7DBE, stop:1 #1582C3); 13 | } 14 | 15 | QLabel#lab_Ico,QLabel#lab_Title{ 16 | border-radius:0px; 17 | color: #F0F0F0; 18 | background-color:rgba(0,0,0,0); 19 | border-style:none; 20 | } 21 | 22 | QLineEdit { 23 | border: 1px solid #50A3F0; 24 | border-radius: 5px; 25 | padding: 2px; 26 | background: none; 27 | selection-background-color: #0F7DBE; 28 | } 29 | 30 | QLineEdit[echoMode="2"] { 31 | lineedit-password-character: 9679; 32 | } 33 | 34 | .QGroupBox{ 35 | border: 1px solid #50A3F0; 36 | border-radius: 5px; 37 | } 38 | 39 | .QPushButton{ 40 | border-style: none; 41 | border: 0px; 42 | color: #F0F0F0; 43 | padding: 5px; 44 | min-height: 20px; 45 | border-radius:5px; 46 | background: qlineargradient(spread:pad, x1:0, y1:0, x2:0, y2:1, stop:0 #0F7DBE, stop:1 #1582C3); 47 | } 48 | 49 | .QPushButton[focusPolicy="0"] { 50 | border-style: none; 51 | border: 0px; 52 | color: #F0F0F0; 53 | padding: 0px; 54 | min-height: 10px; 55 | border-radius:3px; 56 | background: qlineargradient(spread:pad, x1:0, y1:0, x2:0, y2:1, stop:0 #0F7DBE, stop:1 #1582C3); 57 | } 58 | 59 | .QPushButton:hover{ 60 | background: qlineargradient(spread:pad, x1:0, y1:0, x2:0, y2:1, stop:0 #50A3F0, stop:1 #489CEA); 61 | } 62 | 63 | .QPushButton:pressed{ 64 | background: qlineargradient(spread:pad, x1:0, y1:0, x2:0, y2:1, stop:0 #0F7DBE, stop:1 #1582C3); 65 | } 66 | 67 | QPushButton#btnMenu,QPushButton#btnMenu_Min,QPushButton#btnMenu_Max,QPushButton#btnMenu_Close{ 68 | border-radius:0px; 69 | color: #F0F0F0; 70 | background-color:rgba(0,0,0,0); 71 | border-style:none; 72 | } 73 | 74 | QPushButton#btnMenu:hover,QPushButton#btnMenu_Min:hover,QPushButton#btnMenu_Max:hover{ 75 | background-color: qlineargradient(spread:pad, x1:0, y1:1, x2:0, y2:0, stop:0 rgba(25, 134, 199, 0), stop:1 #50A3F0); 76 | } 77 | 78 | QPushButton#btnMenu_Close:hover{ 79 | background-color: qlineargradient(spread:pad, x1:0, y1:1, x2:0, y2:0, stop:0 rgba(238, 0, 0, 128), stop:1 rgba(238, 44, 44, 255)); 80 | } 81 | 82 | QCheckBox { 83 | spacing: 2px; 84 | } 85 | 86 | QCheckBox::indicator { 87 | width: 20px; 88 | height: 20px; 89 | } 90 | 91 | QCheckBox::indicator:unchecked { 92 | image: url(:/qss_icons/img_rc/checkbox_unchecked.png); 93 | } 94 | 95 | QCheckBox::indicator:checked { 96 | image: url(:/qss_icons/img_rc/checkbox_checked.png); 97 | } 98 | 99 | QRadioButton { 100 | spacing: 2px; 101 | } 102 | 103 | QRadioButton::indicator { 104 | width: 15px; 105 | height: 15px; 106 | } 107 | 108 | QRadioButton::indicator::unchecked { 109 | image: url(:/qss_icons/img_rc/radio_normal.png); 110 | } 111 | 112 | QRadioButton::indicator::checked { 113 | image: url(:/qss_icons/img_rc/radio_selected.png); 114 | } 115 | 116 | QComboBox,QDateEdit{ 117 | border-radius: 3px; 118 | padding: 1px 10px 1px 5px; 119 | border: 1px solid #50A3F0; 120 | } 121 | 122 | QComboBox::drop-down,QDateEdit::drop-down { 123 | subcontrol-origin: padding; 124 | subcontrol-position: top right; 125 | width: 15px; 126 | border-left-width: 1px; 127 | border-left-style: solid; 128 | border-top-right-radius: 3px; 129 | border-bottom-right-radius: 3px; 130 | border-left-color: #50A3F0; 131 | } 132 | 133 | QComboBox::down-arrow,QDateEdit::down-arrow { 134 | image: url(:/qss_icons/img_rc/array_down.png); 135 | } 136 | 137 | QMenu { 138 | background-color:#F0F0F0; 139 | margin: 2px; 140 | } 141 | 142 | QMenu::item { 143 | padding: 2px 12px 2px 12px; 144 | } 145 | 146 | QMenu::indicator { 147 | width: 13px; 148 | height: 13px; 149 | } 150 | 151 | QMenu::item:selected { 152 | color: #F0F0F0; 153 | background: qlineargradient(spread:pad, x1:0, y1:0, x2:0, y2:1, stop:0 #0F7DBE, stop:1 #1582C3); 154 | } 155 | 156 | QMenu::separator { 157 | height: 1px; 158 | background: #50A3F0; 159 | } 160 | 161 | QProgressBar { 162 | border-radius: 5px; 163 | text-align: center; 164 | border: 1px solid #50A3F0; 165 | } 166 | 167 | QProgressBar::chunk { 168 | width: 5px; 169 | margin: 0.5px; 170 | background-color: #0F7DBE; 171 | } 172 | 173 | QSlider::groove:horizontal,QSlider::add-page:horizontal { 174 | background: #808080; 175 | height: 8px; 176 | border-radius: 3px; 177 | } 178 | 179 | QSlider::sub-page:horizontal { 180 | height: 8px; 181 | border-radius: 3px; 182 | background: qlineargradient(spread:pad, x1:0, y1:0, x2:0, y2:1, stop:0 #0F7DBE, stop:1 #1582C3); 183 | } 184 | 185 | QSlider::handle:horizontal { 186 | width: 13px; 187 | margin-top: -3px; 188 | margin-bottom: -3px; 189 | border-radius: 6px; 190 | background: qradialgradient(spread:pad, cx:0.5, cy:0.5, radius:0.5, fx:0.5, fy:0.5,stop:0.6 #F0F0F0, stop:0.778409 #50A3F0); 191 | } 192 | 193 | QSlider::handle:horizontal:hover { 194 | background: qradialgradient(spread: pad, cx: 0.5, cy: 0.5, radius: 0.5, fx: 0.5, fy: 0.5, stop: 0.6 #F0F0F0,stop:0.778409 #0F7DBE); 195 | } 196 | 197 | QSlider::groove:vertical,QSlider::sub-page:vertical { 198 | background:#808080; 199 | width: 8px; 200 | border-radius: 3px; 201 | } 202 | 203 | QSlider::add-page:vertical { 204 | width: 8px; 205 | border-radius: 3px; 206 | background: qlineargradient(spread:pad, x1:0, y1:0, x2:0, y2:1, stop:0 #0F7DBE, stop:1 #1582C3); 207 | } 208 | 209 | QSlider::handle:vertical { 210 | height: 14px; 211 | margin-left: -3px; 212 | margin-right: -3px; 213 | border-radius: 6px; 214 | background: qradialgradient(spread: pad, cx: 0.5, cy: 0.5, radius: 0.5, fx: 0.5, fy: 0.5, stop: 0.6 #F0F0F0, stop:0.778409 #50A3F0); 215 | } 216 | 217 | QSlider::handle:vertical:hover { 218 | background: qradialgradient(spread: pad, cx: 0.5, cy: 0.5, radius: 0.5, fx: 0.5, fy: 0.5, stop: 0.6 #F0F0F0,stop:0.778409 #0F7DBE); 219 | } 220 | 221 | QScrollBar:vertical { 222 | width:10px; 223 | background-color:rgba(0,0,0,0%); 224 | padding-top:10px; 225 | padding-bottom:10px; 226 | } 227 | 228 | QScrollBar:horizontal { 229 | height:10px; 230 | background-color:rgba(0,0,0,0%); 231 | padding-left:10px; padding-right:10px; 232 | } 233 | 234 | QScrollBar::handle:vertical { 235 | width:10px; 236 | background: qlineargradient(spread:pad, x1:0, y1:0, x2:0, y2:1, stop:0 #50A3F0, stop:1 #489CEA); 237 | } 238 | 239 | QScrollBar::handle:horizontal { 240 | height:10px; 241 | background: qlineargradient(spread:pad, x1:0, y1:0, x2:0, y2:1, stop:0 #50A3F0, stop:1 #489CEA); 242 | } 243 | 244 | QScrollBar::handle:vertical:hover { 245 | width:10px; 246 | background: qlineargradient(spread:pad, x1:0, y1:0, x2:0, y2:1, stop:0 #0F7DBE, stop:1 #1582C3); 247 | } 248 | 249 | QScrollBar::handle:horizontal:hover { 250 | height:10px; 251 | background: qlineargradient(spread:pad, x1:0, y1:0, x2:0, y2:1, stop:0 #0F7DBE, stop:1 #1582C3); 252 | } 253 | 254 | QScrollBar::add-line:vertical { 255 | height:10px; 256 | width:10px; 257 | subcontrol-position: bottom; 258 | subcontrol-origin: margin; 259 | border-image:url(:/qss_icons/img_rc/add-line_vertical.png); 260 | } 261 | 262 | QScrollBar::add-line:horizontal { 263 | height:10px; 264 | width:10px; 265 | subcontrol-position: right; 266 | subcontrol-origin: margin; 267 | border-image:url(:/qss_icons/img_rc/add-line_horizontal.png); 268 | } 269 | 270 | QScrollBar::sub-line:vertical { 271 | height:10px; 272 | width:10px; 273 | subcontrol-position: top; 274 | subcontrol-origin: margin; 275 | border-image:url(:/qss_icons/img_rc/sub-line_vertical.png); 276 | } 277 | 278 | QScrollBar::sub-line:horizontal { 279 | height:10px; 280 | width:10px; 281 | subcontrol-position: left; 282 | subcontrol-origin: margin; 283 | border-image:url(:/qss_icons/img_rc/sub-line_horizontal.png); 284 | } 285 | 286 | QScrollBar::add-page:vertical,QScrollBar::sub-page:vertical { 287 | width:10px; 288 | background: #C0C0C0; 289 | } 290 | 291 | QScrollBar::add-page:horizontal,QScrollBar::sub-page:horizontal { 292 | height:10px; 293 | background: #C0C0C0; 294 | } 295 | 296 | QScrollArea { 297 | border: 0px ; 298 | } 299 | 300 | QTreeView,QListView,QTableView{ 301 | border: 1px solid #50A3F0; 302 | selection-background-color: #0F7DBE; 303 | selection-color: #F0F0F0; 304 | } 305 | 306 | QTableView::item:selected, QListView::item:selected, QTreeView::item:selected { 307 | color: #F0F0F0; 308 | background: qlineargradient(spread:pad, x1:0, y1:0, x2:0, y2:1, stop:0 #0F7DBE, stop:1 #1582C3); 309 | } 310 | 311 | QTableView::item:hover, QListView::item:hover, QTreeView::item:hover { 312 | color: #F0F0F0; 313 | background: qlineargradient(spread:pad, x1:0, y1:0, x2:0, y2:1, stop:0 #50A3F0, stop:1 #489CEA); 314 | } 315 | 316 | QTableView::item, QListView::item, QTreeView::item { 317 | padding: 5px; 318 | margin: 0px; 319 | } 320 | 321 | QHeaderView::section { 322 | padding:3px; 323 | margin:0px; 324 | color:#F0F0F0; 325 | border: 1px solid #F0F0F0; 326 | background: qlineargradient(spread:pad, x1:0, y1:0, x2:0, y2:1, stop:0 #50A3F0, stop:1 #489CEA); 327 | } 328 | 329 | QTabBar::tab { 330 | border-bottom-left-radius:0px; 331 | border-bottom-right-radius:0px; 332 | color: #F0F0F0; 333 | min-width: 60px; 334 | min-height: 20px; 335 | padding: 3px 8px 3px 8px; 336 | margin:1px; 337 | background: qlineargradient(spread:pad, x1:0, y1:0, x2:0, y2:1, stop:0 #50A3F0, stop:1 #489CEA); 338 | } 339 | 340 | QTabBar::tab:selected, QTabBar::tab:hover { 341 | background: qlineargradient(spread:pad, x1:0, y1:0, x2:0, y2:1, stop:0 #0F7DBE, stop:1 #1582C3); 342 | } 343 | 344 | QStatusBar::item { 345 | border: 1px solid #50A3F0; 346 | border-radius: 3px; 347 | } -------------------------------------------------------------------------------- /PyQt5_stylesheets/style_navy.qrc: -------------------------------------------------------------------------------- 1 | 2 | 3 | img_rc/add-line_horizontal.png 4 | img_rc/add-line_vertical.png 5 | img_rc/array_down.png 6 | img_rc/checkbox_checked.png 7 | img_rc/checkbox_unchecked.png 8 | img_rc/radio_normal.png 9 | img_rc/radio_selected.png 10 | img_rc/sub-line_horizontal.png 11 | img_rc/sub-line_vertical.png 12 | 13 | 14 | style_navy.css 15 | 16 | 17 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | PyQt5_stylesheetssheet 2 | ================== 3 | skin include: 4 | style_blue 5 | style_black 6 | style_Classic 7 | style_Dark 8 | style_DarkOrange 9 | style_gray 10 | style_navy 11 | 12 | 13 | these stylesheet for Qt applications (PyQt5). 14 | 15 | 16 | License 17 | =========== 18 | 19 | This project is licensed under the MIT license. 20 | 21 | 22 | Installation 23 | ============== 24 | 25 | Python 26 | ----------- 27 | 28 | Install ``PyQt5_stylesheets`` package using the *setup* script or using *pip*: 29 | 30 | ```bash 31 | python setup.py install 32 | ``` 33 | 34 | or 35 | 36 | ```bash 37 | pip install PyQt5_stylesheets 38 | ``` 39 | 40 | Usage 41 | ============ 42 | ```Python 43 | 44 | import PyQt5_stylesheets 45 | app.setStyleSheet(PyQt5_stylesheets.load_stylesheet_pyqt5(style="style_black")) 46 | ``` 47 | ```Python 48 | 49 | import PyQt5_stylesheets 50 | class yourDialog(QDialog): 51 | def __init__(self,parent=None): 52 | supper(QDialog,self).__init__(parent): 53 | self.setStyleSheet(PyQt5_stylesheets.load_stylesheet_pyqt5(style="style_black")) 54 | ... 55 | ... 56 | ``` 57 | 58 | style Include 59 | ============ 60 | `style_blue` 61 | `style_black` 62 | `style_Classic` 63 | `style_Dark` 64 | `style_DarkOrange` 65 | `style_gray` 66 | `style_navy` 67 | 68 | 69 | Contact information: 70 | ========================= 71 | 72 | - Maintainer: 13693421942@163.com 73 | - Homepage: https://github.com/xiongbigboss/PyQt5_stylesheets.git 74 | 75 | 76 | Snapshots 77 | ================= 78 | 79 | Here are a few snapshots: 80 | 81 | ![alt text](/screenshots/example.png "example") 82 | ![alt text](/screenshots/example1.png "example1") 83 | ![alt text](/screenshots/example2.png "example2") 84 | ![alt text](/screenshots/example3.png "example3") 85 | ![alt text](/screenshots/example4.png "example4") 86 | ![alt text](/screenshots/example5.png "example5") 87 | 88 | -------------------------------------------------------------------------------- /example/example_pyqt.py: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env python 2 | # 3 | # The MIT License (MIT) 4 | # 5 | # Copyright (c) <2013-2014> 6 | # 7 | # Permission is hereby granted, free of charge, to any person obtaining a copy 8 | # of this software and associated documentation files (the "Software"), to deal 9 | # in the Software without restriction, including without limitation the rights 10 | # to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 11 | # copies of the Software, and to permit persons to whom the Software is 12 | # furnished to do so, subject to the following conditions: 13 | # 14 | # The above copyright notice and this permission notice shall be included in 15 | # all copies or substantial portions of the Software. 16 | # 17 | # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 18 | # IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 19 | # FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 20 | # AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 21 | # LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 22 | # OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 23 | # THE SOFTWARE. 24 | # 25 | """ 26 | A simple example of use. 27 | 28 | Load an ui made in QtDesigner and apply the DarkStyleSheet. 29 | 30 | 31 | Requirements: 32 | - Python 2 or Python 3 33 | - PyQt4 34 | 35 | .. note.. :: qdarkstyle does not have to be installed to run 36 | the example 37 | 38 | """ 39 | import logging 40 | import sys 41 | from PyQt4 import QtGui, QtCore 42 | # make the example runnable without the need to install 43 | from os.path import abspath, dirname 44 | sys.path.insert(0, abspath(dirname(abspath(__file__)) + '/..')) 45 | 46 | import qdarkstyle 47 | import ui.example_pyqt_ui as example_ui 48 | 49 | 50 | def main(): 51 | """ 52 | Application entry point 53 | """ 54 | logging.basicConfig(level=logging.DEBUG) 55 | # create the application and the main window 56 | app = QtGui.QApplication(sys.argv) 57 | window = QtGui.QMainWindow() 58 | 59 | # setup ui 60 | ui = example_ui.Ui_MainWindow() 61 | ui.setupUi(window) 62 | ui.bt_delay_popup.addActions([ 63 | ui.actionAction, 64 | ui.actionAction_C 65 | ]) 66 | ui.bt_instant_popup.addActions([ 67 | ui.actionAction, 68 | ui.actionAction_C 69 | ]) 70 | ui.bt_menu_button_popup.addActions([ 71 | ui.actionAction, 72 | ui.actionAction_C 73 | ]) 74 | window.setWindowTitle("QDarkStyle example") 75 | 76 | # tabify dock widgets to show bug #6 77 | window.tabifyDockWidget(ui.dockWidget1, ui.dockWidget2) 78 | 79 | # setup stylesheet 80 | app.setStyleSheet(qdarkstyle.load_stylesheet(pyside=False)) 81 | 82 | # auto quit after 2s when testing on travis-ci 83 | if "--travis" in sys.argv: 84 | QtCore.QTimer.singleShot(2000, app.exit) 85 | 86 | # run 87 | window.show() 88 | app.exec_() 89 | 90 | 91 | if __name__ == "__main__": 92 | main() 93 | -------------------------------------------------------------------------------- /example/example_pyqt5.py: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env python 2 | # 3 | # The MIT License (MIT) 4 | # 5 | # Copyright (c) <2013-2014> 6 | # 7 | # Permission is hereby granted, free of charge, to any person obtaining a copy 8 | # of this software and associated documentation files (the "Software"), to deal 9 | # in the Software without restriction, including without limitation the rights 10 | # to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 11 | # copies of the Software, and to permit persons to whom the Software is 12 | # furnished to do so, subject to the following conditions: 13 | # 14 | # The above copyright notice and this permission notice shall be included in 15 | # all copies or substantial portions of the Software. 16 | # 17 | # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 18 | # IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 19 | # FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 20 | # AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 21 | # LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 22 | # OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 23 | # THE SOFTWARE. 24 | # 25 | """ 26 | A simple example of use. 27 | 28 | Load an ui made in QtDesigner and apply the DarkStyleSheet. 29 | 30 | 31 | Requirements: 32 | - Python 2 or Python 3 33 | - PyQt4 34 | 35 | .. note.. :: qdarkstyle does not have to be installed to run 36 | the example 37 | 38 | """ 39 | import logging 40 | import sys 41 | from PyQt5 import QtWidgets, QtCore 42 | # make the example runnable without the need to install 43 | from os.path import abspath, dirname 44 | sys.path.insert(0, abspath(dirname(abspath(__file__)) + '/..')) 45 | 46 | import PyQt5_stylesheets 47 | import ui.example_pyqt5_ui as example_ui 48 | 49 | 50 | def main(): 51 | """ 52 | Application entry point 53 | """ 54 | logging.basicConfig(level=logging.DEBUG) 55 | # create the application and the main window 56 | app = QtWidgets.QApplication(sys.argv) 57 | window = QtWidgets.QMainWindow() 58 | 59 | # setup ui 60 | ui = example_ui.Ui_MainWindow() 61 | ui.setupUi(window) 62 | ui.bt_delay_popup.addActions([ 63 | ui.actionAction, 64 | ui.actionAction_C 65 | ]) 66 | ui.bt_instant_popup.addActions([ 67 | ui.actionAction, 68 | ui.actionAction_C 69 | ]) 70 | ui.bt_menu_button_popup.addActions([ 71 | ui.actionAction, 72 | ui.actionAction_C 73 | ]) 74 | window.setWindowTitle("QDarkStyle example") 75 | 76 | # tabify dock widgets to show bug #6 77 | window.tabifyDockWidget(ui.dockWidget1, ui.dockWidget2) 78 | 79 | # setup stylesheet 80 | app.setStyleSheet(PyQt5_stylesheets.load_stylesheet_pyqt5(style="style_black")) 81 | 82 | # auto quit after 2s when testing on travis-ci 83 | if "--travis" in sys.argv: 84 | QtCore.QTimer.singleShot(2000, app.exit) 85 | 86 | # run 87 | window.show() 88 | app.exec_() 89 | 90 | 91 | if __name__ == "__main__": 92 | main() 93 | -------------------------------------------------------------------------------- /example/example_pyside.py: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env python 2 | # 3 | # The MIT License (MIT) 4 | # 5 | # Copyright (c) <2013-2014> 6 | # 7 | # Permission is hereby granted, free of charge, to any person obtaining a copy 8 | # of this software and associated documentation files (the "Software"), to deal 9 | # in the Software without restriction, including without limitation the rights 10 | # to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 11 | # copies of the Software, and to permit persons to whom the Software is 12 | # furnished to do so, subject to the following conditions: 13 | # 14 | # The above copyright notice and this permission notice shall be included in 15 | # all copies or substantial portions of the Software. 16 | # 17 | # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 18 | # IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 19 | # FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 20 | # AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 21 | # LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 22 | # OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 23 | # THE SOFTWARE. 24 | # 25 | """ 26 | A simple example of use. 27 | 28 | Load an ui made in QtDesigner and apply the DarkStyleSheet. 29 | 30 | 31 | Requirements: 32 | - Python 2 or Python 3 33 | - PySide 34 | 35 | .. note.. :: qdarkstyle does not have to be installed to run 36 | the example 37 | 38 | """ 39 | import logging 40 | import sys 41 | from PySide import QtGui, QtCore 42 | # make the example runnable without the need to install 43 | from os.path import abspath, dirname 44 | sys.path.insert(0, abspath(dirname(abspath(__file__)) + '/..')) 45 | 46 | import qdarkstyle 47 | import ui.example_pyside_ui as example_ui 48 | 49 | 50 | def main(): 51 | """ 52 | Application entry point 53 | """ 54 | logging.basicConfig(level=logging.DEBUG) 55 | # create the application and the main window 56 | app = QtGui.QApplication(sys.argv) 57 | window = QtGui.QMainWindow() 58 | 59 | # setup ui 60 | ui = example_ui.Ui_MainWindow() 61 | ui.setupUi(window) 62 | ui.bt_delay_popup.addActions([ 63 | ui.actionAction, 64 | ui.actionAction_C 65 | ]) 66 | ui.bt_instant_popup.addActions([ 67 | ui.actionAction, 68 | ui.actionAction_C 69 | ]) 70 | ui.bt_menu_button_popup.addActions([ 71 | ui.actionAction, 72 | ui.actionAction_C 73 | ]) 74 | window.setWindowTitle("QDarkStyle example") 75 | 76 | # tabify dock widgets to show bug #6 77 | window.tabifyDockWidget(ui.dockWidget1, ui.dockWidget2) 78 | 79 | # setup stylesheet 80 | app.setStyleSheet(qdarkstyle.load_stylesheet(pyside=True)) 81 | 82 | # auto quit after 2s when testing on travis-ci 83 | if "--travis" in sys.argv: 84 | QtCore.QTimer.singleShot(2000, app.exit) 85 | 86 | # run 87 | window.show() 88 | app.exec_() 89 | 90 | 91 | if __name__ == "__main__": 92 | main() 93 | -------------------------------------------------------------------------------- /example/ui/__init__.py: -------------------------------------------------------------------------------- 1 | """ 2 | This package contains the qt designer files and ui scripts. 3 | """ -------------------------------------------------------------------------------- /example/ui/compile_ui.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | # Compile example.ui for PyQt and PySide. 3 | pyuic4 --from-imports example.ui > example_pyqt_ui.py 4 | pyuic5 --from-imports example.ui > example_pyqt5_ui.py 5 | pyside-uic --from-imports example.ui > example_pyside_ui.py 6 | -------------------------------------------------------------------------------- /example/ui/example.py: -------------------------------------------------------------------------------- 1 | # -*- coding: utf-8 -*- 2 | 3 | # Form implementation generated from reading ui file 'example.ui' 4 | # 5 | # Created: Sat Dec 3 14:05:30 2016 6 | # by: PyQt5 UI code generator 5.4 7 | # 8 | # WARNING! All changes made in this file will be lost! 9 | 10 | from PyQt5 import QtCore, QtGui, QtWidgets 11 | 12 | class Ui_MainWindow(object): 13 | def setupUi(self, MainWindow): 14 | MainWindow.setObjectName("MainWindow") 15 | MainWindow.resize(1068, 824) 16 | self.centralwidget = QtWidgets.QWidget(MainWindow) 17 | self.centralwidget.setObjectName("centralwidget") 18 | self.verticalLayout_5 = QtWidgets.QVBoxLayout(self.centralwidget) 19 | self.verticalLayout_5.setObjectName("verticalLayout_5") 20 | self.tabWidget = QtWidgets.QTabWidget(self.centralwidget) 21 | self.tabWidget.setTabPosition(QtWidgets.QTabWidget.East) 22 | self.tabWidget.setTabsClosable(True) 23 | self.tabWidget.setObjectName("tabWidget") 24 | self.tab = QtWidgets.QWidget() 25 | self.tab.setObjectName("tab") 26 | self.gridLayout = QtWidgets.QGridLayout(self.tab) 27 | self.gridLayout.setObjectName("gridLayout") 28 | self.groupBox = QtWidgets.QGroupBox(self.tab) 29 | self.groupBox.setObjectName("groupBox") 30 | self.verticalLayout_3 = QtWidgets.QVBoxLayout(self.groupBox) 31 | self.verticalLayout_3.setObjectName("verticalLayout_3") 32 | self.toolBox = QtWidgets.QToolBox(self.groupBox) 33 | self.toolBox.setObjectName("toolBox") 34 | self.page = QtWidgets.QWidget() 35 | self.page.setGeometry(QtCore.QRect(0, 0, 705, 242)) 36 | self.page.setObjectName("page") 37 | self.gridLayout_4 = QtWidgets.QGridLayout(self.page) 38 | self.gridLayout_4.setObjectName("gridLayout_4") 39 | self.lineEdit = QtWidgets.QLineEdit(self.page) 40 | self.lineEdit.setObjectName("lineEdit") 41 | self.gridLayout_4.addWidget(self.lineEdit, 0, 0, 1, 1) 42 | self.toolBox.addItem(self.page, "") 43 | self.page_2 = QtWidgets.QWidget() 44 | self.page_2.setGeometry(QtCore.QRect(0, 0, 726, 242)) 45 | self.page_2.setObjectName("page_2") 46 | self.gridLayout_5 = QtWidgets.QGridLayout(self.page_2) 47 | self.gridLayout_5.setObjectName("gridLayout_5") 48 | self.listWidget = QtWidgets.QListWidget(self.page_2) 49 | self.listWidget.setObjectName("listWidget") 50 | item = QtWidgets.QListWidgetItem() 51 | self.listWidget.addItem(item) 52 | item = QtWidgets.QListWidgetItem() 53 | self.listWidget.addItem(item) 54 | item = QtWidgets.QListWidgetItem() 55 | self.listWidget.addItem(item) 56 | item = QtWidgets.QListWidgetItem() 57 | self.listWidget.addItem(item) 58 | item = QtWidgets.QListWidgetItem() 59 | self.listWidget.addItem(item) 60 | item = QtWidgets.QListWidgetItem() 61 | self.listWidget.addItem(item) 62 | item = QtWidgets.QListWidgetItem() 63 | self.listWidget.addItem(item) 64 | item = QtWidgets.QListWidgetItem() 65 | self.listWidget.addItem(item) 66 | self.gridLayout_5.addWidget(self.listWidget, 0, 0, 1, 1) 67 | self.toolBox.addItem(self.page_2, "") 68 | self.verticalLayout_3.addWidget(self.toolBox) 69 | self.gridLayout.addWidget(self.groupBox, 1, 0, 1, 1) 70 | self.tabWidget_2 = QtWidgets.QTabWidget(self.tab) 71 | self.tabWidget_2.setObjectName("tabWidget_2") 72 | self.tab_3 = QtWidgets.QWidget() 73 | self.tab_3.setObjectName("tab_3") 74 | self.gridLayout_6 = QtWidgets.QGridLayout(self.tab_3) 75 | self.gridLayout_6.setObjectName("gridLayout_6") 76 | self.checkableButton = QtWidgets.QPushButton(self.tab_3) 77 | self.checkableButton.setCheckable(True) 78 | self.checkableButton.setChecked(True) 79 | self.checkableButton.setObjectName("checkableButton") 80 | self.gridLayout_6.addWidget(self.checkableButton, 1, 0, 1, 1) 81 | self.pushButton = QtWidgets.QPushButton(self.tab_3) 82 | self.pushButton.setObjectName("pushButton") 83 | self.gridLayout_6.addWidget(self.pushButton, 0, 0, 1, 1) 84 | self.pushButton_5 = QtWidgets.QPushButton(self.tab_3) 85 | self.pushButton_5.setObjectName("pushButton_5") 86 | self.gridLayout_6.addWidget(self.pushButton_5, 2, 0, 1, 1) 87 | self.tabWidget_2.addTab(self.tab_3, "") 88 | self.tab_5 = QtWidgets.QWidget() 89 | self.tab_5.setObjectName("tab_5") 90 | self.gridLayout_7 = QtWidgets.QGridLayout(self.tab_5) 91 | self.gridLayout_7.setObjectName("gridLayout_7") 92 | self.tableWidget = QtWidgets.QTableWidget(self.tab_5) 93 | self.tableWidget.setObjectName("tableWidget") 94 | self.tableWidget.setColumnCount(2) 95 | self.tableWidget.setRowCount(4) 96 | item = QtWidgets.QTableWidgetItem() 97 | self.tableWidget.setVerticalHeaderItem(0, item) 98 | item = QtWidgets.QTableWidgetItem() 99 | self.tableWidget.setVerticalHeaderItem(1, item) 100 | item = QtWidgets.QTableWidgetItem() 101 | self.tableWidget.setVerticalHeaderItem(2, item) 102 | item = QtWidgets.QTableWidgetItem() 103 | self.tableWidget.setVerticalHeaderItem(3, item) 104 | item = QtWidgets.QTableWidgetItem() 105 | self.tableWidget.setHorizontalHeaderItem(0, item) 106 | item = QtWidgets.QTableWidgetItem() 107 | self.tableWidget.setHorizontalHeaderItem(1, item) 108 | self.gridLayout_7.addWidget(self.tableWidget, 0, 0, 1, 1) 109 | self.tabWidget_2.addTab(self.tab_5, "") 110 | self.tab_4 = QtWidgets.QWidget() 111 | self.tab_4.setObjectName("tab_4") 112 | self.tabWidget_2.addTab(self.tab_4, "") 113 | self.gridLayout.addWidget(self.tabWidget_2, 0, 0, 1, 1) 114 | self.dateEdit = QtWidgets.QDateEdit(self.tab) 115 | self.dateEdit.setObjectName("dateEdit") 116 | self.gridLayout.addWidget(self.dateEdit, 2, 0, 1, 1) 117 | self.tabWidget.addTab(self.tab, "") 118 | self.tab_2 = QtWidgets.QWidget() 119 | self.tab_2.setObjectName("tab_2") 120 | self.gridLayout_2 = QtWidgets.QGridLayout(self.tab_2) 121 | self.gridLayout_2.setObjectName("gridLayout_2") 122 | self.groupBox_2 = QtWidgets.QGroupBox(self.tab_2) 123 | self.groupBox_2.setObjectName("groupBox_2") 124 | self.verticalLayout_4 = QtWidgets.QVBoxLayout(self.groupBox_2) 125 | self.verticalLayout_4.setObjectName("verticalLayout_4") 126 | self.label = QtWidgets.QLabel(self.groupBox_2) 127 | self.label.setObjectName("label") 128 | self.verticalLayout_4.addWidget(self.label) 129 | self.radioButton = QtWidgets.QRadioButton(self.groupBox_2) 130 | self.radioButton.setObjectName("radioButton") 131 | self.verticalLayout_4.addWidget(self.radioButton) 132 | self.checkBox = QtWidgets.QCheckBox(self.groupBox_2) 133 | self.checkBox.setObjectName("checkBox") 134 | self.verticalLayout_4.addWidget(self.checkBox) 135 | self.checkBox_2 = QtWidgets.QCheckBox(self.groupBox_2) 136 | self.checkBox_2.setTristate(True) 137 | self.checkBox_2.setObjectName("checkBox_2") 138 | self.verticalLayout_4.addWidget(self.checkBox_2) 139 | self.treeWidget = QtWidgets.QTreeWidget(self.groupBox_2) 140 | self.treeWidget.setObjectName("treeWidget") 141 | item_0 = QtWidgets.QTreeWidgetItem(self.treeWidget) 142 | item_0 = QtWidgets.QTreeWidgetItem(self.treeWidget) 143 | self.verticalLayout_4.addWidget(self.treeWidget) 144 | self.gridLayout_2.addWidget(self.groupBox_2, 0, 0, 1, 1) 145 | self.tabWidget.addTab(self.tab_2, "") 146 | self.verticalLayout_5.addWidget(self.tabWidget) 147 | self.horizontalLayout = QtWidgets.QHBoxLayout() 148 | self.horizontalLayout.setObjectName("horizontalLayout") 149 | self.pushButton_2 = QtWidgets.QPushButton(self.centralwidget) 150 | self.pushButton_2.setObjectName("pushButton_2") 151 | self.horizontalLayout.addWidget(self.pushButton_2) 152 | self.radioButton_2 = QtWidgets.QRadioButton(self.centralwidget) 153 | self.radioButton_2.setObjectName("radioButton_2") 154 | self.horizontalLayout.addWidget(self.radioButton_2) 155 | self.checkBox_3 = QtWidgets.QCheckBox(self.centralwidget) 156 | self.checkBox_3.setObjectName("checkBox_3") 157 | self.horizontalLayout.addWidget(self.checkBox_3) 158 | self.bt_delay_popup = QtWidgets.QToolButton(self.centralwidget) 159 | self.bt_delay_popup.setObjectName("bt_delay_popup") 160 | self.horizontalLayout.addWidget(self.bt_delay_popup) 161 | self.bt_instant_popup = QtWidgets.QToolButton(self.centralwidget) 162 | self.bt_instant_popup.setPopupMode(QtWidgets.QToolButton.InstantPopup) 163 | self.bt_instant_popup.setObjectName("bt_instant_popup") 164 | self.horizontalLayout.addWidget(self.bt_instant_popup) 165 | self.bt_menu_button_popup = QtWidgets.QToolButton(self.centralwidget) 166 | self.bt_menu_button_popup.setPopupMode(QtWidgets.QToolButton.MenuButtonPopup) 167 | self.bt_menu_button_popup.setObjectName("bt_menu_button_popup") 168 | self.horizontalLayout.addWidget(self.bt_menu_button_popup) 169 | self.line_2 = QtWidgets.QFrame(self.centralwidget) 170 | self.line_2.setFrameShape(QtWidgets.QFrame.VLine) 171 | self.line_2.setFrameShadow(QtWidgets.QFrame.Sunken) 172 | self.line_2.setObjectName("line_2") 173 | self.horizontalLayout.addWidget(self.line_2) 174 | self.pushButton_3 = QtWidgets.QPushButton(self.centralwidget) 175 | self.pushButton_3.setEnabled(False) 176 | self.pushButton_3.setObjectName("pushButton_3") 177 | self.horizontalLayout.addWidget(self.pushButton_3) 178 | self.doubleSpinBox = QtWidgets.QDoubleSpinBox(self.centralwidget) 179 | self.doubleSpinBox.setObjectName("doubleSpinBox") 180 | self.horizontalLayout.addWidget(self.doubleSpinBox) 181 | self.toolButton = QtWidgets.QToolButton(self.centralwidget) 182 | self.toolButton.setPopupMode(QtWidgets.QToolButton.InstantPopup) 183 | self.toolButton.setObjectName("toolButton") 184 | self.horizontalLayout.addWidget(self.toolButton) 185 | self.verticalLayout_5.addLayout(self.horizontalLayout) 186 | MainWindow.setCentralWidget(self.centralwidget) 187 | self.menubar = QtWidgets.QMenuBar(MainWindow) 188 | self.menubar.setGeometry(QtCore.QRect(0, 0, 1068, 23)) 189 | self.menubar.setObjectName("menubar") 190 | self.menuMenu = QtWidgets.QMenu(self.menubar) 191 | self.menuMenu.setObjectName("menuMenu") 192 | self.menuSubmenu_2 = QtWidgets.QMenu(self.menuMenu) 193 | self.menuSubmenu_2.setObjectName("menuSubmenu_2") 194 | MainWindow.setMenuBar(self.menubar) 195 | self.statusbar = QtWidgets.QStatusBar(MainWindow) 196 | self.statusbar.setObjectName("statusbar") 197 | MainWindow.setStatusBar(self.statusbar) 198 | self.dockWidget1 = QtWidgets.QDockWidget(MainWindow) 199 | self.dockWidget1.setObjectName("dockWidget1") 200 | self.dockWidgetContents = QtWidgets.QWidget() 201 | self.dockWidgetContents.setObjectName("dockWidgetContents") 202 | self.verticalLayout_2 = QtWidgets.QVBoxLayout(self.dockWidgetContents) 203 | self.verticalLayout_2.setObjectName("verticalLayout_2") 204 | self.verticalLayout = QtWidgets.QVBoxLayout() 205 | self.verticalLayout.setObjectName("verticalLayout") 206 | self.comboBox = QtWidgets.QComboBox(self.dockWidgetContents) 207 | self.comboBox.setObjectName("comboBox") 208 | self.comboBox.addItem("") 209 | self.comboBox.addItem("") 210 | self.verticalLayout.addWidget(self.comboBox) 211 | self.horizontalSlider = QtWidgets.QSlider(self.dockWidgetContents) 212 | self.horizontalSlider.setOrientation(QtCore.Qt.Horizontal) 213 | self.horizontalSlider.setObjectName("horizontalSlider") 214 | self.verticalLayout.addWidget(self.horizontalSlider) 215 | self.textEdit = QtWidgets.QTextEdit(self.dockWidgetContents) 216 | self.textEdit.setObjectName("textEdit") 217 | self.verticalLayout.addWidget(self.textEdit) 218 | self.line = QtWidgets.QFrame(self.dockWidgetContents) 219 | self.line.setFrameShape(QtWidgets.QFrame.HLine) 220 | self.line.setFrameShadow(QtWidgets.QFrame.Sunken) 221 | self.line.setObjectName("line") 222 | self.verticalLayout.addWidget(self.line) 223 | self.progressBar = QtWidgets.QProgressBar(self.dockWidgetContents) 224 | self.progressBar.setProperty("value", 24) 225 | self.progressBar.setObjectName("progressBar") 226 | self.verticalLayout.addWidget(self.progressBar) 227 | self.verticalLayout_2.addLayout(self.verticalLayout) 228 | self.frame = QtWidgets.QFrame(self.dockWidgetContents) 229 | self.frame.setMinimumSize(QtCore.QSize(0, 100)) 230 | self.frame.setFrameShape(QtWidgets.QFrame.StyledPanel) 231 | self.frame.setFrameShadow(QtWidgets.QFrame.Raised) 232 | self.frame.setLineWidth(3) 233 | self.frame.setObjectName("frame") 234 | self.verticalLayout_2.addWidget(self.frame) 235 | self.dockWidget1.setWidget(self.dockWidgetContents) 236 | MainWindow.addDockWidget(QtCore.Qt.DockWidgetArea(1), self.dockWidget1) 237 | self.toolBar = QtWidgets.QToolBar(MainWindow) 238 | self.toolBar.setObjectName("toolBar") 239 | MainWindow.addToolBar(QtCore.Qt.TopToolBarArea, self.toolBar) 240 | self.dockWidget2 = QtWidgets.QDockWidget(MainWindow) 241 | self.dockWidget2.setObjectName("dockWidget2") 242 | self.dockWidgetContents_2 = QtWidgets.QWidget() 243 | self.dockWidgetContents_2.setObjectName("dockWidgetContents_2") 244 | self.gridLayout_3 = QtWidgets.QGridLayout(self.dockWidgetContents_2) 245 | self.gridLayout_3.setObjectName("gridLayout_3") 246 | self.verticalSlider = QtWidgets.QSlider(self.dockWidgetContents_2) 247 | self.verticalSlider.setOrientation(QtCore.Qt.Vertical) 248 | self.verticalSlider.setObjectName("verticalSlider") 249 | self.gridLayout_3.addWidget(self.verticalSlider, 0, 0, 1, 1) 250 | self.dockWidget2.setWidget(self.dockWidgetContents_2) 251 | MainWindow.addDockWidget(QtCore.Qt.DockWidgetArea(1), self.dockWidget2) 252 | self.actionAction = QtWidgets.QAction(MainWindow) 253 | self.actionAction.setObjectName("actionAction") 254 | self.actionSub_menu = QtWidgets.QAction(MainWindow) 255 | self.actionSub_menu.setObjectName("actionSub_menu") 256 | self.actionAction_C = QtWidgets.QAction(MainWindow) 257 | self.actionAction_C.setObjectName("actionAction_C") 258 | self.menuSubmenu_2.addAction(self.actionSub_menu) 259 | self.menuSubmenu_2.addAction(self.actionAction_C) 260 | self.menuMenu.addAction(self.actionAction) 261 | self.menuMenu.addAction(self.menuSubmenu_2.menuAction()) 262 | self.menubar.addAction(self.menuMenu.menuAction()) 263 | self.toolBar.addAction(self.actionAction) 264 | self.toolBar.addAction(self.actionSub_menu) 265 | 266 | self.retranslateUi(MainWindow) 267 | self.tabWidget.setCurrentIndex(0) 268 | self.toolBox.setCurrentIndex(1) 269 | self.tabWidget_2.setCurrentIndex(2) 270 | QtCore.QMetaObject.connectSlotsByName(MainWindow) 271 | MainWindow.setTabOrder(self.pushButton, self.checkableButton) 272 | MainWindow.setTabOrder(self.checkableButton, self.pushButton_5) 273 | MainWindow.setTabOrder(self.pushButton_5, self.tabWidget_2) 274 | MainWindow.setTabOrder(self.tabWidget_2, self.tableWidget) 275 | MainWindow.setTabOrder(self.tableWidget, self.radioButton) 276 | MainWindow.setTabOrder(self.radioButton, self.checkBox) 277 | MainWindow.setTabOrder(self.checkBox, self.checkBox_2) 278 | MainWindow.setTabOrder(self.checkBox_2, self.treeWidget) 279 | MainWindow.setTabOrder(self.treeWidget, self.pushButton_2) 280 | MainWindow.setTabOrder(self.pushButton_2, self.bt_delay_popup) 281 | MainWindow.setTabOrder(self.bt_delay_popup, self.bt_instant_popup) 282 | MainWindow.setTabOrder(self.bt_instant_popup, self.bt_menu_button_popup) 283 | MainWindow.setTabOrder(self.bt_menu_button_popup, self.pushButton_3) 284 | MainWindow.setTabOrder(self.pushButton_3, self.doubleSpinBox) 285 | MainWindow.setTabOrder(self.doubleSpinBox, self.toolButton) 286 | MainWindow.setTabOrder(self.toolButton, self.comboBox) 287 | MainWindow.setTabOrder(self.comboBox, self.horizontalSlider) 288 | MainWindow.setTabOrder(self.horizontalSlider, self.textEdit) 289 | MainWindow.setTabOrder(self.textEdit, self.verticalSlider) 290 | MainWindow.setTabOrder(self.verticalSlider, self.tabWidget) 291 | MainWindow.setTabOrder(self.tabWidget, self.lineEdit) 292 | MainWindow.setTabOrder(self.lineEdit, self.listWidget) 293 | 294 | def retranslateUi(self, MainWindow): 295 | _translate = QtCore.QCoreApplication.translate 296 | MainWindow.setWindowTitle(_translate("MainWindow", "MainWindow")) 297 | self.groupBox.setTitle(_translate("MainWindow", "ToolBox")) 298 | self.toolBox.setItemText(self.toolBox.indexOf(self.page), _translate("MainWindow", "Page 1")) 299 | __sortingEnabled = self.listWidget.isSortingEnabled() 300 | self.listWidget.setSortingEnabled(False) 301 | item = self.listWidget.item(0) 302 | item.setText(_translate("MainWindow", "New Item")) 303 | item = self.listWidget.item(1) 304 | item.setText(_translate("MainWindow", "New Item")) 305 | item = self.listWidget.item(2) 306 | item.setText(_translate("MainWindow", "New Item")) 307 | item = self.listWidget.item(3) 308 | item.setText(_translate("MainWindow", "New Item")) 309 | item = self.listWidget.item(4) 310 | item.setText(_translate("MainWindow", "New Item")) 311 | item = self.listWidget.item(5) 312 | item.setText(_translate("MainWindow", "New Item")) 313 | item = self.listWidget.item(6) 314 | item.setText(_translate("MainWindow", "New Item")) 315 | item = self.listWidget.item(7) 316 | item.setText(_translate("MainWindow", "New Item")) 317 | self.listWidget.setSortingEnabled(__sortingEnabled) 318 | self.toolBox.setItemText(self.toolBox.indexOf(self.page_2), _translate("MainWindow", "Page 2")) 319 | self.checkableButton.setText(_translate("MainWindow", "Checkable button")) 320 | self.pushButton.setText(_translate("MainWindow", "PushButton")) 321 | self.pushButton_5.setText(_translate("MainWindow", "PushButton")) 322 | self.tabWidget_2.setTabText(self.tabWidget_2.indexOf(self.tab_3), _translate("MainWindow", "Tab 1")) 323 | item = self.tableWidget.verticalHeaderItem(0) 324 | item.setText(_translate("MainWindow", "New Row")) 325 | item = self.tableWidget.verticalHeaderItem(1) 326 | item.setText(_translate("MainWindow", "New Row")) 327 | item = self.tableWidget.verticalHeaderItem(2) 328 | item.setText(_translate("MainWindow", "New Row")) 329 | item = self.tableWidget.verticalHeaderItem(3) 330 | item.setText(_translate("MainWindow", "New Row")) 331 | item = self.tableWidget.horizontalHeaderItem(0) 332 | item.setText(_translate("MainWindow", "New Column")) 333 | item = self.tableWidget.horizontalHeaderItem(1) 334 | item.setText(_translate("MainWindow", "New Column 2")) 335 | self.tabWidget_2.setTabText(self.tabWidget_2.indexOf(self.tab_5), _translate("MainWindow", "Page")) 336 | self.tabWidget_2.setTabText(self.tabWidget_2.indexOf(self.tab_4), _translate("MainWindow", "Tab 2")) 337 | self.tabWidget.setTabText(self.tabWidget.indexOf(self.tab), _translate("MainWindow", "Tab 1")) 338 | self.groupBox_2.setTitle(_translate("MainWindow", "GroupBox")) 339 | self.label.setText(_translate("MainWindow", "TextLabel")) 340 | self.radioButton.setText(_translate("MainWindow", "RadioB&utton")) 341 | self.checkBox.setText(_translate("MainWindow", "CheckBox")) 342 | self.checkBox_2.setText(_translate("MainWindow", "CheckBox Tristate")) 343 | self.treeWidget.headerItem().setText(0, _translate("MainWindow", "qdz")) 344 | __sortingEnabled = self.treeWidget.isSortingEnabled() 345 | self.treeWidget.setSortingEnabled(False) 346 | self.treeWidget.topLevelItem(0).setText(0, _translate("MainWindow", "qzd")) 347 | self.treeWidget.topLevelItem(1).setText(0, _translate("MainWindow", "effefe")) 348 | self.treeWidget.setSortingEnabled(__sortingEnabled) 349 | self.tabWidget.setTabText(self.tabWidget.indexOf(self.tab_2), _translate("MainWindow", "Tab 2")) 350 | self.pushButton_2.setText(_translate("MainWindow", "PushButton")) 351 | self.radioButton_2.setText(_translate("MainWindow", "RadioButton")) 352 | self.checkBox_3.setText(_translate("MainWindow", "CheckBox")) 353 | self.bt_delay_popup.setText(_translate("MainWindow", "Delayed popup ")) 354 | self.bt_instant_popup.setText(_translate("MainWindow", "Instant popup")) 355 | self.bt_menu_button_popup.setText(_translate("MainWindow", "MenuButtonPopup")) 356 | self.pushButton_3.setText(_translate("MainWindow", "Disabled")) 357 | self.toolButton.setText(_translate("MainWindow", "...")) 358 | self.menuMenu.setTitle(_translate("MainWindow", "&Menu")) 359 | self.menuSubmenu_2.setTitle(_translate("MainWindow", "&Submenu 2")) 360 | self.dockWidget1.setWindowTitle(_translate("MainWindow", "&Dock widget 1")) 361 | self.comboBox.setItemText(0, _translate("MainWindow", "Item 0")) 362 | self.comboBox.setItemText(1, _translate("MainWindow", "Item 2")) 363 | self.toolBar.setWindowTitle(_translate("MainWindow", "toolBar")) 364 | self.dockWidget2.setWindowTitle(_translate("MainWindow", "Dock widget &2")) 365 | self.actionAction.setText(_translate("MainWindow", "&Action")) 366 | self.actionSub_menu.setText(_translate("MainWindow", "&Action B")) 367 | self.actionSub_menu.setToolTip(_translate("MainWindow", "submenu")) 368 | self.actionAction_C.setText(_translate("MainWindow", "Action &C")) 369 | 370 | import style_Dark_rc 371 | import style_black_rc 372 | -------------------------------------------------------------------------------- /example/ui/example.ui: -------------------------------------------------------------------------------- 1 | 2 | 3 | MainWindow 4 | 5 | 6 | 7 | 0 8 | 0 9 | 1068 10 | 824 11 | 12 | 13 | 14 | MainWindow 15 | 16 | 17 | 18 | 19 | 20 | 21 | QTabWidget::East 22 | 23 | 24 | 0 25 | 26 | 27 | true 28 | 29 | 30 | 31 | Tab 1 32 | 33 | 34 | 35 | 36 | 37 | ToolBox 38 | 39 | 40 | 41 | 42 | 43 | 1 44 | 45 | 46 | 47 | 48 | 0 49 | 0 50 | 705 51 | 242 52 | 53 | 54 | 55 | Page 1 56 | 57 | 58 | 59 | 60 | 61 | 62 | 63 | 64 | 65 | 66 | 0 67 | 0 68 | 726 69 | 242 70 | 71 | 72 | 73 | Page 2 74 | 75 | 76 | 77 | 78 | 79 | 80 | New Item 81 | 82 | 83 | 84 | 85 | New Item 86 | 87 | 88 | 89 | 90 | New Item 91 | 92 | 93 | 94 | 95 | New Item 96 | 97 | 98 | 99 | 100 | New Item 101 | 102 | 103 | 104 | 105 | New Item 106 | 107 | 108 | 109 | 110 | New Item 111 | 112 | 113 | 114 | 115 | New Item 116 | 117 | 118 | 119 | 120 | 121 | 122 | 123 | 124 | 125 | 126 | 127 | 128 | 129 | 130 | 2 131 | 132 | 133 | 134 | Tab 1 135 | 136 | 137 | 138 | 139 | 140 | Checkable button 141 | 142 | 143 | true 144 | 145 | 146 | true 147 | 148 | 149 | 150 | 151 | 152 | 153 | PushButton 154 | 155 | 156 | 157 | 158 | 159 | 160 | PushButton 161 | 162 | 163 | 164 | 165 | 166 | 167 | 168 | Page 169 | 170 | 171 | 172 | 173 | 174 | 175 | New Row 176 | 177 | 178 | 179 | 180 | New Row 181 | 182 | 183 | 184 | 185 | New Row 186 | 187 | 188 | 189 | 190 | New Row 191 | 192 | 193 | 194 | 195 | New Column 196 | 197 | 198 | 199 | 200 | New Column 2 201 | 202 | 203 | 204 | 205 | 206 | 207 | 208 | 209 | Tab 2 210 | 211 | 212 | 213 | 214 | 215 | 216 | 217 | 218 | 219 | 220 | 221 | Tab 2 222 | 223 | 224 | 225 | 226 | 227 | GroupBox 228 | 229 | 230 | 231 | 232 | 233 | TextLabel 234 | 235 | 236 | 237 | 238 | 239 | 240 | RadioB&utton 241 | 242 | 243 | 244 | 245 | 246 | 247 | CheckBox 248 | 249 | 250 | 251 | 252 | 253 | 254 | CheckBox Tristate 255 | 256 | 257 | true 258 | 259 | 260 | 261 | 262 | 263 | 264 | 265 | qdz 266 | 267 | 268 | 269 | 270 | qzd 271 | 272 | 273 | 274 | 275 | effefe 276 | 277 | 278 | 279 | 280 | 281 | 282 | 283 | 284 | 285 | 286 | 287 | 288 | 289 | 290 | 291 | 292 | PushButton 293 | 294 | 295 | 296 | 297 | 298 | 299 | RadioButton 300 | 301 | 302 | 303 | 304 | 305 | 306 | CheckBox 307 | 308 | 309 | 310 | 311 | 312 | 313 | Delayed popup 314 | 315 | 316 | 317 | 318 | 319 | 320 | Instant popup 321 | 322 | 323 | QToolButton::InstantPopup 324 | 325 | 326 | 327 | 328 | 329 | 330 | MenuButtonPopup 331 | 332 | 333 | QToolButton::MenuButtonPopup 334 | 335 | 336 | 337 | 338 | 339 | 340 | Qt::Vertical 341 | 342 | 343 | 344 | 345 | 346 | 347 | false 348 | 349 | 350 | Disabled 351 | 352 | 353 | 354 | 355 | 356 | 357 | 358 | 359 | 360 | ... 361 | 362 | 363 | QToolButton::InstantPopup 364 | 365 | 366 | 367 | 368 | 369 | 370 | 371 | 372 | 373 | 374 | 0 375 | 0 376 | 1068 377 | 23 378 | 379 | 380 | 381 | 382 | &Menu 383 | 384 | 385 | 386 | &Submenu 2 387 | 388 | 389 | 390 | 391 | 392 | 393 | 394 | 395 | 396 | 397 | 398 | 399 | &Dock widget 1 400 | 401 | 402 | 1 403 | 404 | 405 | 406 | 407 | 408 | 409 | 410 | 411 | 412 | Item 0 413 | 414 | 415 | 416 | 417 | Item 2 418 | 419 | 420 | 421 | 422 | 423 | 424 | 425 | Qt::Horizontal 426 | 427 | 428 | 429 | 430 | 431 | 432 | 433 | 434 | 435 | Qt::Horizontal 436 | 437 | 438 | 439 | 440 | 441 | 442 | 24 443 | 444 | 445 | 446 | 447 | 448 | 449 | 450 | 451 | 452 | 0 453 | 100 454 | 455 | 456 | 457 | QFrame::StyledPanel 458 | 459 | 460 | QFrame::Raised 461 | 462 | 463 | 3 464 | 465 | 466 | 467 | 468 | 469 | 470 | 471 | 472 | toolBar 473 | 474 | 475 | TopToolBarArea 476 | 477 | 478 | false 479 | 480 | 481 | 482 | 483 | 484 | 485 | Dock widget &2 486 | 487 | 488 | 1 489 | 490 | 491 | 492 | 493 | 494 | 495 | Qt::Vertical 496 | 497 | 498 | 499 | 500 | 501 | 502 | 503 | 504 | &Action 505 | 506 | 507 | 508 | 509 | &Action B 510 | 511 | 512 | submenu 513 | 514 | 515 | 516 | 517 | Action &C 518 | 519 | 520 | 521 | 522 | pushButton 523 | checkableButton 524 | pushButton_5 525 | tabWidget_2 526 | tableWidget 527 | radioButton 528 | checkBox 529 | checkBox_2 530 | treeWidget 531 | pushButton_2 532 | bt_delay_popup 533 | bt_instant_popup 534 | bt_menu_button_popup 535 | pushButton_3 536 | doubleSpinBox 537 | toolButton 538 | comboBox 539 | horizontalSlider 540 | textEdit 541 | verticalSlider 542 | tabWidget 543 | lineEdit 544 | listWidget 545 | 546 | 547 | 548 | 549 | 550 | 551 | 552 | -------------------------------------------------------------------------------- /example/ui/example_pyqt5_ui.py: -------------------------------------------------------------------------------- 1 | # -*- coding: utf-8 -*- 2 | 3 | # Form implementation generated from reading ui file 'example.ui' 4 | # 5 | # Created: Sat Dec 3 14:05:30 2016 6 | # by: PyQt5 UI code generator 5.4 7 | # 8 | # WARNING! All changes made in this file will be lost! 9 | 10 | from PyQt5 import QtCore, QtGui, QtWidgets 11 | 12 | class Ui_MainWindow(object): 13 | def setupUi(self, MainWindow): 14 | MainWindow.setObjectName("MainWindow") 15 | MainWindow.resize(1068, 824) 16 | self.centralwidget = QtWidgets.QWidget(MainWindow) 17 | self.centralwidget.setObjectName("centralwidget") 18 | self.verticalLayout_5 = QtWidgets.QVBoxLayout(self.centralwidget) 19 | self.verticalLayout_5.setObjectName("verticalLayout_5") 20 | self.tabWidget = QtWidgets.QTabWidget(self.centralwidget) 21 | self.tabWidget.setTabPosition(QtWidgets.QTabWidget.East) 22 | self.tabWidget.setTabsClosable(True) 23 | self.tabWidget.setObjectName("tabWidget") 24 | self.tab = QtWidgets.QWidget() 25 | self.tab.setObjectName("tab") 26 | self.gridLayout = QtWidgets.QGridLayout(self.tab) 27 | self.gridLayout.setObjectName("gridLayout") 28 | self.groupBox = QtWidgets.QGroupBox(self.tab) 29 | self.groupBox.setObjectName("groupBox") 30 | self.verticalLayout_3 = QtWidgets.QVBoxLayout(self.groupBox) 31 | self.verticalLayout_3.setObjectName("verticalLayout_3") 32 | self.toolBox = QtWidgets.QToolBox(self.groupBox) 33 | self.toolBox.setObjectName("toolBox") 34 | self.page = QtWidgets.QWidget() 35 | self.page.setGeometry(QtCore.QRect(0, 0, 705, 242)) 36 | self.page.setObjectName("page") 37 | self.gridLayout_4 = QtWidgets.QGridLayout(self.page) 38 | self.gridLayout_4.setObjectName("gridLayout_4") 39 | self.lineEdit = QtWidgets.QLineEdit(self.page) 40 | self.lineEdit.setObjectName("lineEdit") 41 | self.gridLayout_4.addWidget(self.lineEdit, 0, 0, 1, 1) 42 | self.toolBox.addItem(self.page, "") 43 | self.page_2 = QtWidgets.QWidget() 44 | self.page_2.setGeometry(QtCore.QRect(0, 0, 726, 242)) 45 | self.page_2.setObjectName("page_2") 46 | self.gridLayout_5 = QtWidgets.QGridLayout(self.page_2) 47 | self.gridLayout_5.setObjectName("gridLayout_5") 48 | self.listWidget = QtWidgets.QListWidget(self.page_2) 49 | self.listWidget.setObjectName("listWidget") 50 | item = QtWidgets.QListWidgetItem() 51 | self.listWidget.addItem(item) 52 | item = QtWidgets.QListWidgetItem() 53 | self.listWidget.addItem(item) 54 | item = QtWidgets.QListWidgetItem() 55 | self.listWidget.addItem(item) 56 | item = QtWidgets.QListWidgetItem() 57 | self.listWidget.addItem(item) 58 | item = QtWidgets.QListWidgetItem() 59 | self.listWidget.addItem(item) 60 | item = QtWidgets.QListWidgetItem() 61 | self.listWidget.addItem(item) 62 | item = QtWidgets.QListWidgetItem() 63 | self.listWidget.addItem(item) 64 | item = QtWidgets.QListWidgetItem() 65 | self.listWidget.addItem(item) 66 | self.gridLayout_5.addWidget(self.listWidget, 0, 0, 1, 1) 67 | self.toolBox.addItem(self.page_2, "") 68 | self.verticalLayout_3.addWidget(self.toolBox) 69 | self.gridLayout.addWidget(self.groupBox, 1, 0, 1, 1) 70 | self.tabWidget_2 = QtWidgets.QTabWidget(self.tab) 71 | self.tabWidget_2.setObjectName("tabWidget_2") 72 | self.tab_3 = QtWidgets.QWidget() 73 | self.tab_3.setObjectName("tab_3") 74 | self.gridLayout_6 = QtWidgets.QGridLayout(self.tab_3) 75 | self.gridLayout_6.setObjectName("gridLayout_6") 76 | self.checkableButton = QtWidgets.QPushButton(self.tab_3) 77 | self.checkableButton.setCheckable(True) 78 | self.checkableButton.setChecked(True) 79 | self.checkableButton.setObjectName("checkableButton") 80 | self.gridLayout_6.addWidget(self.checkableButton, 1, 0, 1, 1) 81 | self.pushButton = QtWidgets.QPushButton(self.tab_3) 82 | self.pushButton.setObjectName("pushButton") 83 | self.gridLayout_6.addWidget(self.pushButton, 0, 0, 1, 1) 84 | self.pushButton_5 = QtWidgets.QPushButton(self.tab_3) 85 | self.pushButton_5.setObjectName("pushButton_5") 86 | self.gridLayout_6.addWidget(self.pushButton_5, 2, 0, 1, 1) 87 | self.tabWidget_2.addTab(self.tab_3, "") 88 | self.tab_5 = QtWidgets.QWidget() 89 | self.tab_5.setObjectName("tab_5") 90 | self.gridLayout_7 = QtWidgets.QGridLayout(self.tab_5) 91 | self.gridLayout_7.setObjectName("gridLayout_7") 92 | self.tableWidget = QtWidgets.QTableWidget(self.tab_5) 93 | self.tableWidget.setObjectName("tableWidget") 94 | self.tableWidget.setColumnCount(2) 95 | self.tableWidget.setRowCount(4) 96 | item = QtWidgets.QTableWidgetItem() 97 | self.tableWidget.setVerticalHeaderItem(0, item) 98 | item = QtWidgets.QTableWidgetItem() 99 | self.tableWidget.setVerticalHeaderItem(1, item) 100 | item = QtWidgets.QTableWidgetItem() 101 | self.tableWidget.setVerticalHeaderItem(2, item) 102 | item = QtWidgets.QTableWidgetItem() 103 | self.tableWidget.setVerticalHeaderItem(3, item) 104 | item = QtWidgets.QTableWidgetItem() 105 | self.tableWidget.setHorizontalHeaderItem(0, item) 106 | item = QtWidgets.QTableWidgetItem() 107 | self.tableWidget.setHorizontalHeaderItem(1, item) 108 | self.gridLayout_7.addWidget(self.tableWidget, 0, 0, 1, 1) 109 | self.tabWidget_2.addTab(self.tab_5, "") 110 | self.tab_4 = QtWidgets.QWidget() 111 | self.tab_4.setObjectName("tab_4") 112 | self.tabWidget_2.addTab(self.tab_4, "") 113 | self.gridLayout.addWidget(self.tabWidget_2, 0, 0, 1, 1) 114 | self.dateEdit = QtWidgets.QDateEdit(self.tab) 115 | self.dateEdit.setObjectName("dateEdit") 116 | self.gridLayout.addWidget(self.dateEdit, 2, 0, 1, 1) 117 | self.tabWidget.addTab(self.tab, "") 118 | self.tab_2 = QtWidgets.QWidget() 119 | self.tab_2.setObjectName("tab_2") 120 | self.gridLayout_2 = QtWidgets.QGridLayout(self.tab_2) 121 | self.gridLayout_2.setObjectName("gridLayout_2") 122 | self.groupBox_2 = QtWidgets.QGroupBox(self.tab_2) 123 | self.groupBox_2.setObjectName("groupBox_2") 124 | self.verticalLayout_4 = QtWidgets.QVBoxLayout(self.groupBox_2) 125 | self.verticalLayout_4.setObjectName("verticalLayout_4") 126 | self.label = QtWidgets.QLabel(self.groupBox_2) 127 | self.label.setObjectName("label") 128 | self.verticalLayout_4.addWidget(self.label) 129 | self.radioButton = QtWidgets.QRadioButton(self.groupBox_2) 130 | self.radioButton.setObjectName("radioButton") 131 | self.verticalLayout_4.addWidget(self.radioButton) 132 | self.checkBox = QtWidgets.QCheckBox(self.groupBox_2) 133 | self.checkBox.setObjectName("checkBox") 134 | self.verticalLayout_4.addWidget(self.checkBox) 135 | self.checkBox_2 = QtWidgets.QCheckBox(self.groupBox_2) 136 | self.checkBox_2.setTristate(True) 137 | self.checkBox_2.setObjectName("checkBox_2") 138 | self.verticalLayout_4.addWidget(self.checkBox_2) 139 | self.treeWidget = QtWidgets.QTreeWidget(self.groupBox_2) 140 | self.treeWidget.setObjectName("treeWidget") 141 | item_0 = QtWidgets.QTreeWidgetItem(self.treeWidget) 142 | item_0 = QtWidgets.QTreeWidgetItem(self.treeWidget) 143 | self.verticalLayout_4.addWidget(self.treeWidget) 144 | self.gridLayout_2.addWidget(self.groupBox_2, 0, 0, 1, 1) 145 | self.tabWidget.addTab(self.tab_2, "") 146 | self.verticalLayout_5.addWidget(self.tabWidget) 147 | self.horizontalLayout = QtWidgets.QHBoxLayout() 148 | self.horizontalLayout.setObjectName("horizontalLayout") 149 | self.pushButton_2 = QtWidgets.QPushButton(self.centralwidget) 150 | self.pushButton_2.setObjectName("pushButton_2") 151 | self.horizontalLayout.addWidget(self.pushButton_2) 152 | self.radioButton_2 = QtWidgets.QRadioButton(self.centralwidget) 153 | self.radioButton_2.setObjectName("radioButton_2") 154 | self.horizontalLayout.addWidget(self.radioButton_2) 155 | self.checkBox_3 = QtWidgets.QCheckBox(self.centralwidget) 156 | self.checkBox_3.setObjectName("checkBox_3") 157 | self.horizontalLayout.addWidget(self.checkBox_3) 158 | self.bt_delay_popup = QtWidgets.QToolButton(self.centralwidget) 159 | self.bt_delay_popup.setObjectName("bt_delay_popup") 160 | self.horizontalLayout.addWidget(self.bt_delay_popup) 161 | self.bt_instant_popup = QtWidgets.QToolButton(self.centralwidget) 162 | self.bt_instant_popup.setPopupMode(QtWidgets.QToolButton.InstantPopup) 163 | self.bt_instant_popup.setObjectName("bt_instant_popup") 164 | self.horizontalLayout.addWidget(self.bt_instant_popup) 165 | self.bt_menu_button_popup = QtWidgets.QToolButton(self.centralwidget) 166 | self.bt_menu_button_popup.setPopupMode(QtWidgets.QToolButton.MenuButtonPopup) 167 | self.bt_menu_button_popup.setObjectName("bt_menu_button_popup") 168 | self.horizontalLayout.addWidget(self.bt_menu_button_popup) 169 | self.line_2 = QtWidgets.QFrame(self.centralwidget) 170 | self.line_2.setFrameShape(QtWidgets.QFrame.VLine) 171 | self.line_2.setFrameShadow(QtWidgets.QFrame.Sunken) 172 | self.line_2.setObjectName("line_2") 173 | self.horizontalLayout.addWidget(self.line_2) 174 | self.pushButton_3 = QtWidgets.QPushButton(self.centralwidget) 175 | self.pushButton_3.setEnabled(False) 176 | self.pushButton_3.setObjectName("pushButton_3") 177 | self.horizontalLayout.addWidget(self.pushButton_3) 178 | self.doubleSpinBox = QtWidgets.QDoubleSpinBox(self.centralwidget) 179 | self.doubleSpinBox.setObjectName("doubleSpinBox") 180 | self.horizontalLayout.addWidget(self.doubleSpinBox) 181 | self.toolButton = QtWidgets.QToolButton(self.centralwidget) 182 | self.toolButton.setPopupMode(QtWidgets.QToolButton.InstantPopup) 183 | self.toolButton.setObjectName("toolButton") 184 | self.horizontalLayout.addWidget(self.toolButton) 185 | self.verticalLayout_5.addLayout(self.horizontalLayout) 186 | MainWindow.setCentralWidget(self.centralwidget) 187 | self.menubar = QtWidgets.QMenuBar(MainWindow) 188 | self.menubar.setGeometry(QtCore.QRect(0, 0, 1068, 23)) 189 | self.menubar.setObjectName("menubar") 190 | self.menuMenu = QtWidgets.QMenu(self.menubar) 191 | self.menuMenu.setObjectName("menuMenu") 192 | self.menuSubmenu_2 = QtWidgets.QMenu(self.menuMenu) 193 | self.menuSubmenu_2.setObjectName("menuSubmenu_2") 194 | MainWindow.setMenuBar(self.menubar) 195 | self.statusbar = QtWidgets.QStatusBar(MainWindow) 196 | self.statusbar.setObjectName("statusbar") 197 | MainWindow.setStatusBar(self.statusbar) 198 | self.dockWidget1 = QtWidgets.QDockWidget(MainWindow) 199 | self.dockWidget1.setObjectName("dockWidget1") 200 | self.dockWidgetContents = QtWidgets.QWidget() 201 | self.dockWidgetContents.setObjectName("dockWidgetContents") 202 | self.verticalLayout_2 = QtWidgets.QVBoxLayout(self.dockWidgetContents) 203 | self.verticalLayout_2.setObjectName("verticalLayout_2") 204 | self.verticalLayout = QtWidgets.QVBoxLayout() 205 | self.verticalLayout.setObjectName("verticalLayout") 206 | self.comboBox = QtWidgets.QComboBox(self.dockWidgetContents) 207 | self.comboBox.setObjectName("comboBox") 208 | self.comboBox.addItem("") 209 | self.comboBox.addItem("") 210 | self.verticalLayout.addWidget(self.comboBox) 211 | self.horizontalSlider = QtWidgets.QSlider(self.dockWidgetContents) 212 | self.horizontalSlider.setOrientation(QtCore.Qt.Horizontal) 213 | self.horizontalSlider.setObjectName("horizontalSlider") 214 | self.verticalLayout.addWidget(self.horizontalSlider) 215 | self.textEdit = QtWidgets.QTextEdit(self.dockWidgetContents) 216 | self.textEdit.setObjectName("textEdit") 217 | self.verticalLayout.addWidget(self.textEdit) 218 | self.line = QtWidgets.QFrame(self.dockWidgetContents) 219 | self.line.setFrameShape(QtWidgets.QFrame.HLine) 220 | self.line.setFrameShadow(QtWidgets.QFrame.Sunken) 221 | self.line.setObjectName("line") 222 | self.verticalLayout.addWidget(self.line) 223 | self.progressBar = QtWidgets.QProgressBar(self.dockWidgetContents) 224 | self.progressBar.setProperty("value", 24) 225 | self.progressBar.setObjectName("progressBar") 226 | self.verticalLayout.addWidget(self.progressBar) 227 | self.verticalLayout_2.addLayout(self.verticalLayout) 228 | self.frame = QtWidgets.QFrame(self.dockWidgetContents) 229 | self.frame.setMinimumSize(QtCore.QSize(0, 100)) 230 | self.frame.setFrameShape(QtWidgets.QFrame.StyledPanel) 231 | self.frame.setFrameShadow(QtWidgets.QFrame.Raised) 232 | self.frame.setLineWidth(3) 233 | self.frame.setObjectName("frame") 234 | self.verticalLayout_2.addWidget(self.frame) 235 | self.dockWidget1.setWidget(self.dockWidgetContents) 236 | MainWindow.addDockWidget(QtCore.Qt.DockWidgetArea(1), self.dockWidget1) 237 | self.toolBar = QtWidgets.QToolBar(MainWindow) 238 | self.toolBar.setObjectName("toolBar") 239 | MainWindow.addToolBar(QtCore.Qt.TopToolBarArea, self.toolBar) 240 | self.dockWidget2 = QtWidgets.QDockWidget(MainWindow) 241 | self.dockWidget2.setObjectName("dockWidget2") 242 | self.dockWidgetContents_2 = QtWidgets.QWidget() 243 | self.dockWidgetContents_2.setObjectName("dockWidgetContents_2") 244 | self.gridLayout_3 = QtWidgets.QGridLayout(self.dockWidgetContents_2) 245 | self.gridLayout_3.setObjectName("gridLayout_3") 246 | self.verticalSlider = QtWidgets.QSlider(self.dockWidgetContents_2) 247 | self.verticalSlider.setOrientation(QtCore.Qt.Vertical) 248 | self.verticalSlider.setObjectName("verticalSlider") 249 | self.gridLayout_3.addWidget(self.verticalSlider, 0, 0, 1, 1) 250 | self.dockWidget2.setWidget(self.dockWidgetContents_2) 251 | MainWindow.addDockWidget(QtCore.Qt.DockWidgetArea(1), self.dockWidget2) 252 | self.actionAction = QtWidgets.QAction(MainWindow) 253 | self.actionAction.setObjectName("actionAction") 254 | self.actionSub_menu = QtWidgets.QAction(MainWindow) 255 | self.actionSub_menu.setObjectName("actionSub_menu") 256 | self.actionAction_C = QtWidgets.QAction(MainWindow) 257 | self.actionAction_C.setObjectName("actionAction_C") 258 | self.menuSubmenu_2.addAction(self.actionSub_menu) 259 | self.menuSubmenu_2.addAction(self.actionAction_C) 260 | self.menuMenu.addAction(self.actionAction) 261 | self.menuMenu.addAction(self.menuSubmenu_2.menuAction()) 262 | self.menubar.addAction(self.menuMenu.menuAction()) 263 | self.toolBar.addAction(self.actionAction) 264 | self.toolBar.addAction(self.actionSub_menu) 265 | 266 | self.retranslateUi(MainWindow) 267 | self.tabWidget.setCurrentIndex(0) 268 | self.toolBox.setCurrentIndex(1) 269 | self.tabWidget_2.setCurrentIndex(2) 270 | QtCore.QMetaObject.connectSlotsByName(MainWindow) 271 | MainWindow.setTabOrder(self.pushButton, self.checkableButton) 272 | MainWindow.setTabOrder(self.checkableButton, self.pushButton_5) 273 | MainWindow.setTabOrder(self.pushButton_5, self.tabWidget_2) 274 | MainWindow.setTabOrder(self.tabWidget_2, self.tableWidget) 275 | MainWindow.setTabOrder(self.tableWidget, self.radioButton) 276 | MainWindow.setTabOrder(self.radioButton, self.checkBox) 277 | MainWindow.setTabOrder(self.checkBox, self.checkBox_2) 278 | MainWindow.setTabOrder(self.checkBox_2, self.treeWidget) 279 | MainWindow.setTabOrder(self.treeWidget, self.pushButton_2) 280 | MainWindow.setTabOrder(self.pushButton_2, self.bt_delay_popup) 281 | MainWindow.setTabOrder(self.bt_delay_popup, self.bt_instant_popup) 282 | MainWindow.setTabOrder(self.bt_instant_popup, self.bt_menu_button_popup) 283 | MainWindow.setTabOrder(self.bt_menu_button_popup, self.pushButton_3) 284 | MainWindow.setTabOrder(self.pushButton_3, self.doubleSpinBox) 285 | MainWindow.setTabOrder(self.doubleSpinBox, self.toolButton) 286 | MainWindow.setTabOrder(self.toolButton, self.comboBox) 287 | MainWindow.setTabOrder(self.comboBox, self.horizontalSlider) 288 | MainWindow.setTabOrder(self.horizontalSlider, self.textEdit) 289 | MainWindow.setTabOrder(self.textEdit, self.verticalSlider) 290 | MainWindow.setTabOrder(self.verticalSlider, self.tabWidget) 291 | MainWindow.setTabOrder(self.tabWidget, self.lineEdit) 292 | MainWindow.setTabOrder(self.lineEdit, self.listWidget) 293 | 294 | def retranslateUi(self, MainWindow): 295 | _translate = QtCore.QCoreApplication.translate 296 | MainWindow.setWindowTitle(_translate("MainWindow", "MainWindow")) 297 | self.groupBox.setTitle(_translate("MainWindow", "ToolBox")) 298 | self.toolBox.setItemText(self.toolBox.indexOf(self.page), _translate("MainWindow", "Page 1")) 299 | __sortingEnabled = self.listWidget.isSortingEnabled() 300 | self.listWidget.setSortingEnabled(False) 301 | item = self.listWidget.item(0) 302 | item.setText(_translate("MainWindow", "New Item")) 303 | item = self.listWidget.item(1) 304 | item.setText(_translate("MainWindow", "New Item")) 305 | item = self.listWidget.item(2) 306 | item.setText(_translate("MainWindow", "New Item")) 307 | item = self.listWidget.item(3) 308 | item.setText(_translate("MainWindow", "New Item")) 309 | item = self.listWidget.item(4) 310 | item.setText(_translate("MainWindow", "New Item")) 311 | item = self.listWidget.item(5) 312 | item.setText(_translate("MainWindow", "New Item")) 313 | item = self.listWidget.item(6) 314 | item.setText(_translate("MainWindow", "New Item")) 315 | item = self.listWidget.item(7) 316 | item.setText(_translate("MainWindow", "New Item")) 317 | self.listWidget.setSortingEnabled(__sortingEnabled) 318 | self.toolBox.setItemText(self.toolBox.indexOf(self.page_2), _translate("MainWindow", "Page 2")) 319 | self.checkableButton.setText(_translate("MainWindow", "Checkable button")) 320 | self.pushButton.setText(_translate("MainWindow", "PushButton")) 321 | self.pushButton_5.setText(_translate("MainWindow", "PushButton")) 322 | self.tabWidget_2.setTabText(self.tabWidget_2.indexOf(self.tab_3), _translate("MainWindow", "Tab 1")) 323 | item = self.tableWidget.verticalHeaderItem(0) 324 | item.setText(_translate("MainWindow", "New Row")) 325 | item = self.tableWidget.verticalHeaderItem(1) 326 | item.setText(_translate("MainWindow", "New Row")) 327 | item = self.tableWidget.verticalHeaderItem(2) 328 | item.setText(_translate("MainWindow", "New Row")) 329 | item = self.tableWidget.verticalHeaderItem(3) 330 | item.setText(_translate("MainWindow", "New Row")) 331 | item = self.tableWidget.horizontalHeaderItem(0) 332 | item.setText(_translate("MainWindow", "New Column")) 333 | item = self.tableWidget.horizontalHeaderItem(1) 334 | item.setText(_translate("MainWindow", "New Column 2")) 335 | self.tabWidget_2.setTabText(self.tabWidget_2.indexOf(self.tab_5), _translate("MainWindow", "Page")) 336 | self.tabWidget_2.setTabText(self.tabWidget_2.indexOf(self.tab_4), _translate("MainWindow", "Tab 2")) 337 | self.tabWidget.setTabText(self.tabWidget.indexOf(self.tab), _translate("MainWindow", "Tab 1")) 338 | self.groupBox_2.setTitle(_translate("MainWindow", "GroupBox")) 339 | self.label.setText(_translate("MainWindow", "TextLabel")) 340 | self.radioButton.setText(_translate("MainWindow", "RadioB&utton")) 341 | self.checkBox.setText(_translate("MainWindow", "CheckBox")) 342 | self.checkBox_2.setText(_translate("MainWindow", "CheckBox Tristate")) 343 | self.treeWidget.headerItem().setText(0, _translate("MainWindow", "qdz")) 344 | __sortingEnabled = self.treeWidget.isSortingEnabled() 345 | self.treeWidget.setSortingEnabled(False) 346 | self.treeWidget.topLevelItem(0).setText(0, _translate("MainWindow", "qzd")) 347 | self.treeWidget.topLevelItem(1).setText(0, _translate("MainWindow", "effefe")) 348 | self.treeWidget.setSortingEnabled(__sortingEnabled) 349 | self.tabWidget.setTabText(self.tabWidget.indexOf(self.tab_2), _translate("MainWindow", "Tab 2")) 350 | self.pushButton_2.setText(_translate("MainWindow", "PushButton")) 351 | self.radioButton_2.setText(_translate("MainWindow", "RadioButton")) 352 | self.checkBox_3.setText(_translate("MainWindow", "CheckBox")) 353 | self.bt_delay_popup.setText(_translate("MainWindow", "Delayed popup ")) 354 | self.bt_instant_popup.setText(_translate("MainWindow", "Instant popup")) 355 | self.bt_menu_button_popup.setText(_translate("MainWindow", "MenuButtonPopup")) 356 | self.pushButton_3.setText(_translate("MainWindow", "Disabled")) 357 | self.toolButton.setText(_translate("MainWindow", "...")) 358 | self.menuMenu.setTitle(_translate("MainWindow", "&Menu")) 359 | self.menuSubmenu_2.setTitle(_translate("MainWindow", "&Submenu 2")) 360 | self.dockWidget1.setWindowTitle(_translate("MainWindow", "&Dock widget 1")) 361 | self.comboBox.setItemText(0, _translate("MainWindow", "Item 0")) 362 | self.comboBox.setItemText(1, _translate("MainWindow", "Item 2")) 363 | self.toolBar.setWindowTitle(_translate("MainWindow", "toolBar")) 364 | self.dockWidget2.setWindowTitle(_translate("MainWindow", "Dock widget &2")) 365 | self.actionAction.setText(_translate("MainWindow", "&Action")) 366 | self.actionSub_menu.setText(_translate("MainWindow", "&Action B")) 367 | self.actionSub_menu.setToolTip(_translate("MainWindow", "submenu")) 368 | self.actionAction_C.setText(_translate("MainWindow", "Action &C")) 369 | 370 | 371 | -------------------------------------------------------------------------------- /screenshots/example.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RedFalsh/PyQt5_stylesheets/fa4ceb5c6fcd598b0d400b9d11525175d98d560b/screenshots/example.png -------------------------------------------------------------------------------- /screenshots/example1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RedFalsh/PyQt5_stylesheets/fa4ceb5c6fcd598b0d400b9d11525175d98d560b/screenshots/example1.png -------------------------------------------------------------------------------- /screenshots/example2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RedFalsh/PyQt5_stylesheets/fa4ceb5c6fcd598b0d400b9d11525175d98d560b/screenshots/example2.png -------------------------------------------------------------------------------- /screenshots/example3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RedFalsh/PyQt5_stylesheets/fa4ceb5c6fcd598b0d400b9d11525175d98d560b/screenshots/example3.png -------------------------------------------------------------------------------- /screenshots/example4.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RedFalsh/PyQt5_stylesheets/fa4ceb5c6fcd598b0d400b9d11525175d98d560b/screenshots/example4.png -------------------------------------------------------------------------------- /screenshots/example5.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RedFalsh/PyQt5_stylesheets/fa4ceb5c6fcd598b0d400b9d11525175d98d560b/screenshots/example5.png -------------------------------------------------------------------------------- /setup.py: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env python 2 | # -*- coding: utf-8 -*- 3 | # 4 | # The MIT License (MIT) 5 | # 6 | # Copyright (c) <2013-2014> 7 | # 8 | # Permission is hereby granted, free of charge, to any person obtaining a copy 9 | # of this software and associated documentation files (the "Software"), to deal 10 | # in the Software without restriction, including without limitation the rights 11 | # to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 12 | # copies of the Software, and to permit persons to whom the Software is 13 | # furnished to do so, subject to the following conditions: 14 | # 15 | # The above copyright notice and this permission notice shall be included in 16 | # all copies or substantial portions of the Software. 17 | # 18 | # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 19 | # IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 20 | # FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 21 | # AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 22 | # LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 23 | # OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 24 | # THE SOFTWARE. 25 | # 26 | """ 27 | PyQt5_stylesheets is a darks stylesheet for python qt applications 28 | """ 29 | from setuptools import setup, find_packages 30 | from PyQt5_stylesheets import __version__ 31 | 32 | setup( 33 | name='PyQt5_stylesheets', 34 | version=__version__, 35 | packages=find_packages(), 36 | url='https://github.com/xiongbigboss/PyQt5_stylesheets.git', 37 | license='MIT', 38 | author='xiongbigboss', 39 | author_email='13693421942@163.com', 40 | description='A dark stylesheet for PyQt5 applications', 41 | long_description=""" 42 | This package provides a dark style sheet for PyQt5 applications. 43 | 44 | All you have to do is the following:: 45 | 46 | import PyQt5_stylesheets 47 | app = QtGui.QApplication().instance() 48 | 49 | # PyQt5 50 | app.setStyleSheet(PyQt5_stylesheets.load_stylesheet_pyqt5(style="style_black")) 51 | 52 | """, 53 | classifiers=[ 54 | 'Development Status :: 5 - Production/Stable', 55 | 'Environment :: X11 Applications :: Qt5', 56 | 'Environment :: Win32 (MS Windows)', 57 | 'Intended Audience :: Developers', 58 | 'License :: OSI Approved :: MIT License', 59 | 'Operating System :: Microsoft :: Windows', 60 | 'Operating System :: POSIX :: Linux', 61 | 'Operating System :: MacOS', 62 | 'Programming Language :: Python :: 3.4', 63 | 'Topic :: Software Development :: Libraries :: Application Frameworks']) 64 | -------------------------------------------------------------------------------- /svg/checkbox_checked.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 22 | 24 | 45 | 48 | 52 | 56 | 57 | 59 | 60 | 62 | image/svg+xml 63 | 65 | 66 | 67 | 68 | 69 | 74 | 84 | 95 | 96 | 97 | -------------------------------------------------------------------------------- /svg/checkbox_checked_disabled.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 22 | 24 | 45 | 48 | 52 | 56 | 57 | 59 | 60 | 62 | image/svg+xml 63 | 65 | 66 | 67 | 68 | 69 | 74 | 84 | 95 | 96 | 97 | -------------------------------------------------------------------------------- /svg/checkbox_checked_focus.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 22 | 24 | 45 | 48 | 52 | 56 | 57 | 59 | 60 | 62 | image/svg+xml 63 | 65 | 66 | 67 | 68 | 69 | 74 | 84 | 95 | 96 | 97 | -------------------------------------------------------------------------------- /svg/checkbox_indeterminate.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 22 | 24 | 45 | 48 | 52 | 56 | 57 | 59 | 60 | 62 | image/svg+xml 63 | 65 | 66 | 67 | 68 | 69 | 74 | 84 | 95 | 96 | 97 | -------------------------------------------------------------------------------- /svg/checkbox_indeterminate_disabled.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 22 | 24 | 45 | 48 | 52 | 56 | 57 | 59 | 60 | 62 | image/svg+xml 63 | 65 | 66 | 67 | 68 | 69 | 74 | 84 | 95 | 96 | 97 | -------------------------------------------------------------------------------- /svg/checkbox_indeterminate_focus.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 22 | 24 | 45 | 48 | 52 | 56 | 57 | 59 | 60 | 62 | image/svg+xml 63 | 65 | 66 | 67 | 68 | 69 | 74 | 84 | 95 | 96 | 97 | -------------------------------------------------------------------------------- /svg/checkbox_unchecked.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 22 | 24 | 43 | 45 | 46 | 48 | image/svg+xml 49 | 51 | 52 | 53 | 54 | 55 | 60 | 70 | 71 | 72 | -------------------------------------------------------------------------------- /svg/checkbox_unchecked_disabled.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 22 | 24 | 43 | 45 | 46 | 48 | image/svg+xml 49 | 51 | 52 | 53 | 54 | 55 | 60 | 70 | 71 | 72 | -------------------------------------------------------------------------------- /svg/checkbox_unchecked_focus.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 22 | 24 | 43 | 45 | 46 | 48 | image/svg+xml 49 | 51 | 52 | 53 | 54 | 55 | 60 | 70 | 71 | 72 | -------------------------------------------------------------------------------- /svg/radio_checked.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 22 | 24 | 43 | 45 | 46 | 48 | image/svg+xml 49 | 51 | 52 | 53 | 54 | 55 | 60 | 66 | 72 | 73 | 74 | -------------------------------------------------------------------------------- /svg/radio_checked_disabled.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 22 | 24 | 43 | 45 | 46 | 48 | image/svg+xml 49 | 51 | 52 | 53 | 54 | 55 | 60 | 66 | 72 | 73 | 74 | -------------------------------------------------------------------------------- /svg/radio_checked_focus.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 22 | 24 | 43 | 45 | 46 | 48 | image/svg+xml 49 | 51 | 52 | 53 | 54 | 55 | 60 | 66 | 72 | 73 | 74 | -------------------------------------------------------------------------------- /svg/radio_unchecked.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 22 | 24 | 43 | 45 | 46 | 48 | image/svg+xml 49 | 51 | 52 | 53 | 54 | 55 | 60 | 66 | 67 | 68 | -------------------------------------------------------------------------------- /svg/radio_unchecked_disabled.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 22 | 24 | 43 | 45 | 46 | 48 | image/svg+xml 49 | 51 | 52 | 53 | 54 | 55 | 60 | 66 | 67 | 68 | -------------------------------------------------------------------------------- /svg/radio_unchecked_focus.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 22 | 24 | 43 | 45 | 46 | 48 | image/svg+xml 49 | 51 | 52 | 53 | 54 | 55 | 60 | 66 | 67 | 68 | --------------------------------------------------------------------------------