From 315f1028842084188934677f59af2435b85aa221 Mon Sep 17 00:00:00 2001 From: feiyangqingyun Date: Fri, 4 Oct 2019 18:37:23 +0800 Subject: [PATCH] =?UTF-8?q?=E9=A6=96=E6=AC=A1=E6=8F=90=E4=BA=A4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- README.md | 17 + comtool/api/api.pri | 7 + comtool/api/app.cpp | 201 + comtool/api/app.h | 51 + comtool/api/quiwidget.cpp | 3688 +++++++++++++++++ comtool/api/quiwidget.h | 871 ++++ comtool/comtool.pro | 36 + comtool/file/device.txt | 1 + comtool/file/send.txt | 17 + comtool/form/form.pri | 8 + comtool/form/frmcomtool.cpp | 584 +++ comtool/form/frmcomtool.h | 68 + comtool/form/frmcomtool.ui | 473 +++ comtool/head.h | 11 + comtool/main.cpp | 31 + comtool/other/main.ico | Bin 0 -> 92854 bytes comtool/other/main.qrc | 5 + comtool/other/main.rc | 1 + comtool/qextserialport/qextserialport.cpp | 1095 +++++ comtool/qextserialport/qextserialport.h | 234 ++ comtool/qextserialport/qextserialport.pri | 9 + .../qextserialport/qextserialport_global.h | 72 + comtool/qextserialport/qextserialport_p.h | 277 ++ .../qextserialport/qextserialport_unix.cpp | 559 +++ comtool/qextserialport/qextserialport_win.cpp | 476 +++ comtool/qextserialport/readme.txt | 16 + comtool/readme.txt | 16 + countcode/countcode.pro | 20 + countcode/frmcountcode.cpp | 278 ++ countcode/frmcountcode.h | 35 + countcode/frmcountcode.ui | 411 ++ countcode/main.cpp | 31 + countcode/snap.png | Bin 0 -> 112587 bytes devicesizetable/devicesizetable.cpp | 296 ++ devicesizetable/devicesizetable.h | 91 + devicesizetable/devicesizetable.pro | 23 + devicesizetable/frmdevicesizetable.cpp | 14 + devicesizetable/frmdevicesizetable.h | 23 + devicesizetable/frmdevicesizetable.ui | 122 + devicesizetable/main.cpp | 31 + flatui/flatui.cpp | 190 + flatui/flatui.gif | Bin 0 -> 228622 bytes flatui/flatui.h | 99 + flatui/flatui.pro | 23 + flatui/frmflatui.cpp | 99 + flatui/frmflatui.h | 26 + flatui/frmflatui.ui | 203 + flatui/main.cpp | 31 + gifwidget/gif.h | 803 ++++ gifwidget/gifwidget.cpp | 363 ++ gifwidget/gifwidget.h | 85 + gifwidget/gifwidget.pro | 20 + gifwidget/image/gifwidget.ico | Bin 0 -> 16958 bytes gifwidget/image/gifwidget.png | Bin 0 -> 2785 bytes gifwidget/main.cpp | 31 + gifwidget/main.qrc | 5 + lightbutton/frmlightbutton.cpp | 56 + lightbutton/frmlightbutton.h | 28 + lightbutton/frmlightbutton.ui | 38 + lightbutton/lightbutton.cpp | 449 ++ lightbutton/lightbutton.gif | Bin 0 -> 65988 bytes lightbutton/lightbutton.h | 156 + lightbutton/lightbutton.pro | 23 + lightbutton/main.cpp | 31 + movewidget/frmmovewidget.cpp | 41 + movewidget/frmmovewidget.h | 26 + movewidget/frmmovewidget.ui | 19 + movewidget/main.cpp | 31 + movewidget/movewidget.cpp | 74 + movewidget/movewidget.h | 49 + movewidget/movewidget.pro | 23 + navbutton/frmnavbutton.cpp | 367 ++ navbutton/frmnavbutton.h | 42 + navbutton/frmnavbutton.ui | 547 +++ navbutton/iconhelper.cpp | 240 ++ navbutton/iconhelper.h | 64 + navbutton/image/fontawesome-webfont.ttf | Bin 0 -> 141564 bytes navbutton/main.cpp | 31 + navbutton/main.qrc | 5 + navbutton/navbutton.cpp | 629 +++ navbutton/navbutton.h | 251 ++ navbutton/navbutton.pro | 27 + nettool/api/api.pri | 9 + nettool/api/app.cpp | 226 + nettool/api/app.h | 60 + nettool/api/quiwidget.cpp | 3688 +++++++++++++++++ nettool/api/quiwidget.h | 871 ++++ nettool/api/tcpserver.cpp | 163 + nettool/api/tcpserver.h | 75 + nettool/file/device.txt | 20 + nettool/file/send.txt | 17 + nettool/form/form.pri | 17 + nettool/form/frmmain.cpp | 20 + nettool/form/frmmain.h | 25 + nettool/form/frmmain.ui | 81 + nettool/form/frmtcpclient.cpp | 223 + nettool/form/frmtcpclient.h | 44 + nettool/form/frmtcpclient.ui | 213 + nettool/form/frmtcpserver.cpp | 232 ++ nettool/form/frmtcpserver.h | 48 + nettool/form/frmtcpserver.ui | 229 + nettool/form/frmudpserver.cpp | 224 + nettool/form/frmudpserver.h | 41 + nettool/form/frmudpserver.ui | 211 + nettool/head.h | 11 + nettool/main.cpp | 31 + nettool/nettool.pro | 30 + nettool/other/main.ico | Bin 0 -> 92854 bytes nettool/other/main.qrc | 7 + nettool/other/main.rc | 1 + nettool/other/qt_zh_CN.qm | Bin 0 -> 117340 bytes nettool/other/widgets.qm | Bin 0 -> 593 bytes nettool/readme.txt | 17 + nettool/snap/QQ截图20180514145725.jpg | Bin 0 -> 53985 bytes nettool/snap/QQ截图20180514145729.jpg | Bin 0 -> 64690 bytes nettool/snap/QQ截图20180514145732.jpg | Bin 0 -> 65837 bytes nettool/snap/QQ截图20180514145909.jpg | Bin 0 -> 31178 bytes styledemo/frmmain.cpp | 173 + styledemo/frmmain.h | 32 + styledemo/frmmain.ui | 1220 ++++++ styledemo/head.h | 8 + styledemo/main.cpp | 14 + .../other/image/Font Awesome Cheatsheet.png | Bin 0 -> 991402 bytes styledemo/other/image/btn_close.png | Bin 0 -> 2448 bytes styledemo/other/image/btn_ok.png | Bin 0 -> 2549 bytes styledemo/other/image/fontawesome-webfont.ttf | Bin 0 -> 165548 bytes styledemo/other/image/msg_error.png | Bin 0 -> 1237 bytes styledemo/other/image/msg_info.png | Bin 0 -> 1576 bytes styledemo/other/image/msg_question.png | Bin 0 -> 2114 bytes styledemo/other/image/qt_zh_CN.qm | Bin 0 -> 117337 bytes styledemo/other/image/widgets.qm | Bin 0 -> 593 bytes styledemo/other/main.qrc | 12 + styledemo/other/qss.qrc | 61 + styledemo/other/qss/flatwhite.css | 648 +++ styledemo/other/qss/flatwhite/add_bottom.png | Bin 0 -> 181 bytes styledemo/other/qss/flatwhite/add_left.png | Bin 0 -> 219 bytes styledemo/other/qss/flatwhite/add_right.png | Bin 0 -> 214 bytes styledemo/other/qss/flatwhite/add_top.png | Bin 0 -> 178 bytes .../other/qss/flatwhite/branch_close.png | Bin 0 -> 167 bytes styledemo/other/qss/flatwhite/branch_open.png | Bin 0 -> 273 bytes .../qss/flatwhite/calendar_nextmonth.png | Bin 0 -> 358 bytes .../qss/flatwhite/calendar_prevmonth.png | Bin 0 -> 341 bytes .../other/qss/flatwhite/checkbox_checked.png | Bin 0 -> 289 bytes .../flatwhite/checkbox_checked_disable.png | Bin 0 -> 301 bytes .../other/qss/flatwhite/checkbox_parcial.png | Bin 0 -> 172 bytes .../flatwhite/checkbox_parcial_disable.png | Bin 0 -> 237 bytes .../qss/flatwhite/checkbox_unchecked.png | Bin 0 -> 133 bytes .../flatwhite/checkbox_unchecked_disable.png | Bin 0 -> 137 bytes .../qss/flatwhite/radiobutton_checked.png | Bin 0 -> 726 bytes .../flatwhite/radiobutton_checked_disable.png | Bin 0 -> 817 bytes .../qss/flatwhite/radiobutton_unchecked.png | Bin 0 -> 523 bytes .../radiobutton_unchecked_disable.png | Bin 0 -> 593 bytes styledemo/other/qss/lightblue.css | 648 +++ styledemo/other/qss/lightblue/add_bottom.png | Bin 0 -> 182 bytes styledemo/other/qss/lightblue/add_left.png | Bin 0 -> 222 bytes styledemo/other/qss/lightblue/add_right.png | Bin 0 -> 221 bytes styledemo/other/qss/lightblue/add_top.png | Bin 0 -> 178 bytes .../other/qss/lightblue/branch_close.png | Bin 0 -> 169 bytes styledemo/other/qss/lightblue/branch_open.png | Bin 0 -> 274 bytes .../qss/lightblue/calendar_nextmonth.png | Bin 0 -> 386 bytes .../qss/lightblue/calendar_prevmonth.png | Bin 0 -> 355 bytes .../other/qss/lightblue/checkbox_checked.png | Bin 0 -> 304 bytes .../lightblue/checkbox_checked_disable.png | Bin 0 -> 316 bytes .../other/qss/lightblue/checkbox_parcial.png | Bin 0 -> 187 bytes .../lightblue/checkbox_parcial_disable.png | Bin 0 -> 219 bytes .../qss/lightblue/checkbox_unchecked.png | Bin 0 -> 135 bytes .../lightblue/checkbox_unchecked_disable.png | Bin 0 -> 137 bytes .../qss/lightblue/radiobutton_checked.png | Bin 0 -> 680 bytes .../lightblue/radiobutton_checked_disable.png | Bin 0 -> 843 bytes .../qss/lightblue/radiobutton_unchecked.png | Bin 0 -> 520 bytes .../radiobutton_unchecked_disable.png | Bin 0 -> 615 bytes styledemo/other/qss/psblack.css | 648 +++ styledemo/other/qss/psblack/add_bottom.png | Bin 0 -> 201 bytes styledemo/other/qss/psblack/add_left.png | Bin 0 -> 233 bytes styledemo/other/qss/psblack/add_right.png | Bin 0 -> 235 bytes styledemo/other/qss/psblack/add_top.png | Bin 0 -> 197 bytes styledemo/other/qss/psblack/branch_close.png | Bin 0 -> 177 bytes styledemo/other/qss/psblack/branch_open.png | Bin 0 -> 275 bytes .../other/qss/psblack/calendar_nextmonth.png | Bin 0 -> 318 bytes .../other/qss/psblack/calendar_prevmonth.png | Bin 0 -> 314 bytes .../other/qss/psblack/checkbox_checked.png | Bin 0 -> 307 bytes .../qss/psblack/checkbox_checked_disable.png | Bin 0 -> 338 bytes .../other/qss/psblack/checkbox_parcial.png | Bin 0 -> 188 bytes .../qss/psblack/checkbox_parcial_disable.png | Bin 0 -> 251 bytes .../other/qss/psblack/checkbox_unchecked.png | Bin 0 -> 150 bytes .../psblack/checkbox_unchecked_disable.png | Bin 0 -> 152 bytes .../other/qss/psblack/radiobutton_checked.png | Bin 0 -> 756 bytes .../psblack/radiobutton_checked_disable.png | Bin 0 -> 932 bytes .../qss/psblack/radiobutton_unchecked.png | Bin 0 -> 564 bytes .../psblack/radiobutton_unchecked_disable.png | Bin 0 -> 715 bytes styledemo/readme.txt | 134 + styledemo/snap_flatwhite.png | Bin 0 -> 60744 bytes styledemo/snap_lightblue.png | Bin 0 -> 62377 bytes styledemo/snap_psblack.png | Bin 0 -> 79402 bytes styledemo/styledemo.pro | 34 + video_splite/bg_novideo.png | Bin 0 -> 4851 bytes video_splite/frmmain.cpp | 378 ++ video_splite/frmmain.h | 59 + video_splite/frmmain.ui | 64 + video_splite/main.cpp | 31 + video_splite/main.qrc | 5 + video_splite/snap/QQ截图20180430191412.png | Bin 0 -> 54226 bytes video_splite/snap/QQ截图20180430191420.png | Bin 0 -> 43252 bytes video_splite/snap/QQ截图20180430191429.png | Bin 0 -> 50975 bytes video_splite/snap/QQ截图20180430191440.png | Bin 0 -> 56021 bytes video_splite/snap/QQ截图20180430191448.png | Bin 0 -> 50772 bytes video_splite/snap/QQ截图20180430191527.png | Bin 0 -> 29113 bytes video_splite/video_splite.pro | 24 + 208 files changed, 26451 insertions(+) create mode 100644 README.md create mode 100644 comtool/api/api.pri create mode 100644 comtool/api/app.cpp create mode 100644 comtool/api/app.h create mode 100644 comtool/api/quiwidget.cpp create mode 100644 comtool/api/quiwidget.h create mode 100644 comtool/comtool.pro create mode 100644 comtool/file/device.txt create mode 100644 comtool/file/send.txt create mode 100644 comtool/form/form.pri create mode 100644 comtool/form/frmcomtool.cpp create mode 100644 comtool/form/frmcomtool.h create mode 100644 comtool/form/frmcomtool.ui create mode 100644 comtool/head.h create mode 100644 comtool/main.cpp create mode 100644 comtool/other/main.ico create mode 100644 comtool/other/main.qrc create mode 100644 comtool/other/main.rc create mode 100644 comtool/qextserialport/qextserialport.cpp create mode 100644 comtool/qextserialport/qextserialport.h create mode 100644 comtool/qextserialport/qextserialport.pri create mode 100644 comtool/qextserialport/qextserialport_global.h create mode 100644 comtool/qextserialport/qextserialport_p.h create mode 100644 comtool/qextserialport/qextserialport_unix.cpp create mode 100644 comtool/qextserialport/qextserialport_win.cpp create mode 100644 comtool/qextserialport/readme.txt create mode 100644 comtool/readme.txt create mode 100644 countcode/countcode.pro create mode 100644 countcode/frmcountcode.cpp create mode 100644 countcode/frmcountcode.h create mode 100644 countcode/frmcountcode.ui create mode 100644 countcode/main.cpp create mode 100644 countcode/snap.png create mode 100644 devicesizetable/devicesizetable.cpp create mode 100644 devicesizetable/devicesizetable.h create mode 100644 devicesizetable/devicesizetable.pro create mode 100644 devicesizetable/frmdevicesizetable.cpp create mode 100644 devicesizetable/frmdevicesizetable.h create mode 100644 devicesizetable/frmdevicesizetable.ui create mode 100644 devicesizetable/main.cpp create mode 100644 flatui/flatui.cpp create mode 100644 flatui/flatui.gif create mode 100644 flatui/flatui.h create mode 100644 flatui/flatui.pro create mode 100644 flatui/frmflatui.cpp create mode 100644 flatui/frmflatui.h create mode 100644 flatui/frmflatui.ui create mode 100644 flatui/main.cpp create mode 100644 gifwidget/gif.h create mode 100644 gifwidget/gifwidget.cpp create mode 100644 gifwidget/gifwidget.h create mode 100644 gifwidget/gifwidget.pro create mode 100644 gifwidget/image/gifwidget.ico create mode 100644 gifwidget/image/gifwidget.png create mode 100644 gifwidget/main.cpp create mode 100644 gifwidget/main.qrc create mode 100644 lightbutton/frmlightbutton.cpp create mode 100644 lightbutton/frmlightbutton.h create mode 100644 lightbutton/frmlightbutton.ui create mode 100644 lightbutton/lightbutton.cpp create mode 100644 lightbutton/lightbutton.gif create mode 100644 lightbutton/lightbutton.h create mode 100644 lightbutton/lightbutton.pro create mode 100644 lightbutton/main.cpp create mode 100644 movewidget/frmmovewidget.cpp create mode 100644 movewidget/frmmovewidget.h create mode 100644 movewidget/frmmovewidget.ui create mode 100644 movewidget/main.cpp create mode 100644 movewidget/movewidget.cpp create mode 100644 movewidget/movewidget.h create mode 100644 movewidget/movewidget.pro create mode 100644 navbutton/frmnavbutton.cpp create mode 100644 navbutton/frmnavbutton.h create mode 100644 navbutton/frmnavbutton.ui create mode 100644 navbutton/iconhelper.cpp create mode 100644 navbutton/iconhelper.h create mode 100644 navbutton/image/fontawesome-webfont.ttf create mode 100644 navbutton/main.cpp create mode 100644 navbutton/main.qrc create mode 100644 navbutton/navbutton.cpp create mode 100644 navbutton/navbutton.h create mode 100644 navbutton/navbutton.pro create mode 100644 nettool/api/api.pri create mode 100644 nettool/api/app.cpp create mode 100644 nettool/api/app.h create mode 100644 nettool/api/quiwidget.cpp create mode 100644 nettool/api/quiwidget.h create mode 100644 nettool/api/tcpserver.cpp create mode 100644 nettool/api/tcpserver.h create mode 100644 nettool/file/device.txt create mode 100644 nettool/file/send.txt create mode 100644 nettool/form/form.pri create mode 100644 nettool/form/frmmain.cpp create mode 100644 nettool/form/frmmain.h create mode 100644 nettool/form/frmmain.ui create mode 100644 nettool/form/frmtcpclient.cpp create mode 100644 nettool/form/frmtcpclient.h create mode 100644 nettool/form/frmtcpclient.ui create mode 100644 nettool/form/frmtcpserver.cpp create mode 100644 nettool/form/frmtcpserver.h create mode 100644 nettool/form/frmtcpserver.ui create mode 100644 nettool/form/frmudpserver.cpp create mode 100644 nettool/form/frmudpserver.h create mode 100644 nettool/form/frmudpserver.ui create mode 100644 nettool/head.h create mode 100644 nettool/main.cpp create mode 100644 nettool/nettool.pro create mode 100644 nettool/other/main.ico create mode 100644 nettool/other/main.qrc create mode 100644 nettool/other/main.rc create mode 100644 nettool/other/qt_zh_CN.qm create mode 100644 nettool/other/widgets.qm create mode 100644 nettool/readme.txt create mode 100644 nettool/snap/QQ截图20180514145725.jpg create mode 100644 nettool/snap/QQ截图20180514145729.jpg create mode 100644 nettool/snap/QQ截图20180514145732.jpg create mode 100644 nettool/snap/QQ截图20180514145909.jpg create mode 100644 styledemo/frmmain.cpp create mode 100644 styledemo/frmmain.h create mode 100644 styledemo/frmmain.ui create mode 100644 styledemo/head.h create mode 100644 styledemo/main.cpp create mode 100644 styledemo/other/image/Font Awesome Cheatsheet.png create mode 100644 styledemo/other/image/btn_close.png create mode 100644 styledemo/other/image/btn_ok.png create mode 100644 styledemo/other/image/fontawesome-webfont.ttf create mode 100644 styledemo/other/image/msg_error.png create mode 100644 styledemo/other/image/msg_info.png create mode 100644 styledemo/other/image/msg_question.png create mode 100644 styledemo/other/image/qt_zh_CN.qm create mode 100644 styledemo/other/image/widgets.qm create mode 100644 styledemo/other/main.qrc create mode 100644 styledemo/other/qss.qrc create mode 100644 styledemo/other/qss/flatwhite.css create mode 100644 styledemo/other/qss/flatwhite/add_bottom.png create mode 100644 styledemo/other/qss/flatwhite/add_left.png create mode 100644 styledemo/other/qss/flatwhite/add_right.png create mode 100644 styledemo/other/qss/flatwhite/add_top.png create mode 100644 styledemo/other/qss/flatwhite/branch_close.png create mode 100644 styledemo/other/qss/flatwhite/branch_open.png create mode 100644 styledemo/other/qss/flatwhite/calendar_nextmonth.png create mode 100644 styledemo/other/qss/flatwhite/calendar_prevmonth.png create mode 100644 styledemo/other/qss/flatwhite/checkbox_checked.png create mode 100644 styledemo/other/qss/flatwhite/checkbox_checked_disable.png create mode 100644 styledemo/other/qss/flatwhite/checkbox_parcial.png create mode 100644 styledemo/other/qss/flatwhite/checkbox_parcial_disable.png create mode 100644 styledemo/other/qss/flatwhite/checkbox_unchecked.png create mode 100644 styledemo/other/qss/flatwhite/checkbox_unchecked_disable.png create mode 100644 styledemo/other/qss/flatwhite/radiobutton_checked.png create mode 100644 styledemo/other/qss/flatwhite/radiobutton_checked_disable.png create mode 100644 styledemo/other/qss/flatwhite/radiobutton_unchecked.png create mode 100644 styledemo/other/qss/flatwhite/radiobutton_unchecked_disable.png create mode 100644 styledemo/other/qss/lightblue.css create mode 100644 styledemo/other/qss/lightblue/add_bottom.png create mode 100644 styledemo/other/qss/lightblue/add_left.png create mode 100644 styledemo/other/qss/lightblue/add_right.png create mode 100644 styledemo/other/qss/lightblue/add_top.png create mode 100644 styledemo/other/qss/lightblue/branch_close.png create mode 100644 styledemo/other/qss/lightblue/branch_open.png create mode 100644 styledemo/other/qss/lightblue/calendar_nextmonth.png create mode 100644 styledemo/other/qss/lightblue/calendar_prevmonth.png create mode 100644 styledemo/other/qss/lightblue/checkbox_checked.png create mode 100644 styledemo/other/qss/lightblue/checkbox_checked_disable.png create mode 100644 styledemo/other/qss/lightblue/checkbox_parcial.png create mode 100644 styledemo/other/qss/lightblue/checkbox_parcial_disable.png create mode 100644 styledemo/other/qss/lightblue/checkbox_unchecked.png create mode 100644 styledemo/other/qss/lightblue/checkbox_unchecked_disable.png create mode 100644 styledemo/other/qss/lightblue/radiobutton_checked.png create mode 100644 styledemo/other/qss/lightblue/radiobutton_checked_disable.png create mode 100644 styledemo/other/qss/lightblue/radiobutton_unchecked.png create mode 100644 styledemo/other/qss/lightblue/radiobutton_unchecked_disable.png create mode 100644 styledemo/other/qss/psblack.css create mode 100644 styledemo/other/qss/psblack/add_bottom.png create mode 100644 styledemo/other/qss/psblack/add_left.png create mode 100644 styledemo/other/qss/psblack/add_right.png create mode 100644 styledemo/other/qss/psblack/add_top.png create mode 100644 styledemo/other/qss/psblack/branch_close.png create mode 100644 styledemo/other/qss/psblack/branch_open.png create mode 100644 styledemo/other/qss/psblack/calendar_nextmonth.png create mode 100644 styledemo/other/qss/psblack/calendar_prevmonth.png create mode 100644 styledemo/other/qss/psblack/checkbox_checked.png create mode 100644 styledemo/other/qss/psblack/checkbox_checked_disable.png create mode 100644 styledemo/other/qss/psblack/checkbox_parcial.png create mode 100644 styledemo/other/qss/psblack/checkbox_parcial_disable.png create mode 100644 styledemo/other/qss/psblack/checkbox_unchecked.png create mode 100644 styledemo/other/qss/psblack/checkbox_unchecked_disable.png create mode 100644 styledemo/other/qss/psblack/radiobutton_checked.png create mode 100644 styledemo/other/qss/psblack/radiobutton_checked_disable.png create mode 100644 styledemo/other/qss/psblack/radiobutton_unchecked.png create mode 100644 styledemo/other/qss/psblack/radiobutton_unchecked_disable.png create mode 100644 styledemo/readme.txt create mode 100644 styledemo/snap_flatwhite.png create mode 100644 styledemo/snap_lightblue.png create mode 100644 styledemo/snap_psblack.png create mode 100644 styledemo/styledemo.pro create mode 100644 video_splite/bg_novideo.png create mode 100644 video_splite/frmmain.cpp create mode 100644 video_splite/frmmain.h create mode 100644 video_splite/frmmain.ui create mode 100644 video_splite/main.cpp create mode 100644 video_splite/main.qrc create mode 100644 video_splite/snap/QQ截图20180430191412.png create mode 100644 video_splite/snap/QQ截图20180430191420.png create mode 100644 video_splite/snap/QQ截图20180430191429.png create mode 100644 video_splite/snap/QQ截图20180430191440.png create mode 100644 video_splite/snap/QQ截图20180430191448.png create mode 100644 video_splite/snap/QQ截图20180430191527.png create mode 100644 video_splite/video_splite.pro diff --git a/README.md b/README.md new file mode 100644 index 0000000..007d72e --- /dev/null +++ b/README.md @@ -0,0 +1,17 @@ +#### 项目介绍 +Qt编写的一些开源的demo,包括串口调试助手、网络调试助手、自定义控件、其他小demo等,会一直持续更新完善,代码随意传播使用,拒绝打赏和捐赠,欢迎各位留言评论! + +#### 目录说明 +| 编号 | 文件夹 | 描述 | +| ------ | ------ | ------ | +| 1 | lightbutton | 高亮按钮控件 | +| 2 | movewidget | 通用控件移动类 | +| 3 | flatui | 模仿flatui类 | +| 4 | countcode | 代码统计组件 | +| 5 | gifwidget | 屏幕录制控件 | +| 6 | comtool | 串口调试助手 | +| 7 | nettool | 网络调试助手 | +| 8 | devicesizetable | 硬盘容量控件 | +| 9 | styledemo | 高仿PS黑色+扁平白色+淡蓝色风格主题 | +| 10 | navbutton | 导航按钮控件 | +| 11 | video_splite | 视频监控画面分割demo | diff --git a/comtool/api/api.pri b/comtool/api/api.pri new file mode 100644 index 0000000..39e8942 --- /dev/null +++ b/comtool/api/api.pri @@ -0,0 +1,7 @@ +HEADERS += \ + $$PWD/app.h \ + $$PWD/quiwidget.h + +SOURCES += \ + $$PWD/app.cpp \ + $$PWD/quiwidget.cpp diff --git a/comtool/api/app.cpp b/comtool/api/app.cpp new file mode 100644 index 0000000..062332e --- /dev/null +++ b/comtool/api/app.cpp @@ -0,0 +1,201 @@ +#include "app.h" +#include "quiwidget.h" + +QString App::ConfigFile = "config.ini"; +QString App::SendFileName = "send.txt"; +QString App::DeviceFileName = "device.txt"; + +QString App::PortName = "COM1"; +int App::BaudRate = 9600; +int App::DataBit = 8; +QString App::Parity = "无"; +double App::StopBit = 1; + +bool App::HexSend = false; +bool App::HexReceive = false; +bool App::Debug = false; +bool App::AutoClear = false; + +bool App::AutoSend = false; +int App::SendInterval = 1000; +bool App::AutoSave = false; +int App::SaveInterval = 5000; + +QString App::Mode = "Tcp_Client"; +QString App::ServerIP = "127.0.0.1"; +int App::ServerPort = 6000; +int App::ListenPort = 6000; +int App::SleepTime = 100; +bool App::AutoConnect = false; + +void App::readConfig() +{ + if (!checkConfig()) { + return; + } + + QSettings set(App::ConfigFile, QSettings::IniFormat); + + set.beginGroup("ComConfig"); + App::PortName = set.value("PortName").toString(); + App::BaudRate = set.value("BaudRate").toInt(); + App::DataBit = set.value("DataBit").toInt(); + App::Parity = set.value("Parity").toString(); + App::StopBit = set.value("StopBit").toInt(); + + App::HexSend = set.value("HexSend").toBool(); + App::HexReceive = set.value("HexReceive").toBool(); + App::Debug = set.value("Debug").toBool(); + App::AutoClear = set.value("AutoClear").toBool(); + + App::AutoSend = set.value("AutoSend").toBool(); + App::SendInterval = set.value("SendInterval").toInt(); + App::AutoSave = set.value("AutoSave").toBool(); + App::SaveInterval = set.value("SaveInterval").toInt(); + set.endGroup(); + + set.beginGroup("NetConfig"); + App::Mode = set.value("Mode").toString(); + App::ServerIP = set.value("ServerIP").toString(); + App::ServerPort = set.value("ServerPort").toInt(); + App::ListenPort = set.value("ListenPort").toInt(); + App::SleepTime = set.value("SleepTime").toInt(); + App::AutoConnect = set.value("AutoConnect").toBool(); + set.endGroup(); +} + +void App::writeConfig() +{ + QSettings set(App::ConfigFile, QSettings::IniFormat); + + set.beginGroup("ComConfig"); + set.setValue("PortName", App::PortName); + set.setValue("BaudRate", App::BaudRate); + set.setValue("DataBit", App::DataBit); + set.setValue("Parity", App::Parity); + set.setValue("StopBit", App::StopBit); + + set.setValue("HexSend", App::HexSend); + set.setValue("HexReceive", App::HexReceive); + set.setValue("Debug", App::Debug); + set.setValue("AutoClear", App::AutoClear); + + set.setValue("AutoSend", App::AutoSend); + set.setValue("SendInterval", App::SendInterval); + set.setValue("AutoSave", App::AutoSave); + set.setValue("SaveInterval", App::SaveInterval); + set.endGroup(); + + set.beginGroup("NetConfig"); + set.setValue("Mode", App::Mode); + set.setValue("ServerIP", App::ServerIP); + set.setValue("ServerPort", App::ServerPort); + set.setValue("ListenPort", App::ListenPort); + set.setValue("SleepTime", App::SleepTime); + set.setValue("AutoConnect", App::AutoConnect); + set.endGroup(); +} + +void App::newConfig() +{ +#if (QT_VERSION <= QT_VERSION_CHECK(5,0,0)) + App::Parity = App::Parity.toLatin1(); +#endif + writeConfig(); +} + +bool App::checkConfig() +{ + //如果配置文件大小为0,则以初始值继续运行,并生成配置文件 + QFile file(App::ConfigFile); + if (file.size() == 0) { + newConfig(); + return false; + } + + //如果配置文件不完整,则以初始值继续运行,并生成配置文件 + if (file.open(QFile::ReadOnly)) { + bool ok = true; + while (!file.atEnd()) { + QString line = file.readLine(); + line = line.replace("\r", ""); + line = line.replace("\n", ""); + QStringList list = line.split("="); + + if (list.count() == 2) { + if (list.at(1) == "") { + ok = false; + break; + } + } + } + + if (!ok) { + newConfig(); + return false; + } + } else { + newConfig(); + return false; + } + + return true; +} + +QStringList App::Intervals = QStringList(); +QStringList App::Datas = QStringList(); +QStringList App::Keys = QStringList(); +QStringList App::Values = QStringList(); + +void App::readSendData() +{ + //读取发送数据列表 + App::Datas.clear(); + QString fileName = QString("%1/%2").arg(QUIHelper::appPath()).arg(App::SendFileName); + QFile file(fileName); + if (file.size() > 0 && file.open(QFile::ReadOnly | QIODevice::Text)) { + while (!file.atEnd()) { + QString line = file.readLine(); + line = line.trimmed(); + line = line.replace("\r", ""); + line = line.replace("\n", ""); + if (!line.isEmpty()) { + App::Datas.append(line); + } + } + + file.close(); + } +} + +void App::readDeviceData() +{ + //读取转发数据列表 + App::Keys.clear(); + App::Values.clear(); + QString fileName = QString("%1/%2").arg(QUIHelper::appPath()).arg(App::DeviceFileName); + QFile file(fileName); + if (file.size() > 0 && file.open(QFile::ReadOnly | QIODevice::Text)) { + while (!file.atEnd()) { + QString line = file.readLine(); + line = line.trimmed(); + line = line.replace("\r", ""); + line = line.replace("\n", ""); + if (!line.isEmpty()) { + QStringList list = line.split(";"); + QString key = list.at(0); + QString value; + for (int i = 1; i < list.count(); i++) { + value += QString("%1;").arg(list.at(i)); + } + + //去掉末尾分号 + value = value.mid(0, value.length() - 1); + App::Keys.append(key); + App::Values.append(value); + } + } + + file.close(); + } +} diff --git a/comtool/api/app.h b/comtool/api/app.h new file mode 100644 index 0000000..22c3840 --- /dev/null +++ b/comtool/api/app.h @@ -0,0 +1,51 @@ +#ifndef APP_H +#define APP_H + +#include "head.h" + +class App +{ +public: + static QString ConfigFile; //配置文件路径 + static QString SendFileName; //发送配置文件名 + static QString DeviceFileName; //模拟设备数据文件名 + + static QString PortName; //串口号 + static int BaudRate; //波特率 + static int DataBit; //数据位 + static QString Parity; //校验位 + static double StopBit; //停止位 + + static bool HexSend; //16进制发送 + static bool HexReceive; //16进制接收 + static bool Debug; //模拟设备 + static bool AutoClear; //自动清空 + + static bool AutoSend; //自动发送 + static int SendInterval; //自动发送间隔 + static bool AutoSave; //自动保存 + static int SaveInterval; //自动保存间隔 + + static QString Mode; //转换模式 + static QString ServerIP; //服务器IP + static int ServerPort; //服务器端口 + static int ListenPort; //监听端口 + static int SleepTime; //延时时间 + static bool AutoConnect; //自动重连 + + //读写配置参数及其他操作 + static void readConfig(); //读取配置参数 + static void writeConfig(); //写入配置参数 + static void newConfig(); //以初始值新建配置文件 + static bool checkConfig(); //校验配置文件 + + static QStringList Intervals; + static QStringList Datas; + static QStringList Keys; + static QStringList Values; + static void readSendData(); + static void readDeviceData(); + +}; + +#endif // APP_H diff --git a/comtool/api/quiwidget.cpp b/comtool/api/quiwidget.cpp new file mode 100644 index 0000000..3153671 --- /dev/null +++ b/comtool/api/quiwidget.cpp @@ -0,0 +1,3688 @@ +#include "quiwidget.h" +#ifdef Q_OS_ANDROID +#include "qandroid.h" +#endif + +#ifdef arma7 +#define TOOL true +#else +#define TOOL false +#endif + +QUIWidget::QUIWidget(QWidget *parent) : QDialog(parent) +{ + this->initControl(); + this->initForm(); + QUIHelper::setFormInCenter(this); +} + +QUIWidget::~QUIWidget() +{ +} + +bool QUIWidget::eventFilter(QObject *watched, QEvent *event) +{ + static QPoint mousePoint; + static bool mousePressed = false; + + QMouseEvent *mouseEvent = static_cast(event); + if (mouseEvent->type() == QEvent::MouseButtonPress) { + if (mouseEvent->button() == Qt::LeftButton) { + mousePressed = true; + mousePoint = mouseEvent->globalPos() - this->pos(); + } + } else if (mouseEvent->type() == QEvent::MouseButtonRelease) { + mousePressed = false; + } else if (mouseEvent->type() == QEvent::MouseMove) { + if (mousePressed && (mouseEvent->buttons() && Qt::LeftButton)) { + if (this->property("canMove").toBool()) { + this->move(mouseEvent->globalPos() - mousePoint); + } + } + } else if (mouseEvent->type() == QEvent::MouseButtonDblClick) { + //以下写法可以将双击识别限定在标题栏 + if (this->btnMenu_Max->isVisible() && watched == this->widgetTitle) { + //if (this->btnMenu_Max->isVisible()) { + this->on_btnMenu_Max_clicked(); + } + } + + return QWidget::eventFilter(watched, event); +} + +QLabel *QUIWidget::getLabIco() const +{ + return this->labIco; +} + +QLabel *QUIWidget::getLabTitle() const +{ + return this->labTitle; +} + +QToolButton *QUIWidget::getBtnMenu() const +{ + return this->btnMenu; +} + +QPushButton *QUIWidget::getBtnMenuMin() const +{ + return this->btnMenu_Min; +} + +QPushButton *QUIWidget::getBtnMenuMax() const +{ + return this->btnMenu_Max; +} + +QPushButton *QUIWidget::getBtnMenuMClose() const +{ + return this->btnMenu_Close; +} + +QString QUIWidget::getTitle() const +{ + return this->title; +} + +Qt::Alignment QUIWidget::getAlignment() const +{ + return this->alignment; +} + +bool QUIWidget::getMinHide() const +{ + return this->minHide; +} + +bool QUIWidget::getExitAll() const +{ + return this->exitAll; +} + +QSize QUIWidget::sizeHint() const +{ + return QSize(600, 450); +} + +QSize QUIWidget::minimumSizeHint() const +{ + return QSize(200, 150); +} + +void QUIWidget::initControl() +{ + this->setObjectName(QString::fromUtf8("QUIWidget")); + this->resize(900, 750); + verticalLayout1 = new QVBoxLayout(this); + verticalLayout1->setSpacing(0); + verticalLayout1->setContentsMargins(11, 11, 11, 11); + verticalLayout1->setObjectName(QString::fromUtf8("verticalLayout1")); + verticalLayout1->setContentsMargins(1, 1, 1, 1); + widgetMain = new QWidget(this); + widgetMain->setObjectName(QString::fromUtf8("widgetMainQUI")); + verticalLayout2 = new QVBoxLayout(widgetMain); + verticalLayout2->setSpacing(0); + verticalLayout2->setContentsMargins(11, 11, 11, 11); + verticalLayout2->setObjectName(QString::fromUtf8("verticalLayout2")); + verticalLayout2->setContentsMargins(0, 0, 0, 0); + widgetTitle = new QWidget(widgetMain); + widgetTitle->setObjectName(QString::fromUtf8("widgetTitle")); + QSizePolicy sizePolicy(QSizePolicy::Preferred, QSizePolicy::Fixed); + sizePolicy.setHorizontalStretch(0); + sizePolicy.setVerticalStretch(0); + sizePolicy.setHeightForWidth(widgetTitle->sizePolicy().hasHeightForWidth()); + widgetTitle->setSizePolicy(sizePolicy); + widgetTitle->setMinimumSize(QSize(0, 30)); + horizontalLayout4 = new QHBoxLayout(widgetTitle); + horizontalLayout4->setSpacing(0); + horizontalLayout4->setContentsMargins(11, 11, 11, 11); + horizontalLayout4->setObjectName(QString::fromUtf8("horizontalLayout4")); + horizontalLayout4->setContentsMargins(0, 0, 0, 0); + + labIco = new QLabel(widgetTitle); + labIco->setObjectName(QString::fromUtf8("labIco")); + QSizePolicy sizePolicy1(QSizePolicy::Minimum, QSizePolicy::Preferred); + sizePolicy1.setHorizontalStretch(0); + sizePolicy1.setVerticalStretch(0); + sizePolicy1.setHeightForWidth(labIco->sizePolicy().hasHeightForWidth()); + labIco->setSizePolicy(sizePolicy1); + labIco->setMinimumSize(QSize(30, 0)); + labIco->setAlignment(Qt::AlignCenter); + horizontalLayout4->addWidget(labIco); + + labTitle = new QLabel(widgetTitle); + labTitle->setObjectName(QString::fromUtf8("labTitle")); + QSizePolicy sizePolicy2(QSizePolicy::Expanding, QSizePolicy::Preferred); + sizePolicy2.setHorizontalStretch(0); + sizePolicy2.setVerticalStretch(0); + sizePolicy2.setHeightForWidth(labTitle->sizePolicy().hasHeightForWidth()); + labTitle->setSizePolicy(sizePolicy2); + labTitle->setAlignment(Qt::AlignLeading | Qt::AlignLeft | Qt::AlignVCenter); + horizontalLayout4->addWidget(labTitle); + + widgetMenu = new QWidget(widgetTitle); + widgetMenu->setObjectName(QString::fromUtf8("widgetMenu")); + sizePolicy1.setHeightForWidth(widgetMenu->sizePolicy().hasHeightForWidth()); + widgetMenu->setSizePolicy(sizePolicy1); + horizontalLayout = new QHBoxLayout(widgetMenu); + horizontalLayout->setSpacing(0); + horizontalLayout->setContentsMargins(11, 11, 11, 11); + horizontalLayout->setObjectName(QString::fromUtf8("horizontalLayout")); + horizontalLayout->setContentsMargins(0, 0, 0, 0); + + btnMenu = new QToolButton(widgetMenu); + btnMenu->setObjectName(QString::fromUtf8("btnMenu")); + QSizePolicy sizePolicy3(QSizePolicy::Fixed, QSizePolicy::Expanding); + sizePolicy3.setHorizontalStretch(0); + sizePolicy3.setVerticalStretch(0); + sizePolicy3.setHeightForWidth(btnMenu->sizePolicy().hasHeightForWidth()); + btnMenu->setSizePolicy(sizePolicy3); + btnMenu->setMinimumSize(QSize(30, 0)); + btnMenu->setMaximumSize(QSize(30, 16777215)); + btnMenu->setFocusPolicy(Qt::NoFocus); + btnMenu->setPopupMode(QToolButton::InstantPopup); + horizontalLayout->addWidget(btnMenu); + + btnMenu_Min = new QPushButton(widgetMenu); + btnMenu_Min->setObjectName(QString::fromUtf8("btnMenu_Min")); + QSizePolicy sizePolicy4(QSizePolicy::Minimum, QSizePolicy::Expanding); + sizePolicy4.setHorizontalStretch(0); + sizePolicy4.setVerticalStretch(0); + sizePolicy4.setHeightForWidth(btnMenu_Min->sizePolicy().hasHeightForWidth()); + btnMenu_Min->setSizePolicy(sizePolicy4); + btnMenu_Min->setMinimumSize(QSize(30, 0)); + btnMenu_Min->setMaximumSize(QSize(30, 16777215)); + btnMenu_Min->setCursor(QCursor(Qt::ArrowCursor)); + btnMenu_Min->setFocusPolicy(Qt::NoFocus); + horizontalLayout->addWidget(btnMenu_Min); + + btnMenu_Max = new QPushButton(widgetMenu); + btnMenu_Max->setObjectName(QString::fromUtf8("btnMenu_Max")); + sizePolicy3.setHeightForWidth(btnMenu_Max->sizePolicy().hasHeightForWidth()); + btnMenu_Max->setSizePolicy(sizePolicy3); + btnMenu_Max->setMinimumSize(QSize(30, 0)); + btnMenu_Max->setMaximumSize(QSize(30, 16777215)); + btnMenu_Max->setCursor(QCursor(Qt::ArrowCursor)); + btnMenu_Max->setFocusPolicy(Qt::NoFocus); + horizontalLayout->addWidget(btnMenu_Max); + + btnMenu_Close = new QPushButton(widgetMenu); + btnMenu_Close->setObjectName(QString::fromUtf8("btnMenu_Close")); + sizePolicy3.setHeightForWidth(btnMenu_Close->sizePolicy().hasHeightForWidth()); + btnMenu_Close->setSizePolicy(sizePolicy3); + btnMenu_Close->setMinimumSize(QSize(30, 0)); + btnMenu_Close->setMaximumSize(QSize(30, 16777215)); + btnMenu_Close->setCursor(QCursor(Qt::ArrowCursor)); + btnMenu_Close->setFocusPolicy(Qt::NoFocus); + horizontalLayout->addWidget(btnMenu_Close); + horizontalLayout4->addWidget(widgetMenu); + verticalLayout2->addWidget(widgetTitle); + + widget = new QWidget(widgetMain); + widget->setObjectName(QString::fromUtf8("widget")); + verticalLayout3 = new QVBoxLayout(widget); + verticalLayout3->setSpacing(0); + verticalLayout3->setContentsMargins(11, 11, 11, 11); + verticalLayout3->setObjectName(QString::fromUtf8("verticalLayout3")); + verticalLayout3->setContentsMargins(0, 0, 0, 0); + verticalLayout2->addWidget(widget); + verticalLayout1->addWidget(widgetMain); + + connect(this->btnMenu_Min, SIGNAL(clicked()), this, SLOT(on_btnMenu_Min_clicked())); + connect(this->btnMenu_Max, SIGNAL(clicked()), this, SLOT(on_btnMenu_Max_clicked())); + connect(this->btnMenu_Close, SIGNAL(clicked()), this, SLOT(on_btnMenu_Close_clicked())); +} + +void QUIWidget::initForm() +{ + //设置图形字体 + setIcon(QUIWidget::Lab_Ico, QUIConfig::IconMain, 11); + setIcon(QUIWidget::BtnMenu, QUIConfig::IconMenu); + setIcon(QUIWidget::BtnMenu_Min, QUIConfig::IconMin); + setIcon(QUIWidget::BtnMenu_Normal, QUIConfig::IconNormal); + setIcon(QUIWidget::BtnMenu_Close, QUIConfig::IconClose); + + this->setProperty("form", true); + this->setProperty("canMove", true); + this->widgetTitle->setProperty("form", "title"); + this->setWindowFlags(Qt::FramelessWindowHint | Qt::WindowMinMaxButtonsHint); + + //设置标题及对齐方式 + title = "QUI Demo"; + alignment = Qt::AlignLeft | Qt::AlignVCenter; + minHide = false; + exitAll = true; + mainWidget = 0; + + setVisible(QUIWidget::BtnMenu, false); + + //绑定事件过滤器监听鼠标移动 + this->installEventFilter(this); + this->widgetTitle->installEventFilter(this); + + //添加换肤菜单 + QStringList styleNames; + styleNames << "银色" << "蓝色" << "浅蓝色" << "深蓝色" << "灰色" << "浅灰色" << "深灰色" << "黑色" + << "浅黑色" << "深黑色" << "PS黑色" << "黑色扁平" << "白色扁平" << "蓝色扁平" << "紫色" << "黑蓝色" << "视频黑"; + + foreach (QString styleName, styleNames) { + QAction *action = new QAction(styleName, this); + connect(action, SIGNAL(triggered(bool)), this, SLOT(changeStyle())); + this->btnMenu->addAction(action); + } +} + +void QUIWidget::changeStyle() +{ + QAction *act = (QAction *)sender(); + QString name = act->text(); + QString qssFile = ":/qss/lightblue.css"; + + if (name == "银色") { + qssFile = ":/qss/silvery.css"; + QUIHelper::setStyle(QUIWidget::Style_Silvery); + } else if (name == "蓝色") { + qssFile = ":/qss/blue.css"; + QUIHelper::setStyle(QUIWidget::Style_Blue); + } else if (name == "浅蓝色") { + qssFile = ":/qss/lightblue.css"; + QUIHelper::setStyle(QUIWidget::Style_LightBlue); + } else if (name == "深蓝色") { + qssFile = ":/qss/darkblue.css"; + QUIHelper::setStyle(QUIWidget::Style_DarkBlue); + } else if (name == "灰色") { + qssFile = ":/qss/gray.css"; + QUIHelper::setStyle(QUIWidget::Style_Gray); + } else if (name == "浅灰色") { + qssFile = ":/qss/lightgray.css"; + QUIHelper::setStyle(QUIWidget::Style_LightGray); + } else if (name == "深灰色") { + qssFile = ":/qss/darkgray.css"; + QUIHelper::setStyle(QUIWidget::Style_DarkGray); + } else if (name == "黑色") { + qssFile = ":/qss/black.css"; + QUIHelper::setStyle(QUIWidget::Style_Black); + } else if (name == "浅黑色") { + qssFile = ":/qss/lightblack.css"; + QUIHelper::setStyle(QUIWidget::Style_LightBlack); + } else if (name == "深黑色") { + qssFile = ":/qss/darkblack.css"; + QUIHelper::setStyle(QUIWidget::Style_DarkBlack); + } else if (name == "PS黑色") { + qssFile = ":/qss/psblack.css"; + QUIHelper::setStyle(QUIWidget::Style_PSBlack); + } else if (name == "黑色扁平") { + qssFile = ":/qss/flatblack.css"; + QUIHelper::setStyle(QUIWidget::Style_FlatBlack); + } else if (name == "白色扁平") { + qssFile = ":/qss/flatwhite.css"; + QUIHelper::setStyle(QUIWidget::Style_FlatWhite); + } else if (name == "蓝色扁平") { + qssFile = ":/qss/flatblue.css"; + QUIHelper::setStyle(QUIWidget::Style_FlatBlue); + } else if (name == "紫色") { + qssFile = ":/qss/purple.css"; + QUIHelper::setStyle(QUIWidget::Style_Purple); + } else if (name == "黑蓝色") { + qssFile = ":/qss/blackblue.css"; + QUIHelper::setStyle(QUIWidget::Style_BlackBlue); + } else if (name == "视频黑") { + qssFile = ":/qss/blackvideo.css"; + QUIHelper::setStyle(QUIWidget::Style_BlackVideo); + } + + emit changeStyle(qssFile); +} + +void QUIWidget::setIcon(QUIWidget::Widget widget, const QChar &str, quint32 size) +{ + if (widget == QUIWidget::Lab_Ico) { + setIconMain(str, size); + } else if (widget == QUIWidget::BtnMenu) { + QUIConfig::IconMenu = str; + IconHelper::Instance()->setIcon(this->btnMenu, str, size); + } else if (widget == QUIWidget::BtnMenu_Min) { + QUIConfig::IconMin = str; + IconHelper::Instance()->setIcon(this->btnMenu_Min, str, size); + } else if (widget == QUIWidget::BtnMenu_Max) { + QUIConfig::IconMax = str; + IconHelper::Instance()->setIcon(this->btnMenu_Max, str, size); + } else if (widget == QUIWidget::BtnMenu_Normal) { + QUIConfig::IconNormal = str; + IconHelper::Instance()->setIcon(this->btnMenu_Max, str, size); + } else if (widget == QUIWidget::BtnMenu_Close) { + QUIConfig::IconClose = str; + IconHelper::Instance()->setIcon(this->btnMenu_Close, str, size); + } +} + +void QUIWidget::setIconMain(const QChar &str, quint32 size) +{ + QUIConfig::IconMain = str; + IconHelper::Instance()->setIcon(this->labIco, str, size); + QUIMessageBox::Instance()->setIconMain(str, size); + QUIInputBox::Instance()->setIconMain(str, size); + QUIDateSelect::Instance()->setIconMain(str, size); +} + +void QUIWidget::setPixmap(QUIWidget::Widget widget, const QString &file, const QSize &size) +{ + //按照宽高比自动缩放 + QPixmap pix = QPixmap(file); + pix = pix.scaled(size, Qt::KeepAspectRatio); + if (widget == QUIWidget::Lab_Ico) { + this->labIco->setPixmap(pix); + } else if (widget == QUIWidget::BtnMenu) { + this->btnMenu->setIcon(QIcon(file)); + } else if (widget == QUIWidget::BtnMenu_Min) { + this->btnMenu_Min->setIcon(QIcon(file)); + } else if (widget == QUIWidget::BtnMenu_Max) { + this->btnMenu_Max->setIcon(QIcon(file)); + } else if (widget == QUIWidget::BtnMenu_Close) { + this->btnMenu_Close->setIcon(QIcon(file)); + } +} + +void QUIWidget::setVisible(QUIWidget::Widget widget, bool visible) +{ + if (widget == QUIWidget::Lab_Ico) { + this->labIco->setVisible(visible); + } else if (widget == QUIWidget::BtnMenu) { + this->btnMenu->setVisible(visible); + } else if (widget == QUIWidget::BtnMenu_Min) { + this->btnMenu_Min->setVisible(visible); + } else if (widget == QUIWidget::BtnMenu_Max) { + this->btnMenu_Max->setVisible(visible); + } else if (widget == QUIWidget::BtnMenu_Close) { + this->btnMenu_Close->setVisible(visible); + } +} + +void QUIWidget::setOnlyCloseBtn() +{ + this->btnMenu->setVisible(false); + this->btnMenu_Min->setVisible(false); + this->btnMenu_Max->setVisible(false); +} + +void QUIWidget::setTitleHeight(int height) +{ + this->widgetTitle->setFixedHeight(height); +} + +void QUIWidget::setBtnWidth(int width) +{ + this->labIco->setFixedWidth(width); + this->btnMenu->setFixedWidth(width); + this->btnMenu_Min->setFixedWidth(width); + this->btnMenu_Max->setFixedWidth(width); + this->btnMenu_Close->setFixedWidth(width); +} + +void QUIWidget::setTitle(const QString &title) +{ + if (this->title != title) { + this->title = title; + this->labTitle->setText(title); + this->setWindowTitle(this->labTitle->text()); + } +} + +void QUIWidget::setAlignment(Qt::Alignment alignment) +{ + if (this->alignment != alignment) { + this->alignment = alignment; + this->labTitle->setAlignment(alignment); + } +} + +void QUIWidget::setMinHide(bool minHide) +{ + if (this->minHide != minHide) { + this->minHide = minHide; + } +} + +void QUIWidget::setExitAll(bool exitAll) +{ + if (this->exitAll != exitAll) { + this->exitAll = exitAll; + } +} + +void QUIWidget::setMainWidget(QWidget *mainWidget) +{ + //一个QUI窗体对象只能设置一个主窗体 + if (this->mainWidget == 0) { + //将子窗体添加到布局 + this->widget->layout()->addWidget(mainWidget); + //自动设置大小 + resize(mainWidget->width(), mainWidget->height() + this->widgetTitle->height()); + this->mainWidget = mainWidget; + } +} + +void QUIWidget::on_btnMenu_Min_clicked() +{ + if (minHide) { + hide(); + } else { + showMinimized(); + } +} + +void QUIWidget::on_btnMenu_Max_clicked() +{ + static bool max = false; + static QRect location = this->geometry(); + + if (max) { + this->setGeometry(location); + setIcon(QUIWidget::BtnMenu_Normal, QUIConfig::IconNormal); + } else { + location = this->geometry(); + this->setGeometry(qApp->desktop()->availableGeometry()); + setIcon(QUIWidget::BtnMenu_Max, QUIConfig::IconMax); + } + + this->setProperty("canMove", max); + max = !max; +} + +void QUIWidget::on_btnMenu_Close_clicked() +{ + //先发送关闭信号 + emit closing(); + mainWidget->close(); + if (exitAll) { + this->close(); + } +} + + +QScopedPointer QUIMessageBox::self; +QUIMessageBox *QUIMessageBox::Instance() +{ + if (self.isNull()) { + static QMutex mutex; + QMutexLocker locker(&mutex); + if (self.isNull()) { + self.reset(new QUIMessageBox); + } + } + + return self.data(); +} + +QUIMessageBox::QUIMessageBox(QWidget *parent) : QDialog(parent) +{ + this->initControl(); + this->initForm(); + QUIHelper::setFormInCenter(this); +} + +QUIMessageBox::~QUIMessageBox() +{ + delete widgetMain; +} + +void QUIMessageBox::closeEvent(QCloseEvent *) +{ + closeSec = 0; + currentSec = 0; +} + +bool QUIMessageBox::eventFilter(QObject *watched, QEvent *event) +{ + static QPoint mousePoint; + static bool mousePressed = false; + + QMouseEvent *mouseEvent = static_cast(event); + if (mouseEvent->type() == QEvent::MouseButtonPress) { + if (mouseEvent->button() == Qt::LeftButton) { + mousePressed = true; + mousePoint = mouseEvent->globalPos() - this->pos(); + return true; + } + } else if (mouseEvent->type() == QEvent::MouseButtonRelease) { + mousePressed = false; + return true; + } else if (mouseEvent->type() == QEvent::MouseMove) { + if (mousePressed && (mouseEvent->buttons() && Qt::LeftButton)) { + this->move(mouseEvent->globalPos() - mousePoint); + return true; + } + } + + return QWidget::eventFilter(watched, event); +} + +void QUIMessageBox::initControl() +{ + this->setObjectName(QString::fromUtf8("QUIMessageBox")); + + verticalLayout1 = new QVBoxLayout(this); + verticalLayout1->setSpacing(0); + verticalLayout1->setObjectName(QString::fromUtf8("verticalLayout1")); + verticalLayout1->setContentsMargins(1, 1, 1, 1); + widgetTitle = new QWidget(this); + widgetTitle->setObjectName(QString::fromUtf8("widgetTitle")); + QSizePolicy sizePolicy(QSizePolicy::Preferred, QSizePolicy::Fixed); + sizePolicy.setHorizontalStretch(0); + sizePolicy.setVerticalStretch(0); + sizePolicy.setHeightForWidth(widgetTitle->sizePolicy().hasHeightForWidth()); + widgetTitle->setSizePolicy(sizePolicy); + widgetTitle->setMinimumSize(QSize(0, TitleMinSize)); + horizontalLayout3 = new QHBoxLayout(widgetTitle); + horizontalLayout3->setSpacing(0); + horizontalLayout3->setObjectName(QString::fromUtf8("horizontalLayout3")); + horizontalLayout3->setContentsMargins(0, 0, 0, 0); + labIco = new QLabel(widgetTitle); + labIco->setObjectName(QString::fromUtf8("labIco")); + QSizePolicy sizePolicy1(QSizePolicy::Minimum, QSizePolicy::Preferred); + sizePolicy1.setHorizontalStretch(0); + sizePolicy1.setVerticalStretch(0); + sizePolicy1.setHeightForWidth(labIco->sizePolicy().hasHeightForWidth()); + labIco->setSizePolicy(sizePolicy1); + labIco->setMinimumSize(QSize(TitleMinSize, 0)); + labIco->setAlignment(Qt::AlignCenter); + + horizontalLayout3->addWidget(labIco); + + labTitle = new QLabel(widgetTitle); + labTitle->setObjectName(QString::fromUtf8("labTitle")); + labTitle->setAlignment(Qt::AlignLeading | Qt::AlignLeft | Qt::AlignVCenter); + + horizontalLayout3->addWidget(labTitle); + + labTime = new QLabel(widgetTitle); + labTime->setObjectName(QString::fromUtf8("labTime")); + QSizePolicy sizePolicy2(QSizePolicy::Expanding, QSizePolicy::Preferred); + sizePolicy2.setHorizontalStretch(0); + sizePolicy2.setVerticalStretch(0); + sizePolicy2.setHeightForWidth(labTime->sizePolicy().hasHeightForWidth()); + labTime->setSizePolicy(sizePolicy2); + labTime->setAlignment(Qt::AlignCenter); + + horizontalLayout3->addWidget(labTime); + + widgetMenu = new QWidget(widgetTitle); + widgetMenu->setObjectName(QString::fromUtf8("widgetMenu")); + sizePolicy1.setHeightForWidth(widgetMenu->sizePolicy().hasHeightForWidth()); + widgetMenu->setSizePolicy(sizePolicy1); + horizontalLayout4 = new QHBoxLayout(widgetMenu); + horizontalLayout4->setSpacing(0); + horizontalLayout4->setObjectName(QString::fromUtf8("horizontalLayout4")); + horizontalLayout4->setContentsMargins(0, 0, 0, 0); + btnMenu_Close = new QPushButton(widgetMenu); + btnMenu_Close->setObjectName(QString::fromUtf8("btnMenu_Close")); + QSizePolicy sizePolicy3(QSizePolicy::Minimum, QSizePolicy::Expanding); + sizePolicy3.setHorizontalStretch(0); + sizePolicy3.setVerticalStretch(0); + sizePolicy3.setHeightForWidth(btnMenu_Close->sizePolicy().hasHeightForWidth()); + btnMenu_Close->setSizePolicy(sizePolicy3); + btnMenu_Close->setMinimumSize(QSize(TitleMinSize, 0)); + btnMenu_Close->setMaximumSize(QSize(TitleMinSize, 16777215)); + btnMenu_Close->setCursor(QCursor(Qt::ArrowCursor)); + btnMenu_Close->setFocusPolicy(Qt::NoFocus); + btnMenu_Close->setFlat(true); + + horizontalLayout4->addWidget(btnMenu_Close); + horizontalLayout3->addWidget(widgetMenu); + verticalLayout1->addWidget(widgetTitle); + + widgetMain = new QWidget(this); + widgetMain->setObjectName(QString::fromUtf8("widgetMainQUI")); + verticalLayout2 = new QVBoxLayout(widgetMain); + verticalLayout2->setSpacing(5); + verticalLayout2->setObjectName(QString::fromUtf8("verticalLayout2")); + verticalLayout2->setContentsMargins(5, 5, 5, 5); + frame = new QFrame(widgetMain); + frame->setObjectName(QString::fromUtf8("frame")); + frame->setFrameShape(QFrame::Box); + frame->setFrameShadow(QFrame::Sunken); + verticalLayout4 = new QVBoxLayout(frame); + verticalLayout4->setObjectName(QString::fromUtf8("verticalLayout4")); + verticalLayout4->setContentsMargins(-1, 9, -1, -1); + horizontalLayout1 = new QHBoxLayout(); + horizontalLayout1->setObjectName(QString::fromUtf8("horizontalLayout1")); + labIcoMain = new QLabel(frame); + labIcoMain->setObjectName(QString::fromUtf8("labIcoMain")); + labIcoMain->setAlignment(Qt::AlignCenter); + horizontalLayout1->addWidget(labIcoMain); + horizontalSpacer1 = new QSpacerItem(5, 0, QSizePolicy::Minimum, QSizePolicy::Minimum); + horizontalLayout1->addItem(horizontalSpacer1); + + labInfo = new QLabel(frame); + labInfo->setObjectName(QString::fromUtf8("labInfo")); + QSizePolicy sizePolicy4(QSizePolicy::Expanding, QSizePolicy::Expanding); + sizePolicy4.setHorizontalStretch(0); + sizePolicy4.setVerticalStretch(0); + sizePolicy4.setHeightForWidth(labInfo->sizePolicy().hasHeightForWidth()); + labInfo->setSizePolicy(sizePolicy4); + labInfo->setMinimumSize(QSize(0, TitleMinSize)); + labInfo->setScaledContents(false); + labInfo->setWordWrap(true); + horizontalLayout1->addWidget(labInfo); + verticalLayout4->addLayout(horizontalLayout1); + + horizontalLayout2 = new QHBoxLayout(); + horizontalLayout2->setObjectName(QString::fromUtf8("horizontalLayout2")); + horizontalSpacer2 = new QSpacerItem(40, 20, QSizePolicy::Expanding, QSizePolicy::Minimum); + horizontalLayout2->addItem(horizontalSpacer2); + + btnOk = new QPushButton(frame); + btnOk->setObjectName(QString::fromUtf8("btnOk")); + btnOk->setMinimumSize(QSize(85, 0)); + btnOk->setFocusPolicy(Qt::StrongFocus); + btnOk->setIcon(QIcon(":/image/btn_ok.png")); + horizontalLayout2->addWidget(btnOk); + + btnCancel = new QPushButton(frame); + btnCancel->setObjectName(QString::fromUtf8("btnCancel")); + btnCancel->setMinimumSize(QSize(85, 0)); + btnCancel->setFocusPolicy(Qt::StrongFocus); + btnCancel->setIcon(QIcon(":/image/btn_close.png")); + horizontalLayout2->addWidget(btnCancel); + + verticalLayout4->addLayout(horizontalLayout2); + verticalLayout2->addWidget(frame); + verticalLayout1->addWidget(widgetMain); + + widgetTitle->raise(); + widgetMain->raise(); + frame->raise(); + + btnOk->setText("确定"); + btnCancel->setText("取消"); + + connect(btnOk, SIGNAL(clicked()), this, SLOT(on_btnOk_clicked())); + connect(btnCancel, SIGNAL(clicked()), this, SLOT(on_btnMenu_Close_clicked())); + connect(btnMenu_Close, SIGNAL(clicked()), this, SLOT(on_btnMenu_Close_clicked())); +} + +void QUIMessageBox::initForm() +{ + IconHelper::Instance()->setIcon(labIco, QUIConfig::IconMain, QUIConfig::FontSize + 2); + IconHelper::Instance()->setIcon(btnMenu_Close, QUIConfig::IconClose, QUIConfig::FontSize); + + this->setProperty("form", true); + this->widgetTitle->setProperty("form", "title"); + if (TOOL) { + this->setWindowFlags(Qt::Tool | Qt::WindowStaysOnTopHint | Qt::FramelessWindowHint | Qt::X11BypassWindowManagerHint); + } else { + this->setWindowFlags(Qt::WindowStaysOnTopHint | Qt::FramelessWindowHint); + } + + this->setWindowTitle(this->labTitle->text()); + +#ifdef __arm__ + int width = 90; + int iconWidth = 22; + int iconHeight = 22; + this->setFixedSize(350, 180); + labIcoMain->setFixedSize(40, 40); +#else + int width = 80; + int iconWidth = 18; + int iconHeight = 18; + this->setFixedSize(280, 150); + labIcoMain->setFixedSize(30, 30); +#endif + + QList btns = this->frame->findChildren(); + foreach (QPushButton *btn, btns) { + btn->setMinimumWidth(width); + btn->setIconSize(QSize(iconWidth, iconHeight)); + } + + closeSec = 0; + currentSec = 0; + + QTimer *timer = new QTimer(this); + timer->setInterval(1000); + connect(timer, SIGNAL(timeout()), this, SLOT(checkSec())); + timer->start(); + + this->installEventFilter(this); +} + +void QUIMessageBox::checkSec() +{ + if (closeSec == 0) { + return; + } + + if (currentSec < closeSec) { + currentSec++; + } else { + this->close(); + } + + QString str = QString("关闭倒计时 %1 s").arg(closeSec - currentSec + 1); + this->labTime->setText(str); +} + +void QUIMessageBox::on_btnOk_clicked() +{ + done(QMessageBox::Yes); + close(); +} + +void QUIMessageBox::on_btnMenu_Close_clicked() +{ + done(QMessageBox::No); + close(); +} + +void QUIMessageBox::setIconMain(const QChar &str, quint32 size) +{ + IconHelper::Instance()->setIcon(this->labIco, str, size); +} + +void QUIMessageBox::setMessage(const QString &msg, int type, int closeSec) +{ + this->closeSec = closeSec; + this->currentSec = 0; + this->labTime->clear(); + checkSec(); + + //图片存在则取图片,不存在则取图形字体 + int size = this->labIcoMain->size().height(); + bool exist = !QImage(":/image/msg_info.png").isNull(); + if (type == 0) { + if (exist) { + this->labIcoMain->setStyleSheet("border-image: url(:/image/msg_info.png);"); + } else { + IconHelper::Instance()->setIcon(this->labIcoMain, 0xf05a, size); + } + + this->btnCancel->setVisible(false); + this->labTitle->setText("提示"); + } else if (type == 1) { + if (exist) { + this->labIcoMain->setStyleSheet("border-image: url(:/image/msg_question.png);"); + } else { + IconHelper::Instance()->setIcon(this->labIcoMain, 0xf059, size); + } + + this->labTitle->setText("询问"); + } else if (type == 2) { + if (exist) { + this->labIcoMain->setStyleSheet("border-image: url(:/image/msg_error.png);"); + } else { + IconHelper::Instance()->setIcon(this->labIcoMain, 0xf057, size); + } + + this->btnCancel->setVisible(false); + this->labTitle->setText("错误"); + } + + this->labInfo->setText(msg); + this->setWindowTitle(this->labTitle->text()); +} + + +QScopedPointer QUITipBox::self; +QUITipBox *QUITipBox::Instance() +{ + if (self.isNull()) { + static QMutex mutex; + QMutexLocker locker(&mutex); + if (self.isNull()) { + self.reset(new QUITipBox); + } + } + + return self.data(); +} + +QUITipBox::QUITipBox(QWidget *parent) : QDialog(parent) +{ + this->initControl(); + this->initForm(); +} + +QUITipBox::~QUITipBox() +{ + delete widgetMain; +} + +void QUITipBox::closeEvent(QCloseEvent *) +{ + closeSec = 0; + currentSec = 0; +} + +bool QUITipBox::eventFilter(QObject *watched, QEvent *event) +{ + static QPoint mousePoint; + static bool mousePressed = false; + + QMouseEvent *mouseEvent = static_cast(event); + if (mouseEvent->type() == QEvent::MouseButtonPress) { + if (mouseEvent->button() == Qt::LeftButton) { + mousePressed = true; + mousePoint = mouseEvent->globalPos() - this->pos(); + return true; + } + } else if (mouseEvent->type() == QEvent::MouseButtonRelease) { + mousePressed = false; + return true; + } else if (mouseEvent->type() == QEvent::MouseMove) { + if (mousePressed && (mouseEvent->buttons() && Qt::LeftButton)) { + this->move(mouseEvent->globalPos() - mousePoint); + return true; + } + } + + return QWidget::eventFilter(watched, event); +} + +void QUITipBox::initControl() +{ + this->setObjectName(QString::fromUtf8("QUITipBox")); + + verticalLayout = new QVBoxLayout(this); + verticalLayout->setSpacing(0); + verticalLayout->setObjectName(QString::fromUtf8("verticalLayout")); + verticalLayout->setContentsMargins(1, 1, 1, 1); + widgetTitle = new QWidget(this); + widgetTitle->setObjectName(QString::fromUtf8("widgetTitle")); + QSizePolicy sizePolicy(QSizePolicy::Preferred, QSizePolicy::Fixed); + sizePolicy.setHorizontalStretch(0); + sizePolicy.setVerticalStretch(0); + sizePolicy.setHeightForWidth(widgetTitle->sizePolicy().hasHeightForWidth()); + widgetTitle->setSizePolicy(sizePolicy); + horizontalLayout2 = new QHBoxLayout(widgetTitle); + horizontalLayout2->setSpacing(0); + horizontalLayout2->setObjectName(QString::fromUtf8("horizontalLayout2")); + horizontalLayout2->setContentsMargins(0, 0, 0, 0); + labIco = new QLabel(widgetTitle); + labIco->setObjectName(QString::fromUtf8("labIco")); + labIco->setMinimumSize(QSize(TitleMinSize, 0)); + labIco->setAlignment(Qt::AlignCenter); + horizontalLayout2->addWidget(labIco); + + labTitle = new QLabel(widgetTitle); + labTitle->setObjectName(QString::fromUtf8("labTitle")); + labTitle->setAlignment(Qt::AlignLeading | Qt::AlignLeft | Qt::AlignVCenter); + horizontalLayout2->addWidget(labTitle); + + labTime = new QLabel(widgetTitle); + labTime->setObjectName(QString::fromUtf8("labTime")); + QSizePolicy sizePolicy1(QSizePolicy::Expanding, QSizePolicy::Preferred); + sizePolicy1.setHorizontalStretch(0); + sizePolicy1.setVerticalStretch(0); + sizePolicy1.setHeightForWidth(labTime->sizePolicy().hasHeightForWidth()); + labTime->setSizePolicy(sizePolicy1); + horizontalLayout2->addWidget(labTime); + + widgetMenu = new QWidget(widgetTitle); + widgetMenu->setObjectName(QString::fromUtf8("widgetMenu")); + QSizePolicy sizePolicy2(QSizePolicy::Minimum, QSizePolicy::Preferred); + sizePolicy2.setHorizontalStretch(0); + sizePolicy2.setVerticalStretch(0); + sizePolicy2.setHeightForWidth(widgetMenu->sizePolicy().hasHeightForWidth()); + widgetMenu->setSizePolicy(sizePolicy2); + horizontalLayout = new QHBoxLayout(widgetMenu); + horizontalLayout->setSpacing(0); + horizontalLayout->setObjectName(QString::fromUtf8("horizontalLayout")); + horizontalLayout->setContentsMargins(0, 0, 0, 0); + btnMenu_Close = new QPushButton(widgetMenu); + btnMenu_Close->setObjectName(QString::fromUtf8("btnMenu_Close")); + QSizePolicy sizePolicy3(QSizePolicy::Minimum, QSizePolicy::Expanding); + sizePolicy3.setHorizontalStretch(0); + sizePolicy3.setVerticalStretch(0); + sizePolicy3.setHeightForWidth(btnMenu_Close->sizePolicy().hasHeightForWidth()); + btnMenu_Close->setSizePolicy(sizePolicy3); + btnMenu_Close->setMinimumSize(QSize(TitleMinSize, 0)); + btnMenu_Close->setMaximumSize(QSize(TitleMinSize, 16777215)); + btnMenu_Close->setCursor(QCursor(Qt::ArrowCursor)); + btnMenu_Close->setFocusPolicy(Qt::NoFocus); + btnMenu_Close->setFlat(true); + + horizontalLayout->addWidget(btnMenu_Close); + horizontalLayout2->addWidget(widgetMenu); + verticalLayout->addWidget(widgetTitle); + + widgetMain = new QWidget(this); + widgetMain->setObjectName(QString::fromUtf8("widgetMainQUI")); + widgetMain->setAutoFillBackground(true); + verticalLayout2 = new QVBoxLayout(widgetMain); + verticalLayout2->setObjectName(QString::fromUtf8("verticalLayout2")); + labInfo = new QLabel(widgetMain); + labInfo->setObjectName(QString::fromUtf8("labInfo")); + labInfo->setScaledContents(true); + verticalLayout2->addWidget(labInfo); + verticalLayout->addWidget(widgetMain); + + connect(btnMenu_Close, SIGNAL(clicked()), this, SLOT(on_btnMenu_Close_clicked())); +} + +void QUITipBox::initForm() +{ + IconHelper::Instance()->setIcon(labIco, QUIConfig::IconMain, QUIConfig::FontSize + 2); + IconHelper::Instance()->setIcon(btnMenu_Close, QUIConfig::IconClose, QUIConfig::FontSize); + + this->setProperty("form", true); + this->widgetTitle->setProperty("form", "title"); + this->setWindowFlags(Qt::Tool | Qt::WindowStaysOnTopHint | Qt::FramelessWindowHint | Qt::X11BypassWindowManagerHint); + this->setWindowTitle(this->labTitle->text()); + +#ifdef __arm__ + this->setFixedSize(350, 180); +#else + this->setFixedSize(280, 150); +#endif + + closeSec = 0; + currentSec = 0; + + QTimer *timer = new QTimer(this); + timer->setInterval(1000); + connect(timer, SIGNAL(timeout()), this, SLOT(checkSec())); + timer->start(); + + this->installEventFilter(this); + + //字体加大 + QFont font; + font.setPixelSize(QUIConfig::FontSize + 3); + font.setBold(true); + this->labInfo->setFont(font); + + //显示和隐藏窗体动画效果 + animation = new QPropertyAnimation(this, "pos"); + animation->setDuration(500); + animation->setEasingCurve(QEasingCurve::InOutQuad); +} + +void QUITipBox::checkSec() +{ + if (closeSec == 0) { + return; + } + + if (currentSec < closeSec) { + currentSec++; + } else { + this->close(); + } + + QString str = QString("关闭倒计时 %1 s").arg(closeSec - currentSec + 1); + this->labTime->setText(str); +} + +void QUITipBox::on_btnMenu_Close_clicked() +{ + done(QMessageBox::No); + close(); +} + +void QUITipBox::setIconMain(const QChar &str, quint32 size) +{ + IconHelper::Instance()->setIcon(this->labIco, str, size); +} + +void QUITipBox::setTip(const QString &title, const QString &tip, bool fullScreen, bool center, int closeSec) +{ + this->closeSec = closeSec; + this->currentSec = 0; + this->labTime->clear(); + checkSec(); + + this->fullScreen = fullScreen; + this->labTitle->setText(title); + this->labInfo->setText(tip); + this->labInfo->setAlignment(center ? Qt::AlignCenter : Qt::AlignLeft); + this->setWindowTitle(this->labTitle->text()); + + QRect rect = fullScreen ? qApp->desktop()->availableGeometry() : qApp->desktop()->geometry(); + int width = rect.width(); + int height = rect.height(); + int x = width - this->width(); + int y = height - this->height(); + + //移到右下角 + this->move(x, y); + + //启动动画 + animation->stop(); + animation->setStartValue(QPoint(x, height)); + animation->setEndValue(QPoint(x, y)); + animation->start(); +} + +void QUITipBox::hide() +{ + QRect rect = fullScreen ? qApp->desktop()->availableGeometry() : qApp->desktop()->geometry(); + int width = rect.width(); + int height = rect.height(); + int x = width - this->width(); + int y = height - this->height(); + + //启动动画 + animation->stop(); + animation->setStartValue(QPoint(x, y)); + animation->setEndValue(QPoint(x, qApp->desktop()->geometry().height())); + animation->start(); +} + + +QScopedPointer QUIInputBox::self; +QUIInputBox *QUIInputBox::Instance() +{ + if (self.isNull()) { + static QMutex mutex; + QMutexLocker locker(&mutex); + if (self.isNull()) { + self.reset(new QUIInputBox); + } + } + + return self.data(); +} + +QUIInputBox::QUIInputBox(QWidget *parent) : QDialog(parent) +{ + this->initControl(); + this->initForm(); + QUIHelper::setFormInCenter(this); +} + +QUIInputBox::~QUIInputBox() +{ + delete widgetMain; +} + +void QUIInputBox::showEvent(QShowEvent *) +{ + txtValue->setFocus(); + this->activateWindow(); +} + +void QUIInputBox::initControl() +{ + this->setObjectName(QString::fromUtf8("QUIInputBox")); + + verticalLayout1 = new QVBoxLayout(this); + verticalLayout1->setSpacing(0); + verticalLayout1->setObjectName(QString::fromUtf8("verticalLayout1")); + verticalLayout1->setContentsMargins(1, 1, 1, 1); + widgetTitle = new QWidget(this); + widgetTitle->setObjectName(QString::fromUtf8("widgetTitle")); + QSizePolicy sizePolicy(QSizePolicy::Preferred, QSizePolicy::Fixed); + sizePolicy.setHorizontalStretch(0); + sizePolicy.setVerticalStretch(0); + sizePolicy.setHeightForWidth(widgetTitle->sizePolicy().hasHeightForWidth()); + widgetTitle->setSizePolicy(sizePolicy); + widgetTitle->setMinimumSize(QSize(0, TitleMinSize)); + horizontalLayout1 = new QHBoxLayout(widgetTitle); + horizontalLayout1->setSpacing(0); + horizontalLayout1->setObjectName(QString::fromUtf8("horizontalLayout1")); + horizontalLayout1->setContentsMargins(0, 0, 0, 0); + labIco = new QLabel(widgetTitle); + labIco->setObjectName(QString::fromUtf8("labIco")); + QSizePolicy sizePolicy1(QSizePolicy::Minimum, QSizePolicy::Preferred); + sizePolicy1.setHorizontalStretch(0); + sizePolicy1.setVerticalStretch(0); + sizePolicy1.setHeightForWidth(labIco->sizePolicy().hasHeightForWidth()); + labIco->setSizePolicy(sizePolicy1); + labIco->setMinimumSize(QSize(TitleMinSize, 0)); + labIco->setAlignment(Qt::AlignCenter); + + horizontalLayout1->addWidget(labIco); + + labTitle = new QLabel(widgetTitle); + labTitle->setObjectName(QString::fromUtf8("labTitle")); + labTitle->setAlignment(Qt::AlignLeading | Qt::AlignLeft | Qt::AlignVCenter); + + horizontalLayout1->addWidget(labTitle); + + labTime = new QLabel(widgetTitle); + labTime->setObjectName(QString::fromUtf8("labTime")); + QSizePolicy sizePolicy2(QSizePolicy::Expanding, QSizePolicy::Preferred); + sizePolicy2.setHorizontalStretch(0); + sizePolicy2.setVerticalStretch(0); + sizePolicy2.setHeightForWidth(labTime->sizePolicy().hasHeightForWidth()); + labTime->setSizePolicy(sizePolicy2); + labTime->setAlignment(Qt::AlignCenter); + + horizontalLayout1->addWidget(labTime); + + widgetMenu = new QWidget(widgetTitle); + widgetMenu->setObjectName(QString::fromUtf8("widgetMenu")); + sizePolicy1.setHeightForWidth(widgetMenu->sizePolicy().hasHeightForWidth()); + widgetMenu->setSizePolicy(sizePolicy1); + horizontalLayout2 = new QHBoxLayout(widgetMenu); + horizontalLayout2->setSpacing(0); + horizontalLayout2->setObjectName(QString::fromUtf8("horizontalLayout2")); + horizontalLayout2->setContentsMargins(0, 0, 0, 0); + btnMenu_Close = new QPushButton(widgetMenu); + btnMenu_Close->setObjectName(QString::fromUtf8("btnMenu_Close")); + QSizePolicy sizePolicy3(QSizePolicy::Minimum, QSizePolicy::Expanding); + sizePolicy3.setHorizontalStretch(0); + sizePolicy3.setVerticalStretch(0); + sizePolicy3.setHeightForWidth(btnMenu_Close->sizePolicy().hasHeightForWidth()); + btnMenu_Close->setSizePolicy(sizePolicy3); + btnMenu_Close->setMinimumSize(QSize(TitleMinSize, 0)); + btnMenu_Close->setMaximumSize(QSize(TitleMinSize, 16777215)); + btnMenu_Close->setCursor(QCursor(Qt::ArrowCursor)); + btnMenu_Close->setFocusPolicy(Qt::NoFocus); + btnMenu_Close->setFlat(true); + + horizontalLayout2->addWidget(btnMenu_Close); + horizontalLayout1->addWidget(widgetMenu); + verticalLayout1->addWidget(widgetTitle); + + widgetMain = new QWidget(this); + widgetMain->setObjectName(QString::fromUtf8("widgetMainQUI")); + verticalLayout2 = new QVBoxLayout(widgetMain); + verticalLayout2->setSpacing(5); + verticalLayout2->setObjectName(QString::fromUtf8("verticalLayout2")); + verticalLayout2->setContentsMargins(5, 5, 5, 5); + frame = new QFrame(widgetMain); + frame->setObjectName(QString::fromUtf8("frame")); + frame->setFrameShape(QFrame::Box); + frame->setFrameShadow(QFrame::Sunken); + verticalLayout3 = new QVBoxLayout(frame); + verticalLayout3->setObjectName(QString::fromUtf8("verticalLayout3")); + labInfo = new QLabel(frame); + labInfo->setObjectName(QString::fromUtf8("labInfo")); + labInfo->setScaledContents(false); + labInfo->setWordWrap(true); + verticalLayout3->addWidget(labInfo); + + txtValue = new QLineEdit(frame); + txtValue->setObjectName(QString::fromUtf8("txtValue")); + verticalLayout3->addWidget(txtValue); + + cboxValue = new QComboBox(frame); + cboxValue->setObjectName(QString::fromUtf8("cboxValue")); + verticalLayout3->addWidget(cboxValue); + + lay = new QHBoxLayout(); + lay->setObjectName(QString::fromUtf8("lay")); + horizontalSpacer = new QSpacerItem(40, 20, QSizePolicy::Expanding, QSizePolicy::Minimum); + lay->addItem(horizontalSpacer); + + btnOk = new QPushButton(frame); + btnOk->setObjectName(QString::fromUtf8("btnOk")); + btnOk->setMinimumSize(QSize(85, 0)); + btnOk->setIcon(QIcon(":/image/btn_ok.png")); + lay->addWidget(btnOk); + + btnCancel = new QPushButton(frame); + btnCancel->setObjectName(QString::fromUtf8("btnCancel")); + btnCancel->setMinimumSize(QSize(85, 0)); + btnCancel->setIcon(QIcon(":/image/btn_close.png")); + lay->addWidget(btnCancel); + + verticalLayout3->addLayout(lay); + verticalLayout2->addWidget(frame); + verticalLayout1->addWidget(widgetMain); + + QWidget::setTabOrder(txtValue, btnOk); + QWidget::setTabOrder(btnOk, btnCancel); + + labTitle->setText("输入框"); + btnOk->setText("确定"); + btnCancel->setText("取消"); + + connect(btnOk, SIGNAL(clicked()), this, SLOT(on_btnOk_clicked())); + connect(btnCancel, SIGNAL(clicked()), this, SLOT(on_btnMenu_Close_clicked())); + connect(btnMenu_Close, SIGNAL(clicked()), this, SLOT(on_btnMenu_Close_clicked())); +} + +void QUIInputBox::initForm() +{ + IconHelper::Instance()->setIcon(labIco, QUIConfig::IconMain, QUIConfig::FontSize + 2); + IconHelper::Instance()->setIcon(btnMenu_Close, QUIConfig::IconClose, QUIConfig::FontSize); + + this->setProperty("form", true); + this->widgetTitle->setProperty("form", "title"); + if (TOOL) { + this->setWindowFlags(Qt::Tool | Qt::WindowStaysOnTopHint | Qt::FramelessWindowHint | Qt::X11BypassWindowManagerHint); + } else { + this->setWindowFlags(Qt::WindowStaysOnTopHint | Qt::FramelessWindowHint); + } + + this->setWindowTitle(this->labTitle->text()); + +#ifdef __arm__ + int width = 90; + int iconWidth = 22; + int iconHeight = 22; + this->setFixedSize(350, 180); +#else + int width = 80; + int iconWidth = 18; + int iconHeight = 18; + this->setFixedSize(280, 150); +#endif + + QList btns = this->frame->findChildren(); + foreach (QPushButton *btn, btns) { + btn->setMinimumWidth(width); + btn->setIconSize(QSize(iconWidth, iconHeight)); + } + + closeSec = 0; + currentSec = 0; + + QTimer *timer = new QTimer(this); + timer->setInterval(1000); + connect(timer, SIGNAL(timeout()), this, SLOT(checkSec())); + timer->start(); + + this->installEventFilter(this); +} + +void QUIInputBox::checkSec() +{ + if (closeSec == 0) { + return; + } + + if (currentSec < closeSec) { + currentSec++; + } else { + this->close(); + } + + QString str = QString("关闭倒计时 %1 s").arg(closeSec - currentSec + 1); + this->labTime->setText(str); +} + +void QUIInputBox::setParameter(const QString &title, int type, int closeSec, + QString placeholderText, bool pwd, + const QString &defaultValue) +{ + this->closeSec = closeSec; + this->currentSec = 0; + this->labTime->clear(); + this->labInfo->setText(title); + checkSec(); + + if (type == 0) { + this->cboxValue->setVisible(false); + this->txtValue->setPlaceholderText(placeholderText); + this->txtValue->setText(defaultValue); + + if (pwd) { + this->txtValue->setEchoMode(QLineEdit::Password); + } + } else if (type == 1) { + this->txtValue->setVisible(false); + this->cboxValue->addItems(defaultValue.split("|")); + } +} + +QString QUIInputBox::getValue() const +{ + return this->value; +} + +void QUIInputBox::closeEvent(QCloseEvent *) +{ + closeSec = 0; + currentSec = 0; +} + +bool QUIInputBox::eventFilter(QObject *watched, QEvent *event) +{ + static QPoint mousePoint; + static bool mousePressed = false; + + QMouseEvent *mouseEvent = static_cast(event); + if (mouseEvent->type() == QEvent::MouseButtonPress) { + if (mouseEvent->button() == Qt::LeftButton) { + mousePressed = true; + mousePoint = mouseEvent->globalPos() - this->pos(); + return true; + } + } else if (mouseEvent->type() == QEvent::MouseButtonRelease) { + mousePressed = false; + return true; + } else if (mouseEvent->type() == QEvent::MouseMove) { + if (mousePressed && (mouseEvent->buttons() && Qt::LeftButton)) { + this->move(mouseEvent->globalPos() - mousePoint); + return true; + } + } + + return QWidget::eventFilter(watched, event); +} + +void QUIInputBox::on_btnOk_clicked() +{ + if (this->txtValue->isVisible()) { + value = this->txtValue->text(); + } else if (this->cboxValue->isVisible()) { + value = this->cboxValue->currentText(); + } + + done(QMessageBox::Ok); + close(); +} + +void QUIInputBox::on_btnMenu_Close_clicked() +{ + done(QMessageBox::Cancel); + close(); +} + +void QUIInputBox::setIconMain(const QChar &str, quint32 size) +{ + IconHelper::Instance()->setIcon(this->labIco, str, size); +} + + +QScopedPointer QUIDateSelect::self; +QUIDateSelect *QUIDateSelect::Instance() +{ + if (self.isNull()) { + static QMutex mutex; + QMutexLocker locker(&mutex); + if (self.isNull()) { + self.reset(new QUIDateSelect); + } + } + + return self.data(); +} + +QUIDateSelect::QUIDateSelect(QWidget *parent) : QDialog(parent) +{ + this->initControl(); + this->initForm(); + QUIHelper::setFormInCenter(this); +} + +QUIDateSelect::~QUIDateSelect() +{ + delete widgetMain; +} + +bool QUIDateSelect::eventFilter(QObject *watched, QEvent *event) +{ + static QPoint mousePoint; + static bool mousePressed = false; + + QMouseEvent *mouseEvent = static_cast(event); + if (mouseEvent->type() == QEvent::MouseButtonPress) { + if (mouseEvent->button() == Qt::LeftButton) { + mousePressed = true; + mousePoint = mouseEvent->globalPos() - this->pos(); + return true; + } + } else if (mouseEvent->type() == QEvent::MouseButtonRelease) { + mousePressed = false; + return true; + } else if (mouseEvent->type() == QEvent::MouseMove) { + if (mousePressed && (mouseEvent->buttons() && Qt::LeftButton)) { + this->move(mouseEvent->globalPos() - mousePoint); + return true; + } + } + + return QWidget::eventFilter(watched, event); +} + +void QUIDateSelect::initControl() +{ + this->setObjectName(QString::fromUtf8("QUIDateSelect")); + + verticalLayout = new QVBoxLayout(this); + verticalLayout->setSpacing(0); + verticalLayout->setObjectName(QString::fromUtf8("verticalLayout")); + verticalLayout->setContentsMargins(1, 1, 1, 1); + widgetTitle = new QWidget(this); + widgetTitle->setObjectName(QString::fromUtf8("widgetTitle")); + QSizePolicy sizePolicy(QSizePolicy::Preferred, QSizePolicy::Fixed); + sizePolicy.setHorizontalStretch(0); + sizePolicy.setVerticalStretch(0); + sizePolicy.setHeightForWidth(widgetTitle->sizePolicy().hasHeightForWidth()); + widgetTitle->setSizePolicy(sizePolicy); + widgetTitle->setMinimumSize(QSize(0, TitleMinSize)); + horizontalLayout1 = new QHBoxLayout(widgetTitle); + horizontalLayout1->setSpacing(0); + horizontalLayout1->setObjectName(QString::fromUtf8("horizontalLayout1")); + horizontalLayout1->setContentsMargins(0, 0, 0, 0); + labIco = new QLabel(widgetTitle); + labIco->setObjectName(QString::fromUtf8("labIco")); + QSizePolicy sizePolicy1(QSizePolicy::Minimum, QSizePolicy::Preferred); + sizePolicy1.setHorizontalStretch(0); + sizePolicy1.setVerticalStretch(0); + sizePolicy1.setHeightForWidth(labIco->sizePolicy().hasHeightForWidth()); + labIco->setSizePolicy(sizePolicy1); + labIco->setMinimumSize(QSize(TitleMinSize, 0)); + labIco->setAlignment(Qt::AlignCenter); + horizontalLayout1->addWidget(labIco); + + labTitle = new QLabel(widgetTitle); + labTitle->setObjectName(QString::fromUtf8("labTitle")); + QSizePolicy sizePolicy2(QSizePolicy::Expanding, QSizePolicy::Preferred); + sizePolicy2.setHorizontalStretch(0); + sizePolicy2.setVerticalStretch(0); + sizePolicy2.setHeightForWidth(labTitle->sizePolicy().hasHeightForWidth()); + labTitle->setSizePolicy(sizePolicy2); + labTitle->setAlignment(Qt::AlignLeading | Qt::AlignLeft | Qt::AlignVCenter); + horizontalLayout1->addWidget(labTitle); + + widgetMenu = new QWidget(widgetTitle); + widgetMenu->setObjectName(QString::fromUtf8("widgetMenu")); + sizePolicy1.setHeightForWidth(widgetMenu->sizePolicy().hasHeightForWidth()); + widgetMenu->setSizePolicy(sizePolicy1); + horizontalLayout = new QHBoxLayout(widgetMenu); + horizontalLayout->setSpacing(0); + horizontalLayout->setObjectName(QString::fromUtf8("horizontalLayout")); + horizontalLayout->setContentsMargins(0, 0, 0, 0); + btnMenu_Close = new QPushButton(widgetMenu); + btnMenu_Close->setObjectName(QString::fromUtf8("btnMenu_Close")); + QSizePolicy sizePolicy3(QSizePolicy::Minimum, QSizePolicy::Expanding); + sizePolicy3.setHorizontalStretch(0); + sizePolicy3.setVerticalStretch(0); + sizePolicy3.setHeightForWidth(btnMenu_Close->sizePolicy().hasHeightForWidth()); + btnMenu_Close->setSizePolicy(sizePolicy3); + btnMenu_Close->setMinimumSize(QSize(TitleMinSize, 0)); + btnMenu_Close->setMaximumSize(QSize(TitleMinSize, 16777215)); + btnMenu_Close->setCursor(QCursor(Qt::ArrowCursor)); + btnMenu_Close->setFocusPolicy(Qt::NoFocus); + btnMenu_Close->setFlat(true); + + horizontalLayout->addWidget(btnMenu_Close); + horizontalLayout1->addWidget(widgetMenu); + verticalLayout->addWidget(widgetTitle); + + widgetMain = new QWidget(this); + widgetMain->setObjectName(QString::fromUtf8("widgetMainQUI")); + verticalLayout1 = new QVBoxLayout(widgetMain); + verticalLayout1->setSpacing(6); + verticalLayout1->setObjectName(QString::fromUtf8("verticalLayout1")); + verticalLayout1->setContentsMargins(6, 6, 6, 6); + frame = new QFrame(widgetMain); + frame->setObjectName(QString::fromUtf8("frame")); + frame->setFrameShape(QFrame::Box); + frame->setFrameShadow(QFrame::Sunken); + gridLayout = new QGridLayout(frame); + gridLayout->setObjectName(QString::fromUtf8("gridLayout")); + labStart = new QLabel(frame); + labStart->setObjectName(QString::fromUtf8("labStart")); + labStart->setFocusPolicy(Qt::TabFocus); + gridLayout->addWidget(labStart, 0, 0, 1, 1); + + btnOk = new QPushButton(frame); + btnOk->setObjectName(QString::fromUtf8("btnOk")); + btnOk->setMinimumSize(QSize(85, 0)); + btnOk->setCursor(QCursor(Qt::PointingHandCursor)); + btnOk->setFocusPolicy(Qt::StrongFocus); + btnOk->setIcon(QIcon(":/image/btn_ok.png")); + gridLayout->addWidget(btnOk, 0, 2, 1, 1); + + labEnd = new QLabel(frame); + labEnd->setObjectName(QString::fromUtf8("labEnd")); + labEnd->setFocusPolicy(Qt::TabFocus); + gridLayout->addWidget(labEnd, 1, 0, 1, 1); + + btnClose = new QPushButton(frame); + btnClose->setObjectName(QString::fromUtf8("btnClose")); + btnClose->setMinimumSize(QSize(85, 0)); + btnClose->setCursor(QCursor(Qt::PointingHandCursor)); + btnClose->setFocusPolicy(Qt::StrongFocus); + btnClose->setIcon(QIcon(":/image/btn_close.png")); + gridLayout->addWidget(btnClose, 1, 2, 1, 1); + + dateStart = new QDateTimeEdit(frame); + dateStart->setObjectName(QString::fromUtf8("dateStart")); + QSizePolicy sizePolicy4(QSizePolicy::Expanding, QSizePolicy::Fixed); + sizePolicy4.setHorizontalStretch(0); + sizePolicy4.setVerticalStretch(0); + sizePolicy4.setHeightForWidth(dateStart->sizePolicy().hasHeightForWidth()); + dateStart->setSizePolicy(sizePolicy4); + dateStart->setCalendarPopup(true); + gridLayout->addWidget(dateStart, 0, 1, 1, 1); + + dateEnd = new QDateTimeEdit(frame); + dateEnd->setObjectName(QString::fromUtf8("dateEnd")); + sizePolicy4.setHeightForWidth(dateEnd->sizePolicy().hasHeightForWidth()); + dateEnd->setSizePolicy(sizePolicy4); + dateEnd->setCalendarPopup(true); + + gridLayout->addWidget(dateEnd, 1, 1, 1, 1); + verticalLayout1->addWidget(frame); + verticalLayout->addWidget(widgetMain); + + QWidget::setTabOrder(labStart, labEnd); + QWidget::setTabOrder(labEnd, dateStart); + QWidget::setTabOrder(dateStart, dateEnd); + QWidget::setTabOrder(dateEnd, btnOk); + QWidget::setTabOrder(btnOk, btnClose); + + labTitle->setText("日期时间选择"); + labStart->setText("开始时间"); + labEnd->setText("结束时间"); + btnOk->setText("确定"); + btnClose->setText("关闭"); + + dateStart->setDate(QDate::currentDate()); + dateEnd->setDate(QDate::currentDate().addDays(1)); + + dateStart->calendarWidget()->setGridVisible(true); + dateEnd->calendarWidget()->setGridVisible(true); + dateStart->calendarWidget()->setLocale(QLocale::Chinese); + dateEnd->calendarWidget()->setLocale(QLocale::Chinese); + setFormat("yyyy-MM-dd"); + + connect(btnOk, SIGNAL(clicked()), this, SLOT(on_btnOk_clicked())); + connect(btnClose, SIGNAL(clicked()), this, SLOT(on_btnMenu_Close_clicked())); + connect(btnMenu_Close, SIGNAL(clicked()), this, SLOT(on_btnMenu_Close_clicked())); +} + +void QUIDateSelect::initForm() +{ + IconHelper::Instance()->setIcon(labIco, QUIConfig::IconMain, QUIConfig::FontSize + 2); + IconHelper::Instance()->setIcon(btnMenu_Close, QUIConfig::IconClose, QUIConfig::FontSize); + + this->setProperty("form", true); + this->widgetTitle->setProperty("form", "title"); + if (TOOL) { + this->setWindowFlags(Qt::Tool | Qt::WindowStaysOnTopHint | Qt::FramelessWindowHint | Qt::X11BypassWindowManagerHint); + } else { + this->setWindowFlags(Qt::WindowStaysOnTopHint | Qt::FramelessWindowHint); + } + + this->setWindowTitle(this->labTitle->text()); + +#ifdef __arm__ + int width = 90; + int iconWidth = 22; + int iconHeight = 22; + this->setFixedSize(370, 160); +#else + int width = 80; + int iconWidth = 18; + int iconHeight = 18; + this->setFixedSize(320, 130); +#endif + + QList btns = this->frame->findChildren(); + foreach (QPushButton *btn, btns) { + btn->setMinimumWidth(width); + btn->setIconSize(QSize(iconWidth, iconHeight)); + } + + this->installEventFilter(this); +} + +void QUIDateSelect::on_btnOk_clicked() +{ + if (dateStart->dateTime() > dateEnd->dateTime()) { + QUIHelper::showMessageBoxError("开始时间不能大于结束时间!", 3); + return; + } + + startDateTime = dateStart->dateTime().toString(format); + endDateTime = dateEnd->dateTime().toString(format); + + done(QMessageBox::Ok); + close(); +} + +void QUIDateSelect::on_btnMenu_Close_clicked() +{ + done(QMessageBox::Cancel); + close(); +} + +QString QUIDateSelect::getStartDateTime() const +{ + return this->startDateTime; +} + +QString QUIDateSelect::getEndDateTime() const +{ + return this->endDateTime; +} + +void QUIDateSelect::setIconMain(const QChar &str, quint32 size) +{ + IconHelper::Instance()->setIcon(this->labIco, str, size); +} + +void QUIDateSelect::setFormat(const QString &format) +{ + this->format = format; + this->dateStart->setDisplayFormat(format); + this->dateEnd->setDisplayFormat(format); +} + + +QScopedPointer IconHelper::self; +IconHelper *IconHelper::Instance() +{ + if (self.isNull()) { + static QMutex mutex; + QMutexLocker locker(&mutex); + if (self.isNull()) { + self.reset(new IconHelper); + } + } + + return self.data(); +} + +IconHelper::IconHelper(QObject *parent) : QObject(parent) +{ + //判断图形字体是否存在,不存在则加入 + QFontDatabase fontDb; + if (!fontDb.families().contains("FontAwesome")) { + int fontId = fontDb.addApplicationFont(":/image/fontawesome-webfont.ttf"); + QStringList fontName = fontDb.applicationFontFamilies(fontId); + if (fontName.count() == 0) { + qDebug() << "load fontawesome-webfont.ttf error"; + } + } + + if (fontDb.families().contains("FontAwesome")) { + iconFont = QFont("FontAwesome"); +#if (QT_VERSION >= QT_VERSION_CHECK(4,8,0)) + iconFont.setHintingPreference(QFont::PreferNoHinting); +#endif + } +} + +QFont IconHelper::getIconFont() +{ + return this->iconFont; +} + +void IconHelper::setIcon(QLabel *lab, const QChar &str, quint32 size) +{ + iconFont.setPixelSize(size); + lab->setFont(iconFont); + lab->setText(str); +} + +void IconHelper::setIcon(QAbstractButton *btn, const QChar &str, quint32 size) +{ + iconFont.setPixelSize(size); + btn->setFont(iconFont); + btn->setText(str); +} + +QPixmap IconHelper::getPixmap(const QColor &color, const QChar &str, quint32 size, + quint32 pixWidth, quint32 pixHeight, int flags) +{ + QPixmap pix(pixWidth, pixHeight); + pix.fill(Qt::transparent); + + QPainter painter; + painter.begin(&pix); + painter.setRenderHints(QPainter::Antialiasing | QPainter::TextAntialiasing); + painter.setPen(color); + + iconFont.setPixelSize(size); + painter.setFont(iconFont); + painter.drawText(pix.rect(), flags, str); + painter.end(); + + return pix; +} + +QPixmap IconHelper::getPixmap(QToolButton *btn, bool normal) +{ + QPixmap pix; + int index = btns.indexOf(btn); + if (index >= 0) { + if (normal) { + pix = pixNormal.at(index); + } else { + pix = pixDark.at(index); + } + } + + return pix; +} + +QPixmap IconHelper::getPixmap(QToolButton *btn, int type) +{ + QPixmap pix; + int index = btns.indexOf(btn); + if (index >= 0) { + if (type == 0) { + pix = pixNormal.at(index); + } else if (type == 1) { + pix = pixHover.at(index); + } else if (type == 2) { + pix = pixPressed.at(index); + } else if (type == 3) { + pix = pixChecked.at(index); + } + } + + return pix; +} + +void IconHelper::setStyle(QFrame *frame, QList btns, QList pixChar, + quint32 iconSize, quint32 iconWidth, quint32 iconHeight, + const QString &normalBgColor, const QString &darkBgColor, + const QString &normalTextColor, const QString &darkTextColor) +{ + int btnCount = btns.count(); + int charCount = pixChar.count(); + if (btnCount <= 0 || charCount <= 0 || btnCount != charCount) { + return; + } + + QStringList qss; + qss.append(QString("QFrame>QToolButton{border-style:none;border-width:0px;" + "background-color:%1;color:%2;}").arg(normalBgColor).arg(normalTextColor)); + qss.append(QString("QFrame>QToolButton:hover,QFrame>QToolButton:pressed,QFrame>QToolButton:checked" + "{background-color:%1;color:%2;}").arg(darkBgColor).arg(darkTextColor)); + + frame->setStyleSheet(qss.join("")); + + //存储对应按钮对象,方便鼠标移上去的时候切换图片 + for (int i = 0; i < btnCount; i++) { + QChar c = QChar(pixChar.at(i)); + QPixmap pixNormal = getPixmap(normalTextColor, c, iconSize, iconWidth, iconHeight); + QPixmap pixDark = getPixmap(darkTextColor, c, iconSize, iconWidth, iconHeight); + + QToolButton *btn = btns.at(i); + btn->setIcon(QIcon(pixNormal)); + btn->setIconSize(QSize(iconWidth, iconHeight)); + btn->installEventFilter(this); + + this->btns.append(btn); + this->pixNormal.append(pixNormal); + this->pixDark.append(pixDark); + this->pixHover.append(pixDark); + this->pixPressed.append(pixDark); + this->pixChecked.append(pixDark); + } +} + +void IconHelper::setStyle(QWidget *widget, const QString &type, int borderWidth, const QString &borderColor, + const QString &normalBgColor, const QString &darkBgColor, + const QString &normalTextColor, const QString &darkTextColor) +{ + QString strBorder; + if (type == "top") { + strBorder = QString("border-width:%1px 0px 0px 0px;padding-top:%1px;padding-bottom:%2px;") + .arg(borderWidth).arg(borderWidth * 2); + } else if (type == "right") { + strBorder = QString("border-width:0px %1px 0px 0px;padding-right:%1px;padding-left:%2px;") + .arg(borderWidth).arg(borderWidth * 2); + } else if (type == "bottom") { + strBorder = QString("border-width:0px 0px %1px 0px;padding-bottom:%1px;padding-top:%2px;") + .arg(borderWidth).arg(borderWidth * 2); + } else if (type == "left") { + strBorder = QString("border-width:0px 0px 0px %1px;padding-left:%1px;padding-right:%2px;") + .arg(borderWidth).arg(borderWidth * 2); + } + + QStringList qss; + qss.append(QString("QWidget[flag=\"%1\"] QAbstractButton{border-style:none;border-radius:0px;padding:5px;" + "color:%2;background:%3;}").arg(type).arg(normalTextColor).arg(normalBgColor)); + + qss.append(QString("QWidget[flag=\"%1\"] QAbstractButton:hover," + "QWidget[flag=\"%1\"] QAbstractButton:pressed," + "QWidget[flag=\"%1\"] QAbstractButton:checked{" + "border-style:solid;%2border-color:%3;color:%4;background:%5;}") + .arg(type).arg(strBorder).arg(borderColor).arg(darkTextColor).arg(darkBgColor)); + + widget->setStyleSheet(qss.join("")); +} + +void IconHelper::removeStyle(QList btns) +{ + for (int i = 0; i < btns.count(); i++) { + for (int j = 0; j < this->btns.count(); j++) { + if (this->btns.at(j) == btns.at(i)) { + this->btns.at(j)->removeEventFilter(this); + this->btns.removeAt(j); + this->pixNormal.removeAt(j); + this->pixDark.removeAt(j); + this->pixHover.removeAt(j); + this->pixPressed.removeAt(j); + this->pixChecked.removeAt(j); + break; + } + } + } +} + +void IconHelper::setStyle(QWidget *widget, QList btns, QList pixChar, + quint32 iconSize, quint32 iconWidth, quint32 iconHeight, + const QString &type, int borderWidth, const QString &borderColor, + const QString &normalBgColor, const QString &darkBgColor, + const QString &normalTextColor, const QString &darkTextColor) +{ + int btnCount = btns.count(); + int charCount = pixChar.count(); + if (btnCount <= 0 || charCount <= 0 || btnCount != charCount) { + return; + } + + QString strBorder; + if (type == "top") { + strBorder = QString("border-width:%1px 0px 0px 0px;padding-top:%1px;padding-bottom:%2px;") + .arg(borderWidth).arg(borderWidth * 2); + } else if (type == "right") { + strBorder = QString("border-width:0px %1px 0px 0px;padding-right:%1px;padding-left:%2px;") + .arg(borderWidth).arg(borderWidth * 2); + } else if (type == "bottom") { + strBorder = QString("border-width:0px 0px %1px 0px;padding-bottom:%1px;padding-top:%2px;") + .arg(borderWidth).arg(borderWidth * 2); + } else if (type == "left") { + strBorder = QString("border-width:0px 0px 0px %1px;padding-left:%1px;padding-right:%2px;") + .arg(borderWidth).arg(borderWidth * 2); + } + + //如果图标是左侧显示则需要让没有选中的按钮左侧也有加深的边框,颜色为背景颜色 + QStringList qss; + if (btns.at(0)->toolButtonStyle() == Qt::ToolButtonTextBesideIcon) { + qss.append(QString("QWidget[flag=\"%1\"] QAbstractButton{border-style:solid;border-radius:0px;%2border-color:%3;color:%4;background:%5;}") + .arg(type).arg(strBorder).arg(normalBgColor).arg(normalTextColor).arg(normalBgColor)); + } else { + qss.append(QString("QWidget[flag=\"%1\"] QAbstractButton{border-style:none;border-radius:0px;padding:5px;color:%2;background:%3;}") + .arg(type).arg(normalTextColor).arg(normalBgColor)); + } + + qss.append(QString("QWidget[flag=\"%1\"] QAbstractButton:hover," + "QWidget[flag=\"%1\"] QAbstractButton:pressed," + "QWidget[flag=\"%1\"] QAbstractButton:checked{" + "border-style:solid;%2border-color:%3;color:%4;background:%5;}") + .arg(type).arg(strBorder).arg(borderColor).arg(darkTextColor).arg(darkBgColor)); + + qss.append(QString("QWidget#%1{background:%2;}").arg(widget->objectName()).arg(normalBgColor)); + qss.append(QString("QWidget>QToolButton{border-width:0px;" + "background-color:%1;color:%2;}").arg(normalBgColor).arg(normalTextColor)); + qss.append(QString("QWidget>QToolButton:hover,QWidget>QToolButton:pressed,QWidget>QToolButton:checked{" + "background-color:%1;color:%2;}").arg(darkBgColor).arg(darkTextColor)); + + widget->setStyleSheet(qss.join("")); + + //存储对应按钮对象,方便鼠标移上去的时候切换图片 + for (int i = 0; i < btnCount; i++) { + QChar c = QChar(pixChar.at(i)); + QPixmap pixNormal = getPixmap(normalTextColor, c, iconSize, iconWidth, iconHeight); + QPixmap pixDark = getPixmap(darkTextColor, c, iconSize, iconWidth, iconHeight); + + QToolButton *btn = btns.at(i); + btn->setIcon(QIcon(pixNormal)); + btn->setIconSize(QSize(iconWidth, iconHeight)); + btn->installEventFilter(this); + + this->btns.append(btn); + this->pixNormal.append(pixNormal); + this->pixDark.append(pixDark); + this->pixHover.append(pixDark); + this->pixPressed.append(pixDark); + this->pixChecked.append(pixDark); + } +} + +void IconHelper::setStyle(QWidget *widget, QList btns, QList pixChar, const IconHelper::StyleColor &styleColor) +{ + int btnCount = btns.count(); + int charCount = pixChar.count(); + if (btnCount <= 0 || charCount <= 0 || btnCount != charCount) { + return; + } + + quint32 iconSize = styleColor.iconSize; + quint32 iconWidth = styleColor.iconWidth; + quint32 iconHeight = styleColor.iconHeight; + quint32 borderWidth = styleColor.borderWidth; + QString type = styleColor.type; + + QString strBorder; + if (type == "top") { + strBorder = QString("border-width:%1px 0px 0px 0px;padding-top:%1px;padding-bottom:%2px;") + .arg(borderWidth).arg(borderWidth * 2); + } else if (type == "right") { + strBorder = QString("border-width:0px %1px 0px 0px;padding-right:%1px;padding-left:%2px;") + .arg(borderWidth).arg(borderWidth * 2); + } else if (type == "bottom") { + strBorder = QString("border-width:0px 0px %1px 0px;padding-bottom:%1px;padding-top:%2px;") + .arg(borderWidth).arg(borderWidth * 2); + } else if (type == "left") { + strBorder = QString("border-width:0px 0px 0px %1px;padding-left:%1px;padding-right:%2px;") + .arg(borderWidth).arg(borderWidth * 2); + } + + //如果图标是左侧显示则需要让没有选中的按钮左侧也有加深的边框,颜色为背景颜色 + QStringList qss; + if (btns.at(0)->toolButtonStyle() == Qt::ToolButtonTextBesideIcon) { + qss.append(QString("QWidget[flag=\"%1\"] QAbstractButton{border-style:solid;border-radius:0px;%2border-color:%3;color:%4;background:%5;}") + .arg(type).arg(strBorder).arg(styleColor.normalBgColor).arg(styleColor.normalTextColor).arg(styleColor.normalBgColor)); + } else { + qss.append(QString("QWidget[flag=\"%1\"] QAbstractButton{border-style:none;border-radius:0px;padding:5px;color:%2;background:%3;}") + .arg(type).arg(styleColor.normalTextColor).arg(styleColor.normalBgColor)); + } + + qss.append(QString("QWidget[flag=\"%1\"] QAbstractButton:hover{border-style:solid;%2border-color:%3;color:%4;background:%5;}") + .arg(type).arg(strBorder).arg(styleColor.borderColor).arg(styleColor.hoverTextColor).arg(styleColor.hoverBgColor)); + qss.append(QString("QWidget[flag=\"%1\"] QAbstractButton:pressed{border-style:solid;%2border-color:%3;color:%4;background:%5;}") + .arg(type).arg(strBorder).arg(styleColor.borderColor).arg(styleColor.pressedTextColor).arg(styleColor.pressedBgColor)); + qss.append(QString("QWidget[flag=\"%1\"] QAbstractButton:checked{border-style:solid;%2border-color:%3;color:%4;background:%5;}") + .arg(type).arg(strBorder).arg(styleColor.borderColor).arg(styleColor.checkedTextColor).arg(styleColor.checkedBgColor)); + + qss.append(QString("QWidget#%1{background:%2;}").arg(widget->objectName()).arg(styleColor.normalBgColor)); + qss.append(QString("QWidget>QToolButton{border-width:0px;background-color:%1;color:%2;}").arg(styleColor.normalBgColor).arg(styleColor.normalTextColor)); + qss.append(QString("QWidget>QToolButton:hover{background-color:%1;color:%2;}").arg(styleColor.hoverBgColor).arg(styleColor.hoverTextColor)); + qss.append(QString("QWidget>QToolButton:pressed{background-color:%1;color:%2;}").arg(styleColor.pressedBgColor).arg(styleColor.pressedTextColor)); + qss.append(QString("QWidget>QToolButton:checked{background-color:%1;color:%2;}").arg(styleColor.checkedBgColor).arg(styleColor.checkedTextColor)); + + widget->setStyleSheet(qss.join("")); + + //存储对应按钮对象,方便鼠标移上去的时候切换图片 + for (int i = 0; i < btnCount; i++) { + QChar c = QChar(pixChar.at(i)); + QPixmap pixNormal = getPixmap(styleColor.normalTextColor, c, iconSize, iconWidth, iconHeight); + QPixmap pixHover = getPixmap(styleColor.hoverTextColor, c, iconSize, iconWidth, iconHeight); + QPixmap pixPressed = getPixmap(styleColor.pressedTextColor, c, iconSize, iconWidth, iconHeight); + QPixmap pixChecked = getPixmap(styleColor.checkedTextColor, c, iconSize, iconWidth, iconHeight); + + QToolButton *btn = btns.at(i); + btn->setIcon(QIcon(pixNormal)); + btn->setIconSize(QSize(iconWidth, iconHeight)); + btn->installEventFilter(this); + + this->btns.append(btn); + this->pixNormal.append(pixNormal); + this->pixDark.append(pixHover); + this->pixHover.append(pixHover); + this->pixPressed.append(pixPressed); + this->pixChecked.append(pixChecked); + } +} + +bool IconHelper::eventFilter(QObject *watched, QEvent *event) +{ + if (watched->inherits("QToolButton")) { + QToolButton *btn = (QToolButton *)watched; + int index = btns.indexOf(btn); + if (index >= 0) { + if (event->type() == QEvent::Enter) { + btn->setIcon(QIcon(pixHover.at(index))); + } else if (event->type() == QEvent::MouseButtonPress) { + btn->setIcon(QIcon(pixPressed.at(index))); + } else if (event->type() == QEvent::Leave) { + if (btn->isChecked()) { + btn->setIcon(QIcon(pixChecked.at(index))); + } else { + btn->setIcon(QIcon(pixNormal.at(index))); + } + } + } + } + + return QObject::eventFilter(watched, event); +} + + +QScopedPointer TrayIcon::self; +TrayIcon *TrayIcon::Instance() +{ + if (self.isNull()) { + static QMutex mutex; + QMutexLocker locker(&mutex); + if (self.isNull()) { + self.reset(new TrayIcon); + } + } + + return self.data(); +} + +TrayIcon::TrayIcon(QObject *parent) : QObject(parent) +{ + mainWidget = 0; + trayIcon = new QSystemTrayIcon(this); + connect(trayIcon, SIGNAL(activated(QSystemTrayIcon::ActivationReason)), + this, SLOT(iconIsActived(QSystemTrayIcon::ActivationReason))); + menu = new QMenu(QApplication::desktop()); + exitDirect = true; +} + +void TrayIcon::iconIsActived(QSystemTrayIcon::ActivationReason reason) +{ + switch (reason) { + case QSystemTrayIcon::Trigger: + case QSystemTrayIcon::DoubleClick: { + mainWidget->showNormal(); + break; + } + + default: + break; + } +} + +void TrayIcon::setExitDirect(bool exitDirect) +{ + if (this->exitDirect != exitDirect) { + this->exitDirect = exitDirect; + } +} + +void TrayIcon::setMainWidget(QWidget *mainWidget) +{ + this->mainWidget = mainWidget; + menu->addAction("主界面", mainWidget, SLOT(showNormal())); + + if (exitDirect) { + menu->addAction("退出", this, SLOT(closeAll())); + } else { + menu->addAction("退出", this, SIGNAL(trayIconExit())); + } + + trayIcon->setContextMenu(menu); +} + +void TrayIcon::showMessage(const QString &title, const QString &msg, QSystemTrayIcon::MessageIcon icon, int msecs) +{ + trayIcon->showMessage(title, msg, icon, msecs); +} + +void TrayIcon::setIcon(const QString &strIcon) +{ + trayIcon->setIcon(QIcon(strIcon)); +} + +void TrayIcon::setToolTip(const QString &tip) +{ + trayIcon->setToolTip(tip); +} + +void TrayIcon::setVisible(bool visible) +{ + trayIcon->setVisible(visible); +} + +void TrayIcon::closeAll() +{ + trayIcon->hide(); + trayIcon->deleteLater(); + exit(0); +} + + +int QUIHelper::deskWidth() +{ + //没有必要每次都获取,只有当变量为空时才去获取一次 + static int width = 0; + if (width == 0) { + width = qApp->desktop()->availableGeometry().width(); + } + + return width; +} + +int QUIHelper::deskHeight() +{ + //没有必要每次都获取,只有当变量为空时才去获取一次 + static int height = 0; + if (height == 0) { + height = qApp->desktop()->availableGeometry().height(); + } + + return height; +} + +QString QUIHelper::appName() +{ + //没有必要每次都获取,只有当变量为空时才去获取一次 + static QString name; + if (name.isEmpty()) { + name = qApp->applicationFilePath(); + QStringList list = name.split("/"); + name = list.at(list.count() - 1).split(".").at(0); + } + + return name; +} + +QString QUIHelper::appPath() +{ +#ifdef Q_OS_ANDROID + return QString("/sdcard/Android/%1").arg(appName()); +#else + return qApp->applicationDirPath(); +#endif +} + +void QUIHelper::initRand() +{ + //初始化随机数种子 + QTime t = QTime::currentTime(); + qsrand(t.msec() + t.second() * 1000); +} + +void QUIHelper::initDb(const QString &dbName) +{ + initFile(QString(":/%1.db").arg(appName()), dbName); +} + +void QUIHelper::initFile(const QString &sourceName, const QString &targetName) +{ + //判断文件是否存在,不存在则从资源文件复制出来 + QFile file(targetName); + if (!file.exists() || file.size() == 0) { + file.remove(); + QUIHelper::copyFile(sourceName, targetName); + } +} + +void QUIHelper::newDir(const QString &dirName) +{ + QString strDir = dirName; + + //如果路径中包含斜杠字符则说明是绝对路径 + //linux系统路径字符带有 / windows系统 路径字符带有 :/ + if (!strDir.startsWith("/") && !strDir.contains(":/")) { + strDir = QString("%1/%2").arg(QUIHelper::appPath()).arg(strDir); + } + + QDir dir(strDir); + if (!dir.exists()) { + dir.mkpath(strDir); + } +} + +void QUIHelper::writeInfo(const QString &info, const QString &filePath) +{ + QString fileName = QString("%1/%2/%3_runinfo_%4.txt").arg(QUIHelper::appPath()) + .arg(filePath).arg(QUIHelper::appName()).arg(QDate::currentDate().toString("yyyyMM")); + + QFile file(fileName); + file.open(QIODevice::WriteOnly | QIODevice::Append | QFile::Text); + QTextStream stream(&file); + stream << DATETIME << " " << info << NEWLINE; + file.close(); +} + +void QUIHelper::writeError(const QString &info, const QString &filePath) +{ + //正式运行屏蔽掉输出错误信息,调试阶段才需要 + return; + QString fileName = QString("%1/%2/%3_runerror_%4.txt").arg(QUIHelper::appPath()) + .arg(filePath).arg(QUIHelper::appName()).arg(QDate::currentDate().toString("yyyyMM")); + + QFile file(fileName); + file.open(QIODevice::WriteOnly | QIODevice::Append | QFile::Text); + QTextStream stream(&file); + stream << DATETIME << " " << info << NEWLINE; + file.close(); +} + +void QUIHelper::setStyle(QUIWidget::Style style) +{ + QString qssFile = ":/qss/lightblue.css"; + + if (style == QUIWidget::Style_Silvery) { + qssFile = ":/qss/silvery.css"; + } else if (style == QUIWidget::Style_Blue) { + qssFile = ":/qss/blue.css"; + } else if (style == QUIWidget::Style_LightBlue) { + qssFile = ":/qss/lightblue.css"; + } else if (style == QUIWidget::Style_DarkBlue) { + qssFile = ":/qss/darkblue.css"; + } else if (style == QUIWidget::Style_Gray) { + qssFile = ":/qss/gray.css"; + } else if (style == QUIWidget::Style_LightGray) { + qssFile = ":/qss/lightgray.css"; + } else if (style == QUIWidget::Style_DarkGray) { + qssFile = ":/qss/darkgray.css"; + } else if (style == QUIWidget::Style_Black) { + qssFile = ":/qss/black.css"; + } else if (style == QUIWidget::Style_LightBlack) { + qssFile = ":/qss/lightblack.css"; + } else if (style == QUIWidget::Style_DarkBlack) { + qssFile = ":/qss/darkblack.css"; + } else if (style == QUIWidget::Style_PSBlack) { + qssFile = ":/qss/psblack.css"; + } else if (style == QUIWidget::Style_FlatBlack) { + qssFile = ":/qss/flatblack.css"; + } else if (style == QUIWidget::Style_FlatWhite) { + qssFile = ":/qss/flatwhite.css"; + } else if (style == QUIWidget::Style_Purple) { + qssFile = ":/qss/purple.css"; + } else if (style == QUIWidget::Style_BlackBlue) { + qssFile = ":/qss/blackblue.css"; + } else if (style == QUIWidget::Style_BlackVideo) { + qssFile = ":/qss/blackvideo.css"; + } + + QFile file(qssFile); + + if (file.open(QFile::ReadOnly)) { + QString qss = QLatin1String(file.readAll()); + QString paletteColor = qss.mid(20, 7); + getQssColor(qss, QUIConfig::TextColor, QUIConfig::PanelColor, QUIConfig::BorderColor, QUIConfig::NormalColorStart, + QUIConfig::NormalColorEnd, QUIConfig::DarkColorStart, QUIConfig::DarkColorEnd, QUIConfig::HighColor); + + qApp->setPalette(QPalette(QColor(paletteColor))); + qApp->setStyleSheet(qss); + file.close(); + } +} + +void QUIHelper::setStyle(const QString &qssFile, QString &paletteColor, QString &textColor) +{ + QFile file(qssFile); + if (file.open(QFile::ReadOnly)) { + QString qss = QLatin1String(file.readAll()); + paletteColor = qss.mid(20, 7); + textColor = qss.mid(49, 7); + getQssColor(qss, QUIConfig::TextColor, QUIConfig::PanelColor, QUIConfig::BorderColor, QUIConfig::NormalColorStart, + QUIConfig::NormalColorEnd, QUIConfig::DarkColorStart, QUIConfig::DarkColorEnd, QUIConfig::HighColor); + + qApp->setPalette(QPalette(QColor(paletteColor))); + qApp->setStyleSheet(qss); + file.close(); + } +} + +void QUIHelper::setStyle(const QString &qssFile, QString &textColor, QString &panelColor, QString &borderColor, + QString &normalColorStart, QString &normalColorEnd, + QString &darkColorStart, QString &darkColorEnd, QString &highColor) +{ + QFile file(qssFile); + if (file.open(QFile::ReadOnly)) { + QString qss = QLatin1String(file.readAll()); + getQssColor(qss, textColor, panelColor, borderColor, normalColorStart, normalColorEnd, darkColorStart, darkColorEnd, highColor); + qApp->setPalette(QPalette(QColor(panelColor))); + qApp->setStyleSheet(qss); + file.close(); + } +} + +void QUIHelper::getQssColor(const QString &qss, QString &textColor, QString &panelColor, QString &borderColor, + QString &normalColorStart, QString &normalColorEnd, + QString &darkColorStart, QString &darkColorEnd, QString &highColor) +{ + QString str = qss; + + QString flagTextColor = "TextColor:"; + int indexTextColor = str.indexOf(flagTextColor); + if (indexTextColor >= 0) { + textColor = str.mid(indexTextColor + flagTextColor.length(), 7); + } + + QString flagPanelColor = "PanelColor:"; + int indexPanelColor = str.indexOf(flagPanelColor); + if (indexPanelColor >= 0) { + panelColor = str.mid(indexPanelColor + flagPanelColor.length(), 7); + } + + QString flagBorderColor = "BorderColor:"; + int indexBorderColor = str.indexOf(flagBorderColor); + if (indexBorderColor >= 0) { + borderColor = str.mid(indexBorderColor + flagBorderColor.length(), 7); + } + + QString flagNormalColorStart = "NormalColorStart:"; + int indexNormalColorStart = str.indexOf(flagNormalColorStart); + if (indexNormalColorStart >= 0) { + normalColorStart = str.mid(indexNormalColorStart + flagNormalColorStart.length(), 7); + } + + QString flagNormalColorEnd = "NormalColorEnd:"; + int indexNormalColorEnd = str.indexOf(flagNormalColorEnd); + if (indexNormalColorEnd >= 0) { + normalColorEnd = str.mid(indexNormalColorEnd + flagNormalColorEnd.length(), 7); + } + + QString flagDarkColorStart = "DarkColorStart:"; + int indexDarkColorStart = str.indexOf(flagDarkColorStart); + if (indexDarkColorStart >= 0) { + darkColorStart = str.mid(indexDarkColorStart + flagDarkColorStart.length(), 7); + } + + QString flagDarkColorEnd = "DarkColorEnd:"; + int indexDarkColorEnd = str.indexOf(flagDarkColorEnd); + if (indexDarkColorEnd >= 0) { + darkColorEnd = str.mid(indexDarkColorEnd + flagDarkColorEnd.length(), 7); + } + + QString flagHighColor = "HighColor:"; + int indexHighColor = str.indexOf(flagHighColor); + if (indexHighColor >= 0) { + highColor = str.mid(indexHighColor + flagHighColor.length(), 7); + } +} + +QPixmap QUIHelper::ninePatch(const QString &picName, int horzSplit, int vertSplit, int dstWidth, int dstHeight) +{ + QPixmap pix(picName); + return ninePatch(pix, horzSplit, vertSplit, dstWidth, dstHeight); +} + +QPixmap QUIHelper::ninePatch(const QPixmap &pix, int horzSplit, int vertSplit, int dstWidth, int dstHeight) +{ + int pixWidth = pix.width(); + int pixHeight = pix.height(); + + QPixmap pix1 = pix.copy(0, 0, horzSplit, vertSplit); + QPixmap pix2 = pix.copy(horzSplit, 0, pixWidth - horzSplit * 2, vertSplit); + QPixmap pix3 = pix.copy(pixWidth - horzSplit, 0, horzSplit, vertSplit); + + QPixmap pix4 = pix.copy(0, vertSplit, horzSplit, pixHeight - vertSplit * 2); + QPixmap pix5 = pix.copy(horzSplit, vertSplit, pixWidth - horzSplit * 2, pixHeight - vertSplit * 2); + QPixmap pix6 = pix.copy(pixWidth - horzSplit, vertSplit, horzSplit, pixHeight - vertSplit * 2); + + QPixmap pix7 = pix.copy(0, pixHeight - vertSplit, horzSplit, vertSplit); + QPixmap pix8 = pix.copy(horzSplit, pixHeight - vertSplit, pixWidth - horzSplit * 2, pixWidth - horzSplit * 2); + QPixmap pix9 = pix.copy(pixWidth - horzSplit, pixHeight - vertSplit, horzSplit, vertSplit); + + //保持高度拉宽 + pix2 = pix2.scaled(dstWidth - horzSplit * 2, vertSplit, Qt::IgnoreAspectRatio); + //保持宽度拉高 + pix4 = pix4.scaled(horzSplit, dstHeight - vertSplit * 2, Qt::IgnoreAspectRatio); + //宽高都缩放 + pix5 = pix5.scaled(dstWidth - horzSplit * 2, dstHeight - vertSplit * 2, Qt::IgnoreAspectRatio); + //保持宽度拉高 + pix6 = pix6.scaled(horzSplit, dstHeight - vertSplit * 2, Qt::IgnoreAspectRatio); + //保持高度拉宽 + pix8 = pix8.scaled(dstWidth - horzSplit * 2, vertSplit); + + //生成宽高图片并填充透明背景颜色 + QPixmap resultImg(dstWidth, dstHeight); + resultImg.fill(Qt::transparent); + + QPainter painter; + painter.begin(&resultImg); + + if (!resultImg.isNull()) { + painter.drawPixmap(0, 0, pix1); + painter.drawPixmap(horzSplit, 0, pix2); + painter.drawPixmap(dstWidth - horzSplit, 0, pix3); + + painter.drawPixmap(0, vertSplit, pix4); + painter.drawPixmap(horzSplit, vertSplit, pix5); + painter.drawPixmap(dstWidth - horzSplit, vertSplit, pix6); + + painter.drawPixmap(0, dstHeight - vertSplit, pix7); + painter.drawPixmap(horzSplit, dstHeight - vertSplit, pix8); + painter.drawPixmap(dstWidth - horzSplit, dstHeight - vertSplit, pix9); + } + + painter.end(); + + return resultImg; +} + +void QUIHelper::setLabStyle(QLabel *lab, quint8 type) +{ + QString qssDisable = QString("QLabel::disabled{background:none;color:%1;}").arg(QUIConfig::BorderColor); + QString qssRed = "QLabel{border:none;background-color:rgb(214,64,48);color:rgb(255,255,255);}" + qssDisable; + QString qssGreen = "QLabel{border:none;background-color:rgb(46,138,87);color:rgb(255,255,255);}" + qssDisable; + QString qssBlue = "QLabel{border:none;background-color:rgb(67,122,203);color:rgb(255,255,255);}" + qssDisable; + QString qssDark = "QLabel{border:none;background-color:rgb(75,75,75);color:rgb(255,255,255);}" + qssDisable; + + if (type == 0) { + lab->setStyleSheet(qssRed); + } else if (type == 1) { + lab->setStyleSheet(qssGreen); + } else if (type == 2) { + lab->setStyleSheet(qssBlue); + } else if (type == 3) { + lab->setStyleSheet(qssDark); + } +} + +void QUIHelper::setFormInCenter(QWidget *frm) +{ + int frmX = frm->width(); + int frmY = frm->height(); + QDesktopWidget w; + int deskWidth = w.availableGeometry().width(); + int deskHeight = w.availableGeometry().height(); + QPoint movePoint(deskWidth / 2 - frmX / 2, deskHeight / 2 - frmY / 2); + frm->move(movePoint); +} + +void QUIHelper::setTranslator(const QString &qmFile) +{ + QTranslator *translator = new QTranslator(qApp); + translator->load(qmFile); + qApp->installTranslator(translator); +} + +void QUIHelper::setCode() +{ +#if (QT_VERSION <= QT_VERSION_CHECK(5,0,0)) +#if _MSC_VER + QTextCodec *codec = QTextCodec::codecForName("gbk"); +#else + QTextCodec *codec = QTextCodec::codecForName("utf-8"); +#endif + QTextCodec::setCodecForLocale(codec); + QTextCodec::setCodecForCStrings(codec); + QTextCodec::setCodecForTr(codec); +#else + QTextCodec *codec = QTextCodec::codecForName("utf-8"); + QTextCodec::setCodecForLocale(codec); +#endif +} + +void QUIHelper::sleep(int msec) +{ + QTime dieTime = QTime::currentTime().addMSecs(msec); + while (QTime::currentTime() < dieTime) { + QCoreApplication::processEvents(QEventLoop::AllEvents, 100); + } +} + +void QUIHelper::setSystemDateTime(const QString &year, const QString &month, const QString &day, const QString &hour, const QString &min, const QString &sec) +{ +#ifdef Q_OS_WIN + QProcess p(0); + p.start("cmd"); + p.waitForStarted(); + p.write(QString("date %1-%2-%3\n").arg(year).arg(month).arg(day).toLatin1()); + p.closeWriteChannel(); + p.waitForFinished(1000); + p.close(); + p.start("cmd"); + p.waitForStarted(); + p.write(QString("time %1:%2:%3.00\n").arg(hour).arg(min).arg(sec).toLatin1()); + p.closeWriteChannel(); + p.waitForFinished(1000); + p.close(); +#else + QString cmd = QString("date %1%2%3%4%5.%6").arg(month).arg(day).arg(hour).arg(min).arg(year).arg(sec); + system(cmd.toLatin1()); + system("hwclock -w"); +#endif +} + +void QUIHelper::runWithSystem(const QString &strName, const QString &strPath, bool autoRun) +{ +#ifdef Q_OS_WIN + QSettings reg("HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Run", QSettings::NativeFormat); + reg.setValue(strName, autoRun ? strPath : ""); +#endif +} + +bool QUIHelper::isIP(const QString &ip) +{ + QRegExp RegExp("((2[0-4]\\d|25[0-5]|[01]?\\d\\d?)\\.){3}(2[0-4]\\d|25[0-5]|[01]?\\d\\d?)"); + return RegExp.exactMatch(ip); +} + +bool QUIHelper::isMac(const QString &mac) +{ + QRegExp RegExp("^[A-F0-9]{2}(-[A-F0-9]{2}){5}$"); + return RegExp.exactMatch(mac); +} + +bool QUIHelper::isTel(const QString &tel) +{ + if (tel.length() != 11) { + return false; + } + + if (!tel.startsWith("13") && !tel.startsWith("14") && !tel.startsWith("15") && !tel.startsWith("18")) { + return false; + } + + return true; +} + +bool QUIHelper::isEmail(const QString &email) +{ + if (!email.contains("@") || !email.contains(".com")) { + return false; + } + + return true; +} + +int QUIHelper::strHexToDecimal(const QString &strHex) +{ + bool ok; + return strHex.toInt(&ok, 16); +} + +int QUIHelper::strDecimalToDecimal(const QString &strDecimal) +{ + bool ok; + return strDecimal.toInt(&ok, 10); +} + +int QUIHelper::strBinToDecimal(const QString &strBin) +{ + bool ok; + return strBin.toInt(&ok, 2); +} + +QString QUIHelper::strHexToStrBin(const QString &strHex) +{ + uchar decimal = strHexToDecimal(strHex); + QString bin = QString::number(decimal, 2); + uchar len = bin.length(); + + if (len < 8) { + for (int i = 0; i < 8 - len; i++) { + bin = "0" + bin; + } + } + + return bin; +} + +QString QUIHelper::decimalToStrBin1(int decimal) +{ + QString bin = QString::number(decimal, 2); + uchar len = bin.length(); + + if (len <= 8) { + for (int i = 0; i < 8 - len; i++) { + bin = "0" + bin; + } + } + + return bin; +} + +QString QUIHelper::decimalToStrBin2(int decimal) +{ + QString bin = QString::number(decimal, 2); + uchar len = bin.length(); + + if (len <= 16) { + for (int i = 0; i < 16 - len; i++) { + bin = "0" + bin; + } + } + + return bin; +} + +QString QUIHelper::decimalToStrHex(int decimal) +{ + QString temp = QString::number(decimal, 16); + if (temp.length() == 1) { + temp = "0" + temp; + } + + return temp; +} + +QByteArray QUIHelper::intToByte(int i) +{ + QByteArray result; + result.resize(4); + result[3] = (uchar)(0x000000ff & i); + result[2] = (uchar)((0x0000ff00 & i) >> 8); + result[1] = (uchar)((0x00ff0000 & i) >> 16); + result[0] = (uchar)((0xff000000 & i) >> 24); + return result; +} + +QByteArray QUIHelper::intToByteRec(int i) +{ + QByteArray result; + result.resize(4); + result[0] = (uchar)(0x000000ff & i); + result[1] = (uchar)((0x0000ff00 & i) >> 8); + result[2] = (uchar)((0x00ff0000 & i) >> 16); + result[3] = (uchar)((0xff000000 & i) >> 24); + return result; +} + +int QUIHelper::byteToInt(const QByteArray &data) +{ + int i = data.at(3) & 0x000000ff; + i |= ((data.at(2) << 8) & 0x0000ff00); + i |= ((data.at(1) << 16) & 0x00ff0000); + i |= ((data.at(0) << 24) & 0xff000000); + return i; +} + +int QUIHelper::byteToIntRec(const QByteArray &data) +{ + int i = data.at(0) & 0x000000ff; + i |= ((data.at(1) << 8) & 0x0000ff00); + i |= ((data.at(2) << 16) & 0x00ff0000); + i |= ((data.at(3) << 24) & 0xff000000); + return i; +} + +quint32 QUIHelper::byteToUInt(const QByteArray &data) +{ + quint32 i = data.at(3) & 0x000000ff; + i |= ((data.at(2) << 8) & 0x0000ff00); + i |= ((data.at(1) << 16) & 0x00ff0000); + i |= ((data.at(0) << 24) & 0xff000000); + return i; +} + +quint32 QUIHelper::byteToUIntRec(const QByteArray &data) +{ + quint32 i = data.at(0) & 0x000000ff; + i |= ((data.at(1) << 8) & 0x0000ff00); + i |= ((data.at(2) << 16) & 0x00ff0000); + i |= ((data.at(3) << 24) & 0xff000000); + return i; +} + +QByteArray QUIHelper::ushortToByte(ushort i) +{ + QByteArray result; + result.resize(2); + result[1] = (uchar)(0x000000ff & i); + result[0] = (uchar)((0x0000ff00 & i) >> 8); + return result; +} + +QByteArray QUIHelper::ushortToByteRec(ushort i) +{ + QByteArray result; + result.resize(2); + result[0] = (uchar) (0x000000ff & i); + result[1] = (uchar) ((0x0000ff00 & i) >> 8); + return result; +} + +int QUIHelper::byteToUShort(const QByteArray &data) +{ + int i = data.at(1) & 0x000000FF; + i |= ((data.at(0) << 8) & 0x0000FF00); + + if (i >= 32768) { + i = i - 65536; + } + + return i; +} + +int QUIHelper::byteToUShortRec(const QByteArray &data) +{ + int i = data.at(0) & 0x000000FF; + i |= ((data.at(1) << 8) & 0x0000FF00); + + if (i >= 32768) { + i = i - 65536; + } + + return i; +} + +QString QUIHelper::getXorEncryptDecrypt(const QString &str, char key) +{ + QByteArray data = str.toLatin1(); + int size = data.size(); + for (int i = 0; i < size; i++) { + data[i] = data[i] ^ key; + } + + return QLatin1String(data); +} + +uchar QUIHelper::getOrCode(const QByteArray &data) +{ + int len = data.length(); + uchar result = 0; + + for (int i = 0; i < len; i++) { + result ^= data.at(i); + } + + return result; +} + +uchar QUIHelper::getCheckCode(const QByteArray &data) +{ + int len = data.length(); + uchar temp = 0; + + for (uchar i = 0; i < len; i++) { + temp += data.at(i); + } + + return temp % 256; +} + +QString QUIHelper::getValue(quint8 value) +{ + QString result = QString::number(value); + if (result.length() <= 1) { + result = QString("0%1").arg(result); + } + return result; +} + +//函数功能:计算CRC16 +//参数1:*data 16位CRC校验数据, +//参数2:len 数据流长度 +//参数3:init 初始化值 +//参数4:table 16位CRC查找表 + +//逆序CRC计算 +quint16 QUIHelper::getRevCrc_16(quint8 *data, int len, quint16 init, const quint16 *table) +{ + quint16 cRc_16 = init; + quint8 temp; + + while(len-- > 0) { + temp = cRc_16 >> 8; + cRc_16 = (cRc_16 << 8) ^ table[(temp ^ *data++) & 0xff]; + } + + return cRc_16; +} + +//正序CRC计算 +quint16 QUIHelper::getCrc_16(quint8 *data, int len, quint16 init, const quint16 *table) +{ + quint16 cRc_16 = init; + quint8 temp; + + while(len-- > 0) { + temp = cRc_16 & 0xff; + cRc_16 = (cRc_16 >> 8) ^ table[(temp ^ *data++) & 0xff]; + } + + return cRc_16; +} + +//Modbus CRC16校验 +quint16 QUIHelper::getModbus16(quint8 *data, int len) +{ + //MODBUS CRC-16表 8005 逆序 + const quint16 table_16[256] = { + 0x0000, 0xC0C1, 0xC181, 0x0140, 0xC301, 0x03C0, 0x0280, 0xC241, + 0xC601, 0x06C0, 0x0780, 0xC741, 0x0500, 0xC5C1, 0xC481, 0x0440, + 0xCC01, 0x0CC0, 0x0D80, 0xCD41, 0x0F00, 0xCFC1, 0xCE81, 0x0E40, + 0x0A00, 0xCAC1, 0xCB81, 0x0B40, 0xC901, 0x09C0, 0x0880, 0xC841, + 0xD801, 0x18C0, 0x1980, 0xD941, 0x1B00, 0xDBC1, 0xDA81, 0x1A40, + 0x1E00, 0xDEC1, 0xDF81, 0x1F40, 0xDD01, 0x1DC0, 0x1C80, 0xDC41, + 0x1400, 0xD4C1, 0xD581, 0x1540, 0xD701, 0x17C0, 0x1680, 0xD641, + 0xD201, 0x12C0, 0x1380, 0xD341, 0x1100, 0xD1C1, 0xD081, 0x1040, + 0xF001, 0x30C0, 0x3180, 0xF141, 0x3300, 0xF3C1, 0xF281, 0x3240, + 0x3600, 0xF6C1, 0xF781, 0x3740, 0xF501, 0x35C0, 0x3480, 0xF441, + 0x3C00, 0xFCC1, 0xFD81, 0x3D40, 0xFF01, 0x3FC0, 0x3E80, 0xFE41, + 0xFA01, 0x3AC0, 0x3B80, 0xFB41, 0x3900, 0xF9C1, 0xF881, 0x3840, + 0x2800, 0xE8C1, 0xE981, 0x2940, 0xEB01, 0x2BC0, 0x2A80, 0xEA41, + 0xEE01, 0x2EC0, 0x2F80, 0xEF41, 0x2D00, 0xEDC1, 0xEC81, 0x2C40, + 0xE401, 0x24C0, 0x2580, 0xE541, 0x2700, 0xE7C1, 0xE681, 0x2640, + 0x2200, 0xE2C1, 0xE381, 0x2340, 0xE101, 0x21C0, 0x2080, 0xE041, + 0xA001, 0x60C0, 0x6180, 0xA141, 0x6300, 0xA3C1, 0xA281, 0x6240, + 0x6600, 0xA6C1, 0xA781, 0x6740, 0xA501, 0x65C0, 0x6480, 0xA441, + 0x6C00, 0xACC1, 0xAD81, 0x6D40, 0xAF01, 0x6FC0, 0x6E80, 0xAE41, + 0xAA01, 0x6AC0, 0x6B80, 0xAB41, 0x6900, 0xA9C1, 0xA881, 0x6840, + 0x7800, 0xB8C1, 0xB981, 0x7940, 0xBB01, 0x7BC0, 0x7A80, 0xBA41, + 0xBE01, 0x7EC0, 0x7F80, 0xBF41, 0x7D00, 0xBDC1, 0xBC81, 0x7C40, + 0xB401, 0x74C0, 0x7580, 0xB541, 0x7700, 0xB7C1, 0xB681, 0x7640, + 0x7200, 0xB2C1, 0xB381, 0x7340, 0xB101, 0x71C0, 0x7080, 0xB041, + 0x5000, 0x90C1, 0x9181, 0x5140, 0x9301, 0x53C0, 0x5280, 0x9241, + 0x9601, 0x56C0, 0x5780, 0x9741, 0x5500, 0x95C1, 0x9481, 0x5440, + 0x9C01, 0x5CC0, 0x5D80, 0x9D41, 0x5F00, 0x9FC1, 0x9E81, 0x5E40, + 0x5A00, 0x9AC1, 0x9B81, 0x5B40, 0x9901, 0x59C0, 0x5880, 0x9841, + 0x8801, 0x48C0, 0x4980, 0x8941, 0x4B00, 0x8BC1, 0x8A81, 0x4A40, + 0x4E00, 0x8EC1, 0x8F81, 0x4F40, 0x8D01, 0x4DC0, 0x4C80, 0x8C41, + 0x4400, 0x84C1, 0x8581, 0x4540, 0x8701, 0x47C0, 0x4680, 0x8641, + 0x8201, 0x42C0, 0x4380, 0x8341, 0x4100, 0x81C1, 0x8081, 0x4040 + }; + + return getCrc_16(data, len, 0xFFFF, table_16); +} + +//CRC16校验 +QByteArray QUIHelper::getCRCCode(const QByteArray &data) +{ + quint16 result = getModbus16((quint8 *)data.data(), data.length()); + return QUIHelper::ushortToByteRec(result); +} + +QString QUIHelper::byteArrayToAsciiStr(const QByteArray &data) +{ + QString temp; + int len = data.size(); + + for (int i = 0; i < len; i++) { + //0x20为空格,空格以下都是不可见字符 + char b = data.at(i); + + if (0x00 == b) { + temp += QString("\\NUL"); + } else if (0x01 == b) { + temp += QString("\\SOH"); + } else if (0x02 == b) { + temp += QString("\\STX"); + } else if (0x03 == b) { + temp += QString("\\ETX"); + } else if (0x04 == b) { + temp += QString("\\EOT"); + } else if (0x05 == b) { + temp += QString("\\ENQ"); + } else if (0x06 == b) { + temp += QString("\\ACK"); + } else if (0x07 == b) { + temp += QString("\\BEL"); + } else if (0x08 == b) { + temp += QString("\\BS"); + } else if (0x09 == b) { + temp += QString("\\HT"); + } else if (0x0A == b) { + temp += QString("\\LF"); + } else if (0x0B == b) { + temp += QString("\\VT"); + } else if (0x0C == b) { + temp += QString("\\FF"); + } else if (0x0D == b) { + temp += QString("\\CR"); + } else if (0x0E == b) { + temp += QString("\\SO"); + } else if (0x0F == b) { + temp += QString("\\SI"); + } else if (0x10 == b) { + temp += QString("\\DLE"); + } else if (0x11 == b) { + temp += QString("\\DC1"); + } else if (0x12 == b) { + temp += QString("\\DC2"); + } else if (0x13 == b) { + temp += QString("\\DC3"); + } else if (0x14 == b) { + temp += QString("\\DC4"); + } else if (0x15 == b) { + temp += QString("\\NAK"); + } else if (0x16 == b) { + temp += QString("\\SYN"); + } else if (0x17 == b) { + temp += QString("\\ETB"); + } else if (0x18 == b) { + temp += QString("\\CAN"); + } else if (0x19 == b) { + temp += QString("\\EM"); + } else if (0x1A == b) { + temp += QString("\\SUB"); + } else if (0x1B == b) { + temp += QString("\\ESC"); + } else if (0x1C == b) { + temp += QString("\\FS"); + } else if (0x1D == b) { + temp += QString("\\GS"); + } else if (0x1E == b) { + temp += QString("\\RS"); + } else if (0x1F == b) { + temp += QString("\\US"); + } else if (0x7F == b) { + temp += QString("\\x7F"); + } else if (0x5C == b) { + temp += QString("\\x5C"); + } else if (0x20 >= b) { + temp += QString("\\x%1").arg(decimalToStrHex((quint8)b)); + } else { + temp += QString("%1").arg(b); + } + } + + return temp.trimmed(); +} + +QByteArray QUIHelper::hexStrToByteArray(const QString &str) +{ + QByteArray senddata; + int hexdata, lowhexdata; + int hexdatalen = 0; + int len = str.length(); + senddata.resize(len / 2); + char lstr, hstr; + + for (int i = 0; i < len;) { + hstr = str.at(i).toLatin1(); + if (hstr == ' ') { + i++; + continue; + } + + i++; + if (i >= len) { + break; + } + + lstr = str.at(i).toLatin1(); + hexdata = convertHexChar(hstr); + lowhexdata = convertHexChar(lstr); + + if ((hexdata == 16) || (lowhexdata == 16)) { + break; + } else { + hexdata = hexdata * 16 + lowhexdata; + } + + i++; + senddata[hexdatalen] = (char)hexdata; + hexdatalen++; + } + + senddata.resize(hexdatalen); + return senddata; +} + +char QUIHelper::convertHexChar(char ch) +{ + if ((ch >= '0') && (ch <= '9')) { + return ch - 0x30; + } else if ((ch >= 'A') && (ch <= 'F')) { + return ch - 'A' + 10; + } else if ((ch >= 'a') && (ch <= 'f')) { + return ch - 'a' + 10; + } else { + return (-1); + } +} + +QByteArray QUIHelper::asciiStrToByteArray(const QString &str) +{ + QByteArray buffer; + int len = str.length(); + QString letter; + QString hex; + + for (int i = 0; i < len; i++) { + letter = str.at(i); + + if (letter == "\\") { + i++; + letter = str.mid(i, 1); + + if (letter == "x") { + i++; + hex = str.mid(i, 2); + buffer.append(strHexToDecimal(hex)); + i++; + continue; + } else if (letter == "N") { + i++; + hex = str.mid(i, 1); + + if (hex == "U") { + i++; + hex = str.mid(i, 1); + + if (hex == "L") { //NUL=0x00 + buffer.append((char)0x00); + continue; + } + } else if (hex == "A") { + i++; + hex = str.mid(i, 1); + + if (hex == "K") { //NAK=0x15 + buffer.append(0x15); + continue; + } + } + } else if (letter == "S") { + i++; + hex = str.mid(i, 1); + + if (hex == "O") { + i++; + hex = str.mid(i, 1); + + if (hex == "H") { //SOH=0x01 + buffer.append(0x01); + continue; + } else { //SO=0x0E + buffer.append(0x0E); + i--; + continue; + } + } else if (hex == "T") { + i++; + hex = str.mid(i, 1); + + if (hex == "X") { //STX=0x02 + buffer.append(0x02); + continue; + } + } else if (hex == "I") { //SI=0x0F + buffer.append(0x0F); + continue; + } else if (hex == "Y") { + i++; + hex = str.mid(i, 1); + + if (hex == "N") { //SYN=0x16 + buffer.append(0x16); + continue; + } + } else if (hex == "U") { + i++; + hex = str.mid(i, 1); + + if (hex == "B") { //SUB=0x1A + buffer.append(0x1A); + continue; + } + } + } else if (letter == "E") { + i++; + hex = str.mid(i, 1); + + if (hex == "T") { + i++; + hex = str.mid(i, 1); + + if (hex == "X") { //ETX=0x03 + buffer.append(0x03); + continue; + } else if (hex == "B") { //ETB=0x17 + buffer.append(0x17); + continue; + } + } else if (hex == "O") { + i++; + hex = str.mid(i, 1); + + if (hex == "T") { //EOT=0x04 + buffer.append(0x04); + continue; + } + } else if (hex == "N") { + i++; + hex = str.mid(i, 1); + + if (hex == "Q") { //ENQ=0x05 + buffer.append(0x05); + continue; + } + } else if (hex == "M") { //EM=0x19 + buffer.append(0x19); + continue; + } else if (hex == "S") { + i++; + hex = str.mid(i, 1); + + if (hex == "C") { //ESC=0x1B + buffer.append(0x1B); + continue; + } + } + } else if (letter == "A") { + i++; + hex = str.mid(i, 1); + + if (hex == "C") { + i++; + hex = str.mid(i, 1); + + if (hex == "K") { //ACK=0x06 + buffer.append(0x06); + continue; + } + } + } else if (letter == "B") { + i++; + hex = str.mid(i, 1); + + if (hex == "E") { + i++; + hex = str.mid(i, 1); + + if (hex == "L") { //BEL=0x07 + buffer.append(0x07); + continue; + } + } else if (hex == "S") { //BS=0x08 + buffer.append(0x08); + continue; + } + } else if (letter == "C") { + i++; + hex = str.mid(i, 1); + + if (hex == "R") { //CR=0x0D + buffer.append(0x0D); + continue; + } else if (hex == "A") { + i++; + hex = str.mid(i, 1); + + if (hex == "N") { //CAN=0x18 + buffer.append(0x18); + continue; + } + } + } else if (letter == "D") { + i++; + hex = str.mid(i, 1); + + if (hex == "L") { + i++; + hex = str.mid(i, 1); + + if (hex == "E") { //DLE=0x10 + buffer.append(0x10); + continue; + } + } else if (hex == "C") { + i++; + hex = str.mid(i, 1); + + if (hex == "1") { //DC1=0x11 + buffer.append(0x11); + continue; + } else if (hex == "2") { //DC2=0x12 + buffer.append(0x12); + continue; + } else if (hex == "3") { //DC3=0x13 + buffer.append(0x13); + continue; + } else if (hex == "4") { //DC2=0x14 + buffer.append(0x14); + continue; + } + } + } else if (letter == "F") { + i++; + hex = str.mid(i, 1); + + if (hex == "F") { //FF=0x0C + buffer.append(0x0C); + continue; + } else if (hex == "S") { //FS=0x1C + buffer.append(0x1C); + continue; + } + } else if (letter == "H") { + i++; + hex = str.mid(i, 1); + + if (hex == "T") { //HT=0x09 + buffer.append(0x09); + continue; + } + } else if (letter == "L") { + i++; + hex = str.mid(i, 1); + + if (hex == "F") { //LF=0x0A + buffer.append(0x0A); + continue; + } + } else if (letter == "G") { + i++; + hex = str.mid(i, 1); + + if (hex == "S") { //GS=0x1D + buffer.append(0x1D); + continue; + } + } else if (letter == "R") { + i++; + hex = str.mid(i, 1); + + if (hex == "S") { //RS=0x1E + buffer.append(0x1E); + continue; + } + } else if (letter == "U") { + i++; + hex = str.mid(i, 1); + + if (hex == "S") { //US=0x1F + buffer.append(0x1F); + continue; + } + } else if (letter == "V") { + i++; + hex = str.mid(i, 1); + + if (hex == "T") { //VT=0x0B + buffer.append(0x0B); + continue; + } + } else if (letter == "\\") { + //如果连着的是多个\\则对应添加\对应的16进制0x5C + buffer.append(0x5C); + continue; + } else { + //将对应的\[前面的\\也要加入 + buffer.append(0x5C); + buffer.append(letter.toLatin1()); + continue; + } + } + + buffer.append(str.mid(i, 1).toLatin1()); + + } + + return buffer; +} + +QString QUIHelper::byteArrayToHexStr(const QByteArray &data) +{ + QString temp = ""; + QString hex = data.toHex(); + + for (int i = 0; i < hex.length(); i = i + 2) { + temp += hex.mid(i, 2) + " "; + } + + return temp.trimmed().toUpper(); +} + +QString QUIHelper::getSaveName(const QString &filter, QString defaultDir) +{ + return QFileDialog::getSaveFileName(0, "选择文件", defaultDir , filter); +} + +QString QUIHelper::getFileName(const QString &filter, QString defaultDir) +{ + return QFileDialog::getOpenFileName(0, "选择文件", defaultDir , filter); +} + +QStringList QUIHelper::getFileNames(const QString &filter, QString defaultDir) +{ + return QFileDialog::getOpenFileNames(0, "选择文件", defaultDir, filter); +} + +QString QUIHelper::getFolderName() +{ + return QFileDialog::getExistingDirectory(); +} + +QString QUIHelper::getFileNameWithExtension(const QString &strFilePath) +{ + QFileInfo fileInfo(strFilePath); + return fileInfo.fileName(); +} + +QStringList QUIHelper::getFolderFileNames(const QStringList &filter) +{ + QStringList fileList; + QString strFolder = QFileDialog::getExistingDirectory(); + + if (!strFolder.length() == 0) { + QDir myFolder(strFolder); + + if (myFolder.exists()) { + fileList = myFolder.entryList(filter); + } + } + + return fileList; +} + +bool QUIHelper::folderIsExist(const QString &strFolder) +{ + QDir tempFolder(strFolder); + return tempFolder.exists(); +} + +bool QUIHelper::fileIsExist(const QString &strFile) +{ + QFile tempFile(strFile); + return tempFile.exists(); +} + +bool QUIHelper::copyFile(const QString &sourceFile, const QString &targetFile) +{ + bool ok; + ok = QFile::copy(sourceFile, targetFile); + //将复制过去的文件只读属性取消 + ok = QFile::setPermissions(targetFile, QFile::WriteOwner); + return ok; +} + +void QUIHelper::deleteDirectory(const QString &path) +{ + QDir dir(path); + if (!dir.exists()) { + return; + } + + dir.setFilter(QDir::AllEntries | QDir::NoDotAndDotDot); + QFileInfoList fileList = dir.entryInfoList(); + + foreach (QFileInfo fi, fileList) { + if (fi.isFile()) { + fi.dir().remove(fi.fileName()); + } else { + deleteDirectory(fi.absoluteFilePath()); + dir.rmdir(fi.absoluteFilePath()); + } + } +} + +bool QUIHelper::ipLive(const QString &ip, int port, int timeout) +{ + QTcpSocket tcpClient; + tcpClient.abort(); + tcpClient.connectToHost(ip, port); + //超时没有连接上则判断不在线 + return tcpClient.waitForConnected(timeout); +} + +QString QUIHelper::getHtml(const QString &url) +{ + QNetworkAccessManager *manager = new QNetworkAccessManager(); + QNetworkReply *reply = manager->get(QNetworkRequest(QUrl(url))); + QByteArray responseData; + QEventLoop eventLoop; + QObject::connect(manager, SIGNAL(finished(QNetworkReply *)), &eventLoop, SLOT(quit())); + eventLoop.exec(); + responseData = reply->readAll(); + return QString(responseData); +} + +QString QUIHelper::getNetIP(const QString &webCode) +{ + QString web = webCode; + web = web.replace(' ', ""); + web = web.replace("\r", ""); + web = web.replace("\n", ""); + QStringList list = web.split("
"); + QString tar = list.at(3); + QStringList ip = tar.split("="); + return ip.at(1); +} + +QString QUIHelper::getLocalIP() +{ + QStringList ips; + QList addrs = QNetworkInterface::allAddresses(); + foreach (QHostAddress addr, addrs) { + QString ip = addr.toString(); + if (QUIHelper::isIP(ip)) { + ips << ip; + } + } + + //优先取192开头的IP,如果获取不到IP则取127.0.0.1 + QString ip = "127.0.0.1"; + foreach (QString str, ips) { + if (str.startsWith("192.168.1") || str.startsWith("192")) { + ip = str; + break; + } + } + + return ip; +} + +QString QUIHelper::urlToIP(const QString &url) +{ + QHostInfo host = QHostInfo::fromName(url); + return host.addresses().at(0).toString(); +} + +bool QUIHelper::isWebOk() +{ + //能接通百度IP说明可以通外网 + return ipLive("115.239.211.112", 80); +} + +void QUIHelper::showMessageBoxInfo(const QString &info, int closeSec, bool exec) +{ +#ifdef Q_OS_ANDROID + QAndroid::Instance()->makeToast(info); +#else + if (exec) { + QUIMessageBox msg; + msg.setMessage(info, 0, closeSec); + msg.exec(); + } else { + QUIMessageBox::Instance()->setMessage(info, 0, closeSec); + QUIMessageBox::Instance()->show(); + } +#endif +} + +void QUIHelper::showMessageBoxError(const QString &info, int closeSec, bool exec) +{ +#ifdef Q_OS_ANDROID + QAndroid::Instance()->makeToast(info); +#else + if (exec) { + QUIMessageBox msg; + msg.setMessage(info, 2, closeSec); + msg.exec(); + } else { + QUIMessageBox::Instance()->setMessage(info, 2, closeSec); + QUIMessageBox::Instance()->show(); + } +#endif +} + +int QUIHelper::showMessageBoxQuestion(const QString &info) +{ + QUIMessageBox msg; + msg.setMessage(info, 1); + return msg.exec(); +} + +void QUIHelper::showTipBox(const QString &title, const QString &tip, bool fullScreen, bool center, int closeSec) +{ + QUITipBox::Instance()->setTip(title, tip, fullScreen, center, closeSec); + QUITipBox::Instance()->show(); +} + +void QUIHelper::hideTipBox() +{ + QUITipBox::Instance()->hide(); +} + +QString QUIHelper::showInputBox(const QString &title, int type, int closeSec, + const QString &placeholderText, bool pwd, + const QString &defaultValue) +{ + QUIInputBox input; + input.setParameter(title, type, closeSec, placeholderText, pwd, defaultValue); + input.exec(); + return input.getValue(); +} + +void QUIHelper::showDateSelect(QString &dateStart, QString &dateEnd, const QString &format) +{ + QUIDateSelect select; + select.setFormat(format); + select.exec(); + dateStart = select.getStartDateTime(); + dateEnd = select.getEndDateTime(); +} + +QString QUIHelper::setPushButtonQss(QPushButton *btn, int radius, int padding, + const QString &normalColor, + const QString &normalTextColor, + const QString &hoverColor, + const QString &hoverTextColor, + const QString &pressedColor, + const QString &pressedTextColor) +{ + QStringList list; + list.append(QString("QPushButton{border-style:none;padding:%1px;border-radius:%2px;color:%3;background:%4;}") + .arg(padding).arg(radius).arg(normalTextColor).arg(normalColor)); + list.append(QString("QPushButton:hover{color:%1;background:%2;}") + .arg(hoverTextColor).arg(hoverColor)); + list.append(QString("QPushButton:pressed{color:%1;background:%2;}") + .arg(pressedTextColor).arg(pressedColor)); + + QString qss = list.join(""); + btn->setStyleSheet(qss); + return qss; +} + +QString QUIHelper::setLineEditQss(QLineEdit *txt, int radius, int borderWidth, + const QString &normalColor, + const QString &focusColor) +{ + QStringList list; + list.append(QString("QLineEdit{border-style:none;padding:3px;border-radius:%1px;border:%2px solid %3;}") + .arg(radius).arg(borderWidth).arg(normalColor)); + list.append(QString("QLineEdit:focus{border:%1px solid %2;}") + .arg(borderWidth).arg(focusColor)); + + QString qss = list.join(""); + txt->setStyleSheet(qss); + return qss; +} + +QString QUIHelper::setProgressBarQss(QProgressBar *bar, int barHeight, + int barRadius, int fontSize, + const QString &normalColor, + const QString &chunkColor) +{ + + QStringList list; + list.append(QString("QProgressBar{font:%1pt;background:%2;max-height:%3px;border-radius:%4px;text-align:center;border:1px solid %2;}") + .arg(fontSize).arg(normalColor).arg(barHeight).arg(barRadius)); + list.append(QString("QProgressBar:chunk{border-radius:%2px;background-color:%1;}") + .arg(chunkColor).arg(barRadius)); + + QString qss = list.join(""); + bar->setStyleSheet(qss); + return qss; +} + +QString QUIHelper::setSliderQss(QSlider *slider, int sliderHeight, + const QString &normalColor, + const QString &grooveColor, + const QString &handleBorderColor, + const QString &handleColor, + const QString &textColor) +{ + int sliderRadius = sliderHeight / 2; + int handleSize = (sliderHeight * 3) / 2 + (sliderHeight / 5); + int handleRadius = handleSize / 2; + int handleOffset = handleRadius / 2; + + QStringList list; + int handleWidth = handleSize + sliderHeight / 5 - 1; + list.append(QString("QSlider::horizontal{min-height:%1px;color:%2;}").arg(sliderHeight * 2).arg(textColor)); + list.append(QString("QSlider::groove:horizontal{background:%1;height:%2px;border-radius:%3px;}") + .arg(normalColor).arg(sliderHeight).arg(sliderRadius)); + list.append(QString("QSlider::add-page:horizontal{background:%1;height:%2px;border-radius:%3px;}") + .arg(normalColor).arg(sliderHeight).arg(sliderRadius)); + list.append(QString("QSlider::sub-page:horizontal{background:%1;height:%2px;border-radius:%3px;}") + .arg(grooveColor).arg(sliderHeight).arg(sliderRadius)); + list.append(QString("QSlider::handle:horizontal{width:%3px;margin-top:-%4px;margin-bottom:-%4px;border-radius:%5px;" + "background:qradialgradient(spread:pad,cx:0.5,cy:0.5,radius:0.5,fx:0.5,fy:0.5,stop:0.6 %1,stop:0.8 %2);}") + .arg(handleColor).arg(handleBorderColor).arg(handleWidth).arg(handleOffset).arg(handleRadius)); + + //偏移一个像素 + handleWidth = handleSize + sliderHeight / 5; + list.append(QString("QSlider::vertical{min-width:%1px;color:%2;}").arg(sliderHeight * 2).arg(textColor)); + list.append(QString("QSlider::groove:vertical{background:%1;width:%2px;border-radius:%3px;}") + .arg(normalColor).arg(sliderHeight).arg(sliderRadius)); + list.append(QString("QSlider::add-page:vertical{background:%1;width:%2px;border-radius:%3px;}") + .arg(grooveColor).arg(sliderHeight).arg(sliderRadius)); + list.append(QString("QSlider::sub-page:vertical{background:%1;width:%2px;border-radius:%3px;}") + .arg(normalColor).arg(sliderHeight).arg(sliderRadius)); + list.append(QString("QSlider::handle:vertical{height:%3px;margin-left:-%4px;margin-right:-%4px;border-radius:%5px;" + "background:qradialgradient(spread:pad,cx:0.5,cy:0.5,radius:0.5,fx:0.5,fy:0.5,stop:0.6 %1,stop:0.8 %2);}") + .arg(handleColor).arg(handleBorderColor).arg(handleWidth).arg(handleOffset).arg(handleRadius)); + + QString qss = list.join(""); + slider->setStyleSheet(qss); + return qss; +} + +QString QUIHelper::setRadioButtonQss(QRadioButton *rbtn, int indicatorRadius, + const QString &normalColor, + const QString &checkColor) +{ + int indicatorWidth = indicatorRadius * 2; + + QStringList list; + list.append(QString("QRadioButton::indicator{border-radius:%1px;width:%2px;height:%2px;}") + .arg(indicatorRadius).arg(indicatorWidth)); + list.append(QString("QRadioButton::indicator::unchecked{background:qradialgradient(spread:pad,cx:0.5,cy:0.5,radius:0.5,fx:0.5,fy:0.5," + "stop:0.6 #FFFFFF,stop:0.7 %1);}").arg(normalColor)); + list.append(QString("QRadioButton::indicator::checked{background:qradialgradient(spread:pad,cx:0.5,cy:0.5,radius:0.5,fx:0.5,fy:0.5," + "stop:0 %1,stop:0.3 %1,stop:0.4 #FFFFFF,stop:0.6 #FFFFFF,stop:0.7 %1);}").arg(checkColor)); + + QString qss = list.join(""); + rbtn->setStyleSheet(qss); + return qss; +} + +QString QUIHelper::setScrollBarQss(QWidget *scroll, int radius, int min, int max, + const QString &bgColor, + const QString &handleNormalColor, + const QString &handleHoverColor, + const QString &handlePressedColor) +{ + //滚动条离背景间隔 + int padding = 0; + + QStringList list; + + //handle:指示器,滚动条拉动部分 add-page:滚动条拉动时增加的部分 sub-page:滚动条拉动时减少的部分 add-line:递增按钮 sub-line:递减按钮 + + //横向滚动条部分 + list.append(QString("QScrollBar:horizontal{background:%1;padding:%2px;border-radius:%3px;min-height:%4px;max-height:%4px;}") + .arg(bgColor).arg(padding).arg(radius).arg(max)); + list.append(QString("QScrollBar::handle:horizontal{background:%1;min-width:%2px;border-radius:%3px;}") + .arg(handleNormalColor).arg(min).arg(radius)); + list.append(QString("QScrollBar::handle:horizontal:hover{background:%1;}") + .arg(handleHoverColor)); + list.append(QString("QScrollBar::handle:horizontal:pressed{background:%1;}") + .arg(handlePressedColor)); + list.append(QString("QScrollBar::add-page:horizontal{background:none;}")); + list.append(QString("QScrollBar::sub-page:horizontal{background:none;}")); + list.append(QString("QScrollBar::add-line:horizontal{background:none;}")); + list.append(QString("QScrollBar::sub-line:horizontal{background:none;}")); + + //纵向滚动条部分 + list.append(QString("QScrollBar:vertical{background:%1;padding:%2px;border-radius:%3px;min-width:%4px;max-width:%4px;}") + .arg(bgColor).arg(padding).arg(radius).arg(max)); + list.append(QString("QScrollBar::handle:vertical{background:%1;min-height:%2px;border-radius:%3px;}") + .arg(handleNormalColor).arg(min).arg(radius)); + list.append(QString("QScrollBar::handle:vertical:hover{background:%1;}") + .arg(handleHoverColor)); + list.append(QString("QScrollBar::handle:vertical:pressed{background:%1;}") + .arg(handlePressedColor)); + list.append(QString("QScrollBar::add-page:vertical{background:none;}")); + list.append(QString("QScrollBar::sub-page:vertical{background:none;}")); + list.append(QString("QScrollBar::add-line:vertical{background:none;}")); + list.append(QString("QScrollBar::sub-line:vertical{background:none;}")); + + QString qss = list.join(""); + scroll->setStyleSheet(qss); + return qss; +} + + +QChar QUIConfig::IconMain = QChar(0xf072); +QChar QUIConfig::IconMenu = QChar(0xf0d7); +QChar QUIConfig::IconMin = QChar(0xf068); +QChar QUIConfig::IconMax = QChar(0xf2d2); +QChar QUIConfig::IconNormal = QChar(0xf2d0); +QChar QUIConfig::IconClose = QChar(0xf00d); + +#ifdef __arm__ +#ifdef Q_OS_ANDROID +QString QUIConfig::FontName = "Droid Sans Fallback"; +int QUIConfig::FontSize = 15; +#else +QString QUIConfig::FontName = "WenQuanYi Micro Hei"; +int QUIConfig::FontSize = 18; +#endif +#else +QString QUIConfig::FontName = "Microsoft Yahei"; +int QUIConfig::FontSize = 12; +#endif + +QString QUIConfig::TextColor = "#F0F0F0"; +QString QUIConfig::PanelColor = "#F0F0F0"; +QString QUIConfig::BorderColor = "#F0F0F0"; +QString QUIConfig::NormalColorStart = "#F0F0F0"; +QString QUIConfig::NormalColorEnd = "#F0F0F0"; +QString QUIConfig::DarkColorStart = "#F0F0F0"; +QString QUIConfig::DarkColorEnd = "#F0F0F0"; +QString QUIConfig::HighColor = "#F0F0F0"; diff --git a/comtool/api/quiwidget.h b/comtool/api/quiwidget.h new file mode 100644 index 0000000..a571365 --- /dev/null +++ b/comtool/api/quiwidget.h @@ -0,0 +1,871 @@ +#ifndef QUIWIDGET_H +#define QUIWIDGET_H + +#define TIMEMS qPrintable(QTime::currentTime().toString("HH:mm:ss zzz")) +#define TIME qPrintable(QTime::currentTime().toString("HH:mm:ss")) +#define QDATE qPrintable(QDate::currentDate().toString("yyyy-MM-dd")) +#define QTIME qPrintable(QTime::currentTime().toString("HH-mm-ss")) +#define DATETIME qPrintable(QDateTime::currentDateTime().toString("yyyy-MM-dd HH:mm:ss")) +#define STRDATETIME qPrintable(QDateTime::currentDateTime().toString("yyyy-MM-dd-HH-mm-ss")) +#define STRDATETIMEMS qPrintable(QDateTime::currentDateTime().toString("yyyy-MM-dd-HH-mm-ss-zzz")) + +#ifdef Q_OS_WIN +#define NEWLINE "\r\n" +#else +#define NEWLINE "\n" +#endif + +#ifdef __arm__ +#define TitleMinSize 40 +#else +#define TitleMinSize 30 +#endif + +/** + * QUI无边框窗体控件 作者:feiyangqingyun(QQ:517216493) + * 1:内置 N >= 17 套精美样式,可直接切换,也可自定义样式路径 + * 2:可设置部件(左上角图标/最小化按钮/最大化按钮/关闭按钮)的图标或者图片及是否可见 + * 3:可集成设计师插件,直接拖曳使用,所见即所得 + * 4:如果需要窗体可拖动大小,设置 setSizeGripEnabled(true); + * 5:可设置全局样式 setStyle + * 6:可弹出消息框,可选阻塞模式和不阻塞,默认不阻塞 showMessageBoxInfo + * 7:可弹出错误框,可选阻塞模式和不阻塞,默认不阻塞 showMessageBoxError + * 8:可弹出询问框 showMessageBoxError + * 9:可弹出右下角信息框 showTipBox + * 10:可弹出输入框 showInputBox + * 11:可弹出时间范围选择框 showDateSelect + * 12:消息框支持设置倒计时关闭 + * 13:集成图形字体设置方法及根据指定文字获取图片 + * 14:集成设置窗体居中显示/设置翻译文件/设置编码/设置延时/设置系统时间等静态方法 + * 15:集成获取应用程序文件名/文件路径 等方法 + */ + +#include "head.h" + +#ifdef quc +#if (QT_VERSION < QT_VERSION_CHECK(5,7,0)) +#include +#else +#include +#endif + +class QDESIGNER_WIDGET_EXPORT QUIWidget : public QDialog +#else +class QUIWidget : public QDialog +#endif + +{ + Q_OBJECT + Q_ENUMS(Style) + Q_PROPERTY(QString title READ getTitle WRITE setTitle) + Q_PROPERTY(Qt::Alignment alignment READ getAlignment WRITE setAlignment) + Q_PROPERTY(bool minHide READ getMinHide WRITE setMinHide) + Q_PROPERTY(bool exitAll READ getExitAll WRITE setExitAll) + +public: + //将部分对象作为枚举值暴露给外部 + enum Widget { + Lab_Ico = 0, //左上角图标 + BtnMenu = 1, //下拉菜单按钮 + BtnMenu_Min = 2, //最小化按钮 + BtnMenu_Max = 3, //最大化按钮 + BtnMenu_Normal = 4, //还原按钮 + BtnMenu_Close = 5 //关闭按钮 + }; + + //样式枚举 + enum Style { + Style_Silvery = 0, //银色样式 + Style_Blue = 1, //蓝色样式 + Style_LightBlue = 2, //淡蓝色样式 + Style_DarkBlue = 3, //深蓝色样式 + Style_Gray = 4, //灰色样式 + Style_LightGray = 5, //浅灰色样式 + Style_DarkGray = 6, //深灰色样式 + Style_Black = 7, //黑色样式 + Style_LightBlack = 8, //浅黑色样式 + Style_DarkBlack = 9, //深黑色样式 + Style_PSBlack = 10, //PS黑色样式 + Style_FlatBlack = 11, //黑色扁平样式 + Style_FlatWhite = 12, //白色扁平样式 + Style_FlatBlue = 13, //蓝色扁平样式 + Style_Purple = 14, //紫色样式 + Style_BlackBlue = 15, //黑蓝色样式 + Style_BlackVideo = 16 //视频监控黑色样式 + }; + +public: + explicit QUIWidget(QWidget *parent = 0); + ~QUIWidget(); + +protected: + bool eventFilter(QObject *watched, QEvent *event); + +private: + QVBoxLayout *verticalLayout1; + QWidget *widgetMain; + QVBoxLayout *verticalLayout2; + QWidget *widgetTitle; + QHBoxLayout *horizontalLayout4; + QLabel *labIco; + QLabel *labTitle; + QWidget *widgetMenu; + QHBoxLayout *horizontalLayout; + QToolButton *btnMenu; + QPushButton *btnMenu_Min; + QPushButton *btnMenu_Max; + QPushButton *btnMenu_Close; + QWidget *widget; + QVBoxLayout *verticalLayout3; + +private: + QString title; //标题 + Qt::Alignment alignment; //标题文本对齐 + bool minHide; //最小化隐藏 + bool exitAll; //退出整个程序 + QWidget *mainWidget; //主窗体对象 + +public: + QLabel *getLabIco() const; + QLabel *getLabTitle() const; + QToolButton *getBtnMenu() const; + QPushButton *getBtnMenuMin() const; + QPushButton *getBtnMenuMax() const; + QPushButton *getBtnMenuMClose() const; + + QString getTitle() const; + Qt::Alignment getAlignment() const; + bool getMinHide() const; + bool getExitAll() const; + + QSize sizeHint() const; + QSize minimumSizeHint() const; + +private slots: + void initControl(); //初始化控件 + void initForm(); //初始化窗体 + void changeStyle(); //更换样式 + +private slots: + void on_btnMenu_Min_clicked(); + void on_btnMenu_Max_clicked(); + void on_btnMenu_Close_clicked(); + +public Q_SLOTS: + //设置部件图标 + void setIcon(QUIWidget::Widget widget, const QChar &str, quint32 size = 12); + void setIconMain(const QChar &str, quint32 size = 12); + //设置部件图片 + void setPixmap(QUIWidget::Widget widget, const QString &file, const QSize &size = QSize(16, 16)); + //设置部件是否可见 + void setVisible(QUIWidget::Widget widget, bool visible = true); + //设置只有关闭按钮 + void setOnlyCloseBtn(); + + //设置标题栏高度 + void setTitleHeight(int height); + //设置按钮统一宽度 + void setBtnWidth(int width); + + //设置标题及文本样式 + void setTitle(const QString &title); + void setAlignment(Qt::Alignment alignment); + + //设置最小化隐藏 + void setMinHide(bool minHide); + + //设置退出时候直接退出整个应用程序 + void setExitAll(bool exitAll); + + //设置主窗体 + void setMainWidget(QWidget *mainWidget); + +Q_SIGNALS: + void changeStyle(const QString &qssFile); + void closing(); +}; + +//弹出信息框类 +class QUIMessageBox : public QDialog +{ + Q_OBJECT + +public: + static QUIMessageBox *Instance(); + explicit QUIMessageBox(QWidget *parent = 0); + ~QUIMessageBox(); + +protected: + void closeEvent(QCloseEvent *); + bool eventFilter(QObject *watched, QEvent *event); + +private: + static QScopedPointer self; + + QVBoxLayout *verticalLayout1; + QWidget *widgetTitle; + QHBoxLayout *horizontalLayout3; + QLabel *labIco; + QLabel *labTitle; + QLabel *labTime; + QWidget *widgetMenu; + QHBoxLayout *horizontalLayout4; + QPushButton *btnMenu_Close; + QWidget *widgetMain; + QVBoxLayout *verticalLayout2; + QFrame *frame; + QVBoxLayout *verticalLayout4; + QHBoxLayout *horizontalLayout1; + QLabel *labIcoMain; + QSpacerItem *horizontalSpacer1; + QLabel *labInfo; + QHBoxLayout *horizontalLayout2; + QSpacerItem *horizontalSpacer2; + QPushButton *btnOk; + QPushButton *btnCancel; + +private: + int closeSec; //总显示时间 + int currentSec; //当前已显示时间 + +private slots: + void initControl(); //初始化控件 + void initForm(); //初始化窗体 + void checkSec(); //校验倒计时 + +private slots: + void on_btnOk_clicked(); + void on_btnMenu_Close_clicked(); + +public Q_SLOTS: + void setIconMain(const QChar &str, quint32 size = 12); + void setMessage(const QString &msg, int type, int closeSec = 0); +}; + +//右下角弹出框类 +class QUITipBox : public QDialog +{ + Q_OBJECT + +public: + static QUITipBox *Instance(); + explicit QUITipBox(QWidget *parent = 0); + ~QUITipBox(); + +protected: + void closeEvent(QCloseEvent *); + bool eventFilter(QObject *watched, QEvent *event); + +private: + static QScopedPointer self; + + QVBoxLayout *verticalLayout; + QWidget *widgetTitle; + QHBoxLayout *horizontalLayout2; + QLabel *labIco; + QLabel *labTitle; + QLabel *labTime; + QWidget *widgetMenu; + QHBoxLayout *horizontalLayout; + QPushButton *btnMenu_Close; + QWidget *widgetMain; + QVBoxLayout *verticalLayout2; + QLabel *labInfo; + + QPropertyAnimation *animation; + bool fullScreen; + +private: + int closeSec; //总显示时间 + int currentSec; //当前已显示时间 + +private slots: + void initControl(); //初始化控件 + void initForm(); //初始化窗体 + void checkSec(); //校验倒计时 + +private slots: + void on_btnMenu_Close_clicked(); + +public Q_SLOTS: + void setIconMain(const QChar &str, quint32 size = 12); + void setTip(const QString &title, const QString &tip, bool fullScreen = false, bool center = true, int closeSec = 0); + void hide(); +}; + + +//弹出输入框类 +class QUIInputBox : public QDialog +{ + Q_OBJECT + +public: + static QUIInputBox *Instance(); + explicit QUIInputBox(QWidget *parent = 0); + ~QUIInputBox(); + +protected: + void showEvent(QShowEvent *); + void closeEvent(QCloseEvent *); + bool eventFilter(QObject *watched, QEvent *event); + +private: + static QScopedPointer self; + + QVBoxLayout *verticalLayout1; + QWidget *widgetTitle; + QHBoxLayout *horizontalLayout1; + QLabel *labIco; + QLabel *labTitle; + QLabel *labTime; + QWidget *widgetMenu; + QHBoxLayout *horizontalLayout2; + QPushButton *btnMenu_Close; + QWidget *widgetMain; + QVBoxLayout *verticalLayout2; + QFrame *frame; + QVBoxLayout *verticalLayout3; + QLabel *labInfo; + QLineEdit *txtValue; + QComboBox *cboxValue; + QHBoxLayout *lay; + QSpacerItem *horizontalSpacer; + QPushButton *btnOk; + QPushButton *btnCancel; + +private: + int closeSec; //总显示时间 + int currentSec; //当前已显示时间 + QString value; //当前值 + +private slots: + void initControl(); //初始化控件 + void initForm(); //初始化窗体 + void checkSec(); //校验倒计时 + +private slots: + void on_btnOk_clicked(); + void on_btnMenu_Close_clicked(); + +public: + QString getValue()const; + +public Q_SLOTS: + void setIconMain(const QChar &str, quint32 size = 12); + void setParameter(const QString &title, int type = 0, int closeSec = 0, + QString placeholderText = QString(), bool pwd = false, + const QString &defaultValue = QString()); + +}; + +//弹出日期选择对话框 +class QUIDateSelect : public QDialog +{ + Q_OBJECT + +public: + static QUIDateSelect *Instance(); + explicit QUIDateSelect(QWidget *parent = 0); + ~QUIDateSelect(); + +protected: + bool eventFilter(QObject *watched, QEvent *event); + +private: + static QScopedPointer self; + + QVBoxLayout *verticalLayout; + QWidget *widgetTitle; + QHBoxLayout *horizontalLayout1; + QLabel *labIco; + QLabel *labTitle; + QWidget *widgetMenu; + QHBoxLayout *horizontalLayout; + QPushButton *btnMenu_Close; + QWidget *widgetMain; + QVBoxLayout *verticalLayout1; + QFrame *frame; + QGridLayout *gridLayout; + QLabel *labStart; + QPushButton *btnOk; + QLabel *labEnd; + QPushButton *btnClose; + QDateTimeEdit *dateStart; + QDateTimeEdit *dateEnd; + +private: + QString startDateTime; //开始时间 + QString endDateTime; //结束时间 + QString format; //日期时间格式 + +private slots: + void initControl(); //初始化控件 + void initForm(); //初始化窗体 + +private slots: + void on_btnOk_clicked(); + void on_btnMenu_Close_clicked(); + +public: + //获取当前选择的开始时间和结束时间 + QString getStartDateTime() const; + QString getEndDateTime() const; + +public Q_SLOTS: + void setIconMain(const QChar &str, quint32 size = 12); + void setFormat(const QString &format); + +}; + +//图形字体处理类 +class IconHelper : public QObject +{ + Q_OBJECT + +public: + static IconHelper *Instance(); + explicit IconHelper(QObject *parent = 0); + + //获取图形字体 + QFont getIconFont(); + + //设置图形字体到标签 + void setIcon(QLabel *lab, const QChar &str, quint32 size = 12); + //设置图形字体到按钮 + void setIcon(QAbstractButton *btn, const QChar &str, quint32 size = 12); + + //获取指定图形字体,可以指定文字大小,图片宽高,文字对齐 + QPixmap getPixmap(const QColor &color, const QChar &str, quint32 size = 12, + quint32 pixWidth = 15, quint32 pixHeight = 15, + int flags = Qt::AlignCenter); + + //根据按钮获取该按钮对应的图标 + QPixmap getPixmap(QToolButton *btn, bool normal); + QPixmap getPixmap(QToolButton *btn, int type); + + //指定QFrame导航按钮样式,带图标 + void setStyle(QFrame *frame, QList btns, QList pixChar, + quint32 iconSize = 12, quint32 iconWidth = 15, quint32 iconHeight = 15, + const QString &normalBgColor = "#2FC5A2", + const QString &darkBgColor = "#3EA7E9", + const QString &normalTextColor = "#EEEEEE", + const QString &darkTextColor = "#FFFFFF"); + + //指定导航面板样式,不带图标 + static void setStyle(QWidget *widget, const QString &type = "left", int borderWidth = 3, + const QString &borderColor = "#029FEA", + const QString &normalBgColor = "#292F38", + const QString &darkBgColor = "#1D2025", + const QString &normalTextColor = "#54626F", + const QString &darkTextColor = "#FDFDFD"); + + //移除导航面板样式,防止重复 + void removeStyle(QList btns); + + //指定QWidget导航面板样式,带图标和效果切换 + void setStyle(QWidget *widget, QList btns, QList pixChar, + quint32 iconSize = 12, quint32 iconWidth = 15, quint32 iconHeight = 15, + const QString &type = "left", int borderWidth = 3, + const QString &borderColor = "#029FEA", + const QString &normalBgColor = "#292F38", + const QString &darkBgColor = "#1D2025", + const QString &normalTextColor = "#54626F", + const QString &darkTextColor = "#FDFDFD"); + + struct StyleColor { + quint32 iconSize; + quint32 iconWidth; + quint32 iconHeight; + quint32 borderWidth; + QString type; + QString borderColor; + QString normalBgColor; + QString normalTextColor; + QString hoverBgColor; + QString hoverTextColor; + QString pressedBgColor; + QString pressedTextColor; + QString checkedBgColor; + QString checkedTextColor; + + StyleColor() + { + iconSize = 12; + iconWidth = 15; + iconHeight = 15; + borderWidth = 3; + type = "left"; + borderColor = "#029FEA"; + normalBgColor = "#292F38"; + normalTextColor = "#54626F"; + hoverBgColor = "#40444D"; + hoverTextColor = "#FDFDFD"; + pressedBgColor = "#404244"; + pressedTextColor = "#FDFDFD"; + checkedBgColor = "#44494F"; + checkedTextColor = "#FDFDFD"; + } + }; + + //指定QWidget导航面板样式,带图标和效果切换+悬停颜色+按下颜色+选中颜色 + void setStyle(QWidget *widget, QList btns, QList pixChar, const StyleColor &styleColor); + +protected: + bool eventFilter(QObject *watched, QEvent *event); + +private: + static QScopedPointer self; + + QFont iconFont; //图形字体 + QList btns; //按钮队列 + QList pixNormal; //正常图片队列 + QList pixDark; //加深图片队列 + QList pixHover; //悬停图片队列 + QList pixPressed; //按下图片队列 + QList pixChecked; //选中图片队列 +}; + +//托盘图标类 +class TrayIcon : public QObject +{ + Q_OBJECT +public: + static TrayIcon *Instance(); + explicit TrayIcon(QObject *parent = 0); + +private: + static QScopedPointer self; + + QWidget *mainWidget; //对应所属主窗体 + QSystemTrayIcon *trayIcon; //托盘对象 + QMenu *menu; //右键菜单 + bool exitDirect; //是否直接退出 + +private slots: + void iconIsActived(QSystemTrayIcon::ActivationReason reason); + +public Q_SLOTS: + //设置是否直接退出,如果不是直接退出则发送信号给主界面 + void setExitDirect(bool exitDirect); + + //设置所属主窗体 + void setMainWidget(QWidget *mainWidget); + + //显示消息 + void showMessage(const QString &title, const QString &msg, + QSystemTrayIcon::MessageIcon icon = QSystemTrayIcon::Information, int msecs = 5000); + + //设置图标 + void setIcon(const QString &strIcon); + //设置提示信息 + void setToolTip(const QString &tip); + //设置是否可见 + void setVisible(bool visible); + //退出所有 + void closeAll(); + +Q_SIGNALS: + void trayIconExit(); +}; + + +//全局静态方法类 +class QUIHelper : public QObject +{ + Q_OBJECT +public: + //桌面宽度高度 + static int deskWidth(); + static int deskHeight(); + + //程序本身文件名称 + static QString appName(); + //程序当前所在路径 + static QString appPath(); + + //初始化随机数种子 + static void initRand(); + + //初始化数据库 + static void initDb(const QString &dbName); + //初始化文件,不存在则拷贝 + static void initFile(const QString &sourceName, const QString &targetName); + + //新建目录 + static void newDir(const QString &dirName); + + //写入消息到额外的的消息日志文件 + static void writeInfo(const QString &info, const QString &filePath = "log"); + static void writeError(const QString &info, const QString &filePath = "log"); + + //设置全局样式 + static void setStyle(QUIWidget::Style style); + static void setStyle(const QString &qssFile, QString &paletteColor, QString &textColor); + static void setStyle(const QString &qssFile, QString &textColor, + QString &panelColor, QString &borderColor, + QString &normalColorStart, QString &normalColorEnd, + QString &darkColorStart, QString &darkColorEnd, + QString &highColor); + + //根据QSS样式获取对应颜色值 + static void getQssColor(const QString &qss, QString &textColor, + QString &panelColor, QString &borderColor, + QString &normalColorStart, QString &normalColorEnd, + QString &darkColorStart, QString &darkColorEnd, + QString &highColor); + + //九宫格图片 horzSplit-宫格1/3/7/9宽度 vertSplit-宫格1/3/7/9高度 dstWidth-目标图片宽度 dstHeight-目标图片高度 + static QPixmap ninePatch(const QString &picName, int horzSplit, int vertSplit, int dstWidth, int dstHeight); + static QPixmap ninePatch(const QPixmap &pix, int horzSplit, int vertSplit, int dstWidth, int dstHeight); + + //设置标签颜色 + static void setLabStyle(QLabel *lab, quint8 type); + + //设置窗体居中显示 + static void setFormInCenter(QWidget *frm); + //设置翻译文件 + static void setTranslator(const QString &qmFile = ":/image/qt_zh_CN.qm"); + //设置编码 + static void setCode(); + //设置延时 + static void sleep(int msec); + //设置系统时间 + static void setSystemDateTime(const QString &year, const QString &month, const QString &day, + const QString &hour, const QString &min, const QString &sec); + //设置开机自启动 + static void runWithSystem(const QString &strName, const QString &strPath, bool autoRun = true); + + //判断是否是IP地址 + static bool isIP(const QString &ip); + + //判断是否是MAC地址 + static bool isMac(const QString &mac); + + //判断是否是合法的电话号码 + static bool isTel(const QString &tel); + + //判断是否是合法的邮箱地址 + static bool isEmail(const QString &email); + + + //16进制字符串转10进制 + static int strHexToDecimal(const QString &strHex); + + //10进制字符串转10进制 + static int strDecimalToDecimal(const QString &strDecimal); + + //2进制字符串转10进制 + static int strBinToDecimal(const QString &strBin); + + //16进制字符串转2进制字符串 + static QString strHexToStrBin(const QString &strHex); + + //10进制转2进制字符串一个字节 + static QString decimalToStrBin1(int decimal); + + //10进制转2进制字符串两个字节 + static QString decimalToStrBin2(int decimal); + + //10进制转16进制字符串,补零. + static QString decimalToStrHex(int decimal); + + + //int转字节数组 + static QByteArray intToByte(int i); + static QByteArray intToByteRec(int i); + + //字节数组转int + static int byteToInt(const QByteArray &data); + static int byteToIntRec(const QByteArray &data); + static quint32 byteToUInt(const QByteArray &data); + static quint32 byteToUIntRec(const QByteArray &data); + + //ushort转字节数组 + static QByteArray ushortToByte(ushort i); + static QByteArray ushortToByteRec(ushort i); + + //字节数组转ushort + static int byteToUShort(const QByteArray &data); + static int byteToUShortRec(const QByteArray &data); + + //异或加密算法 + static QString getXorEncryptDecrypt(const QString &str, char key); + + //异或校验 + static uchar getOrCode(const QByteArray &data); + + //计算校验码 + static uchar getCheckCode(const QByteArray &data); + + //字符串补全 + static QString getValue(quint8 value); + + //CRC校验 + static quint16 getRevCrc_16(quint8 *data, int len, quint16 init, const quint16 *table); + static quint16 getCrc_16(quint8 *data, int len, quint16 init, const quint16 *table); + static quint16 getModbus16(quint8 *data, int len); + static QByteArray getCRCCode(const QByteArray &data); + + + //字节数组转Ascii字符串 + static QString byteArrayToAsciiStr(const QByteArray &data); + + //16进制字符串转字节数组 + static QByteArray hexStrToByteArray(const QString &str); + static char convertHexChar(char ch); + + //Ascii字符串转字节数组 + static QByteArray asciiStrToByteArray(const QString &str); + + //字节数组转16进制字符串 + static QString byteArrayToHexStr(const QByteArray &data); + + //获取保存的文件 + static QString getSaveName(const QString &filter, QString defaultDir = QCoreApplication::applicationDirPath()); + + //获取选择的文件 + static QString getFileName(const QString &filter, QString defaultDir = QCoreApplication::applicationDirPath()); + + //获取选择的文件集合 + static QStringList getFileNames(const QString &filter, QString defaultDir = QCoreApplication::applicationDirPath()); + + //获取选择的目录 + static QString getFolderName(); + + //获取文件名,含拓展名 + static QString getFileNameWithExtension(const QString &strFilePath); + + //获取选择文件夹中的文件 + static QStringList getFolderFileNames(const QStringList &filter); + + //文件夹是否存在 + static bool folderIsExist(const QString &strFolder); + + //文件是否存在 + static bool fileIsExist(const QString &strFile); + + //复制文件 + static bool copyFile(const QString &sourceFile, const QString &targetFile); + + //删除文件夹下所有文件 + static void deleteDirectory(const QString &path); + + //判断IP地址及端口是否在线 + static bool ipLive(const QString &ip, int port, int timeout = 1000); + + //获取网页所有源代码 + static QString getHtml(const QString &url); + + //获取本机公网IP地址 + static QString getNetIP(const QString &webCode); + + //获取本机IP + static QString getLocalIP(); + + //Url地址转为IP地址 + static QString urlToIP(const QString &url); + + //判断是否通外网 + static bool isWebOk(); + + + //弹出消息框 + static void showMessageBoxInfo(const QString &info, int closeSec = 0, bool exec = false); + //弹出错误框 + static void showMessageBoxError(const QString &info, int closeSec = 0, bool exec = false); + //弹出询问框 + static int showMessageBoxQuestion(const QString &info); + + //弹出+隐藏右下角信息框 + static void showTipBox(const QString &title, const QString &tip, bool fullScreen = false, + bool center = true, int closeSec = 0); + static void hideTipBox(); + + //弹出输入框 + static QString showInputBox(const QString &title, int type = 0, int closeSec = 0, + const QString &placeholderText = QString(), bool pwd = false, + const QString &defaultValue = QString()); + + //弹出日期选择框 + static void showDateSelect(QString &dateStart, QString &dateEnd, const QString &format = "yyyy-MM-dd"); + + + //设置按钮样式 + static QString setPushButtonQss(QPushButton *btn, //按钮对象 + int radius = 5, //圆角半径 + int padding = 8, //间距 + const QString &normalColor = "#34495E", //正常颜色 + const QString &normalTextColor = "#FFFFFF", //文字颜色 + const QString &hoverColor = "#4E6D8C", //悬停颜色 + const QString &hoverTextColor = "#F0F0F0", //悬停文字颜色 + const QString &pressedColor = "#2D3E50", //按下颜色 + const QString &pressedTextColor = "#B8C6D1"); //按下文字颜色 + + //设置文本框样式 + static QString setLineEditQss(QLineEdit *txt, //文本框对象 + int radius = 3, //圆角半径 + int borderWidth = 2, //边框大小 + const QString &normalColor = "#DCE4EC", //正常颜色 + const QString &focusColor = "#34495E"); //选中颜色 + + //设置进度条样式 + static QString setProgressBarQss(QProgressBar *bar, + int barHeight = 8, //进度条高度 + int barRadius = 5, //进度条半径 + int fontSize = 9, //文字字号 + const QString &normalColor = "#E8EDF2", //正常颜色 + const QString &chunkColor = "#E74C3C"); //进度颜色 + + //设置滑块条样式 + static QString setSliderQss(QSlider *slider, //滑动条对象 + int sliderHeight = 8, //滑动条高度 + const QString &normalColor = "#E8EDF2", //正常颜色 + const QString &grooveColor = "#1ABC9C", //滑块颜色 + const QString &handleBorderColor = "#1ABC9C", //指示器边框颜色 + const QString &handleColor = "#FFFFFF", //指示器颜色 + const QString &textColor = "#000000"); //文字颜色 + + //设置单选框样式 + static QString setRadioButtonQss(QRadioButton *rbtn, //单选框对象 + int indicatorRadius = 8, //指示器圆角角度 + const QString &normalColor = "#D7DBDE", //正常颜色 + const QString &checkColor = "#34495E"); //选中颜色 + + //设置滚动条样式 + static QString setScrollBarQss(QWidget *scroll, //滚动条对象 + int radius = 6, //圆角角度 + int min = 120, //指示器最小长度 + int max = 12, //滚动条最大长度 + const QString &bgColor = "#606060", //背景色 + const QString &handleNormalColor = "#34495E", //指示器正常颜色 + const QString &handleHoverColor = "#1ABC9C", //指示器悬停颜色 + const QString &handlePressedColor = "#E74C3C"); //指示器按下颜色 +}; + +//全局变量控制 +class QUIConfig +{ +public: + //全局图标 + static QChar IconMain; //标题栏左上角图标 + static QChar IconMenu; //下拉菜单图标 + static QChar IconMin; //最小化图标 + static QChar IconMax; //最大化图标 + static QChar IconNormal; //还原图标 + static QChar IconClose; //关闭图标 + + static QString FontName; //全局字体名称 + static int FontSize; //全局字体大小 + + //样式表颜色值 + static QString TextColor; //文字颜色 + static QString PanelColor; //面板颜色 + static QString BorderColor; //边框颜色 + static QString NormalColorStart;//正常状态开始颜色 + static QString NormalColorEnd; //正常状态结束颜色 + static QString DarkColorStart; //加深状态开始颜色 + static QString DarkColorEnd; //加深状态结束颜色 + static QString HighColor; //高亮颜色 +}; + +#endif // QUIWIDGET_H diff --git a/comtool/comtool.pro b/comtool/comtool.pro new file mode 100644 index 0000000..f6ca6b5 --- /dev/null +++ b/comtool/comtool.pro @@ -0,0 +1,36 @@ +#------------------------------------------------- +# +# Project created by QtCreator 2016-09-19T22:25:56 +# +#------------------------------------------------- + +QT += core gui network + +greaterThan(QT_MAJOR_VERSION, 4): QT += widgets + +TARGET = comtool +TEMPLATE = app +MOC_DIR = temp/moc +RCC_DIR = temp/rcc +UI_DIR = temp/ui +OBJECTS_DIR = temp/obj +DESTDIR = bin +RC_FILE = other/main.rc + +SOURCES += main.cpp +HEADERS += head.h +RESOURCES += other/main.qrc +CONFIG += warn_off + +include ($$PWD/api/api.pri) +include ($$PWD/form/form.pri) +include ($$PWD/qextserialport/qextserialport.pri) + +INCLUDEPATH += $$PWD +INCLUDEPATH += $$PWD/api +INCLUDEPATH += $$PWD/form +INCLUDEPATH += $$PWD/qextserialport + +#INCLUDEPATH += /usr/local/openssl-1.0.2m-h3-gcc-4.9.2/include +#LIBS += -L/usr/local/openssl-1.0.2m-h3-gcc-4.9.2/lib -lssl -lcrypto +#LIBS += -L/usr/local/h3_rootfsv -lXdmcp diff --git a/comtool/file/device.txt b/comtool/file/device.txt new file mode 100644 index 0000000..bb54788 --- /dev/null +++ b/comtool/file/device.txt @@ -0,0 +1 @@ +01 03 00 00 00 06 C5 C8;01 03 0C 00 01 00 01 00 00 00 01 00 01 00 01 37 DC \ No newline at end of file diff --git a/comtool/file/send.txt b/comtool/file/send.txt new file mode 100644 index 0000000..51b3944 --- /dev/null +++ b/comtool/file/send.txt @@ -0,0 +1,17 @@ +16 FF 01 01 E0 E1 +16 FF 01 01 E1 E2 +16 01 02 DF BC 16 01 02 DF BC 16 01 02 DF BC 12 13 14 15 +16 00 00 04 D0 F0 F1 65 C4 +16 00 00 04 D0 05 AB 5A C4 +16 01 10 02 F0 03 06 16 01 11 02 F0 03 06 16 01 12 02 F0 03 06 16 01 13 02 F0 03 06 16 01 +14 02 F0 03 06 16 01 15 02 F0 03 06 16 01 16 02 F0 03 06 +16 11 01 03 E8 01 10 0E +16 11 01 03 E8 01 12 10 +16 11 01 03 E8 01 14 12 +16 11 01 03 E8 01 15 13 +DISARMEDALL +BURGLARY 012 +BYPASS 012 +DISARMED 012 +16 00 01 01 D1 D3 +16 01 11 11 \ No newline at end of file diff --git a/comtool/form/form.pri b/comtool/form/form.pri new file mode 100644 index 0000000..c4b3563 --- /dev/null +++ b/comtool/form/form.pri @@ -0,0 +1,8 @@ +FORMS += \ + $$PWD/frmcomtool.ui + +HEADERS += \ + $$PWD/frmcomtool.h + +SOURCES += \ + $$PWD/frmcomtool.cpp diff --git a/comtool/form/frmcomtool.cpp b/comtool/form/frmcomtool.cpp new file mode 100644 index 0000000..2cd21af --- /dev/null +++ b/comtool/form/frmcomtool.cpp @@ -0,0 +1,584 @@ +#include "frmcomtool.h" +#include "ui_frmcomtool.h" +#include "quiwidget.h" + +frmComTool::frmComTool(QWidget *parent) : QWidget(parent), ui(new Ui::frmComTool) +{ + ui->setupUi(this); + this->initForm(); + this->initConfig(); + QUIHelper::setFormInCenter(this); +} + +frmComTool::~frmComTool() +{ + delete ui; +} + +void frmComTool::initForm() +{ + comOk = false; + com = 0; + sleepTime = 10; + receiveCount = 0; + sendCount = 0; + isShow = true; + + ui->cboxSendInterval->addItems(App::Intervals); + ui->cboxData->addItems(App::Datas); + + //读取数据 + timerRead = new QTimer(this); + timerRead->setInterval(100); + connect(timerRead, SIGNAL(timeout()), this, SLOT(readData())); + + //发送数据 + timerSend = new QTimer(this); + connect(timerSend, SIGNAL(timeout()), this, SLOT(sendData())); + connect(ui->btnSend, SIGNAL(clicked()), this, SLOT(sendData())); + + //保存数据 + timerSave = new QTimer(this); + connect(timerSave, SIGNAL(timeout()), this, SLOT(saveData())); + connect(ui->btnSave, SIGNAL(clicked()), this, SLOT(saveData())); + + ui->tabWidget->setCurrentIndex(0); + changeEnable(false); + + tcpOk = false; + socket = new QTcpSocket(this); + socket->abort(); + connect(socket, SIGNAL(readyRead()), this, SLOT(readDataNet())); + connect(socket, SIGNAL(error(QAbstractSocket::SocketError)), this, SLOT(readErrorNet())); + + timerConnect = new QTimer(this); + connect(timerConnect, SIGNAL(timeout()), this, SLOT(connectNet())); + timerConnect->setInterval(3000); + timerConnect->start(); + +#ifdef __arm__ + ui->widgetRight->setFixedWidth(280); +#endif +} + +void frmComTool::initConfig() +{ + QStringList comList; + for (int i = 1; i <= 20; i++) { + comList << QString("COM%1").arg(i); + } + + comList << "ttyUSB0" << "ttyS0" << "ttyS1" << "ttyS2" << "ttyS3" << "ttyS4"; + comList << "ttymxc1" << "ttymxc2" << "ttymxc3" << "ttymxc4"; + comList << "ttySAC1" << "ttySAC2" << "ttySAC3" << "ttySAC4"; + ui->cboxPortName->addItems(comList); + ui->cboxPortName->setCurrentIndex(ui->cboxPortName->findText(App::PortName)); + connect(ui->cboxPortName, SIGNAL(currentIndexChanged(int)), this, SLOT(saveConfig())); + + QStringList baudList; + baudList << "50" << "75" << "100" << "134" << "150" << "200" << "300" << "600" << "1200" + << "1800" << "2400" << "4800" << "9600" << "14400" << "19200" << "38400" + << "56000" << "57600" << "76800" << "115200" << "128000" << "256000"; + + ui->cboxBaudRate->addItems(baudList); + ui->cboxBaudRate->setCurrentIndex(ui->cboxBaudRate->findText(QString::number(App::BaudRate))); + connect(ui->cboxBaudRate, SIGNAL(currentIndexChanged(int)), this, SLOT(saveConfig())); + + QStringList dataBitsList; + dataBitsList << "5" << "6" << "7" << "8"; + + ui->cboxDataBit->addItems(dataBitsList); + ui->cboxDataBit->setCurrentIndex(ui->cboxDataBit->findText(QString::number(App::DataBit))); + connect(ui->cboxDataBit, SIGNAL(currentIndexChanged(int)), this, SLOT(saveConfig())); + + QStringList parityList; + parityList << "无" << "奇" << "偶"; +#ifdef Q_OS_WIN + parityList << "标志"; +#endif + parityList << "空格"; + + ui->cboxParity->addItems(parityList); + ui->cboxParity->setCurrentIndex(ui->cboxParity->findText(App::Parity)); + connect(ui->cboxParity, SIGNAL(currentIndexChanged(int)), this, SLOT(saveConfig())); + + QStringList stopBitsList; + stopBitsList << "1"; +#ifdef Q_OS_WIN + stopBitsList << "1.5"; +#endif + stopBitsList << "2"; + + ui->cboxStopBit->addItems(stopBitsList); + ui->cboxStopBit->setCurrentIndex(ui->cboxStopBit->findText(QString::number(App::StopBit))); + connect(ui->cboxStopBit, SIGNAL(currentIndexChanged(int)), this, SLOT(saveConfig())); + + ui->ckHexSend->setChecked(App::HexSend); + connect(ui->ckHexSend, SIGNAL(stateChanged(int)), this, SLOT(saveConfig())); + + ui->ckHexReceive->setChecked(App::HexReceive); + connect(ui->ckHexReceive, SIGNAL(stateChanged(int)), this, SLOT(saveConfig())); + + ui->ckDebug->setChecked(App::Debug); + connect(ui->ckDebug, SIGNAL(stateChanged(int)), this, SLOT(saveConfig())); + + ui->ckAutoClear->setChecked(App::AutoClear); + connect(ui->ckAutoClear, SIGNAL(stateChanged(int)), this, SLOT(saveConfig())); + + ui->ckAutoSend->setChecked(App::AutoSend); + connect(ui->ckAutoSend, SIGNAL(stateChanged(int)), this, SLOT(saveConfig())); + + ui->ckAutoSave->setChecked(App::AutoSave); + connect(ui->ckAutoSave, SIGNAL(stateChanged(int)), this, SLOT(saveConfig())); + + QStringList sendInterval; + QStringList saveInterval; + sendInterval << "100" << "300" << "500"; + + for (int i = 1000; i <= 10000; i = i + 1000) { + sendInterval << QString::number(i); + saveInterval << QString::number(i); + } + + ui->cboxSendInterval->addItems(sendInterval); + ui->cboxSaveInterval->addItems(saveInterval); + + ui->cboxSendInterval->setCurrentIndex(ui->cboxSendInterval->findText(QString::number(App::SendInterval))); + connect(ui->cboxSendInterval, SIGNAL(currentIndexChanged(int)), this, SLOT(saveConfig())); + ui->cboxSaveInterval->setCurrentIndex(ui->cboxSaveInterval->findText(QString::number(App::SaveInterval))); + connect(ui->cboxSaveInterval, SIGNAL(currentIndexChanged(int)), this, SLOT(saveConfig())); + + timerSend->setInterval(App::SendInterval); + timerSave->setInterval(App::SaveInterval); + + if (App::AutoSend) { + timerSend->start(); + } + + if (App::AutoSave) { + timerSave->start(); + } + + //串口转网络部分 + ui->cboxMode->setCurrentIndex(ui->cboxMode->findText(App::Mode)); + connect(ui->cboxMode, SIGNAL(currentIndexChanged(int)), this, SLOT(saveConfig())); + + ui->txtServerIP->setText(App::ServerIP); + connect(ui->txtServerIP, SIGNAL(textChanged(QString)), this, SLOT(saveConfig())); + + ui->txtServerPort->setText(QString::number(App::ServerPort)); + connect(ui->txtServerPort, SIGNAL(textChanged(QString)), this, SLOT(saveConfig())); + + ui->txtListenPort->setText(QString::number(App::ListenPort)); + connect(ui->txtListenPort, SIGNAL(textChanged(QString)), this, SLOT(saveConfig())); + + QStringList values; + values << "0" << "10" << "50"; + + for (int i = 100; i < 1000; i = i + 100) { + values << QString("%1").arg(i); + } + + ui->cboxSleepTime->addItems(values); + + ui->cboxSleepTime->setCurrentIndex(ui->cboxSleepTime->findText(QString::number(App::SleepTime))); + connect(ui->cboxSleepTime, SIGNAL(currentIndexChanged(int)), this, SLOT(saveConfig())); + + ui->ckAutoConnect->setChecked(App::AutoConnect); + connect(ui->ckAutoConnect, SIGNAL(stateChanged(int)), this, SLOT(saveConfig())); +} + +void frmComTool::saveConfig() +{ + App::PortName = ui->cboxPortName->currentText(); + App::BaudRate = ui->cboxBaudRate->currentText().toInt(); + App::DataBit = ui->cboxDataBit->currentText().toInt(); + App::Parity = ui->cboxParity->currentText(); + App::StopBit = ui->cboxStopBit->currentText().toDouble(); + + App::HexSend = ui->ckHexSend->isChecked(); + App::HexReceive = ui->ckHexReceive->isChecked(); + App::Debug = ui->ckDebug->isChecked(); + App::AutoClear = ui->ckAutoClear->isChecked(); + + App::AutoSend = ui->ckAutoSend->isChecked(); + App::AutoSave = ui->ckAutoSave->isChecked(); + + int sendInterval = ui->cboxSendInterval->currentText().toInt(); + if (sendInterval != App::SendInterval) { + App::SendInterval = sendInterval; + timerSend->setInterval(App::SendInterval); + } + + int saveInterval = ui->cboxSaveInterval->currentText().toInt(); + if (saveInterval != App::SaveInterval) { + App::SaveInterval = saveInterval; + timerSave->setInterval(App::SaveInterval); + } + + App::Mode = ui->cboxMode->currentText(); + App::ServerIP = ui->txtServerIP->text().trimmed(); + App::ServerPort = ui->txtServerPort->text().toInt(); + App::ListenPort = ui->txtListenPort->text().toInt(); + App::SleepTime = ui->cboxSleepTime->currentText().toInt(); + App::AutoConnect = ui->ckAutoConnect->isChecked(); + + App::writeConfig(); +} + +void frmComTool::changeEnable(bool b) +{ + ui->cboxBaudRate->setEnabled(!b); + ui->cboxDataBit->setEnabled(!b); + ui->cboxParity->setEnabled(!b); + ui->cboxPortName->setEnabled(!b); + ui->cboxStopBit->setEnabled(!b); + ui->btnSend->setEnabled(b); + ui->ckAutoSend->setEnabled(b); + ui->ckAutoSave->setEnabled(b); +} + +void frmComTool::append(int type, const QString &data, bool clear) +{ + static int currentCount = 0; + static int maxCount = 100; + + if (clear) { + ui->txtMain->clear(); + currentCount = 0; + return; + } + + if (currentCount >= maxCount) { + ui->txtMain->clear(); + currentCount = 0; + } + + if (!isShow) { + return; + } + + //过滤回车换行符 + QString strData = data; + strData = strData.replace("\r", ""); + strData = strData.replace("\n", ""); + + //不同类型不同颜色显示 + QString strType; + if (type == 0) { + strType = "串口发送 >>"; + ui->txtMain->setTextColor(QColor("dodgerblue")); + } else if (type == 1) { + strType = "串口接收 <<"; + ui->txtMain->setTextColor(QColor("red")); + } else if (type == 2) { + strType = "处理延时 >>"; + ui->txtMain->setTextColor(QColor("gray")); + } else if (type == 3) { + strType = "正在校验 >>"; + ui->txtMain->setTextColor(QColor("green")); + } else if (type == 4) { + strType = "网络发送 >>"; + ui->txtMain->setTextColor(QColor(24, 189, 155)); + } else if (type == 5) { + strType = "网络接收 <<"; + ui->txtMain->setTextColor(QColor(255, 107, 107)); + } else if (type == 6) { + strType = "提示信息 >>"; + ui->txtMain->setTextColor(QColor(100, 184, 255)); + } + + strData = QString("时间[%1] %2 %3").arg(TIMEMS).arg(strType).arg(strData); + ui->txtMain->append(strData); + currentCount++; +} + +void frmComTool::readData() +{ + if (com->bytesAvailable() <= 0) { + return; + } + + QUIHelper::sleep(sleepTime); + QByteArray data = com->readAll(); + int dataLen = data.length(); + if (dataLen <= 0) { + return; + } + + if (isShow) { + QString buffer; + if (ui->ckHexReceive->isChecked()) { + buffer = QUIHelper::byteArrayToHexStr(data); + } else { + //buffer = QUIHelper::byteArrayToAsciiStr(data); + buffer = QString::fromLocal8Bit(data); + } + + //启用调试则模拟调试数据 + if (ui->ckDebug->isChecked()) { + int count = App::Keys.count(); + for (int i = 0; i < count; i++) { + if (buffer.startsWith(App::Keys.at(i))) { + sendData(App::Values.at(i)); + break; + } + } + } + + append(1, buffer); + receiveCount = receiveCount + data.size(); + ui->btnReceiveCount->setText(QString("接收 : %1 字节").arg(receiveCount)); + + //启用网络转发则调用网络发送数据 + if (tcpOk) { + socket->write(data); + append(4, QString(buffer)); + } + } +} + +void frmComTool::sendData() +{ + QString str = ui->cboxData->currentText(); + if (str.isEmpty()) { + ui->cboxData->setFocus(); + return; + } + + sendData(str); + + if (ui->ckAutoClear->isChecked()) { + ui->cboxData->setCurrentIndex(-1); + ui->cboxData->setFocus(); + } +} + +void frmComTool::sendData(QString data) +{ + if (com == 0 || !com->isOpen()) { + return; + } + + //短信猫调试 + if (data.startsWith("AT")) { + data += "\r"; + } + + QByteArray buffer; + + if (ui->ckHexSend->isChecked()) { + buffer = QUIHelper::hexStrToByteArray(data); + } else { + buffer = QUIHelper::asciiStrToByteArray(data); + } + + com->write(buffer); + append(0, data); + sendCount = sendCount + buffer.size(); + ui->btnSendCount->setText(QString("发送 : %1 字节").arg(sendCount)); +} + +void frmComTool::saveData() +{ + QString tempData = ui->txtMain->toPlainText(); + + if (tempData == "") { + return; + } + + QDateTime now = QDateTime::currentDateTime(); + QString name = now.toString("yyyy-MM-dd-HH-mm-ss"); + QString fileName = QString("%1/%2.txt").arg(QUIHelper::appPath()).arg(name); + + QFile file(fileName); + file.open(QFile::WriteOnly | QIODevice::Text); + QTextStream out(&file); + out << tempData; + file.close(); + + on_btnClear_clicked(); +} + +void frmComTool::on_btnOpen_clicked() +{ + if (ui->btnOpen->text() == "打开串口") { + com = new QextSerialPort(ui->cboxPortName->currentText(), QextSerialPort::Polling); + comOk = com->open(QIODevice::ReadWrite); + + if (comOk) { + //清空缓冲区 + com->flush(); + //设置波特率 + com->setBaudRate((BaudRateType)ui->cboxBaudRate->currentText().toInt()); + //设置数据位 + com->setDataBits((DataBitsType)ui->cboxDataBit->currentText().toInt()); + //设置校验位 + com->setParity((ParityType)ui->cboxParity->currentIndex()); + //设置停止位 + com->setStopBits((StopBitsType)ui->cboxStopBit->currentIndex()); + com->setFlowControl(FLOW_OFF); + com->setTimeout(10); + + changeEnable(true); + ui->btnOpen->setText("关闭串口"); + timerRead->start(); + } + } else { + timerRead->stop(); + com->close(); + com->deleteLater(); + + changeEnable(false); + ui->btnOpen->setText("打开串口"); + on_btnClear_clicked(); + comOk = false; + } +} + +void frmComTool::on_btnSendCount_clicked() +{ + sendCount = 0; + ui->btnSendCount->setText("发送 : 0 字节"); +} + +void frmComTool::on_btnReceiveCount_clicked() +{ + receiveCount = 0; + ui->btnReceiveCount->setText("接收 : 0 字节"); +} + +void frmComTool::on_btnStopShow_clicked() +{ + if (ui->btnStopShow->text() == "停止显示") { + isShow = false; + ui->btnStopShow->setText("开始显示"); + } else { + isShow = true; + ui->btnStopShow->setText("停止显示"); + } +} + +void frmComTool::on_btnData_clicked() +{ + QString fileName = QString("%1/%2").arg(QUIHelper::appPath()).arg("send.txt"); + QFile file(fileName); + if (!file.exists()) { + return; + } + + if (ui->btnData->text() == "管理数据") { + ui->txtMain->setReadOnly(false); + ui->txtMain->clear(); + file.open(QFile::ReadOnly | QIODevice::Text); + QTextStream in(&file); + ui->txtMain->setText(in.readAll()); + file.close(); + ui->btnData->setText("保存数据"); + } else { + ui->txtMain->setReadOnly(true); + file.open(QFile::WriteOnly | QIODevice::Text); + QTextStream out(&file); + out << ui->txtMain->toPlainText(); + file.close(); + ui->txtMain->clear(); + ui->btnData->setText("管理数据"); + App::readSendData(); + } +} + +void frmComTool::on_btnClear_clicked() +{ + append(0, "", true); +} + +void frmComTool::on_btnStart_clicked() +{ + if (ui->btnStart->text() == "启动") { + if (App::ServerIP == "" || App::ServerPort == 0) { + append(6, "IP地址和远程端口不能为空"); + return; + } + + socket->connectToHost(App::ServerIP, App::ServerPort); + if (socket->waitForConnected(100)) { + ui->btnStart->setText("停止"); + append(6, "连接服务器成功"); + tcpOk = true; + } + } else { + socket->disconnectFromHost(); + if (socket->state() == QAbstractSocket::UnconnectedState || socket->waitForDisconnected(100)) { + ui->btnStart->setText("启动"); + append(6, "断开服务器成功"); + tcpOk = false; + } + } +} + +void frmComTool::on_ckAutoSend_stateChanged(int arg1) +{ + if (arg1 == 0) { + ui->cboxSendInterval->setEnabled(false); + timerSend->stop(); + } else { + ui->cboxSendInterval->setEnabled(true); + timerSend->start(); + } +} + +void frmComTool::on_ckAutoSave_stateChanged(int arg1) +{ + if (arg1 == 0) { + ui->cboxSaveInterval->setEnabled(false); + timerSave->stop(); + } else { + ui->cboxSaveInterval->setEnabled(true); + timerSave->start(); + } +} + +void frmComTool::connectNet() +{ + if (!tcpOk && App::AutoConnect && ui->btnStart->text() == "启动") { + if (App::ServerIP != "" && App::ServerPort != 0) { + socket->connectToHost(App::ServerIP, App::ServerPort); + if (socket->waitForConnected(100)) { + ui->btnStart->setText("停止"); + append(6, "连接服务器成功"); + tcpOk = true; + } + } + } +} + +void frmComTool::readDataNet() +{ + if (socket->bytesAvailable() > 0) { + QUIHelper::sleep(App::SleepTime); + QByteArray data = socket->readAll(); + + QString buffer; + if (ui->ckHexReceive->isChecked()) { + buffer = QUIHelper::byteArrayToHexStr(data); + } else { + buffer = QUIHelper::byteArrayToAsciiStr(data); + } + + append(5, buffer); + + //将收到的网络数据转发给串口 + if (comOk) { + com->write(data); + append(0, buffer); + } + } +} + +void frmComTool::readErrorNet() +{ + ui->btnStart->setText("启动"); + append(6, QString("连接服务器失败,%1").arg(socket->errorString())); + socket->disconnectFromHost(); + tcpOk = false; +} diff --git a/comtool/form/frmcomtool.h b/comtool/form/frmcomtool.h new file mode 100644 index 0000000..8ba400c --- /dev/null +++ b/comtool/form/frmcomtool.h @@ -0,0 +1,68 @@ +#ifndef FRMCOMTOOL_H +#define FRMCOMTOOL_H + +#include +#include "qtcpsocket.h" +#include "qextserialport.h" + +namespace Ui +{ +class frmComTool; +} + +class frmComTool : public QWidget +{ + Q_OBJECT + +public: + explicit frmComTool(QWidget *parent = 0); + ~frmComTool(); + +private: + Ui::frmComTool *ui; + + bool comOk; //串口是否打开 + QextSerialPort *com; //串口通信对象 + QTimer *timerRead; //定时读取串口数据 + QTimer *timerSend; //定时发送串口数据 + QTimer *timerSave; //定时保存串口数据 + + int sleepTime; //接收延时时间 + int sendCount; //发送数据计数 + int receiveCount; //接收数据计数 + bool isShow; //是否显示数据 + + bool tcpOk; //网络是否正常 + QTcpSocket *socket; //网络连接对象 + QTimer *timerConnect; //定时器重连 + +private slots: + void initForm(); //初始化窗体数据 + void initConfig(); //初始化配置文件 + void saveConfig(); //保存配置文件 + void readData(); //读取串口数据 + void sendData(); //发送串口数据 + void sendData(QString data);//发送串口数据带参数 + void saveData(); //保存串口数据 + + void changeEnable(bool b); //改变状态 + void append(int type, const QString &data, bool clear = false); + +private slots: + void connectNet(); + void readDataNet(); + void readErrorNet(); + +private slots: + void on_btnOpen_clicked(); + void on_btnStopShow_clicked(); + void on_btnSendCount_clicked(); + void on_btnReceiveCount_clicked(); + void on_btnClear_clicked(); + void on_btnData_clicked(); + void on_btnStart_clicked(); + void on_ckAutoSend_stateChanged(int arg1); + void on_ckAutoSave_stateChanged(int arg1); +}; + +#endif // FRMCOMTOOL_H diff --git a/comtool/form/frmcomtool.ui b/comtool/form/frmcomtool.ui new file mode 100644 index 0000000..4b6fe20 --- /dev/null +++ b/comtool/form/frmcomtool.ui @@ -0,0 +1,473 @@ + + + frmComTool + + + + 0 + 0 + 800 + 600 + + + + + + + true + + + QFrame::StyledPanel + + + Qt::ScrollBarAsNeeded + + + Qt::ScrollBarAsNeeded + + + true + + + + + + + + 200 + 16777215 + + + + + 0 + + + 0 + + + 0 + + + 0 + + + + + QFrame::Box + + + QFrame::Sunken + + + + + + 串口号 + + + + + + + + 1 + 0 + + + + + + + + 波特率 + + + + + + + + 1 + 0 + + + + + + + + 数据位 + + + + + + + + 1 + 0 + + + + + + + + 校验位 + + + + + + + + 1 + 0 + + + + + + + + 停止位 + + + + + + + + 1 + 0 + + + + + + + + 打开串口 + + + + + + + + + + QTabWidget::South + + + 1 + + + + 串口配置 + + + + + + Hex发送 + + + + + + + Hex接收 + + + + + + + 模拟设备 + + + + + + + 自动清空 + + + + + + + + + 自动发送 + + + + + + + + 0 + 0 + + + + + + + + 自动保存 + + + + + + + + 0 + 0 + + + + + + + + + + 发送 : 0 字节 + + + + + + + 接收 : 0 字节 + + + + + + + 停止显示 + + + + + + + 保存数据 + + + + + + + 管理数据 + + + + + + + 清空数据 + + + + + + + Qt::Vertical + + + + 20 + 2 + + + + + + + + + 网络配置 + + + + + + + + 监听端口 + + + + + + + 远程地址 + + + + + + + + + + + + + + + + + 远程端口 + + + + + + + + + + + + + + 延时时间 + + + + + + + + + + 转换模式 + + + + + + + + Tcp_Client + + + + + Tcp_Server + + + + + Udp_Client + + + + + Udp_Server + + + + + + + + + + 启动 + + + + + + + Qt::Vertical + + + + 20 + 59 + + + + + + + + 自动重连网络 + + + + + + + + + + + + + + + 0 + + + 0 + + + 0 + + + 0 + + + + + + 0 + 0 + + + + true + + + false + + + + + + + + 80 + 0 + + + + + 80 + 16777215 + + + + 发送 + + + + + + + + + + + diff --git a/comtool/head.h b/comtool/head.h new file mode 100644 index 0000000..634b2a2 --- /dev/null +++ b/comtool/head.h @@ -0,0 +1,11 @@ +#include +#include +#include + +#if (QT_VERSION > QT_VERSION_CHECK(5,0,0)) +#include +#endif + +#include "app.h" + +#pragma execution_character_set("utf-8") diff --git a/comtool/main.cpp b/comtool/main.cpp new file mode 100644 index 0000000..1905cf4 --- /dev/null +++ b/comtool/main.cpp @@ -0,0 +1,31 @@ +#include "frmcomtool.h" +#include "quiwidget.h" + +int main(int argc, char *argv[]) +{ + QApplication a(argc, argv); + a.setWindowIcon(QIcon(":/main.ico")); + + QFont font; + font.setFamily(QUIConfig::FontName); + font.setPixelSize(QUIConfig::FontSize); + a.setFont(font); + + //设置编码以及加载中文翻译文件 + QUIHelper::setCode(); + QUIHelper::setTranslator(":/qt_zh_CN.qm"); + QUIHelper::setTranslator(":/widgets.qm"); + QUIHelper::initRand(); + + App::Intervals << "1" << "10" << "20" << "50" << "100" << "200" << "300" << "500" << "1000" << "1500" << "2000" << "3000" << "5000" << "10000"; + App::ConfigFile = QString("%1/%2.ini").arg(QUIHelper::appPath()).arg(QUIHelper::appName()); + App::readConfig(); + App::readSendData(); + App::readDeviceData(); + + frmComTool w; + w.setWindowTitle("串口调试助手V2019 QQ: 517216493"); + w.show(); + + return a.exec(); +} diff --git a/comtool/other/main.ico b/comtool/other/main.ico new file mode 100644 index 0000000000000000000000000000000000000000..3a69f0a27980c8a892087d221f73c07add526bd7 GIT binary patch literal 92854 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 P>i4D#<%RUGv>yEbyK-&` literal 0 HcmV?d00001 diff --git a/comtool/other/main.qrc b/comtool/other/main.qrc new file mode 100644 index 0000000..91c2747 --- /dev/null +++ b/comtool/other/main.qrc @@ -0,0 +1,5 @@ + + + main.ico + + diff --git a/comtool/other/main.rc b/comtool/other/main.rc new file mode 100644 index 0000000..fc0d770 --- /dev/null +++ b/comtool/other/main.rc @@ -0,0 +1 @@ +IDI_ICON1 ICON DISCARDABLE "main.ico" \ No newline at end of file diff --git a/comtool/qextserialport/qextserialport.cpp b/comtool/qextserialport/qextserialport.cpp new file mode 100644 index 0000000..66e987c --- /dev/null +++ b/comtool/qextserialport/qextserialport.cpp @@ -0,0 +1,1095 @@ +/**************************************************************************** +** Copyright (c) 2000-2003 Wayne Roth +** Copyright (c) 2004-2007 Stefan Sander +** Copyright (c) 2007 Michal Policht +** Copyright (c) 2008 Brandon Fosdick +** Copyright (c) 2009-2010 Liam Staskawicz +** Copyright (c) 2011 Debao Zhang +** All right reserved. +** Web: http://code.google.com/p/qextserialport/ +** +** Permission is hereby granted, free of charge, to any person obtaining +** a copy of this software and associated documentation files (the +** "Software"), to deal in the Software without restriction, including +** without limitation the rights to use, copy, modify, merge, publish, +** distribute, sublicense, and/or sell copies of the Software, and to +** permit persons to whom the Software is furnished to do so, subject to +** the following conditions: +** +** The above copyright notice and this permission notice shall be +** included in all copies or substantial portions of the Software. +** +** THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND +** NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE +** LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION +** OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION +** WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. +** +****************************************************************************/ + +#include "qextserialport.h" +#include "qextserialport_p.h" +#include +#include +#include +#include + +/*! + \class PortSettings + + \brief The PortSettings class contain port settings + + Structure to contain port settings. + + \code + BaudRateType BaudRate; + DataBitsType DataBits; + ParityType Parity; + StopBitsType StopBits; + FlowType FlowControl; + long Timeout_Millisec; + \endcode +*/ + +QextSerialPortPrivate::QextSerialPortPrivate(QextSerialPort *q) + : lock(QReadWriteLock::Recursive), q_ptr(q) +{ + lastErr = E_NO_ERROR; + settings.BaudRate = BAUD9600; + settings.Parity = PAR_NONE; + settings.FlowControl = FLOW_OFF; + settings.DataBits = DATA_8; + settings.StopBits = STOP_1; + settings.Timeout_Millisec = 10; + settingsDirtyFlags = DFE_ALL; + + platformSpecificInit(); +} + +QextSerialPortPrivate::~QextSerialPortPrivate() +{ + platformSpecificDestruct(); +} + +void QextSerialPortPrivate::setBaudRate(BaudRateType baudRate, bool update) +{ + switch (baudRate) { +#ifdef Q_OS_WIN + + //Windows Special + case BAUD14400: + case BAUD56000: + case BAUD128000: + case BAUD256000: + QESP_PORTABILITY_WARNING() << "QextSerialPort Portability Warning: POSIX does not support baudRate:" << baudRate; +#elif defined(Q_OS_UNIX) + + //Unix Special + case BAUD50: + case BAUD75: + case BAUD134: + case BAUD150: + case BAUD200: + case BAUD1800: +# ifdef B76800 + case BAUD76800: +# endif +# if defined(B230400) && defined(B4000000) + case BAUD230400: + case BAUD460800: + case BAUD500000: + case BAUD576000: + case BAUD921600: + case BAUD1000000: + case BAUD1152000: + case BAUD1500000: + case BAUD2000000: + case BAUD2500000: + case BAUD3000000: + case BAUD3500000: + case BAUD4000000: +# endif + QESP_PORTABILITY_WARNING() << "QextSerialPort Portability Warning: Windows does not support baudRate:" << baudRate; +#endif + + case BAUD110: + case BAUD300: + case BAUD600: + case BAUD1200: + case BAUD2400: + case BAUD4800: + case BAUD9600: + case BAUD19200: + case BAUD38400: + case BAUD57600: + case BAUD115200: +#if defined(Q_OS_WIN) || defined(Q_OS_MAC) + default: +#endif + settings.BaudRate = baudRate; + settingsDirtyFlags |= DFE_BaudRate; + + if (update && q_func()->isOpen()) { + updatePortSettings(); + } + + break; +#if !(defined(Q_OS_WIN) || defined(Q_OS_MAC)) + + default: + QESP_WARNING() << "QextSerialPort does not support baudRate:" << baudRate; +#endif + } +} + +void QextSerialPortPrivate::setParity(ParityType parity, bool update) +{ + switch (parity) { + case PAR_SPACE: + if (settings.DataBits == DATA_8) { +#ifdef Q_OS_WIN + QESP_PORTABILITY_WARNING("QextSerialPort Portability Warning: Space parity with 8 data bits is not supported by POSIX systems."); +#else + QESP_WARNING("Space parity with 8 data bits is not supported by POSIX systems."); +#endif + } + + break; + +#ifdef Q_OS_WIN + + /*mark parity - WINDOWS ONLY*/ + case PAR_MARK: + QESP_PORTABILITY_WARNING("QextSerialPort Portability Warning: Mark parity is not supported by POSIX systems"); + break; +#endif + + case PAR_NONE: + case PAR_EVEN: + case PAR_ODD: + break; + + default: + QESP_WARNING() << "QextSerialPort does not support Parity:" << parity; + } + + settings.Parity = parity; + settingsDirtyFlags |= DFE_Parity; + + if (update && q_func()->isOpen()) { + updatePortSettings(); + } +} + +void QextSerialPortPrivate::setDataBits(DataBitsType dataBits, bool update) +{ + switch (dataBits) { + + case DATA_5: + if (settings.StopBits == STOP_2) { + QESP_WARNING("QextSerialPort: 5 Data bits cannot be used with 2 stop bits."); + } else { + settings.DataBits = dataBits; + settingsDirtyFlags |= DFE_DataBits; + } + + break; + + case DATA_6: +#ifdef Q_OS_WIN + if (settings.StopBits == STOP_1_5) { + QESP_WARNING("QextSerialPort: 6 Data bits cannot be used with 1.5 stop bits."); + } else +#endif + { + settings.DataBits = dataBits; + settingsDirtyFlags |= DFE_DataBits; + } + + break; + + case DATA_7: +#ifdef Q_OS_WIN + if (settings.StopBits == STOP_1_5) { + QESP_WARNING("QextSerialPort: 7 Data bits cannot be used with 1.5 stop bits."); + } else +#endif + { + settings.DataBits = dataBits; + settingsDirtyFlags |= DFE_DataBits; + } + + break; + + case DATA_8: +#ifdef Q_OS_WIN + if (settings.StopBits == STOP_1_5) { + QESP_WARNING("QextSerialPort: 8 Data bits cannot be used with 1.5 stop bits."); + } else +#endif + { + settings.DataBits = dataBits; + settingsDirtyFlags |= DFE_DataBits; + } + + break; + + default: + QESP_WARNING() << "QextSerialPort does not support Data bits:" << dataBits; + } + + if (update && q_func()->isOpen()) { + updatePortSettings(); + } +} + +void QextSerialPortPrivate::setStopBits(StopBitsType stopBits, bool update) +{ + switch (stopBits) { + + /*one stop bit*/ + case STOP_1: + settings.StopBits = stopBits; + settingsDirtyFlags |= DFE_StopBits; + break; + +#ifdef Q_OS_WIN + + /*1.5 stop bits*/ + case STOP_1_5: + QESP_PORTABILITY_WARNING("QextSerialPort Portability Warning: 1.5 stop bit operation is not supported by POSIX."); + + if (settings.DataBits != DATA_5) { + QESP_WARNING("QextSerialPort: 1.5 stop bits can only be used with 5 data bits"); + } else { + settings.StopBits = stopBits; + settingsDirtyFlags |= DFE_StopBits; + } + + break; +#endif + + /*two stop bits*/ + case STOP_2: + if (settings.DataBits == DATA_5) { + QESP_WARNING("QextSerialPort: 2 stop bits cannot be used with 5 data bits"); + } else { + settings.StopBits = stopBits; + settingsDirtyFlags |= DFE_StopBits; + } + + break; + + default: + QESP_WARNING() << "QextSerialPort does not support stop bits: " << stopBits; + } + + if (update && q_func()->isOpen()) { + updatePortSettings(); + } +} + +void QextSerialPortPrivate::setFlowControl(FlowType flow, bool update) +{ + settings.FlowControl = flow; + settingsDirtyFlags |= DFE_Flow; + + if (update && q_func()->isOpen()) { + updatePortSettings(); + } +} + +void QextSerialPortPrivate::setTimeout(long millisec, bool update) +{ + settings.Timeout_Millisec = millisec; + settingsDirtyFlags |= DFE_TimeOut; + + if (update && q_func()->isOpen()) { + updatePortSettings(); + } +} + +void QextSerialPortPrivate::setPortSettings(const PortSettings &settings, bool update) +{ + setBaudRate(settings.BaudRate, false); + setDataBits(settings.DataBits, false); + setStopBits(settings.StopBits, false); + setParity(settings.Parity, false); + setFlowControl(settings.FlowControl, false); + setTimeout(settings.Timeout_Millisec, false); + settingsDirtyFlags = DFE_ALL; + + if (update && q_func()->isOpen()) { + updatePortSettings(); + } +} + + +void QextSerialPortPrivate::_q_canRead() +{ + qint64 maxSize = bytesAvailable_sys(); + + if (maxSize > 0) { + char *writePtr = readBuffer.reserve(size_t(maxSize)); + qint64 bytesRead = readData_sys(writePtr, maxSize); + + if (bytesRead < maxSize) { + readBuffer.chop(maxSize - bytesRead); + } + + Q_Q(QextSerialPort); + Q_EMIT q->readyRead(); + } +} + +/*! \class QextSerialPort + + \brief The QextSerialPort class encapsulates a serial port on both POSIX and Windows systems. + + \section1 Usage + QextSerialPort offers both a polling and event driven API. Event driven + is typically easier to use, since you never have to worry about checking + for new data. + + \bold Example + \code + QextSerialPort *port = new QextSerialPort("COM1"); + connect(port, SIGNAL(readyRead()), myClass, SLOT(onDataAvailable())); + port->open(); + + void MyClass::onDataAvailable() + { + QByteArray data = port->readAll(); + processNewData(usbdata); + } + \endcode + + \section1 Compatibility + The user will be notified of errors and possible portability conflicts at run-time + by default. + + For example, if a application has used BAUD1800, when it is runing under unix, you + will get following message. + + \code + QextSerialPort Portability Warning: Windows does not support baudRate:1800 + \endcode + + This behavior can be turned off by defining macro QESP_NO_WARN (to turn off all warnings) + or QESP_NO_PORTABILITY_WARN (to turn off portability warnings) in the project. + + + \bold Author: Stefan Sander, Michal Policht, Brandon Fosdick, Liam Staskawicz, Debao Zhang +*/ + +/*! + \enum QextSerialPort::QueryMode + + This enum type specifies query mode used in a serial port: + + \value Polling + asynchronously read and write + \value EventDriven + synchronously read and write +*/ + +/*! + \fn void QextSerialPort::dsrChanged(bool status) + This signal is emitted whenever dsr line has changed its state. You may + use this signal to check if device is connected. + + \a status true when DSR signal is on, false otherwise. + */ + + +/*! + \fn QueryMode QextSerialPort::queryMode() const + Get query mode. + */ + +/*! + Default constructor. Note that the name of the device used by a QextSerialPort is dependent on + your OS. Possible naming conventions and their associated OS are: + + \code + + OS Constant Used By Naming Convention + ------------- ------------- ------------------------ + Q_OS_WIN Windows COM1, COM2 + Q_OS_IRIX SGI/IRIX /dev/ttyf1, /dev/ttyf2 + Q_OS_HPUX HP-UX /dev/tty1p0, /dev/tty2p0 + Q_OS_SOLARIS SunOS/Slaris /dev/ttya, /dev/ttyb + Q_OS_OSF Digital UNIX /dev/tty01, /dev/tty02 + Q_OS_FREEBSD FreeBSD /dev/ttyd0, /dev/ttyd1 + Q_OS_OPENBSD OpenBSD /dev/tty00, /dev/tty01 + Q_OS_LINUX Linux /dev/ttyS0, /dev/ttyS1 + /dev/ttyS0, /dev/ttyS1 + \endcode + + This constructor assigns the device name to the name of the first port on the specified system. + See the other constructors if you need to open a different port. Default \a mode is EventDriven. + As a subclass of QObject, \a parent can be specified. +*/ + +QextSerialPort::QextSerialPort(QextSerialPort::QueryMode mode, QObject *parent) + : QIODevice(parent), d_ptr(new QextSerialPortPrivate(this)) +{ +#ifdef Q_OS_WIN + setPortName(QLatin1String("COM1")); + +#elif defined(Q_OS_IRIX) + setPortName(QLatin1String("/dev/ttyf1")); + +#elif defined(Q_OS_HPUX) + setPortName(QLatin1String("/dev/tty1p0")); + +#elif defined(Q_OS_SOLARIS) + setPortName(QLatin1String("/dev/ttya")); + +#elif defined(Q_OS_OSF) //formally DIGITAL UNIX + setPortName(QLatin1String("/dev/tty01")); + +#elif defined(Q_OS_FREEBSD) + setPortName(QLatin1String("/dev/ttyd1")); + +#elif defined(Q_OS_OPENBSD) + setPortName(QLatin1String("/dev/tty00")); + +#else + setPortName(QLatin1String("/dev/ttyS0")); +#endif + setQueryMode(mode); +} + +/*! + Constructs a serial port attached to the port specified by name. + \a name is the name of the device, which is windowsystem-specific, + e.g."COM1" or "/dev/ttyS0". \a mode +*/ +QextSerialPort::QextSerialPort(const QString &name, QextSerialPort::QueryMode mode, QObject *parent) + : QIODevice(parent), d_ptr(new QextSerialPortPrivate(this)) +{ + setQueryMode(mode); + setPortName(name); +} + +/*! + Constructs a port with default name and specified \a settings. +*/ +QextSerialPort::QextSerialPort(const PortSettings &settings, QextSerialPort::QueryMode mode, QObject *parent) + : QIODevice(parent), d_ptr(new QextSerialPortPrivate(this)) +{ + Q_D(QextSerialPort); + setQueryMode(mode); + d->setPortSettings(settings); +} + +/*! + Constructs a port with specified \a name , \a mode and \a settings. +*/ +QextSerialPort::QextSerialPort(const QString &name, const PortSettings &settings, QextSerialPort::QueryMode mode, QObject *parent) + : QIODevice(parent), d_ptr(new QextSerialPortPrivate(this)) +{ + Q_D(QextSerialPort); + setPortName(name); + setQueryMode(mode); + d->setPortSettings(settings); +} + +/*! + Opens a serial port and sets its OpenMode to \a mode. + Note that this function does not specify which device to open. + Returns true if successful; otherwise returns false.This function has no effect + if the port associated with the class is already open. The port is also + configured to the current settings, as stored in the settings structure. +*/ +bool QextSerialPort::open(OpenMode mode) +{ + Q_D(QextSerialPort); + QWriteLocker locker(&d->lock); + + if (mode != QIODevice::NotOpen && !isOpen()) { + d->open_sys(mode); + } + + return isOpen(); +} + + +/*! \reimp + Closes a serial port. This function has no effect if the serial port associated with the class + is not currently open. +*/ +void QextSerialPort::close() +{ + Q_D(QextSerialPort); + QWriteLocker locker(&d->lock); + + if (isOpen()) { + // Be a good QIODevice and call QIODevice::close() before really close() + // so the aboutToClose() signal is emitted at the proper time + QIODevice::close(); // mark ourselves as closed + d->close_sys(); + d->readBuffer.clear(); + } +} + +/*! + Flushes all pending I/O to the serial port. This function has no effect if the serial port + associated with the class is not currently open. +*/ +void QextSerialPort::flush() +{ + Q_D(QextSerialPort); + QWriteLocker locker(&d->lock); + + if (isOpen()) { + d->flush_sys(); + } +} + +/*! \reimp + Returns the number of bytes waiting in the port's receive queue. This function will return 0 if + the port is not currently open, or -1 on error. +*/ +qint64 QextSerialPort::bytesAvailable() const +{ + QWriteLocker locker(&d_func()->lock); + + if (isOpen()) { + qint64 bytes = d_func()->bytesAvailable_sys(); + + if (bytes != -1) { + return bytes + d_func()->readBuffer.size() + + QIODevice::bytesAvailable(); + } else { + return -1; + } + } + + return 0; +} + +/*! \reimp + +*/ +bool QextSerialPort::canReadLine() const +{ + QReadLocker locker(&d_func()->lock); + return QIODevice::canReadLine() || d_func()->readBuffer.canReadLine(); +} + +/*! + * Set desired serial communication handling style. You may choose from polling + * or event driven approach. This function does nothing when port is open; to + * apply changes port must be reopened. + * + * In event driven approach read() and write() functions are acting + * asynchronously. They return immediately and the operation is performed in + * the background, so they doesn't freeze the calling thread. + * To determine when operation is finished, QextSerialPort runs separate thread + * and monitors serial port events. Whenever the event occurs, adequate signal + * is emitted. + * + * When polling is set, read() and write() are acting synchronously. Signals are + * not working in this mode and some functions may not be available. The advantage + * of polling is that it generates less overhead due to lack of signals emissions + * and it doesn't start separate thread to monitor events. + * + * Generally event driven approach is more capable and friendly, although some + * applications may need as low overhead as possible and then polling comes. + * + * \a mode query mode. + */ +void QextSerialPort::setQueryMode(QueryMode mode) +{ + Q_D(QextSerialPort); + QWriteLocker locker(&d->lock); + + if (mode != d->queryMode) { + d->queryMode = mode; + } +} + +/*! + Sets the \a name of the device associated with the object, e.g. "COM1", or "/dev/ttyS0". +*/ +void QextSerialPort::setPortName(const QString &name) +{ + Q_D(QextSerialPort); + QWriteLocker locker(&d->lock); + d->port = name; +} + +/*! + Returns the name set by setPortName(). +*/ +QString QextSerialPort::portName() const +{ + QReadLocker locker(&d_func()->lock); + return d_func()->port; +} + +QextSerialPort::QueryMode QextSerialPort::queryMode() const +{ + QReadLocker locker(&d_func()->lock); + return d_func()->queryMode; +} + +/*! + Reads all available data from the device, and returns it as a QByteArray. + This function has no way of reporting errors; returning an empty QByteArray() + can mean either that no data was currently available for reading, or that an error occurred. +*/ +QByteArray QextSerialPort::readAll() +{ + int avail = this->bytesAvailable(); + return (avail > 0) ? this->read(avail) : QByteArray(); +} + +/*! + Returns the baud rate of the serial port. For a list of possible return values see + the definition of the enum BaudRateType. +*/ +BaudRateType QextSerialPort::baudRate() const +{ + QReadLocker locker(&d_func()->lock); + return d_func()->settings.BaudRate; +} + +/*! + Returns the number of data bits used by the port. For a list of possible values returned by + this function, see the definition of the enum DataBitsType. +*/ +DataBitsType QextSerialPort::dataBits() const +{ + QReadLocker locker(&d_func()->lock); + return d_func()->settings.DataBits; +} + +/*! + Returns the type of parity used by the port. For a list of possible values returned by + this function, see the definition of the enum ParityType. +*/ +ParityType QextSerialPort::parity() const +{ + QReadLocker locker(&d_func()->lock); + return d_func()->settings.Parity; +} + +/*! + Returns the number of stop bits used by the port. For a list of possible return values, see + the definition of the enum StopBitsType. +*/ +StopBitsType QextSerialPort::stopBits() const +{ + QReadLocker locker(&d_func()->lock); + return d_func()->settings.StopBits; +} + +/*! + Returns the type of flow control used by the port. For a list of possible values returned + by this function, see the definition of the enum FlowType. +*/ +FlowType QextSerialPort::flowControl() const +{ + QReadLocker locker(&d_func()->lock); + return d_func()->settings.FlowControl; +} + +/*! + \reimp + Returns true if device is sequential, otherwise returns false. Serial port is sequential device + so this function always returns true. Check QIODevice::isSequential() documentation for more + information. +*/ +bool QextSerialPort::isSequential() const +{ + return true; +} + +/*! + Return the error number, or 0 if no error occurred. +*/ +ulong QextSerialPort::lastError() const +{ + QReadLocker locker(&d_func()->lock); + return d_func()->lastErr; +} + +/*! + Returns the line status as stored by the port function. This function will retrieve the states + of the following lines: DCD, CTS, DSR, and RI. On POSIX systems, the following additional lines + can be monitored: DTR, RTS, Secondary TXD, and Secondary RXD. The value returned is an unsigned + long with specific bits indicating which lines are high. The following constants should be used + to examine the states of individual lines: + + \code + Mask Line + ------ ---- + LS_CTS CTS + LS_DSR DSR + LS_DCD DCD + LS_RI RI + LS_RTS RTS (POSIX only) + LS_DTR DTR (POSIX only) + LS_ST Secondary TXD (POSIX only) + LS_SR Secondary RXD (POSIX only) + \endcode + + This function will return 0 if the port associated with the class is not currently open. +*/ +unsigned long QextSerialPort::lineStatus() +{ + Q_D(QextSerialPort); + QWriteLocker locker(&d->lock); + + if (isOpen()) { + return d->lineStatus_sys(); + } + + return 0; +} + +/*! + Returns a human-readable description of the last device error that occurred. +*/ +QString QextSerialPort::errorString() +{ + Q_D(QextSerialPort); + QReadLocker locker(&d->lock); + + switch (d->lastErr) { + case E_NO_ERROR: + return tr("No Error has occurred"); + + case E_INVALID_FD: + return tr("Invalid file descriptor (port was not opened correctly)"); + + case E_NO_MEMORY: + return tr("Unable to allocate memory tables (POSIX)"); + + case E_CAUGHT_NON_BLOCKED_SIGNAL: + return tr("Caught a non-blocked signal (POSIX)"); + + case E_PORT_TIMEOUT: + return tr("Operation timed out (POSIX)"); + + case E_INVALID_DEVICE: + return tr("The file opened by the port is not a valid device"); + + case E_BREAK_CONDITION: + return tr("The port detected a break condition"); + + case E_FRAMING_ERROR: + return tr("The port detected a framing error (usually caused by incorrect baud rate settings)"); + + case E_IO_ERROR: + return tr("There was an I/O error while communicating with the port"); + + case E_BUFFER_OVERRUN: + return tr("Character buffer overrun"); + + case E_RECEIVE_OVERFLOW: + return tr("Receive buffer overflow"); + + case E_RECEIVE_PARITY_ERROR: + return tr("The port detected a parity error in the received data"); + + case E_TRANSMIT_OVERFLOW: + return tr("Transmit buffer overflow"); + + case E_READ_FAILED: + return tr("General read operation failure"); + + case E_WRITE_FAILED: + return tr("General write operation failure"); + + case E_FILE_NOT_FOUND: + return tr("The %1 file doesn't exists").arg(this->portName()); + + case E_PERMISSION_DENIED: + return tr("Permission denied"); + + case E_AGAIN: + return tr("Device is already locked"); + + default: + return tr("Unknown error: %1").arg(d->lastErr); + } +} + +/*! + Destructs the QextSerialPort object. +*/ +QextSerialPort::~QextSerialPort() +{ + if (isOpen()) { + close(); + } + + delete d_ptr; +} + +/*! + Sets the flow control used by the port to \a flow. Possible values of flow are: + \code + FLOW_OFF No flow control + FLOW_HARDWARE Hardware (RTS/CTS) flow control + FLOW_XONXOFF Software (XON/XOFF) flow control + \endcode +*/ +void QextSerialPort::setFlowControl(FlowType flow) +{ + Q_D(QextSerialPort); + QWriteLocker locker(&d->lock); + + if (d->settings.FlowControl != flow) { + d->setFlowControl(flow, true); + } +} + +/*! + Sets the parity associated with the serial port to \a parity. The possible values of parity are: + \code + PAR_SPACE Space Parity + PAR_MARK Mark Parity + PAR_NONE No Parity + PAR_EVEN Even Parity + PAR_ODD Odd Parity + \endcode +*/ +void QextSerialPort::setParity(ParityType parity) +{ + Q_D(QextSerialPort); + QWriteLocker locker(&d->lock); + + if (d->settings.Parity != parity) { + d->setParity(parity, true); + } +} + +/*! + Sets the number of data bits used by the serial port to \a dataBits. Possible values of dataBits are: + \code + DATA_5 5 data bits + DATA_6 6 data bits + DATA_7 7 data bits + DATA_8 8 data bits + \endcode + + \bold note: + This function is subject to the following restrictions: + \list + \o 5 data bits cannot be used with 2 stop bits. + \o 1.5 stop bits can only be used with 5 data bits. + \o 8 data bits cannot be used with space parity on POSIX systems. + \endlist + */ +void QextSerialPort::setDataBits(DataBitsType dataBits) +{ + Q_D(QextSerialPort); + QWriteLocker locker(&d->lock); + + if (d->settings.DataBits != dataBits) { + d->setDataBits(dataBits, true); + } +} + +/*! + Sets the number of stop bits used by the serial port to \a stopBits. Possible values of stopBits are: + \code + STOP_1 1 stop bit + STOP_1_5 1.5 stop bits + STOP_2 2 stop bits + \endcode + + \bold note: + This function is subject to the following restrictions: + \list + \o 2 stop bits cannot be used with 5 data bits. + \o 1.5 stop bits cannot be used with 6 or more data bits. + \o POSIX does not support 1.5 stop bits. + \endlist +*/ +void QextSerialPort::setStopBits(StopBitsType stopBits) +{ + Q_D(QextSerialPort); + QWriteLocker locker(&d->lock); + + if (d->settings.StopBits != stopBits) { + d->setStopBits(stopBits, true); + } +} + +/*! + Sets the baud rate of the serial port to \a baudRate. Note that not all rates are applicable on + all platforms. The following table shows translations of the various baud rate + constants on Windows(including NT/2000) and POSIX platforms. Speeds marked with an * + are speeds that are usable on both Windows and POSIX. + \code + + RATE Windows Speed POSIX Speed + ----------- ------------- ----------- + BAUD50 X 50 + BAUD75 X 75 + *BAUD110 110 110 + BAUD134 X 134.5 + BAUD150 X 150 + BAUD200 X 200 + *BAUD300 300 300 + *BAUD600 600 600 + *BAUD1200 1200 1200 + BAUD1800 X 1800 + *BAUD2400 2400 2400 + *BAUD4800 4800 4800 + *BAUD9600 9600 9600 + BAUD14400 14400 X + *BAUD19200 19200 19200 + *BAUD38400 38400 38400 + BAUD56000 56000 X + *BAUD57600 57600 57600 + BAUD76800 X 76800 + *BAUD115200 115200 115200 + BAUD128000 128000 X + BAUD230400 X 230400 + BAUD256000 256000 X + BAUD460800 X 460800 + BAUD500000 X 500000 + BAUD576000 X 576000 + BAUD921600 X 921600 + BAUD1000000 X 1000000 + BAUD1152000 X 1152000 + BAUD1500000 X 1500000 + BAUD2000000 X 2000000 + BAUD2500000 X 2500000 + BAUD3000000 X 3000000 + BAUD3500000 X 3500000 + BAUD4000000 X 4000000 + \endcode +*/ + +void QextSerialPort::setBaudRate(BaudRateType baudRate) +{ + Q_D(QextSerialPort); + QWriteLocker locker(&d->lock); + + if (d->settings.BaudRate != baudRate) { + d->setBaudRate(baudRate, true); + } +} + +/*! + For Unix: + + Sets the read and write timeouts for the port to \a millisec milliseconds. + Note that this is a per-character timeout, i.e. the port will wait this long for each + individual character, not for the whole read operation. This timeout also applies to the + bytesWaiting() function. + + \bold note: + POSIX does not support millisecond-level control for I/O timeout values. Any + timeout set using this function will be set to the next lowest tenth of a second for + the purposes of detecting read or write timeouts. For example a timeout of 550 milliseconds + will be seen by the class as a timeout of 500 milliseconds for the purposes of reading and + writing the port. However millisecond-level control is allowed by the select() system call, + so for example a 550-millisecond timeout will be seen as 550 milliseconds on POSIX systems for + the purpose of detecting available bytes in the read buffer. + + For Windows: + + Sets the read and write timeouts for the port to \a millisec milliseconds. + Setting 0 indicates that timeouts are not used for read nor write operations; + however read() and write() functions will still block. Set -1 to provide + non-blocking behaviour (read() and write() will return immediately). + + \bold note: this function does nothing in event driven mode. +*/ +void QextSerialPort::setTimeout(long millisec) +{ + Q_D(QextSerialPort); + QWriteLocker locker(&d->lock); + + if (d->settings.Timeout_Millisec != millisec) { + d->setTimeout(millisec, true); + } +} + +/*! + Sets DTR line to the requested state (\a set default to high). This function will have no effect if + the port associated with the class is not currently open. +*/ +void QextSerialPort::setDtr(bool set) +{ + Q_D(QextSerialPort); + QWriteLocker locker(&d->lock); + + if (isOpen()) { + d->setDtr_sys(set); + } +} + +/*! + Sets RTS line to the requested state \a set (high by default). + This function will have no effect if + the port associated with the class is not currently open. +*/ +void QextSerialPort::setRts(bool set) +{ + Q_D(QextSerialPort); + QWriteLocker locker(&d->lock); + + if (isOpen()) { + d->setRts_sys(set); + } +} + +/*! \reimp + Reads a block of data from the serial port. This function will read at most maxlen bytes from + the serial port and place them in the buffer pointed to by data. Return value is the number of + bytes actually read, or -1 on error. + + \warning before calling this function ensure that serial port associated with this class + is currently open (use isOpen() function to check if port is open). +*/ +qint64 QextSerialPort::readData(char *data, qint64 maxSize) +{ + Q_D(QextSerialPort); + QWriteLocker locker(&d->lock); + qint64 bytesFromBuffer = 0; + + if (!d->readBuffer.isEmpty()) { + bytesFromBuffer = d->readBuffer.read(data, maxSize); + + if (bytesFromBuffer == maxSize) { + return bytesFromBuffer; + } + } + + qint64 bytesFromDevice = d->readData_sys(data + bytesFromBuffer, maxSize - bytesFromBuffer); + + if (bytesFromDevice < 0) { + return -1; + } + + return bytesFromBuffer + bytesFromDevice; +} + +/*! \reimp + Writes a block of data to the serial port. This function will write len bytes + from the buffer pointed to by data to the serial port. Return value is the number + of bytes actually written, or -1 on error. + + \warning before calling this function ensure that serial port associated with this class + is currently open (use isOpen() function to check if port is open). +*/ +qint64 QextSerialPort::writeData(const char *data, qint64 maxSize) +{ + Q_D(QextSerialPort); + QWriteLocker locker(&d->lock); + return d->writeData_sys(data, maxSize); +} + +#include "moc_qextserialport.cpp" diff --git a/comtool/qextserialport/qextserialport.h b/comtool/qextserialport/qextserialport.h new file mode 100644 index 0000000..f60e14a --- /dev/null +++ b/comtool/qextserialport/qextserialport.h @@ -0,0 +1,234 @@ +/**************************************************************************** +** Copyright (c) 2000-2003 Wayne Roth +** Copyright (c) 2004-2007 Stefan Sander +** Copyright (c) 2007 Michal Policht +** Copyright (c) 2008 Brandon Fosdick +** Copyright (c) 2009-2010 Liam Staskawicz +** Copyright (c) 2011 Debao Zhang +** All right reserved. +** Web: http://code.google.com/p/qextserialport/ +** +** Permission is hereby granted, free of charge, to any person obtaining +** a copy of this software and associated documentation files (the +** "Software"), to deal in the Software without restriction, including +** without limitation the rights to use, copy, modify, merge, publish, +** distribute, sublicense, and/or sell copies of the Software, and to +** permit persons to whom the Software is furnished to do so, subject to +** the following conditions: +** +** The above copyright notice and this permission notice shall be +** included in all copies or substantial portions of the Software. +** +** THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND +** NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE +** LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION +** OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION +** WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. +** +****************************************************************************/ + +#ifndef _QEXTSERIALPORT_H_ +#define _QEXTSERIALPORT_H_ + +#include +#include "qextserialport_global.h" +#ifdef Q_OS_UNIX +#include +#endif +/*line status constants*/ +// ### QESP2.0 move to enum +#define LS_CTS 0x01 +#define LS_DSR 0x02 +#define LS_DCD 0x04 +#define LS_RI 0x08 +#define LS_RTS 0x10 +#define LS_DTR 0x20 +#define LS_ST 0x40 +#define LS_SR 0x80 + +/*error constants*/ +// ### QESP2.0 move to enum +#define E_NO_ERROR 0 +#define E_INVALID_FD 1 +#define E_NO_MEMORY 2 +#define E_CAUGHT_NON_BLOCKED_SIGNAL 3 +#define E_PORT_TIMEOUT 4 +#define E_INVALID_DEVICE 5 +#define E_BREAK_CONDITION 6 +#define E_FRAMING_ERROR 7 +#define E_IO_ERROR 8 +#define E_BUFFER_OVERRUN 9 +#define E_RECEIVE_OVERFLOW 10 +#define E_RECEIVE_PARITY_ERROR 11 +#define E_TRANSMIT_OVERFLOW 12 +#define E_READ_FAILED 13 +#define E_WRITE_FAILED 14 +#define E_FILE_NOT_FOUND 15 +#define E_PERMISSION_DENIED 16 +#define E_AGAIN 17 + +enum BaudRateType { +#if defined(Q_OS_UNIX) || defined(qdoc) + BAUD50 = 50, //POSIX ONLY + BAUD75 = 75, //POSIX ONLY + BAUD134 = 134, //POSIX ONLY + BAUD150 = 150, //POSIX ONLY + BAUD200 = 200, //POSIX ONLY + BAUD1800 = 1800, //POSIX ONLY +# if defined(B76800) || defined(qdoc) + BAUD76800 = 76800, //POSIX ONLY +# endif +# if (defined(B230400) && defined(B4000000)) || defined(qdoc) + BAUD230400 = 230400, //POSIX ONLY + BAUD460800 = 460800, //POSIX ONLY + BAUD500000 = 500000, //POSIX ONLY + BAUD576000 = 576000, //POSIX ONLY + BAUD921600 = 921600, //POSIX ONLY + BAUD1000000 = 1000000, //POSIX ONLY + BAUD1152000 = 1152000, //POSIX ONLY + BAUD1500000 = 1500000, //POSIX ONLY + BAUD2000000 = 2000000, //POSIX ONLY + BAUD2500000 = 2500000, //POSIX ONLY + BAUD3000000 = 3000000, //POSIX ONLY + BAUD3500000 = 3500000, //POSIX ONLY + BAUD4000000 = 4000000, //POSIX ONLY +# endif +#endif //Q_OS_UNIX +#if defined(Q_OS_WIN) || defined(qdoc) + BAUD14400 = 14400, //WINDOWS ONLY + BAUD56000 = 56000, //WINDOWS ONLY + BAUD128000 = 128000, //WINDOWS ONLY + BAUD256000 = 256000, //WINDOWS ONLY +#endif //Q_OS_WIN + BAUD110 = 110, + BAUD300 = 300, + BAUD600 = 600, + BAUD1200 = 1200, + BAUD2400 = 2400, + BAUD4800 = 4800, + BAUD9600 = 9600, + BAUD19200 = 19200, + BAUD38400 = 38400, + BAUD57600 = 57600, + BAUD115200 = 115200 +}; + +enum DataBitsType { + DATA_5 = 5, + DATA_6 = 6, + DATA_7 = 7, + DATA_8 = 8 +}; + +enum ParityType { + PAR_NONE, + PAR_ODD, + PAR_EVEN, +#if defined(Q_OS_WIN) || defined(qdoc) + PAR_MARK, //WINDOWS ONLY +#endif + PAR_SPACE +}; + +enum StopBitsType { + STOP_1, +#if defined(Q_OS_WIN) || defined(qdoc) + STOP_1_5, //WINDOWS ONLY +#endif + STOP_2 +}; + +enum FlowType { + FLOW_OFF, + FLOW_HARDWARE, + FLOW_XONXOFF +}; + +/** + * structure to contain port settings + */ +struct PortSettings { + BaudRateType BaudRate; + DataBitsType DataBits; + ParityType Parity; + StopBitsType StopBits; + FlowType FlowControl; + long Timeout_Millisec; +}; + +class QextSerialPortPrivate; +class QEXTSERIALPORT_EXPORT QextSerialPort: public QIODevice +{ + Q_OBJECT + Q_DECLARE_PRIVATE(QextSerialPort) + Q_ENUMS(QueryMode) + Q_PROPERTY(QString portName READ portName WRITE setPortName) + Q_PROPERTY(QueryMode queryMode READ queryMode WRITE setQueryMode) +public: + enum QueryMode { + Polling, + EventDriven + }; + + explicit QextSerialPort(QueryMode mode = EventDriven, QObject *parent = 0); + explicit QextSerialPort(const QString &name, QueryMode mode = EventDriven, QObject *parent = 0); + explicit QextSerialPort(const PortSettings &s, QueryMode mode = EventDriven, QObject *parent = 0); + QextSerialPort(const QString &name, const PortSettings &s, QueryMode mode = EventDriven, QObject *parent = 0); + + ~QextSerialPort(); + + QString portName() const; + QueryMode queryMode() const; + BaudRateType baudRate() const; + DataBitsType dataBits() const; + ParityType parity() const; + StopBitsType stopBits() const; + FlowType flowControl() const; + + bool open(OpenMode mode); + bool isSequential() const; + void close(); + void flush(); + qint64 bytesAvailable() const; + bool canReadLine() const; + QByteArray readAll(); + + ulong lastError() const; + + ulong lineStatus(); + QString errorString(); + +public Q_SLOTS: + void setPortName(const QString &name); + void setQueryMode(QueryMode mode); + void setBaudRate(BaudRateType); + void setDataBits(DataBitsType); + void setParity(ParityType); + void setStopBits(StopBitsType); + void setFlowControl(FlowType); + void setTimeout(long); + + void setDtr(bool set = true); + void setRts(bool set = true); + +Q_SIGNALS: + void dsrChanged(bool status); + +protected: + qint64 readData(char *data, qint64 maxSize); + qint64 writeData(const char *data, qint64 maxSize); + +private: + Q_DISABLE_COPY(QextSerialPort) + +#ifdef Q_OS_WIN + Q_PRIVATE_SLOT(d_func(), void _q_onWinEvent(HANDLE)) +#endif + Q_PRIVATE_SLOT(d_func(), void _q_canRead()) + + QextSerialPortPrivate *const d_ptr; +}; + +#endif diff --git a/comtool/qextserialport/qextserialport.pri b/comtool/qextserialport/qextserialport.pri new file mode 100644 index 0000000..12e8a78 --- /dev/null +++ b/comtool/qextserialport/qextserialport.pri @@ -0,0 +1,9 @@ +HEADERS += \ + $$PWD/qextserialport.h \ + $$PWD/qextserialport_global.h \ + $$PWD/qextserialport_p.h + +SOURCES += $$PWD/qextserialport.cpp + +win32:SOURCES += $$PWD/qextserialport_win.cpp +unix:SOURCES += $$PWD/qextserialport_unix.cpp diff --git a/comtool/qextserialport/qextserialport_global.h b/comtool/qextserialport/qextserialport_global.h new file mode 100644 index 0000000..da91069 --- /dev/null +++ b/comtool/qextserialport/qextserialport_global.h @@ -0,0 +1,72 @@ +/**************************************************************************** +** Copyright (c) 2000-2003 Wayne Roth +** Copyright (c) 2004-2007 Stefan Sander +** Copyright (c) 2007 Michal Policht +** Copyright (c) 2008 Brandon Fosdick +** Copyright (c) 2009-2010 Liam Staskawicz +** Copyright (c) 2011 Debao Zhang +** All right reserved. +** Web: http://code.google.com/p/qextserialport/ +** +** Permission is hereby granted, free of charge, to any person obtaining +** a copy of this software and associated documentation files (the +** "Software"), to deal in the Software without restriction, including +** without limitation the rights to use, copy, modify, merge, publish, +** distribute, sublicense, and/or sell copies of the Software, and to +** permit persons to whom the Software is furnished to do so, subject to +** the following conditions: +** +** The above copyright notice and this permission notice shall be +** included in all copies or substantial portions of the Software. +** +** THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND +** NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE +** LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION +** OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION +** WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. +** +****************************************************************************/ + +#ifndef QEXTSERIALPORT_GLOBAL_H +#define QEXTSERIALPORT_GLOBAL_H + +#include + +#ifdef QEXTSERIALPORT_BUILD_SHARED +# define QEXTSERIALPORT_EXPORT Q_DECL_EXPORT +#elif defined(QEXTSERIALPORT_USING_SHARED) +# define QEXTSERIALPORT_EXPORT Q_DECL_IMPORT +#else +# define QEXTSERIALPORT_EXPORT +#endif + +// ### for compatible with old version. should be removed in QESP 2.0 +#ifdef _TTY_NOWARN_ +# define QESP_NO_WARN +#endif +#ifdef _TTY_NOWARN_PORT_ +# define QESP_NO_PORTABILITY_WARN +#endif + +/*if all warning messages are turned off, flag portability warnings to be turned off as well*/ +#ifdef QESP_NO_WARN +# define QESP_NO_PORTABILITY_WARN +#endif + +/*macros for warning and debug messages*/ +#ifdef QESP_NO_PORTABILITY_WARN +# define QESP_PORTABILITY_WARNING while (false)qWarning +#else +# define QESP_PORTABILITY_WARNING qWarning +#endif /*QESP_NOWARN_PORT*/ + +#ifdef QESP_NO_WARN +# define QESP_WARNING while (false)qWarning +#else +# define QESP_WARNING qWarning +#endif /*QESP_NOWARN*/ + +#endif // QEXTSERIALPORT_GLOBAL_H + diff --git a/comtool/qextserialport/qextserialport_p.h b/comtool/qextserialport/qextserialport_p.h new file mode 100644 index 0000000..d128c65 --- /dev/null +++ b/comtool/qextserialport/qextserialport_p.h @@ -0,0 +1,277 @@ +/**************************************************************************** +** Copyright (c) 2000-2003 Wayne Roth +** Copyright (c) 2004-2007 Stefan Sander +** Copyright (c) 2007 Michal Policht +** Copyright (c) 2008 Brandon Fosdick +** Copyright (c) 2009-2010 Liam Staskawicz +** Copyright (c) 2011 Debao Zhang +** All right reserved. +** Web: http://code.google.com/p/qextserialport/ +** +** Permission is hereby granted, free of charge, to any person obtaining +** a copy of this software and associated documentation files (the +** "Software"), to deal in the Software without restriction, including +** without limitation the rights to use, copy, modify, merge, publish, +** distribute, sublicense, and/or sell copies of the Software, and to +** permit persons to whom the Software is furnished to do so, subject to +** the following conditions: +** +** The above copyright notice and this permission notice shall be +** included in all copies or substantial portions of the Software. +** +** THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND +** NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE +** LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION +** OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION +** WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. +** +****************************************************************************/ + +#ifndef _QEXTSERIALPORT_P_H_ +#define _QEXTSERIALPORT_P_H_ + +// +// W A R N I N G +// ------------- +// +// This file is not part of the QESP API. It exists for the convenience +// of other QESP classes. This header file may change from version to +// version without notice, or even be removed. +// +// We mean it. +// + +#include "qextserialport.h" +#include +#ifdef Q_OS_UNIX +# include +#elif (defined Q_OS_WIN) +# include +#endif +#include + +// This is QextSerialPort's read buffer, needed by posix system. +// ref: QRingBuffer & QIODevicePrivateLinearBuffer +class QextReadBuffer +{ +public: + inline QextReadBuffer(size_t growth = 4096) + : len(0), first(0), buf(0), capacity(0), basicBlockSize(growth) + { + } + + ~QextReadBuffer() + { + delete buf; + } + + inline void clear() + { + first = buf; + len = 0; + } + + inline int size() const + { + return len; + } + + inline bool isEmpty() const + { + return len == 0; + } + + inline int read(char *target, int size) + { + int r = qMin(size, len); + + if (r == 1) { + *target = *first; + --len; + ++first; + } else { + memcpy(target, first, r); + len -= r; + first += r; + } + + return r; + } + + inline char *reserve(size_t size) + { + if ((first - buf) + len + size > capacity) { + size_t newCapacity = qMax(capacity, basicBlockSize); + + while (newCapacity < len + size) { + newCapacity *= 2; + } + + if (newCapacity > capacity) { + // allocate more space + char *newBuf = new char[newCapacity]; + memmove(newBuf, first, len); + delete buf; + buf = newBuf; + capacity = newCapacity; + } else { + // shift any existing data to make space + memmove(buf, first, len); + } + + first = buf; + } + + char *writePtr = first + len; + len += (int)size; + return writePtr; + } + + inline void chop(int size) + { + if (size >= len) { + clear(); + } else { + len -= size; + } + } + + inline void squeeze() + { + if (first != buf) { + memmove(buf, first, len); + first = buf; + } + + size_t newCapacity = basicBlockSize; + + while (newCapacity < size_t(len)) { + newCapacity *= 2; + } + + if (newCapacity < capacity) { + char *tmp = static_cast(realloc(buf, newCapacity)); + + if (tmp) { + buf = tmp; + capacity = newCapacity; + } + } + } + + inline QByteArray readAll() + { + char *f = first; + int l = len; + clear(); + return QByteArray(f, l); + } + + inline int readLine(char *target, int size) + { + int r = qMin(size, len); + char *eol = static_cast(memchr(first, '\n', r)); + + if (eol) { + r = 1 + (eol - first); + } + + memcpy(target, first, r); + len -= r; + first += r; + return int(r); + } + + inline bool canReadLine() const + { + return memchr(first, '\n', len); + } + +private: + int len; + char *first; + char *buf; + size_t capacity; + size_t basicBlockSize; +}; + +class QWinEventNotifier; +class QReadWriteLock; +class QSocketNotifier; + +class QextSerialPortPrivate +{ + Q_DECLARE_PUBLIC(QextSerialPort) +public: + QextSerialPortPrivate(QextSerialPort *q); + ~QextSerialPortPrivate(); + enum DirtyFlagEnum { + DFE_BaudRate = 0x0001, + DFE_Parity = 0x0002, + DFE_StopBits = 0x0004, + DFE_DataBits = 0x0008, + DFE_Flow = 0x0010, + DFE_TimeOut = 0x0100, + DFE_ALL = 0x0fff, + DFE_Settings_Mask = 0x00ff //without TimeOut + }; + mutable QReadWriteLock lock; + QString port; + PortSettings settings; + QextReadBuffer readBuffer; + int settingsDirtyFlags; + ulong lastErr; + QextSerialPort::QueryMode queryMode; + + // platform specific members +#ifdef Q_OS_UNIX + int fd; + QSocketNotifier *readNotifier; + struct termios currentTermios; + struct termios oldTermios; +#elif (defined Q_OS_WIN) + HANDLE handle; + OVERLAPPED overlap; + COMMCONFIG commConfig; + COMMTIMEOUTS commTimeouts; + QWinEventNotifier *winEventNotifier; + DWORD eventMask; + QList pendingWrites; + QReadWriteLock *bytesToWriteLock; +#endif + + /*fill PortSettings*/ + void setBaudRate(BaudRateType baudRate, bool update = true); + void setDataBits(DataBitsType dataBits, bool update = true); + void setParity(ParityType parity, bool update = true); + void setStopBits(StopBitsType stopbits, bool update = true); + void setFlowControl(FlowType flow, bool update = true); + void setTimeout(long millisec, bool update = true); + void setPortSettings(const PortSettings &settings, bool update = true); + + void platformSpecificDestruct(); + void platformSpecificInit(); + void translateError(ulong error); + void updatePortSettings(); + + qint64 readData_sys(char *data, qint64 maxSize); + qint64 writeData_sys(const char *data, qint64 maxSize); + void setDtr_sys(bool set = true); + void setRts_sys(bool set = true); + bool open_sys(QIODevice::OpenMode mode); + bool close_sys(); + bool flush_sys(); + ulong lineStatus_sys(); + qint64 bytesAvailable_sys() const; + +#ifdef Q_OS_WIN + void _q_onWinEvent(HANDLE h); +#endif + void _q_canRead(); + + QextSerialPort *q_ptr; +}; + +#endif //_QEXTSERIALPORT_P_H_ diff --git a/comtool/qextserialport/qextserialport_unix.cpp b/comtool/qextserialport/qextserialport_unix.cpp new file mode 100644 index 0000000..5a78148 --- /dev/null +++ b/comtool/qextserialport/qextserialport_unix.cpp @@ -0,0 +1,559 @@ +/**************************************************************************** +** Copyright (c) 2000-2003 Wayne Roth +** Copyright (c) 2004-2007 Stefan Sander +** Copyright (c) 2007 Michal Policht +** Copyright (c) 2008 Brandon Fosdick +** Copyright (c) 2009-2010 Liam Staskawicz +** Copyright (c) 2011 Debao Zhang +** All right reserved. +** Web: http://code.google.com/p/qextserialport/ +** +** Permission is hereby granted, free of charge, to any person obtaining +** a copy of this software and associated documentation files (the +** "Software"), to deal in the Software without restriction, including +** without limitation the rights to use, copy, modify, merge, publish, +** distribute, sublicense, and/or sell copies of the Software, and to +** permit persons to whom the Software is furnished to do so, subject to +** the following conditions: +** +** The above copyright notice and this permission notice shall be +** included in all copies or substantial portions of the Software. +** +** THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND +** NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE +** LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION +** OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION +** WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. +** +****************************************************************************/ + +#include "qextserialport.h" +#include "qextserialport_p.h" +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +void QextSerialPortPrivate::platformSpecificInit() +{ + fd = 0; + readNotifier = 0; +} + +/*! + Standard destructor. +*/ +void QextSerialPortPrivate::platformSpecificDestruct() +{ +} + +static QString fullPortName(const QString &name) +{ + if (name.startsWith(QLatin1Char('/'))) { + return name; + } + + return QLatin1String("/dev/") + name; +} + +bool QextSerialPortPrivate::open_sys(QIODevice::OpenMode mode) +{ + Q_Q(QextSerialPort); + + //note: linux 2.6.21 seems to ignore O_NDELAY flag + if ((fd = ::open(fullPortName(port).toLatin1() , O_RDWR | O_NOCTTY | O_NDELAY)) != -1) { + + /*In the Private class, We can not call QIODevice::open()*/ + q->setOpenMode(mode); // Flag the port as opened + ::tcgetattr(fd, &oldTermios); // Save the old termios + currentTermios = oldTermios; // Make a working copy + ::cfmakeraw(¤tTermios); // Enable raw access + + /*set up other port settings*/ + currentTermios.c_cflag |= CREAD | CLOCAL; + currentTermios.c_lflag &= (~(ICANON | ECHO | ECHOE | ECHOK | ECHONL | ISIG)); + currentTermios.c_iflag &= (~(INPCK | IGNPAR | PARMRK | ISTRIP | ICRNL | IXANY)); + currentTermios.c_oflag &= (~OPOST); + currentTermios.c_cc[VMIN] = 0; +#ifdef _POSIX_VDISABLE // Is a disable character available on this system? + // Some systems allow for per-device disable-characters, so get the + // proper value for the configured device + const long vdisable = ::fpathconf(fd, _PC_VDISABLE); + currentTermios.c_cc[VINTR] = vdisable; + currentTermios.c_cc[VQUIT] = vdisable; + currentTermios.c_cc[VSTART] = vdisable; + currentTermios.c_cc[VSTOP] = vdisable; + currentTermios.c_cc[VSUSP] = vdisable; +#endif //_POSIX_VDISABLE + settingsDirtyFlags = DFE_ALL; + updatePortSettings(); + + if (queryMode == QextSerialPort::EventDriven) { + readNotifier = new QSocketNotifier(fd, QSocketNotifier::Read, q); + q->connect(readNotifier, SIGNAL(activated(int)), q, SLOT(_q_canRead())); + } + + return true; + } else { + translateError(errno); + return false; + } +} + +bool QextSerialPortPrivate::close_sys() +{ + // Force a flush and then restore the original termios + flush_sys(); + // Using both TCSAFLUSH and TCSANOW here discards any pending input + ::tcsetattr(fd, TCSAFLUSH | TCSANOW, &oldTermios); // Restore termios + ::close(fd); + + if (readNotifier) { + delete readNotifier; + readNotifier = 0; + } + + return true; +} + +bool QextSerialPortPrivate::flush_sys() +{ + ::tcdrain(fd); + return true; +} + +qint64 QextSerialPortPrivate::bytesAvailable_sys() const +{ + int bytesQueued; + + if (::ioctl(fd, FIONREAD, &bytesQueued) == -1) { + return (qint64) - 1; + } + + return bytesQueued; +} + +/*! + Translates a system-specific error code to a QextSerialPort error code. Used internally. +*/ +void QextSerialPortPrivate::translateError(ulong error) +{ + switch (error) { + case EBADF: + case ENOTTY: + lastErr = E_INVALID_FD; + break; + + case EINTR: + lastErr = E_CAUGHT_NON_BLOCKED_SIGNAL; + break; + + case ENOMEM: + lastErr = E_NO_MEMORY; + break; + + case EACCES: + lastErr = E_PERMISSION_DENIED; + break; + + case EAGAIN: + lastErr = E_AGAIN; + break; + } +} + +void QextSerialPortPrivate::setDtr_sys(bool set) +{ + int status; + ::ioctl(fd, TIOCMGET, &status); + + if (set) { + status |= TIOCM_DTR; + } else { + status &= ~TIOCM_DTR; + } + + ::ioctl(fd, TIOCMSET, &status); +} + +void QextSerialPortPrivate::setRts_sys(bool set) +{ + int status; + ::ioctl(fd, TIOCMGET, &status); + + if (set) { + status |= TIOCM_RTS; + } else { + status &= ~TIOCM_RTS; + } + + ::ioctl(fd, TIOCMSET, &status); +} + +unsigned long QextSerialPortPrivate::lineStatus_sys() +{ + unsigned long Status = 0, Temp = 0; + ::ioctl(fd, TIOCMGET, &Temp); + + if (Temp & TIOCM_CTS) { + Status |= LS_CTS; + } + + if (Temp & TIOCM_DSR) { + Status |= LS_DSR; + } + + if (Temp & TIOCM_RI) { + Status |= LS_RI; + } + + if (Temp & TIOCM_CD) { + Status |= LS_DCD; + } + + if (Temp & TIOCM_DTR) { + Status |= LS_DTR; + } + + if (Temp & TIOCM_RTS) { + Status |= LS_RTS; + } + + if (Temp & TIOCM_ST) { + Status |= LS_ST; + } + + if (Temp & TIOCM_SR) { + Status |= LS_SR; + } + + return Status; +} + +/*! + Reads a block of data from the serial port. This function will read at most maxSize bytes from + the serial port and place them in the buffer pointed to by data. Return value is the number of + bytes actually read, or -1 on error. + + \warning before calling this function ensure that serial port associated with this class + is currently open (use isOpen() function to check if port is open). +*/ +qint64 QextSerialPortPrivate::readData_sys(char *data, qint64 maxSize) +{ + int retVal = ::read(fd, data, maxSize); + + if (retVal == -1) { + lastErr = E_READ_FAILED; + } + + return retVal; +} + +/*! + Writes a block of data to the serial port. This function will write maxSize bytes + from the buffer pointed to by data to the serial port. Return value is the number + of bytes actually written, or -1 on error. + + \warning before calling this function ensure that serial port associated with this class + is currently open (use isOpen() function to check if port is open). +*/ +qint64 QextSerialPortPrivate::writeData_sys(const char *data, qint64 maxSize) +{ + int retVal = ::write(fd, data, maxSize); + + if (retVal == -1) { + lastErr = E_WRITE_FAILED; + } + + return (qint64)retVal; +} + +static void setBaudRate2Termios(termios *config, int baudRate) +{ +#ifdef CBAUD + config->c_cflag &= (~CBAUD); + config->c_cflag |= baudRate; +#else + ::cfsetispeed(config, baudRate); + ::cfsetospeed(config, baudRate); +#endif +} + +/* + All the platform settings was performed in this function. +*/ +void QextSerialPortPrivate::updatePortSettings() +{ + if (!q_func()->isOpen() || !settingsDirtyFlags) { + return; + } + + if (settingsDirtyFlags & DFE_BaudRate) { + switch (settings.BaudRate) { + case BAUD50: + setBaudRate2Termios(¤tTermios, B50); + break; + + case BAUD75: + setBaudRate2Termios(¤tTermios, B75); + break; + + case BAUD110: + setBaudRate2Termios(¤tTermios, B110); + break; + + case BAUD134: + setBaudRate2Termios(¤tTermios, B134); + break; + + case BAUD150: + setBaudRate2Termios(¤tTermios, B150); + break; + + case BAUD200: + setBaudRate2Termios(¤tTermios, B200); + break; + + case BAUD300: + setBaudRate2Termios(¤tTermios, B300); + break; + + case BAUD600: + setBaudRate2Termios(¤tTermios, B600); + break; + + case BAUD1200: + setBaudRate2Termios(¤tTermios, B1200); + break; + + case BAUD1800: + setBaudRate2Termios(¤tTermios, B1800); + break; + + case BAUD2400: + setBaudRate2Termios(¤tTermios, B2400); + break; + + case BAUD4800: + setBaudRate2Termios(¤tTermios, B4800); + break; + + case BAUD9600: + setBaudRate2Termios(¤tTermios, B9600); + break; + + case BAUD19200: + setBaudRate2Termios(¤tTermios, B19200); + break; + + case BAUD38400: + setBaudRate2Termios(¤tTermios, B38400); + break; + + case BAUD57600: + setBaudRate2Termios(¤tTermios, B57600); + break; +#ifdef B76800 + + case BAUD76800: + setBaudRate2Termios(¤tTermios, B76800); + break; +#endif + + case BAUD115200: + setBaudRate2Termios(¤tTermios, B115200); + break; +#if defined(B230400) && defined(B4000000) + + case BAUD230400: + setBaudRate2Termios(¤tTermios, B230400); + break; + + case BAUD460800: + setBaudRate2Termios(¤tTermios, B460800); + break; + + case BAUD500000: + setBaudRate2Termios(¤tTermios, B500000); + break; + + case BAUD576000: + setBaudRate2Termios(¤tTermios, B576000); + break; + + case BAUD921600: + setBaudRate2Termios(¤tTermios, B921600); + break; + + case BAUD1000000: + setBaudRate2Termios(¤tTermios, B1000000); + break; + + case BAUD1152000: + setBaudRate2Termios(¤tTermios, B1152000); + break; + + case BAUD1500000: + setBaudRate2Termios(¤tTermios, B1500000); + break; + + case BAUD2000000: + setBaudRate2Termios(¤tTermios, B2000000); + break; + + case BAUD2500000: + setBaudRate2Termios(¤tTermios, B2500000); + break; + + case BAUD3000000: + setBaudRate2Termios(¤tTermios, B3000000); + break; + + case BAUD3500000: + setBaudRate2Termios(¤tTermios, B3500000); + break; + + case BAUD4000000: + setBaudRate2Termios(¤tTermios, B4000000); + break; +#endif +#ifdef Q_OS_MAC + + default: + setBaudRate2Termios(¤tTermios, settings.BaudRate); + break; +#endif + } + } + + if (settingsDirtyFlags & DFE_Parity) { + switch (settings.Parity) { + case PAR_SPACE: + /*space parity not directly supported - add an extra data bit to simulate it*/ + settingsDirtyFlags |= DFE_DataBits; + break; + + case PAR_NONE: + currentTermios.c_cflag &= (~PARENB); + break; + + case PAR_EVEN: + currentTermios.c_cflag &= (~PARODD); + currentTermios.c_cflag |= PARENB; + break; + + case PAR_ODD: + currentTermios.c_cflag |= (PARENB | PARODD); + break; + } + } + + /*must after Parity settings*/ + if (settingsDirtyFlags & DFE_DataBits) { + if (settings.Parity != PAR_SPACE) { + currentTermios.c_cflag &= (~CSIZE); + + switch (settings.DataBits) { + case DATA_5: + currentTermios.c_cflag |= CS5; + break; + + case DATA_6: + currentTermios.c_cflag |= CS6; + break; + + case DATA_7: + currentTermios.c_cflag |= CS7; + break; + + case DATA_8: + currentTermios.c_cflag |= CS8; + break; + } + } else { + /*space parity not directly supported - add an extra data bit to simulate it*/ + currentTermios.c_cflag &= ~(PARENB | CSIZE); + + switch (settings.DataBits) { + case DATA_5: + currentTermios.c_cflag |= CS6; + break; + + case DATA_6: + currentTermios.c_cflag |= CS7; + break; + + case DATA_7: + currentTermios.c_cflag |= CS8; + break; + + case DATA_8: + /*this will never happen, put here to Suppress an warning*/ + break; + } + } + } + + if (settingsDirtyFlags & DFE_StopBits) { + switch (settings.StopBits) { + case STOP_1: + currentTermios.c_cflag &= (~CSTOPB); + break; + + case STOP_2: + currentTermios.c_cflag |= CSTOPB; + break; + } + } + + if (settingsDirtyFlags & DFE_Flow) { + switch (settings.FlowControl) { + case FLOW_OFF: + currentTermios.c_cflag &= (~CRTSCTS); + currentTermios.c_iflag &= (~(IXON | IXOFF | IXANY)); + break; + + case FLOW_XONXOFF: + /*software (XON/XOFF) flow control*/ + currentTermios.c_cflag &= (~CRTSCTS); + currentTermios.c_iflag |= (IXON | IXOFF | IXANY); + break; + + case FLOW_HARDWARE: + currentTermios.c_cflag |= CRTSCTS; + currentTermios.c_iflag &= (~(IXON | IXOFF | IXANY)); + break; + } + } + + /*if any thing in currentTermios changed, flush*/ + if (settingsDirtyFlags & DFE_Settings_Mask) { + ::tcsetattr(fd, TCSAFLUSH, ¤tTermios); + } + + if (settingsDirtyFlags & DFE_TimeOut) { + int millisec = settings.Timeout_Millisec; + + if (millisec == -1) { + ::fcntl(fd, F_SETFL, O_NDELAY); + } else { + //O_SYNC should enable blocking ::write() + //however this seems not working on Linux 2.6.21 (works on OpenBSD 4.2) + ::fcntl(fd, F_SETFL, O_SYNC); + } + + ::tcgetattr(fd, ¤tTermios); + currentTermios.c_cc[VTIME] = millisec / 100; + ::tcsetattr(fd, TCSAFLUSH, ¤tTermios); + } + + settingsDirtyFlags = 0; +} diff --git a/comtool/qextserialport/qextserialport_win.cpp b/comtool/qextserialport/qextserialport_win.cpp new file mode 100644 index 0000000..50828af --- /dev/null +++ b/comtool/qextserialport/qextserialport_win.cpp @@ -0,0 +1,476 @@ +/**************************************************************************** +** Copyright (c) 2000-2003 Wayne Roth +** Copyright (c) 2004-2007 Stefan Sander +** Copyright (c) 2007 Michal Policht +** Copyright (c) 2008 Brandon Fosdick +** Copyright (c) 2009-2010 Liam Staskawicz +** Copyright (c) 2011 Debao Zhang +** All right reserved. +** Web: http://code.google.com/p/qextserialport/ +** +** Permission is hereby granted, free of charge, to any person obtaining +** a copy of this software and associated documentation files (the +** "Software"), to deal in the Software without restriction, including +** without limitation the rights to use, copy, modify, merge, publish, +** distribute, sublicense, and/or sell copies of the Software, and to +** permit persons to whom the Software is furnished to do so, subject to +** the following conditions: +** +** The above copyright notice and this permission notice shall be +** included in all copies or substantial portions of the Software. +** +** THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND +** NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE +** LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION +** OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION +** WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. +** +****************************************************************************/ + +#include "qextserialport.h" +#include "qextserialport_p.h" +#include +#include +#include +#include +#include +#include +#if QT_VERSION >= QT_VERSION_CHECK(5, 0, 0) +# include +#else +# include +#endif +void QextSerialPortPrivate::platformSpecificInit() +{ + handle = INVALID_HANDLE_VALUE; + ZeroMemory(&overlap, sizeof(OVERLAPPED)); + overlap.hEvent = CreateEvent(NULL, true, false, NULL); + winEventNotifier = 0; + bytesToWriteLock = new QReadWriteLock; +} + +void QextSerialPortPrivate::platformSpecificDestruct() +{ + CloseHandle(overlap.hEvent); + delete bytesToWriteLock; +} + + +/*! + \internal + COM ports greater than 9 need \\.\ prepended + + This is only need when open the port. +*/ +static QString fullPortNameWin(const QString &name) +{ + QRegExp rx(QLatin1String("^COM(\\d+)")); + QString fullName(name); + + if (fullName.contains(rx)) { + fullName.prepend(QLatin1String("\\\\.\\")); + } + + return fullName; +} + +bool QextSerialPortPrivate::open_sys(QIODevice::OpenMode mode) +{ + Q_Q(QextSerialPort); + DWORD confSize = sizeof(COMMCONFIG); + commConfig.dwSize = confSize; + DWORD dwFlagsAndAttributes = 0; + + if (queryMode == QextSerialPort::EventDriven) { + dwFlagsAndAttributes += FILE_FLAG_OVERLAPPED; + } + + /*open the port*/ + handle = CreateFileW((wchar_t *)fullPortNameWin(port).utf16(), GENERIC_READ | GENERIC_WRITE, + 0, NULL, OPEN_EXISTING, dwFlagsAndAttributes, NULL); + + if (handle != INVALID_HANDLE_VALUE) { + q->setOpenMode(mode); + /*configure port settings*/ + GetCommConfig(handle, &commConfig, &confSize); + GetCommState(handle, &(commConfig.dcb)); + + /*set up parameters*/ + commConfig.dcb.fBinary = TRUE; + commConfig.dcb.fInX = FALSE; + commConfig.dcb.fOutX = FALSE; + commConfig.dcb.fAbortOnError = FALSE; + commConfig.dcb.fNull = FALSE; + /* Dtr default to true. See Issue 122*/ + commConfig.dcb.fDtrControl = TRUE; + /*flush all settings*/ + settingsDirtyFlags = DFE_ALL; + updatePortSettings(); + + //init event driven approach + if (queryMode == QextSerialPort::EventDriven) { + if (!SetCommMask(handle, EV_TXEMPTY | EV_RXCHAR | EV_DSR)) { + QESP_WARNING() << "failed to set Comm Mask. Error code:" << GetLastError(); + return false; + } + + winEventNotifier = new QWinEventNotifier(overlap.hEvent, q); + qRegisterMetaType("HANDLE"); + q->connect(winEventNotifier, SIGNAL(activated(HANDLE)), q, SLOT(_q_onWinEvent(HANDLE)), Qt::DirectConnection); + WaitCommEvent(handle, &eventMask, &overlap); + } + + return true; + } + + return false; +} + +bool QextSerialPortPrivate::close_sys() +{ + flush_sys(); + CancelIo(handle); + + if (CloseHandle(handle)) { + handle = INVALID_HANDLE_VALUE; + } + + if (winEventNotifier) { + winEventNotifier->setEnabled(false); + winEventNotifier->deleteLater(); + winEventNotifier = 0; + } + + foreach (OVERLAPPED *o, pendingWrites) { + CloseHandle(o->hEvent); + delete o; + } + + pendingWrites.clear(); + return true; +} + +bool QextSerialPortPrivate::flush_sys() +{ + FlushFileBuffers(handle); + return true; +} + +qint64 QextSerialPortPrivate::bytesAvailable_sys() const +{ + DWORD Errors; + COMSTAT Status; + + if (ClearCommError(handle, &Errors, &Status)) { + return Status.cbInQue; + } + + return (qint64) - 1; +} + +/* + Translates a system-specific error code to a QextSerialPort error code. Used internally. +*/ +void QextSerialPortPrivate::translateError(ulong error) +{ + if (error & CE_BREAK) { + lastErr = E_BREAK_CONDITION; + } else if (error & CE_FRAME) { + lastErr = E_FRAMING_ERROR; + } else if (error & CE_IOE) { + lastErr = E_IO_ERROR; + } else if (error & CE_MODE) { + lastErr = E_INVALID_FD; + } else if (error & CE_OVERRUN) { + lastErr = E_BUFFER_OVERRUN; + } else if (error & CE_RXPARITY) { + lastErr = E_RECEIVE_PARITY_ERROR; + } else if (error & CE_RXOVER) { + lastErr = E_RECEIVE_OVERFLOW; + } else if (error & CE_TXFULL) { + lastErr = E_TRANSMIT_OVERFLOW; + } +} + +/* + Reads a block of data from the serial port. This function will read at most maxlen bytes from + the serial port and place them in the buffer pointed to by data. Return value is the number of + bytes actually read, or -1 on error. + + \warning before calling this function ensure that serial port associated with this class + is currently open (use isOpen() function to check if port is open). +*/ +qint64 QextSerialPortPrivate::readData_sys(char *data, qint64 maxSize) +{ + DWORD bytesRead = 0; + bool failed = false; + + if (queryMode == QextSerialPort::EventDriven) { + OVERLAPPED overlapRead; + ZeroMemory(&overlapRead, sizeof(OVERLAPPED)); + + if (!ReadFile(handle, (void *)data, (DWORD)maxSize, &bytesRead, &overlapRead)) { + if (GetLastError() == ERROR_IO_PENDING) { + GetOverlappedResult(handle, &overlapRead, &bytesRead, true); + } else { + failed = true; + } + } + } else if (!ReadFile(handle, (void *)data, (DWORD)maxSize, &bytesRead, NULL)) { + failed = true; + } + + if (!failed) { + return (qint64)bytesRead; + } + + lastErr = E_READ_FAILED; + return -1; +} + +/* + Writes a block of data to the serial port. This function will write len bytes + from the buffer pointed to by data to the serial port. Return value is the number + of bytes actually written, or -1 on error. + + \warning before calling this function ensure that serial port associated with this class + is currently open (use isOpen() function to check if port is open). +*/ +qint64 QextSerialPortPrivate::writeData_sys(const char *data, qint64 maxSize) +{ + DWORD bytesWritten = 0; + bool failed = false; + + if (queryMode == QextSerialPort::EventDriven) { + OVERLAPPED *newOverlapWrite = new OVERLAPPED; + ZeroMemory(newOverlapWrite, sizeof(OVERLAPPED)); + newOverlapWrite->hEvent = CreateEvent(NULL, true, false, NULL); + + if (WriteFile(handle, (void *)data, (DWORD)maxSize, &bytesWritten, newOverlapWrite)) { + CloseHandle(newOverlapWrite->hEvent); + delete newOverlapWrite; + } else if (GetLastError() == ERROR_IO_PENDING) { + // writing asynchronously...not an error + QWriteLocker writelocker(bytesToWriteLock); + pendingWrites.append(newOverlapWrite); + } else { + QESP_WARNING() << "QextSerialPort write error:" << GetLastError(); + failed = true; + + if (!CancelIo(newOverlapWrite->hEvent)) { + QESP_WARNING("QextSerialPort: couldn't cancel IO"); + } + + if (!CloseHandle(newOverlapWrite->hEvent)) { + QESP_WARNING("QextSerialPort: couldn't close OVERLAPPED handle"); + } + + delete newOverlapWrite; + } + } else if (!WriteFile(handle, (void *)data, (DWORD)maxSize, &bytesWritten, NULL)) { + failed = true; + } + + if (!failed) { + return (qint64)bytesWritten; + } + + lastErr = E_WRITE_FAILED; + return -1; +} + +void QextSerialPortPrivate::setDtr_sys(bool set) +{ + EscapeCommFunction(handle, set ? SETDTR : CLRDTR); +} + +void QextSerialPortPrivate::setRts_sys(bool set) +{ + EscapeCommFunction(handle, set ? SETRTS : CLRRTS); +} + +ulong QextSerialPortPrivate::lineStatus_sys(void) +{ + unsigned long Status = 0, Temp = 0; + GetCommModemStatus(handle, &Temp); + + if (Temp & MS_CTS_ON) { + Status |= LS_CTS; + } + + if (Temp & MS_DSR_ON) { + Status |= LS_DSR; + } + + if (Temp & MS_RING_ON) { + Status |= LS_RI; + } + + if (Temp & MS_RLSD_ON) { + Status |= LS_DCD; + } + + return Status; +} + +/* + Triggered when there's activity on our HANDLE. +*/ +void QextSerialPortPrivate::_q_onWinEvent(HANDLE h) +{ + Q_Q(QextSerialPort); + + if (h == overlap.hEvent) { + if (eventMask & EV_RXCHAR) { + if (q->sender() != q && bytesAvailable_sys() > 0) { + _q_canRead(); + } + } + + if (eventMask & EV_TXEMPTY) { + /* + A write completed. Run through the list of OVERLAPPED writes, and if + they completed successfully, take them off the list and delete them. + Otherwise, leave them on there so they can finish. + */ + qint64 totalBytesWritten = 0; + QList overlapsToDelete; + + foreach (OVERLAPPED *o, pendingWrites) { + DWORD numBytes = 0; + + if (GetOverlappedResult(handle, o, &numBytes, false)) { + overlapsToDelete.append(o); + totalBytesWritten += numBytes; + } else if (GetLastError() != ERROR_IO_INCOMPLETE) { + overlapsToDelete.append(o); + QESP_WARNING() << "CommEvent overlapped write error:" << GetLastError(); + } + } + + if (q->sender() != q && totalBytesWritten > 0) { + QWriteLocker writelocker(bytesToWriteLock); + Q_EMIT q->bytesWritten(totalBytesWritten); + } + + foreach (OVERLAPPED *o, overlapsToDelete) { + OVERLAPPED *toDelete = pendingWrites.takeAt(pendingWrites.indexOf(o)); + CloseHandle(toDelete->hEvent); + delete toDelete; + } + } + + if (eventMask & EV_DSR) { + if (lineStatus_sys() & LS_DSR) { + Q_EMIT q->dsrChanged(true); + } else { + Q_EMIT q->dsrChanged(false); + } + } + } + + WaitCommEvent(handle, &eventMask, &overlap); +} + +void QextSerialPortPrivate::updatePortSettings() +{ + if (!q_ptr->isOpen() || !settingsDirtyFlags) { + return; + } + + //fill struct : COMMCONFIG + if (settingsDirtyFlags & DFE_BaudRate) { + commConfig.dcb.BaudRate = settings.BaudRate; + } + + if (settingsDirtyFlags & DFE_Parity) { + commConfig.dcb.Parity = (BYTE)settings.Parity; + commConfig.dcb.fParity = (settings.Parity == PAR_NONE) ? FALSE : TRUE; + } + + if (settingsDirtyFlags & DFE_DataBits) { + commConfig.dcb.ByteSize = (BYTE)settings.DataBits; + } + + if (settingsDirtyFlags & DFE_StopBits) { + switch (settings.StopBits) { + case STOP_1: + commConfig.dcb.StopBits = ONESTOPBIT; + break; + + case STOP_1_5: + commConfig.dcb.StopBits = ONE5STOPBITS; + break; + + case STOP_2: + commConfig.dcb.StopBits = TWOSTOPBITS; + break; + } + } + + if (settingsDirtyFlags & DFE_Flow) { + switch (settings.FlowControl) { + /*no flow control*/ + case FLOW_OFF: + commConfig.dcb.fOutxCtsFlow = FALSE; + commConfig.dcb.fRtsControl = RTS_CONTROL_DISABLE; + commConfig.dcb.fInX = FALSE; + commConfig.dcb.fOutX = FALSE; + break; + + /*software (XON/XOFF) flow control*/ + case FLOW_XONXOFF: + commConfig.dcb.fOutxCtsFlow = FALSE; + commConfig.dcb.fRtsControl = RTS_CONTROL_DISABLE; + commConfig.dcb.fInX = TRUE; + commConfig.dcb.fOutX = TRUE; + break; + + /*hardware flow control*/ + case FLOW_HARDWARE: + commConfig.dcb.fOutxCtsFlow = TRUE; + commConfig.dcb.fRtsControl = RTS_CONTROL_HANDSHAKE; + commConfig.dcb.fInX = FALSE; + commConfig.dcb.fOutX = FALSE; + break; + } + } + + //fill struct : COMMTIMEOUTS + if (settingsDirtyFlags & DFE_TimeOut) { + if (queryMode != QextSerialPort::EventDriven) { + int millisec = settings.Timeout_Millisec; + + if (millisec == -1) { + commTimeouts.ReadIntervalTimeout = MAXDWORD; + commTimeouts.ReadTotalTimeoutConstant = 0; + } else { + commTimeouts.ReadIntervalTimeout = millisec; + commTimeouts.ReadTotalTimeoutConstant = millisec; + } + + commTimeouts.ReadTotalTimeoutMultiplier = 0; + commTimeouts.WriteTotalTimeoutMultiplier = millisec; + commTimeouts.WriteTotalTimeoutConstant = 0; + } else { + commTimeouts.ReadIntervalTimeout = MAXDWORD; + commTimeouts.ReadTotalTimeoutMultiplier = 0; + commTimeouts.ReadTotalTimeoutConstant = 0; + commTimeouts.WriteTotalTimeoutMultiplier = 0; + commTimeouts.WriteTotalTimeoutConstant = 0; + } + } + + + if (settingsDirtyFlags & DFE_Settings_Mask) { + SetCommConfig(handle, &commConfig, sizeof(COMMCONFIG)); + } + + if ((settingsDirtyFlags & DFE_TimeOut)) { + SetCommTimeouts(handle, &commTimeouts); + } + + settingsDirtyFlags = 0; +} diff --git a/comtool/qextserialport/readme.txt b/comtool/qextserialport/readme.txt new file mode 100644 index 0000000..9f01e4c --- /dev/null +++ b/comtool/qextserialport/readme.txt @@ -0,0 +1,16 @@ +ʹ÷ +proļ +include(qextserialport/qextserialport.pri) + +QextSerialPort *GSM_COM = new QextSerialPort(portName, QextSerialPort::EventDriven); + isOpen = GSM_COM->open(QIODevice::ReadWrite); + if (isOpen) { + GSM_COM->flush(); + GSM_COM->setBaudRate(BAUD9600); + GSM_COM->setDataBits(DATA_8); + GSM_COM->setParity(PAR_NONE); + GSM_COM->setStopBits(STOP_1); + GSM_COM->setFlowControl(FLOW_OFF); + GSM_COM->setTimeout(10); + } + diff --git a/comtool/readme.txt b/comtool/readme.txt new file mode 100644 index 0000000..bd58449 --- /dev/null +++ b/comtool/readme.txt @@ -0,0 +1,16 @@ +ܣ +1֧16ݷա +2֧windowsCOM9ϵĴͨš +3ʵʱʾշֽڴСԼ״̬ +4֧qt汾ײ4.7.0 4.8.5 4.8.7 5.4.1 5.7.0 5.8.0 +5ִ֧תշ + +߼ܣ +1ɹҪ͵ݣÿֻҪѡݼɣݡ +2ģ豸ظݣҪ濪ģ豸ظݡյúõָʱظõĻظָָյ0x16 0x00 0xFF 0x01Ҫظ0x16 0x00 0xFE 0x01ֻҪSendData.txtһ16 00 FF 01:16 00 FE 01ɡ +3ɶʱݺͱݵıļ:Ĭϼ5ӣɸļʱ䡣 +4ڲϽյʱͣʾ鿴ݣ̨Ȼݵرմ鿴ѽյݡ +5ÿյݶһݣѽڵģʱ +6һԴ洦룬Ĵͨ࣬XP/WIN7/UBUNTU/ARMLINUXϵͳ³ɹ벢С + +иõĽQ(517216493)лл \ No newline at end of file diff --git a/countcode/countcode.pro b/countcode/countcode.pro new file mode 100644 index 0000000..f39b69c --- /dev/null +++ b/countcode/countcode.pro @@ -0,0 +1,20 @@ +#------------------------------------------------- +# +# Project created by QtCreator 2017-02-08T09:21:04 +# +#------------------------------------------------- + +QT += core gui + +greaterThan(QT_MAJOR_VERSION, 4): QT += widgets + +TARGET = countcode +TEMPLATE = app +DESTDIR = $$PWD/../bin +CONFIG += warn_off + +SOURCES += main.cpp +SOURCES += frmcountcode.cpp +HEADERS += frmcountcode.h +FORMS += frmcountcode.ui + diff --git a/countcode/frmcountcode.cpp b/countcode/frmcountcode.cpp new file mode 100644 index 0000000..10115f9 --- /dev/null +++ b/countcode/frmcountcode.cpp @@ -0,0 +1,278 @@ +#pragma execution_character_set("utf-8") + +#include "frmcountcode.h" +#include "ui_frmcountcode.h" +#include "qfile.h" +#include "qtextstream.h" +#include "qfiledialog.h" +#include "qfileinfo.h" +#include "qdebug.h" + +frmCountCode::frmCountCode(QWidget *parent) : QWidget(parent), ui(new Ui::frmCountCode) +{ + ui->setupUi(this); + this->initForm(); + on_btnClear_clicked(); +} + +frmCountCode::~frmCountCode() +{ + delete ui; +} + +void frmCountCode::initForm() +{ + QStringList headText; + headText << "文件名" << "类型" << "大小" << "总行数" << "代码行数" << "注释行数" << "空白行数" << "路径"; + QList columnWidth; + columnWidth << 130 << 50 << 70 << 80 << 70 << 70 << 70 << 150; + + int columnCount = headText.count(); + ui->tableWidget->setColumnCount(columnCount); + ui->tableWidget->setHorizontalHeaderLabels(headText); + ui->tableWidget->setSelectionBehavior(QAbstractItemView::SelectRows); + ui->tableWidget->setEditTriggers(QAbstractItemView::NoEditTriggers); + ui->tableWidget->setSelectionMode(QAbstractItemView::SingleSelection); + ui->tableWidget->verticalHeader()->setVisible(false); + ui->tableWidget->horizontalHeader()->setStretchLastSection(true); + ui->tableWidget->horizontalHeader()->setHighlightSections(false); + ui->tableWidget->verticalHeader()->setDefaultSectionSize(20); + ui->tableWidget->verticalHeader()->setHighlightSections(false); + + for (int i = 0; i < columnCount; i++) { + ui->tableWidget->setColumnWidth(i, columnWidth.at(i)); + } + + //设置前景色 + ui->txtCount->setStyleSheet("color:#17A086;"); + ui->txtSize->setStyleSheet("color:#CA5AA6;"); + ui->txtRow->setStyleSheet("color:#CD1B19;"); + ui->txtCode->setStyleSheet("color:#22A3A9;"); + ui->txtNote->setStyleSheet("color:#D64D54;"); + ui->txtBlank->setStyleSheet("color:#A279C5;"); + + //设置字体加粗 + QFont font; + font.setBold(true); + if (font.pointSize() > 0) { + font.setPointSize(font.pointSize() + 1); + } else { + font.setPixelSize(font.pixelSize() + 2); + } + + ui->txtCount->setFont(font); + ui->txtSize->setFont(font); + ui->txtRow->setFont(font); + ui->txtCode->setFont(font); + ui->txtNote->setFont(font); + ui->txtBlank->setFont(font); + +#if (QT_VERSION > QT_VERSION_CHECK(4,7,0)) + ui->txtFilter->setPlaceholderText("中间空格隔开,例如 *.h *.cpp *.c"); +#endif +} + +bool frmCountCode::checkFile(const QString &fileName) +{ + if (fileName.startsWith("moc_") || fileName.startsWith("ui_") || fileName.startsWith("qrc_")) { + return false; + } + + QFileInfo file(fileName); + QString suffix = "*." + file.suffix(); + QString filter = ui->txtFilter->text().trimmed(); + QStringList filters = filter.split(" "); + return filters.contains(suffix); +} + +void frmCountCode::countCode(const QString &filePath) +{ + QDir dir(filePath); + foreach (QFileInfo fileInfo , dir.entryInfoList()) { + if (fileInfo.isFile()) { + QString strFileName = fileInfo.fileName(); + if (checkFile(strFileName)) { + listFile << fileInfo.filePath(); + } + } else { + if(fileInfo.fileName() == "." || fileInfo.fileName() == "..") { + continue; + } + + //递归找出文件 + countCode(fileInfo.absoluteFilePath()); + } + } +} + +void frmCountCode::countCode(const QStringList &files) +{ + int lineCode; + int lineBlank; + int lineNotes; + int count = files.count(); + on_btnClear_clicked(); + ui->tableWidget->setRowCount(count); + + quint32 totalLines = 0; + quint32 totalBytes = 0; + quint32 totalCodes = 0; + quint32 totalNotes = 0; + quint32 totalBlanks = 0; + + for (int i = 0; i < count; i++) { + QFileInfo fileInfo(files.at(i)); + countCode(fileInfo.filePath(), lineCode, lineBlank, lineNotes); + int lineAll = lineCode + lineBlank + lineNotes; + + QTableWidgetItem *itemName = new QTableWidgetItem; + itemName->setText(fileInfo.fileName()); + + QTableWidgetItem *itemSuffix = new QTableWidgetItem; + itemSuffix->setText(fileInfo.suffix()); + + QTableWidgetItem *itemSize = new QTableWidgetItem; + itemSize->setText(QString::number(fileInfo.size())); + + QTableWidgetItem *itemLine = new QTableWidgetItem; + itemLine->setText(QString::number(lineAll)); + + QTableWidgetItem *itemCode = new QTableWidgetItem; + itemCode->setText(QString::number(lineCode)); + + QTableWidgetItem *itemNote = new QTableWidgetItem; + itemNote->setText(QString::number(lineNotes)); + + QTableWidgetItem *itemBlank = new QTableWidgetItem; + itemBlank->setText(QString::number(lineBlank)); + + QTableWidgetItem *itemPath = new QTableWidgetItem; + itemPath->setText(fileInfo.filePath()); + + itemSuffix->setTextAlignment(Qt::AlignCenter); + itemSize->setTextAlignment(Qt::AlignCenter); + itemLine->setTextAlignment(Qt::AlignCenter); + itemCode->setTextAlignment(Qt::AlignCenter); + itemNote->setTextAlignment(Qt::AlignCenter); + itemBlank->setTextAlignment(Qt::AlignCenter); + + ui->tableWidget->setItem(i, 0, itemName); + ui->tableWidget->setItem(i, 1, itemSuffix); + ui->tableWidget->setItem(i, 2, itemSize); + ui->tableWidget->setItem(i, 3, itemLine); + ui->tableWidget->setItem(i, 4, itemCode); + ui->tableWidget->setItem(i, 5, itemNote); + ui->tableWidget->setItem(i, 6, itemBlank); + ui->tableWidget->setItem(i, 7, itemPath); + + totalBytes += fileInfo.size(); + totalLines += lineAll; + totalCodes += lineCode; + totalNotes += lineNotes; + totalBlanks += lineBlank; + + if (i % 100 == 0) { + qApp->processEvents(); + } + } + + //显示统计结果 + listFile.clear(); + ui->txtCount->setText(QString::number(count)); + ui->txtSize->setText(QString::number(totalBytes)); + ui->txtRow->setText(QString::number(totalLines)); + ui->txtCode->setText(QString::number(totalCodes)); + ui->txtNote->setText(QString::number(totalNotes)); + ui->txtBlank->setText(QString::number(totalBlanks)); + + //计算百分比 + double percent = 0.0; + //代码行所占百分比 + percent = ((double)totalCodes / totalLines) * 100; + ui->labPercentCode->setText(QString("%1%").arg(percent, 5, 'f', 2, QChar(' '))); + //注释行所占百分比 + percent = ((double)totalNotes / totalLines) * 100; + ui->labPercentNote->setText(QString("%1%").arg(percent, 5, 'f', 2, QChar(' '))); + //空行所占百分比 + percent = ((double)totalBlanks / totalLines) * 100; + ui->labPercentBlank->setText(QString("%1%").arg(percent, 5, 'f', 2, QChar(' '))); +} + +void frmCountCode::countCode(const QString &fileName, int &lineCode, int &lineBlank, int &lineNotes) +{ + lineCode = lineBlank = lineNotes = 0; + QFile file(fileName); + if (file.open(QFile::ReadOnly)) { + QTextStream out(&file); + QString line; + bool isNote = false; + while (!out.atEnd()) { + line = out.readLine(); + + //移除前面的空行 + if (line.startsWith(" ")) { + line.remove(" "); + } + + //判断当前行是否是注释 + if (line.startsWith("/*")) { + isNote = true; + } + + //注释部分 + if (isNote) { + lineNotes++; + } else { + if (line.startsWith("//")) { //注释行 + lineNotes++; + } else if (line.isEmpty()) { //空白行 + lineBlank++; + } else { //代码行 + lineCode++; + } + } + + //注释结束 + if (line.endsWith("*/")) { + isNote = false; + } + } + } +} + +void frmCountCode::on_btnOpenFile_clicked() +{ + QString filter = QString("代码文件(%1)").arg(ui->txtFilter->text().trimmed()); + QStringList files = QFileDialog::getOpenFileNames(this, "选择文件", "./", filter); + if (files.size() > 0) { + ui->txtFile->setText(files.join("|")); + countCode(files); + } +} + +void frmCountCode::on_btnOpenPath_clicked() +{ + QString path = QFileDialog::getExistingDirectory(this, "选择目录", "./", QFileDialog::ShowDirsOnly | QFileDialog::DontResolveSymlinks); + if (!path.isEmpty()) { + ui->txtPath->setText(path); + listFile.clear(); + countCode(path); + countCode(listFile); + } +} + +void frmCountCode::on_btnClear_clicked() +{ + ui->txtCount->setText("0"); + ui->txtSize->setText("0"); + ui->txtRow->setText("0"); + + ui->txtCode->setText("0"); + ui->txtNote->setText("0"); + ui->txtBlank->setText("0"); + + ui->labPercentCode->setText("0%"); + ui->labPercentNote->setText("0%"); + ui->labPercentBlank->setText("0%"); + ui->tableWidget->setRowCount(0); +} diff --git a/countcode/frmcountcode.h b/countcode/frmcountcode.h new file mode 100644 index 0000000..f35f45b --- /dev/null +++ b/countcode/frmcountcode.h @@ -0,0 +1,35 @@ +#ifndef FRMCOUNTCODE_H +#define FRMCOUNTCODE_H + +#include + +namespace Ui { +class frmCountCode; +} + +class frmCountCode : public QWidget +{ + Q_OBJECT + +public: + explicit frmCountCode(QWidget *parent = 0); + ~frmCountCode(); + +private: + Ui::frmCountCode *ui; + QStringList listFile; + +private: + void initForm(); + bool checkFile(const QString &fileName); + void countCode(const QString &filePath); + void countCode(const QStringList &files); + void countCode(const QString &fileName, int &lineCode, int &lineBlank, int &lineNotes); + +private slots: + void on_btnOpenFile_clicked(); + void on_btnOpenPath_clicked(); + void on_btnClear_clicked(); +}; + +#endif // FRMCOUNTCODE_H diff --git a/countcode/frmcountcode.ui b/countcode/frmcountcode.ui new file mode 100644 index 0000000..3913afa --- /dev/null +++ b/countcode/frmcountcode.ui @@ -0,0 +1,411 @@ + + + frmCountCode + + + + 0 + 0 + 800 + 600 + + + + + + + + + + + 0 + + + 0 + + + 0 + + + 0 + + + + + + + + 80 + 16777215 + + + + Qt::AlignCenter + + + true + + + + + + + + 0 + 0 + + + + Qt::AlignCenter + + + true + + + + + + + + 0 + 0 + + + + Qt::AlignCenter + + + true + + + + + + + + 0 + 0 + + + + Qt::AlignCenter + + + true + + + + + + + + 80 + 16777215 + + + + Qt::AlignCenter + + + true + + + + + + + + 60 + 0 + + + + QFrame::Box + + + QFrame::Sunken + + + + + + Qt::AlignCenter + + + + + + + 空白行数 + + + + + + + + 0 + 0 + + + + Qt::AlignCenter + + + true + + + + + + + 过滤 + + + + + + + 文件 + + + + + + + true + + + + + + + true + + + + + + + 目录 + + + + + + + *.h *.cpp *.c *.cs *.java *.js + + + + + + + QFrame::Box + + + QFrame::Sunken + + + + + + Qt::AlignCenter + + + + + + + QFrame::Box + + + QFrame::Sunken + + + + + + Qt::AlignCenter + + + + + + + 文件数 + + + + + + + 代码行数 + + + + + + + 注释行数 + + + + + + + 字节数 + + + + + + + 总行数 + + + + + + + + + 打开文件 + + + + + + + 打开目录 + + + + + + + 清空结果 + + + + + + + + + + + :/images/toolbar/ic_files.png:/images/toolbar/ic_files.png + + + 选择文件 + + + Ctrl+O + + + + + + :/images/toolbar/ic_folder.png:/images/toolbar/ic_folder.png + + + 选择目录 + + + Ctrl+Shift+O + + + + + + :/images/toolbar/ic_about.png:/images/toolbar/ic_about.png + + + 关于 + + + + + + :/images/toolbar/ic_clean.png:/images/toolbar/ic_clean.png + + + 清空列表 + + + + + + :/images/toolbar/ic_delete.png:/images/toolbar/ic_delete.png + + + 删除选中行 + + + + + true + + + true + + + 中文 + + + + + true + + + English + + + + + true + + + true + + + UTF8 + + + + + true + + + GB18030 + + + + + 退出 + + + Ctrl+Q + + + + + + btnOpenFile + btnOpenPath + btnClear + tableWidget + txtCount + txtSize + txtRow + txtCode + txtNote + txtBlank + txtFile + txtPath + txtFilter + + + + diff --git a/countcode/main.cpp b/countcode/main.cpp new file mode 100644 index 0000000..64b723d --- /dev/null +++ b/countcode/main.cpp @@ -0,0 +1,31 @@ +#pragma execution_character_set("utf-8") + +#include "frmcountcode.h" +#include +#include + +int main(int argc, char *argv[]) +{ + QApplication a(argc, argv); + a.setFont(QFont("Microsoft Yahei", 9)); + +#if (QT_VERSION <= QT_VERSION_CHECK(5,0,0)) +#if _MSC_VER + QTextCodec *codec = QTextCodec::codecForName("gbk"); +#else + QTextCodec *codec = QTextCodec::codecForName("utf-8"); +#endif + QTextCodec::setCodecForLocale(codec); + QTextCodec::setCodecForCStrings(codec); + QTextCodec::setCodecForTr(codec); +#else + QTextCodec *codec = QTextCodec::codecForName("utf-8"); + QTextCodec::setCodecForLocale(codec); +#endif + + frmCountCode w; + w.setWindowTitle("代码行数统计"); + w.show(); + + return a.exec(); +} diff --git a/countcode/snap.png b/countcode/snap.png new file mode 100644 index 0000000000000000000000000000000000000000..cc8c1e75726ac5cc7dbbca1c71d25bad2cd01beb GIT binary patch literal 112587 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 z

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

DLhA)c3nY71agMIwD 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 literal 0 HcmV?d00001 diff --git a/devicesizetable/devicesizetable.cpp b/devicesizetable/devicesizetable.cpp new file mode 100644 index 0000000..bb65ec2 --- /dev/null +++ b/devicesizetable/devicesizetable.cpp @@ -0,0 +1,296 @@ +#pragma execution_character_set("utf-8") + +#include "devicesizetable.h" +#include "qprocess.h" +#include "qtablewidget.h" +#include "qheaderview.h" +#include "qfileinfo.h" +#include "qdir.h" +#include "qprogressbar.h" +#include "qtimer.h" +#include "qdebug.h" + +#ifdef Q_OS_WIN +#include "windows.h" +#endif +#define GB (1024 * 1024 * 1024) +#define MB (1024 * 1024) +#define KB (1024) + +DeviceSizeTable::DeviceSizeTable(QWidget *parent) : QTableWidget(parent) +{ + bgColor = QColor(255, 255, 255); + + chunkColor1 = QColor(100, 184, 255); + chunkColor2 = QColor(24, 189, 155); + chunkColor3 = QColor(255, 107, 107); + + textColor1 = QColor(10, 10, 10); + textColor2 = QColor(255, 255, 255); + textColor3 = QColor(255, 255, 255); + + process = new QProcess(this); + connect(process, SIGNAL(readyRead()), this, SLOT(readData())); + + this->clear(); + + //设置列数和列宽 + this->setColumnCount(5); + this->setColumnWidth(0, 100); + this->setColumnWidth(1, 120); + this->setColumnWidth(2, 120); + this->setColumnWidth(3, 120); + this->setColumnWidth(4, 120); + + this->setStyleSheet("QTableWidget::item{padding:0px;}"); + + QStringList headText; + headText << "盘符" << "已用空间" << "可用空间" << "总大小" << "已用百分比" ; + + this->setHorizontalHeaderLabels(headText); + this->setSelectionBehavior(QAbstractItemView::SelectRows); + this->setEditTriggers(QAbstractItemView::NoEditTriggers); + this->setSelectionMode(QAbstractItemView::SingleSelection); + this->verticalHeader()->setVisible(true); + this->horizontalHeader()->setStretchLastSection(true); + + QTimer::singleShot(0, this, SLOT(load())); +} + +QColor DeviceSizeTable::getBgColor() const +{ + return this->bgColor; +} + +QColor DeviceSizeTable::getChunkColor1() const +{ + return this->chunkColor1; +} + +QColor DeviceSizeTable::getChunkColor2() const +{ + return this->chunkColor2; +} + +QColor DeviceSizeTable::getChunkColor3() const +{ + return this->chunkColor3; +} + +QColor DeviceSizeTable::getTextColor1() const +{ + return this->textColor1; +} + +QColor DeviceSizeTable::getTextColor2() const +{ + return this->textColor2; +} + +QColor DeviceSizeTable::getTextColor3() const +{ + return this->textColor3; +} + +void DeviceSizeTable::load() +{ + //清空原有数据 + int row = this->rowCount(); + + for (int i = 0; i < row; i++) { + this->removeRow(0); + } + +#ifdef Q_OS_WIN + QFileInfoList list = QDir::drives(); + + foreach (QFileInfo dir, list) { + QString dirName = dir.absolutePath(); + LPCWSTR lpcwstrDriver = (LPCWSTR)dirName.utf16(); + ULARGE_INTEGER liFreeBytesAvailable, liTotalBytes, liTotalFreeBytes; + + if (GetDiskFreeSpaceEx(lpcwstrDriver, &liFreeBytesAvailable, &liTotalBytes, &liTotalFreeBytes)) { + QString use = QString::number((double)(liTotalBytes.QuadPart - liTotalFreeBytes.QuadPart) / GB, 'f', 1); + use += "G"; + QString free = QString::number((double) liTotalFreeBytes.QuadPart / GB, 'f', 1); + free += "G"; + QString all = QString::number((double) liTotalBytes.QuadPart / GB, 'f', 1); + all += "G"; + int percent = 100 - ((double)liTotalFreeBytes.QuadPart / liTotalBytes.QuadPart) * 100; + + insertSize(dirName, use, free, all, percent); + } + } + +#else + process->start("df -h"); +#endif +} + +void DeviceSizeTable::setBgColor(const QColor &bgColor) +{ + if (this->bgColor != bgColor) { + this->bgColor = bgColor; + this->load(); + } +} + +void DeviceSizeTable::setChunkColor1(const QColor &chunkColor1) +{ + if (this->chunkColor1 != chunkColor1) { + this->chunkColor1 = chunkColor1; + this->load(); + } +} + +void DeviceSizeTable::setChunkColor2(const QColor &chunkColor2) +{ + if (this->chunkColor2 != chunkColor2) { + this->chunkColor2 = chunkColor2; + this->load(); + } +} + +void DeviceSizeTable::setChunkColor3(const QColor &chunkColor3) +{ + if (this->chunkColor3 != chunkColor3) { + this->chunkColor3 = chunkColor3; + this->load(); + } +} + +void DeviceSizeTable::setTextColor1(const QColor &textColor1) +{ + if (this->textColor1 != textColor1) { + this->textColor1 = textColor1; + this->load(); + } +} + +void DeviceSizeTable::setTextColor2(const QColor &textColor2) +{ + if (this->textColor2 != textColor2) { + this->textColor2 = textColor2; + this->load(); + } +} + +void DeviceSizeTable::setTextColor3(const QColor &textColor3) +{ + if (this->textColor3 != textColor3) { + this->textColor3 = textColor3; + this->load(); + } +} + +void DeviceSizeTable::readData() +{ + while (!process->atEnd()) { + QString result = QLatin1String(process->readLine()); +#ifdef __arm__ + if (result.startsWith("/dev/root")) { + checkSize(result, "本地存储"); + } else if (result.startsWith("/dev/mmcblk")) { + checkSize(result, "本地存储"); + } else if (result.startsWith("/dev/mmcblk1p")) { + checkSize(result, "SD卡"); + QStringList list = result.split(" "); + emit sdcardReceive(list.at(0)); + } else if (result.startsWith("/dev/sd")) { + checkSize(result, "U盘"); + QStringList list = result.split(" "); + emit udiskReceive(list.at(0)); + } +#else + if (result.startsWith("/dev/sd")) { + checkSize(result, ""); + QStringList list = result.split(" "); + emit udiskReceive(list.at(0)); + } +#endif + } +} + +void DeviceSizeTable::checkSize(const QString &result, const QString &name) +{ + QString dev, use, free, all; + int percent = 0; + QStringList list = result.split(" "); + int index = 0; + + for (int i = 0; i < list.count(); i++) { + QString s = list.at(i).trimmed(); + + if (s == "") { + continue; + } + + index++; + + if (index == 1) { + dev = s; + } else if (index == 2) { + all = s; + } else if (index == 3) { + use = s; + } else if (index == 4) { + free = s; + } else if (index == 5) { + percent = s.left(s.length() - 1).toInt(); + break; + } + } + + if (name.length() > 0) { + dev = name; + } + + insertSize(dev, use, free, all, percent); +} + +void DeviceSizeTable::insertSize(const QString &name, const QString &use, const QString &free, const QString &all, int percent) +{ + int row = this->rowCount(); + this->insertRow(row); + + QTableWidgetItem *itemname = new QTableWidgetItem(name); + QTableWidgetItem *itemuse = new QTableWidgetItem(use); + itemuse->setTextAlignment(Qt::AlignCenter); + QTableWidgetItem *itemfree = new QTableWidgetItem(free); + itemfree->setTextAlignment(Qt::AlignCenter); + QTableWidgetItem *itemall = new QTableWidgetItem(all); + itemall->setTextAlignment(Qt::AlignCenter); + + this->setItem(row, 0, itemname); + this->setItem(row, 1, itemuse); + this->setItem(row, 2, itemfree); + this->setItem(row, 3, itemall); + + QProgressBar *bar = new QProgressBar; + bar->setRange(0, 100); + bar->setValue(percent); + + QString qss = QString("QProgressBar{background:%1;border-width:0px;border-radius:0px;text-align:center;}" + "QProgressBar::chunk{border-radius:0px;}").arg(bgColor.name()); + + if (percent < 50) { + qss += QString("QProgressBar{color:%1;}QProgressBar::chunk{background:%2;}").arg(textColor1.name()).arg(chunkColor1.name()); + } else if (percent < 90) { + qss += QString("QProgressBar{color:%1;}QProgressBar::chunk{background:%2;}").arg(textColor2.name()).arg(chunkColor2.name()); + } else { + qss += QString("QProgressBar{color:%1;}QProgressBar::chunk{background:%2;}").arg(textColor3.name()).arg(chunkColor3.name()); + } + + bar->setStyleSheet(qss); + this->setCellWidget(row, 4, bar); +} + +QSize DeviceSizeTable::sizeHint() const +{ + return QSize(500, 300); +} + +QSize DeviceSizeTable::minimumSizeHint() const +{ + return QSize(200, 150); +} diff --git a/devicesizetable/devicesizetable.h b/devicesizetable/devicesizetable.h new file mode 100644 index 0000000..9c60881 --- /dev/null +++ b/devicesizetable/devicesizetable.h @@ -0,0 +1,91 @@ +#ifndef DEVICESIZETABLE_H +#define DEVICESIZETABLE_H + +/** + * 本地存储空间大小控件 作者:feiyangqingyun(QQ:517216493) 2016-11-30 + * 1:可自动加载本地存储设备的总容量/已用容量 + * 2:进度条显示已用容量 + * 3:支持所有操作系统 + * 4:增加U盘或者SD卡到达信号 + */ + +#include + +class QProcess; + +#ifdef quc +#if (QT_VERSION < QT_VERSION_CHECK(5,7,0)) +#include +#else +#include +#endif + +class QDESIGNER_WIDGET_EXPORT DeviceSizeTable : public QTableWidget +#else +class DeviceSizeTable : public QTableWidget +#endif + +{ + Q_OBJECT + Q_PROPERTY(QColor bgColor READ getBgColor WRITE setBgColor) + Q_PROPERTY(QColor chunkColor1 READ getChunkColor1 WRITE setChunkColor1) + Q_PROPERTY(QColor chunkColor2 READ getChunkColor2 WRITE setChunkColor2) + Q_PROPERTY(QColor chunkColor3 READ getChunkColor3 WRITE setChunkColor3) + Q_PROPERTY(QColor textColor1 READ getTextColor1 WRITE setTextColor1) + Q_PROPERTY(QColor textColor2 READ getTextColor2 WRITE setTextColor2) + Q_PROPERTY(QColor textColor3 READ getTextColor3 WRITE setTextColor3) + +public: + explicit DeviceSizeTable(QWidget *parent = 0); + +private: + QProcess *process; //执行命令进程 + + QColor bgColor; //背景颜色 + QColor chunkColor1; //进度颜色1 + QColor chunkColor2; //进度颜色2 + QColor chunkColor3; //进度颜色3 + QColor textColor1; //文字颜色1 + QColor textColor2; //文字颜色2 + QColor textColor3; //文字颜色3 + +private slots: + void readData(); + void checkSize(const QString &result, const QString &name); + void insertSize(const QString &name, const QString &use, const QString &free, const QString &all, int percent); + +public: + QColor getBgColor() const; + QColor getChunkColor1() const; + QColor getChunkColor2() const; + QColor getChunkColor3() const; + QColor getTextColor1() const; + QColor getTextColor2() const; + QColor getTextColor3() const; + + QSize sizeHint() const; + QSize minimumSizeHint() const; + +public Q_SLOTS: + //载入容量 + void load(); + + //设置背景颜色 + void setBgColor(const QColor &bgColor); + + //设置进度颜色 + void setChunkColor1(const QColor &chunkColor1); + void setChunkColor2(const QColor &chunkColor2); + void setChunkColor3(const QColor &chunkColor3); + + //设置文字颜色 + void setTextColor1(const QColor &textColor1); + void setTextColor2(const QColor &textColor2); + void setTextColor3(const QColor &textColor3); + +Q_SIGNALS: + void sdcardReceive(const QString &sdcardName); + void udiskReceive(const QString &udiskName); +}; + +#endif // DEVICESIZETABLE_H diff --git a/devicesizetable/devicesizetable.pro b/devicesizetable/devicesizetable.pro new file mode 100644 index 0000000..11fb450 --- /dev/null +++ b/devicesizetable/devicesizetable.pro @@ -0,0 +1,23 @@ +#------------------------------------------------- +# +# Project created by QtCreator 2017-02-08T10:02:20 +# +#------------------------------------------------- + +QT += core gui + +greaterThan(QT_MAJOR_VERSION, 4): QT += widgets + +TARGET = devicesizetable +TEMPLATE = app +DESTDIR = $$PWD/../bin +CONFIG += warn_off + +SOURCES += main.cpp +SOURCES += frmdevicesizetable.cpp +SOURCES += devicesizetable.cpp + +HEADERS += frmdevicesizetable.h +HEADERS += devicesizetable.h + +FORMS += frmdevicesizetable.ui diff --git a/devicesizetable/frmdevicesizetable.cpp b/devicesizetable/frmdevicesizetable.cpp new file mode 100644 index 0000000..823bb31 --- /dev/null +++ b/devicesizetable/frmdevicesizetable.cpp @@ -0,0 +1,14 @@ +#pragma execution_character_set("utf-8") + +#include "frmdevicesizetable.h" +#include "ui_frmdevicesizetable.h" + +frmDeviceSizeTable::frmDeviceSizeTable(QWidget *parent) : QWidget(parent), ui(new Ui::frmDeviceSizeTable) +{ + ui->setupUi(this); +} + +frmDeviceSizeTable::~frmDeviceSizeTable() +{ + delete ui; +} diff --git a/devicesizetable/frmdevicesizetable.h b/devicesizetable/frmdevicesizetable.h new file mode 100644 index 0000000..f5e1076 --- /dev/null +++ b/devicesizetable/frmdevicesizetable.h @@ -0,0 +1,23 @@ +#ifndef FRMDEVICESIZETABLE_H +#define FRMDEVICESIZETABLE_H + +#include + +namespace Ui +{ +class frmDeviceSizeTable; +} + +class frmDeviceSizeTable : public QWidget +{ + Q_OBJECT + +public: + explicit frmDeviceSizeTable(QWidget *parent = 0); + ~frmDeviceSizeTable(); + +private: + Ui::frmDeviceSizeTable *ui; +}; + +#endif // FRMDEVICESIZETABLE_H diff --git a/devicesizetable/frmdevicesizetable.ui b/devicesizetable/frmdevicesizetable.ui new file mode 100644 index 0000000..ab1fbf8 --- /dev/null +++ b/devicesizetable/frmdevicesizetable.ui @@ -0,0 +1,122 @@ + + + frmDeviceSizeTable + + + + 0 + 0 + 500 + 300 + + + + Form + + + + + + + + + + + + + + + + + + AlignCenter + + + + + AlignCenter + + + + + AlignCenter + + + + + + AlignCenter + + + + + AlignCenter + + + + + AlignCenter + + + + + + AlignCenter + + + + + AlignCenter + + + + + AlignCenter + + + + + + AlignCenter + + + + + AlignCenter + + + + + AlignCenter + + + + + + AlignCenter + + + + + AlignCenter + + + + + AlignCenter + + + + + + + + + DeviceSizeTable + QTableWidget +

devicesizetable.h
+ + + + + diff --git a/devicesizetable/main.cpp b/devicesizetable/main.cpp new file mode 100644 index 0000000..6edda79 --- /dev/null +++ b/devicesizetable/main.cpp @@ -0,0 +1,31 @@ +#pragma execution_character_set("utf-8") + +#include "frmdevicesizetable.h" +#include +#include + +int main(int argc, char *argv[]) +{ + QApplication a(argc, argv); + a.setFont(QFont("Microsoft Yahei", 9)); + +#if (QT_VERSION <= QT_VERSION_CHECK(5,0,0)) +#if _MSC_VER + QTextCodec *codec = QTextCodec::codecForName("gbk"); +#else + QTextCodec *codec = QTextCodec::codecForName("utf-8"); +#endif + QTextCodec::setCodecForLocale(codec); + QTextCodec::setCodecForCStrings(codec); + QTextCodec::setCodecForTr(codec); +#else + QTextCodec *codec = QTextCodec::codecForName("utf-8"); + QTextCodec::setCodecForLocale(codec); +#endif + + frmDeviceSizeTable w; + w.setWindowTitle("本地存储空间大小控件"); + w.show(); + + return a.exec(); +} diff --git a/flatui/flatui.cpp b/flatui/flatui.cpp new file mode 100644 index 0000000..fefdd9c --- /dev/null +++ b/flatui/flatui.cpp @@ -0,0 +1,190 @@ +#pragma execution_character_set("utf-8") + +#include "flatui.h" +#include "qmutex.h" +#include "qpushbutton.h" +#include "qlineedit.h" +#include "qprogressbar.h" +#include "qslider.h" +#include "qradiobutton.h" +#include "qcheckbox.h" +#include "qscrollbar.h" +#include "qdebug.h" + +QScopedPointer FlatUI::self; +FlatUI *FlatUI::Instance() +{ + if (self.isNull()) { + static QMutex mutex; + QMutexLocker locker(&mutex); + if (self.isNull()) { + self.reset(new FlatUI); + } + } + + return self.data(); +} + +FlatUI::FlatUI(QObject *parent) : QObject(parent) +{ + +} + +QString FlatUI::setPushButtonQss(QPushButton *btn, int radius, int padding, + const QString &normalColor, + const QString &normalTextColor, + const QString &hoverColor, + const QString &hoverTextColor, + const QString &pressedColor, + const QString &pressedTextColor) +{ + QStringList list; + list.append(QString("QPushButton{border-style:none;padding:%1px;border-radius:%2px;color:%3;background:%4;}") + .arg(padding).arg(radius).arg(normalTextColor).arg(normalColor)); + list.append(QString("QPushButton:hover{color:%1;background:%2;}") + .arg(hoverTextColor).arg(hoverColor)); + list.append(QString("QPushButton:pressed{color:%1;background:%2;}") + .arg(pressedTextColor).arg(pressedColor)); + + QString qss = list.join(""); + btn->setStyleSheet(qss); + return qss; +} + +QString FlatUI::setLineEditQss(QLineEdit *txt, int radius, int borderWidth, + const QString &normalColor, + const QString &focusColor) +{ + QStringList list; + list.append(QString("QLineEdit{border-style:none;padding:3px;border-radius:%1px;border:%2px solid %3;}") + .arg(radius).arg(borderWidth).arg(normalColor)); + list.append(QString("QLineEdit:focus{border:%1px solid %2;}") + .arg(borderWidth).arg(focusColor)); + + QString qss = list.join(""); + txt->setStyleSheet(qss); + return qss; +} + +QString FlatUI::setProgressQss(QProgressBar *bar, int barHeight, + int barRadius, int fontSize, + const QString &normalColor, + const QString &chunkColor) +{ + + QStringList list; + list.append(QString("QProgressBar{font:%1pt;background:%2;max-height:%3px;border-radius:%4px;text-align:center;border:1px solid %2;}") + .arg(fontSize).arg(normalColor).arg(barHeight).arg(barRadius)); + list.append(QString("QProgressBar:chunk{border-radius:%2px;background-color:%1;}") + .arg(chunkColor).arg(barRadius)); + + QString qss = list.join(""); + bar->setStyleSheet(qss); + return qss; +} + +QString FlatUI::setSliderQss(QSlider *slider, int sliderHeight, + const QString &normalColor, + const QString &grooveColor, + const QString &handleBorderColor, + const QString &handleColor) +{ + int sliderRadius = sliderHeight / 2; + int handleWidth = (sliderHeight * 3) / 2 + (sliderHeight / 5); + int handleRadius = handleWidth / 2; + int handleOffset = handleRadius / 2; + + QStringList list; + list.append(QString("QSlider::horizontal{min-height:%1px;}").arg(sliderHeight * 2)); + list.append(QString("QSlider::groove:horizontal{background:%1;height:%2px;border-radius:%3px;}") + .arg(normalColor).arg(sliderHeight).arg(sliderRadius)); + list.append(QString("QSlider::add-page:horizontal{background:%1;height:%2px;border-radius:%3px;}") + .arg(normalColor).arg(sliderHeight).arg(sliderRadius)); + list.append(QString("QSlider::sub-page:horizontal{background:%1;height:%2px;border-radius:%3px;}") + .arg(grooveColor).arg(sliderHeight).arg(sliderRadius)); + list.append(QString("QSlider::handle:horizontal{width:%3px;margin-top:-%4px;margin-bottom:-%4px;border-radius:%5px;" + "background:qradialgradient(spread:pad,cx:0.5,cy:0.5,radius:0.5,fx:0.5,fy:0.5,stop:0.6 %1,stop:0.8 %2);}") + .arg(handleColor).arg(handleBorderColor).arg(handleWidth).arg(handleOffset).arg(handleRadius)); + + //偏移一个像素 + handleWidth = handleWidth + 1; + list.append(QString("QSlider::vertical{min-width:%1px;}").arg(sliderHeight * 2)); + list.append(QString("QSlider::groove:vertical{background:%1;width:%2px;border-radius:%3px;}") + .arg(normalColor).arg(sliderHeight).arg(sliderRadius)); + list.append(QString("QSlider::add-page:vertical{background:%1;width:%2px;border-radius:%3px;}") + .arg(grooveColor).arg(sliderHeight).arg(sliderRadius)); + list.append(QString("QSlider::sub-page:vertical{background:%1;width:%2px;border-radius:%3px;}") + .arg(normalColor).arg(sliderHeight).arg(sliderRadius)); + list.append(QString("QSlider::handle:vertical{height:%3px;margin-left:-%4px;margin-right:-%4px;border-radius:%5px;" + "background:qradialgradient(spread:pad,cx:0.5,cy:0.5,radius:0.5,fx:0.5,fy:0.5,stop:0.6 %1,stop:0.8 %2);}") + .arg(handleColor).arg(handleBorderColor).arg(handleWidth).arg(handleOffset).arg(handleRadius)); + + QString qss = list.join(""); + slider->setStyleSheet(qss); + return qss; +} + +QString FlatUI::setRadioButtonQss(QRadioButton *rbtn, int indicatorRadius, + const QString &normalColor, + const QString &checkColor) +{ + int indicatorWidth = indicatorRadius * 2; + + QStringList list; + list.append(QString("QRadioButton::indicator{border-radius:%1px;width:%2px;height:%2px;}") + .arg(indicatorRadius).arg(indicatorWidth)); + list.append(QString("QRadioButton::indicator::unchecked{background:qradialgradient(spread:pad,cx:0.5,cy:0.5,radius:0.5,fx:0.5,fy:0.5," + "stop:0.6 #FFFFFF,stop:0.7 %1);}").arg(normalColor)); + list.append(QString("QRadioButton::indicator::checked{background:qradialgradient(spread:pad,cx:0.5,cy:0.5,radius:0.5,fx:0.5,fy:0.5," + "stop:0 %1,stop:0.3 %1,stop:0.4 #FFFFFF,stop:0.6 #FFFFFF,stop:0.7 %1);}").arg(checkColor)); + + QString qss = list.join(""); + rbtn->setStyleSheet(qss); + return qss; +} + +QString FlatUI::setScrollBarQss(QWidget *scroll, int radius, int min, int max, + const QString &bgColor, + const QString &handleNormalColor, + const QString &handleHoverColor, + const QString &handlePressedColor) +{ + //滚动条离背景间隔 + int padding = 0; + + QStringList list; + + //handle:指示器,滚动条拉动部分 add-page:滚动条拉动时增加的部分 sub-page:滚动条拉动时减少的部分 add-line:递增按钮 sub-line:递减按钮 + + //横向滚动条部分 + list.append(QString("QScrollBar:horizontal{background:%1;padding:%2px;border-radius:%3px;min-height:%4px;max-height:%4px;}") + .arg(bgColor).arg(padding).arg(radius).arg(max)); + list.append(QString("QScrollBar::handle:horizontal{background:%1;min-width:%2px;border-radius:%3px;}") + .arg(handleNormalColor).arg(min).arg(radius)); + list.append(QString("QScrollBar::handle:horizontal:hover{background:%1;}") + .arg(handleHoverColor)); + list.append(QString("QScrollBar::handle:horizontal:pressed{background:%1;}") + .arg(handlePressedColor)); + list.append(QString("QScrollBar::add-page:horizontal{background:none;}")); + list.append(QString("QScrollBar::sub-page:horizontal{background:none;}")); + list.append(QString("QScrollBar::add-line:horizontal{background:none;}")); + list.append(QString("QScrollBar::sub-line:horizontal{background:none;}")); + + //纵向滚动条部分 + list.append(QString("QScrollBar:vertical{background:%1;padding:%2px;border-radius:%3px;min-width:%4px;max-width:%4px;}") + .arg(bgColor).arg(padding).arg(radius).arg(max)); + list.append(QString("QScrollBar::handle:vertical{background:%1;min-height:%2px;border-radius:%3px;}") + .arg(handleNormalColor).arg(min).arg(radius)); + list.append(QString("QScrollBar::handle:vertical:hover{background:%1;}") + .arg(handleHoverColor)); + list.append(QString("QScrollBar::handle:vertical:pressed{background:%1;}") + .arg(handlePressedColor)); + list.append(QString("QScrollBar::add-page:vertical{background:none;}")); + list.append(QString("QScrollBar::sub-page:vertical{background:none;}")); + list.append(QString("QScrollBar::add-line:vertical{background:none;}")); + list.append(QString("QScrollBar::sub-line:vertical{background:none;}")); + + QString qss = list.join(""); + scroll->setStyleSheet(qss); + return qss; +} diff --git a/flatui/flatui.gif b/flatui/flatui.gif new file mode 100644 index 0000000000000000000000000000000000000000..0fcff72f497d474cf89d46d11e369d9218d0592e GIT binary patch literal 228622 zcmV(r04aJY08={@VK+NTD=c>aQ&Ry^ zc{E5}DnoK9dU#R*08;=eQz`&SD>82h33@32dMPPV08>gYQc)>;d;w5;El_zqXHrrC zdr|;!L^OJS0eE;QLq$eOO;SfvT~408*v{d9)~4i7Qm4Gk3Hoddy7#gjFkmdI5n&SBpwaqE1k#Q&XowZk4_%eSraLgKmGOc>saC8M~Ysysj&NfGdEiFSU~OWN znA>`^+jO(*QpvJ+%%xt)$X3hwUgYt7)5&_w^??BZfGYriD=UHlQ-CW~m`?zNSTd$l z0H#wZt8fXVd@7JxPl{A#n{G;uZgZtlQ@MLdrFeA9dMM{iJo9Qi%zIMjQ&ZUM8{0f&H9fSG8NnS7zFeuC+0osEJ4v4R1Xgj|iBbDg46wTN7^n{uwBQnjUWqs)8L zfGhWiJkfwu)R$(%qf*_Zdg+`|?}>i-rc?W+eay^z@6Jl}%X@@~jDm-dg`J6om7Sc1 ziJYB@larH+l&gxfjgGOgv5bqfvy!K$r=+X2sf9SM2{LpnQvz;6($}GEP;z&yLDKzYTe4UtJkk! z!-^eCHl5kCXw#}a3$3l&w$I|qolCc_UAw>X>eYMqncKC10}CEZxUku`(C+SC%($`R z$B-jSo=o{y-^-XYYmQs_@n*!JLyI0wy0q!js8g$6y}55^$-ZLCo*lb!UDd7Y@_p_3 zw&CAr>79yK)~wffu!xiWid=bE;J@1qUl$KoiCHFaIbY7byZ7(lxkCRJ3_7=Y%x%Z3 zU(f#SdAhvg%b&mZz5Vy}^J-qrzrX+g00!vZeb3~#7i|dE#u#0u`32W~1}?}TH0%i` zTs-M4cNSO8g_l)_V^s*4bQq>nT`MQhNi(*aWtpy&+d=b;+@MqrnWzJ}zZ@X_}f zl$2I#X@5Z$S*4W{eo5MwTrxT#n`4>@R$5xAi4`g$qv03HZ#}PM*XTYizN5CadhS%*uEupgkfgEqE0^h*zW7Mh5A&LrS{jrQn7u?tqID zx#?_IYFXN&jgIPLsivMvCUvuJwZcF6=Bw`tvTnELz4+=1@INa6*K3Jp0c#w1EgtLe z!w^R-F~rGEixsqjS*$U&>sdQjwjig=ExX=cHtxwNQ!1sV=lUXYTijL*VdNe%TnQfEaq*6rM}%dy%RFpaUEFhQ&~rq`)W4e#K&dh79s0|e}@ zr(Uc$6P(d3*IOAJ*4WENqI)~y{2&eR$m2e|oa*u=0dE002OAGHIX#C-}h8MS_ADjKSzi7Y}xLE_R9-T|7{Cr$~?iPm$P#2X`Sm z+TDqSx6{BdI*^Qbyht1!Kt_u$=s+7VPaSobpcwzSl7|V#z!_NC#sr4A4kc1hdh4i! z1CN-MJWw$!QUt&i*CCDzFrh{42qFN`P^U0Dkc{Hkfe7;y2{Oj+2Wv#32JNH`2i8D@ zJk(+w?G(l^?7$g(a-LT5z{Dz^0f=YV#t*i~J+yf*WZ-*W$@*fxN?LMDE2~?}UgjY8 zNpfbMn%@A=LWIK|jtCcf)8eqQ0)!-vXRhqmpNQ5!N;^vd7e)(OtiTn(3??v% z01H|y@P(pN9RPMgk9l|wB;p7HN#^kf3x1A)A&i|GN60!7iUSUI%;N-4D2@=8a~dr? zo$c`Ci8*!=4KEU2JHq(IdDa1nU1VYxpEv)=LaqadF&KeA4Y`hMFfk9$y9NM+@JB2{ zaVwE9!570w2I6U;hS#W}Hs%OJI${umZdB$Lwi!Dxbg&L5jE4yw7Ktye?s&wzfE^+6 z(IJYX2hO;uGZe|lbe!#DkA!3-={BE9UGk`MBWn8W#>w;9=X;?P5#Y?yGoKMGm1b#2 za+;QvTADJJ{PPa07NRTY{iqSq35Rv6ly$^2UONa2Q+w*JrCPxuGPDwjfntS_TuCDmwGzGQ zHL;;w#3@&tcZn~iQ5tnxshx0GLw5h{p@wX9V>*eI#y!S^gDOpFv07>;%DM=3?GT<; zDlx=LNH2>Nv;kXw%9)@Fb*N7j-}sQq-IHZlTiz1^EV&>unY7mV&oT2}Ti&P7B`DR`7V)r~odRuq*e5p@@cT-JuDtcJyL{N_qb6s0jWof(_#*x2fp%DlC59k-mPcCL}OWdw8VE}*+Q#vlm~ zrEw*M@B?EQ56WPDC|rM~-TK#TXh9YmGC1#DM3&UET6oruqyQsUYAhIi8|Lj12Ol^8=WgFNA zG9d*S#d>y8iAEx_fhn}HL& z;JL}Oo)u1cCY8702?}(?4L)&-r#DvP=^e)z9k1osS8(E~kjnp?p#Yl_2}qDYs}9Uo zx7G=lZG)OYfrVj(Nf$x6>fTu&|& zGOGa{Zzb$E_NV_k_F!#kYoPpDLHlS+`&llCae~)(k(5iA(vDuOw+N1782=u9dBeKQ z#ga=1H^ji;Cd?%1yQg9uor`^v^lDiOti*KIfrTy#%j(K1JytefHhotbbNLa zgi}U4zot?dW@UF`b;adk^aMutG(Gu*75l_RIV286fEAShZT^G}55-02#}(>lg=V)6 zV~9okPannQXcI2I*{dR(;*>#+{F zFbgTja%katF6e?W7=!pggKf2Q6%-PN<%1J8K@db(*q}j1$VYduOtAw8HaJ4-RE#6` zj1wStV}wm{6j_y(M?m&Z@25{W6h%{nL_kDALj-=|2!GO`P)3AAPGkV+$A$dFL-8j; zZX}3JI05TqSp1iCQ)EGS_hkEMEcEyy0GM2FW{8T%Q)#h?jJSY~*cy-+iIW(Sr@?TT zmwA||Hxg%OU}9G5fC{u=B3V->us{zXX(uCDlCTCg>(CD9Pz$Hjhy=ID zR&xLJgCxOwBC%>|^nV66 zq!uwblQUV1!Gen~MBY7er~6Su(Xn-r*x)xhEPnX2`RfyvZkPvK9(S zmv&~Cmk}Y~vX{si8WcGnmxwokshs#B7f>}`p(koIah=$io!Ysb+X*pi5t9>v6{i2W zn&erYT2nE+vvGj(JH6SS?zwD3qZZvGoOMZ@#d&ZLnVkALXOYJ;o8+9&SssH{U4;1- z7(*DUm^2y#C@MHF?1_`+NuKZNl?NIo>3N~{6BztSpVMid_gPevx1Y(mobjPPE(4&R z;z@nEiG^9ADF=cUvmrdvprywmbP}P)0z4R+dM?_dfwQ9<^CPaop&ja>^C=%8Dx!Ni zftDCvC<<}VxuPuk7d|Q?3mPUgTB9}^mJ$jhK>8h3>Qf%GEeQIhG*TEtN~GRnq#p{R z+ohz)Nunj{q=1>CD*A|P8dYJcdKBs-S*oR9vnN~XrDm$0qQ@pt%BBpmr;Puqi2O;Q zYMQ5tI+sYAq;MLMl{lw#x;AzypiyRt0XvM&3wFdMTnJF_%fvo`;GvpAcxI=izx z+p{~{3iPlvu!s*VfSE>nv`Cw@O1rd7+q6#mv{3uBRyDO$TeVhuwOE_ATD!Ge+qGW% zwO|{zVmr2ETefCocgU zy0x3U%DcSG+q};EywDrH`Et8xbrz8O55b$g+Pl5n3%tX-5XJwiFUKprd6kNd;9JmCWy9TVl9NfVj%)kiYz^0457hJ+7e8MQ4!X})-@4LYs z{K7EYy&#ObQwzZ=e8V`L!#cdfw9CTQ3%@ZO#6s-5AdD{saJs3>!%DowOx(my+_pY! z7S}t(R9wZM%fR>o00p1|#+$@X{Ka4##$x=%QJfA_Y{i-@1a=^~3@`~6fW{wuzt~#> zFrb*?>%~`#4y6PEeB8%={KtSC$bvk`gj~pme8`BL$cq15$Qg$YR!a?Oa0N{;$&_5l zmVC*WoXMKJ$(-EDp8Uz69Lk)01!+JHR{IWUKn7H>%ByZ2#HV+TU!)8u@7DQ z3osA?fE)oZ@C#d8#%D~wH-HQ1oX+Un2L-?YV4%+GYzc470AJt(@QlutzyPlx0tLVY z@Vv&CD+KIZxm+O6a6G#As{%043bT;T`HRO@3k!=p(G*?L7JbneeaNstwa6gK9{tfE z9nvB_(w>YARGSRCoYE@2(k$K5E^W)nK(*c=%{2dA(>8t6IGxkZ>@)B1(tiEdfF0O=?aMw>4?2C= zh@IGqec0A)wb%?4+KkpKfXJ?arWW)}>3scTB=lO9XJ;+rItVz)b{Jl?HiT+{S&}$ejjOg$9D% z+|K>n(2WLGl?aPn-PV2G*qsPhs}z>4$SnV0*>$VI*xR|9jSHpixlSF{wT-!&-3RoX z)ddg%Zp;M(jn(vQ0jh1eU@g${Z2_8X2doXy2R*|goYqz~*}$FP3clcqTvh)d$;chy z5zD?y=e(9KA+*Y`rVW-b(0>&=TC0c`HLKaAO#tJ!iMx>Nn$v!3UY>(o;X)>^&er2WRC z4dl20&_}%ivi;r#pzD*H-UltYjn3p(OX<)a?H6t7nO^PI4$_Ds>SD-G(S{_Wsy z)1@91&rZ>+j=OH|xtcxapL+xOoaebd(0g9zgTCv=F1dR?==Xl?0DS|54&ZLg@BMt^ zi_Yjv-o=ovFVep741dVfe(ew+@td6O++Oh(Kg-@8?i#=G%RKHtQSK9c?$s;BMLoY; z&;sy22|lps_g?45{_DN2&;I`n>}!1A{#*(4ZQ4m*0Ls4X&5rOO-|#{|^bqjy5`Xka zPw^MO^h}@e9RKuC@9{qo^olIsNhOMTAkO~pT-+f+~Vb`R}FkMw$f?Mlz|e$VYr5A}i{?o#g)b&tqaU%*-4y@pQX zYroF=?FX%W&z2wri2m}ZUDoXk@9&)2hmPc0jSF!f#B=}XhcE3^Kn@YG4EaJ1d|U>V zKn0)h$2l+$)ldn1ocev71LJ@Ke$4wQKm|T?4=r%_c@Obea1Kte4Exah=P=1yPz+cg z4wj4swqFdBocxq*{Zao=$=r_x%^&{v&;@(n1btueR$vcR!20-N539@uz+eUN;L27& z57ht+tDOFoOw%KQ%yR{jknXoku`gb5WcWZ2N*LxKbcO{7@S;zf)ZHEQf;%1}Ro zrY3^h)J>GdN9X!&n%I%zBXcNYc8mD$+(w)^b#AQLGv803L3`GOP}JyAq)3NGWPvZ; z({v`BLdC}d)xQE+wQl9w)$3QVVa1LmTh{DZv|az>)tOCG5B&EW{jTI}WA*)xQmO+=3-UE1_%)Tvct zxwlMM6D;Gfh|~X4tVtVjq+>gA4f`Bv+`#wk%iYGd6J=dgFK6C7b9BYR5E zy6}2}r#t`k;9Ew%I~$emz6>MX$&h;zIVZpYDI^ENoz*Gk;9)hb$ZHTr0zjo#I*UJ3e@u5Y7; zpfUeTmH|>o!pf-npTmq&mf50|Y*w+w#sOPf2yURJTdBRR@?W@1GjyJJK0f51a%;f4<))Zy{Sqo;F> z@vMf?$2ayk=TkodrP50UG#M0-SfVK9iWn^Lz?W1Wq~=3RWgXR>dG>inprI0)Dx#Bi z{(0!pTDq;K2YPy`wxccsWqf{f@BXrh z+O!x`9d<{<0$wqx=^jzQLgD^LrUA~6agIyfzzkM7KT+X3Y#<0c7={pmT&E}e5QF~} zMkkPnaIk?KTix&^HL}=cY7is=2SL2yy9ND&93ZJlOkfhjh``WSF@|ug!yt=W+?v`lWH_}bA?7d-`$S^^^R*}j z>un1BSH0>+jVz$cHtFIQzYr&;-`Mdsws{wEc(bqmu@P1nN@xpPWXk{WzV(4E zn_%1w8jtBJ`3cfrZ5YNfka3RK;BAh@Sc4RjbDMej27d`G;NR+rxOe(Zoc|)^ChPNt zT`VIR_SlZ)7zvCwjA2pXkr;X;C_)c*E~0o^DChj?s7}rjKlMPwJ-%TIQnG|3-auu| zS|So~sO*LlSt%-IsZk8ovO~tC(uPW;JXp=@mpkQYjDlG`xI7Vi-`tVfTF{t(kj;Bp zd9k@3tE--2 z%rY!PHe_8B1xUR|5#}MJ$3!M=)wstlxK@;@rjLu;+$}D@YF8`mW*NoF4gTghz_H$A z4fE)dJQ2s-Wb6%a^Z@TW?}^I?c)w7*(6NNeyC&yaW@LOY=ZGG!~u6fYA=Jmh|?P*{K`$C}p zkf^OoYJ9B2)US>0s-4Z#Rul8pJ(+d2tv#h$<67I>=4VZM{cUiot|r1Jce!J_A)bZW z#>ZYtQloEGuf^X_G|aXW3ITwCA!-b=Q*{cnIbN7w)1CV0UW@@sP^JmJJfalcz@ z>UA(%-t?w8^z3cD8V{A<8|QdY{2g$RhkP^xH+adzjc|phJlG63wr5nV?1;xZ)fJ~X zFl)3#8sj@69p^c}KQ3~h|C{6{C;F~Yu5zR|nC0ts`NLr@@tN0L>bAOgP#fNJtatV2 zLFf9dhhB8BKlbQJC;KdyuJKW~JK67sdeNr-b{SRudP7-3*6n`d74+l^UFZ9@uh0`R zgkA98CPPmQQFg?8+7M@l_0OEH?6$*Q@;<$}FmnzfBHUf`L?uE`($II%+d2(BLBrrp zKWH@cBoT>c{b>`ycxpQy*)WfJi`_nX+@D4686W=&IyV3ND59e$)Chg?u}h7fyyNuC zf9yMYQjgY0f0p%teZE;c`=`tN_Rix%AH2c^JA6e5xFA3IWg&tBFyIRo;EE8uzZEW& zU;gEl*b zz(4S_KM-_37?i>FYrpr?!ymLkS=fLPB)?VAL1!C6BAi4@tVBz^L`=*?P25CI>_kue zL{JPxQ5;25EJag1MN~{hRb0i0aKo0%K((X2$Ri5|_(3~73lStiJG=oq5J5Zm!#~W5 zTqHj`h`|{gMqRXkJ$ykG?8R4LzX<3-NL)2ZWJPPdMr_PRZQMp~>_%_=MsN&AaTG;Y z#K0%hz}nlT?fZ&aBtJ{Il@$y>E~tcDlm+&?fgs!h5irI=+zLV5ie*ehTyRGA8$VfC z0fEGY78JtD1FE?jM~I9_iJVA^tVsWhyhx19NKY(Bv}3oSaJTH6Lt6a7TgXE?v_XYL zKOw+DF0jV}h(=}nf)-H5`{PFoSV5Ge#~w_5d`hT{%5mh##=E{)3`upQ!;(acJ@g8FtU-lrfiFOX`uoEhu!KhRKAZH%JWz1x7ptJM6;(ILmt^L=f!0&m_P13&`>#NEXct0Un zNIhJ?39ZXtJilC|$ApwWm*l|}ct#)e16Tl0+Dc0N1W*~BQ5vmL8Kq6@u~8k}Q6Ak< z9Q}uV$cG*sQX(x<`OF7=*oU47QX_3rCv8$BRZ?_Iw>QL#I7~+db)K$7M1{mZ^=koG z2tpC8gbKw>TO7@S+`<28)I;v%K`_{ZI%K~w4bQ&B(TA)F^DIz|%+s0>QhK;RJ%va= zwNpS1REeYqLN(NiMAYg-(8cTtkX%sMnz-Dn)EN;^R|63~Rn$YJDjfM!PK`(*#ZgZU z)kE!xQZ-eGOx2+{P=Wv_beu&?oz<{_QB-ABRsF_IC5T+#nWRgR&4Cmf5292%|>jk)@{8;V*S=(ZPZsyP{vFLtjyAA zU01D`)`-wnab?AB_11Vr#cr)vZVXp^~+o;`Ii)9Me zQd+RB)TS+4xTQd;-P^NeTffc3w+&prm0OpkTd#f0yT#j@y|=X`+`pw($c@~0o!m``QYwIRjo`1U_I7c3u!hT@fx+#SBh>OXKm0Oj8j}}L`z^z3(&_f zo&-bYVPb^AN}x>h69Gn^zeQ|BTzJGTW?m(})7|CZ4&Gq=&Ewv^WA)u*kG$b5{^OIp z#j_9sojhbo{$fRzW&B&odHl>rKFy-c&Yt8>m~3Oon`0QpReS(d@f}qf^W+LlW>2Q! zKGoi;XTrs2r{U+o_2=y6T%(;`EI#4T4U2Z%O0)1mTzF+fUQ_@3 z+W>I}&vMq~SUy3yBuJnXN}@E%ex%<`{>x8&QjgNw@(&P~rZ6aialI{xT&C4WyoZa7vw=7 z0B1vvM%LWxSq4!&3`Sr^=Ygcl)oe|lgiWvJ6+0zqw~lPdo@`QtYpylnQ?u)&Va8g# z%kHiYIHKIQ*Dre@{E zl^66u8KmV}JYp~~!Iq@KM~+ax25po)(Md?rH)c^6mE+mQZS2l&?e+=X22S3d=DM!t zTtPu?PQOO1gyeq7*hbDta6f%q$?>Z{6hvY+b?rA5)vku?r+Mr?75xmx<%m> zw(hTXT>nmR1utI!m+OI`>&zDK0)MuqU2qG(@V#wtX%=ulmhcIu#{I@{5g+jk?`}uk z@CP68g#K^}4{;KIaTxzu4gYQq_iYMhaXNMEv5j#a?{S8m@t?-*0mg9FLVDQ1abgIKJuh@aKXgQg>k2gSa&_>3 zfbb!2^BiZI$ENKHd_X!s6>ms%PVaP2AM-vRz(9u^WcYMbKXp`(^4#9?Xr}QL?{GGk zblGa!e1N`8N0oX=bzR?eULRo&A-++M8$$1OVlVbY_vtk6?KQt~S%)?kZ`IYi^;1a% zR6mCa000A6hM%x@00@9L_=!5`_HWMzP)LA3HFk8ra-aCTV27JDsP=2m_HDm*ZwGgA z|A}%x_jKQPDM$7aR`Upt^=98GTAy=i&k#d6^?UFDZLfnG$cO)XzyKW}_iP7+hc|@= zpoeqN0Bz@YkB4%f0Q7brmn%?shR+9whj@vn_+_y8e86~(=lGAG`6l;w&lPeMfd&sB zc!Ga+pE!6_+4X!k1qIOdh#vz%7=wH`2M(ZzI#7C=kNU*ShmnsPp*MG;H+l>}dZlN2 zr-yo}4}12d3pD?CWe<2}=lOc``91~uQ`z-8n0S{5cO7tfi=TV3&wF35z^aEExR?8f zr+d4v0le3HvA21HMp_#OWVQDtT6cR%L3L9Q004k`K?r=5pZIV$0AkPpVz_p5H+-r0 ziN60A$)|kF$NacQd2H|e&j*0e7k!#X{Nq*pWoP`xPa^-eZ$-$D6u38cykC8wc>1SD zd9as#k0<@oAD7>!hv1+1;U9zIFMj0zc-nVg+dnm(7x>&aqJr=J3rTogKL-kUgM3$c zu($Yy*LF~V{_5xVkYD~P+;#Fd|Ij~rpiuvlZ~ymC{wW2Bd;$jw{AchW!haAJGHmG3 zVZw+k@TIGm&IHAZ(D1Q9^{)WPkRnHtENSv2%9JWsvTW({CCPvIX41qbGonq85fSD~ zH0USLphAZdEo$^A(xgg%CL-wcDb%P^rw%lQL!h7p^zLC8lMj?uf#)-R6vQx^eIrC=1oTLBctGDzw@ZiFg*2|1p z5C8xMmI*W^Ksob#jPp4MP{TO(?Ao)_r8f9G`0(NdQ`>GBIrQewmkXR;{kr-1^5=IR zJ#}~J{0w)OwusR*M;^^KAb|xMC|hl|;f9cI_T}Tva1ly4p;6w@cOixuYKYxFbmfE0 zcp-{7qF=~tcp{1^sz^|W4n~Eae);j2QAPh*6d-E{iX?;`1uy^$EyZv&}j?P>agGI2xm&&1jm96-~O*k3_n}02oYefaDe;Wa??Bxdv&6lN)?N zL@cDf+9j&E_@OQ?s{XiTkg{wLZjh_g$}4QX-eyy7|LBA$!woz9FvJl{JTb);TYNFb z8Ed>T#~pk8F~}i{JTl1~-$!k=4_*K3U!>crw6C`>2~kO=<(@mqxSH0=Bab)qA?ppX zxU%cZNV<9|yHC<;K?DO6?3%$gA&)4HP>Bx{WaKOi_P`Pi>3^bqmgDS z>1vebYROAC=u57-I0GDHEI7+5#2!G#oTaKD@fZOsu54*Z&bSJhbdgHRvI4%ci174F zQ3HF^!eeW`Ip>{w{yFHOi#~eEWp8#i+MYdn8h~wc3*;@6x1>1DbZ;t>r+fD(gtAr3l~FRF$|ODr%&L#FQtp!FQDg<)J@?&v|2_EGo4yn34Xq4m z>jJ(W`%7E6Aju7W;0z1mwch{iZjyG~&ZJ?wIqJrRZ;m;59sHOCL1FeMb+ z2n8tzk%%*fvXxs~BSQb$2!S`Q&1G{W74UARDOdy&3`F9BzUU_ZZ~SkDqu_M$%xQHi*G$F zTod9Ov@*6$aPkbA)`{538f&Zxk!w=xioQ7dQ?H)=>`C}4teuQBu%->s6)d}tJyEu` z#)?QP8!Oug)pImtG=yt&TPJBj1x6`UDrcDr+TjjYv{NPRX_Gsi)b3=pP0%fL=@b#0 z&bGS2sjX+!8Qtxkh__GiZTWz!Ejbdmym~e6M-TE><+ArXg9WK!xhr1{P1m~i{S9_E zquu%PH$L8V3V2Z`Ubc1CyaskEdUsRR_A(eSTa8FpzuMmkYiF#ny)TA|lHZ-&mcky^ zjEj1Uvfuw|7LMaB@PSkO!~`o?qz!(tUQnu1mb&!AHa?7H7n|W73+1t!i7X;+EM&M? zmNU~b8;Mn?wtfm%#ZG=2i|>h$ZEDe*;1s7<%PHk8Tdb@+{&HH^O3xva`B48QNPy2a zU|T-9&0vZ$m;aGTyo@vr?~OB_BUV!|?|7#@{b^9kENG_``Lc>S9bJ{o!lg2x(T;vJ zq$4fqNmIJgmcBHmGp*@Ob2`#+jPHo4<1?+bF!gM$E}2ttYPXo%3AREQdMJgD&)MgB%7c5V?L%zycWD zT+wz7ZqK7Gbzo0YYLy&1*0Zj4Vi%q1M-R;jY|iwiPkYf&pE}yp-sqoiz3py)I~cn@ z_PNuY?j~0|-X{%#ny;Yme*Zh*121?JK!DP0hdbgEuXydrz3z@5``z;{`9||y@Rt9- z{NN{j_{DR+^Pc}&;~($%$YUD^^VkCp?);B)cz^+7*bM6#kb`^dfdOZz{S2s4dq|6+ z92>BBBQ!>%G&UnHSdUR1 z+D;UsAVy&!M&Th&+TCc$15R2aCZa(I;0vnZI5yht#h@4B;JTUO52pVjDz@VAy`q9x zV_)sYI@qEv{v$vJq<)CqG!~>m9wb60q(UwvLpG#CJ|sjk-6`m!hd^6465}?eMmI`f zz-3!GJ|YW}AsZ6l7-HgRbV3W3;V2fIJl131C4(xuA_wN7KJH;|_@hAPq)q~4FGi$K z{v=QarBDtfQ5L09I^IN{*+A@uHm1!WZlr4HoJTsM3LZl+{DbeMq!=0?89G`H)WbO7 zpeUNbW~8CJ>EPv^A`l9p4+xUcM%5=7(U;CT-THZQdqs0%c+515;w8Q*z^CdShc+TlraGM0mqU z5@70KB?oBXWI7rEmV+^fZOS8D3A82j~XRmhS+xi)jmS!n>CZ&)97?CFEZ)zliMrD#NshO_aj9wF>^kbB^X$t8mPzFGiYAK!8 zsh##Emv$+deW@@iC{%vqnFi{wu^lZwshb|^Lhzzd1^_770*q($8qlp&j zdmgEZmZ_k2>aHcB5(a=wn7}Xip{W8LAc~%!jwzses;e4YntIf!B8sSvYN^gDu5Mha zKHjP#>8t)Ktm@~5=4wRLs;v?$vLf8Bj$W89sILMmv|1Xdf}pV;YqDM|(OGIjoTx;M z>7Nc~w1%r{3M-9b>p@hjwVJECmYcRB1h*!{M5O;{gEpC))$4#v>j$FiKePj>uB*SA z+OpPNuWl+{B!|HsEW#$N!Y(YsHmt)wEW}2v#7->59xT3kpuX;Fzy2%7N?E`@pOK0w zk``>mmaNI1EXt;=$}a51;-9|G#6{d{$IfgveeB!~?7Wif%I+-B_N>pAY|Gvsy4D0b zm;lWlZ7bO<|Anlx66{_4EYwD=)c$PH+Mltu!%Ucf)@m)%cI_o8Ez{vFndx` z4R7%tukqpoZ!RA3O7HYmZxgobLA)#8dMm50M(*-1`Ic|O{v19KK|}OiLlA-RW?eqe z!|}!g=o&9QRIdr3LpwaL*2VAq)^F(Euj2Wy@zU?{3h?%p=(b`iit6py@~!zsa0DZO zB>dd()&fG*0z+VvDKr2*pa;U10YY$v2q#?hwuAQa#`GFQI~2eQpaVh(LJ5mP4ID%V zf3U)qFu9#@3g^QLM}#RD!993DHOT)k4I{)6-|#<>@VxObPyBF1fN;Xra185!u5zzI zc<({vt;jlU6QJz@9K!`jFc~Xs0#w5}u-rN@L_9=9JTOG(0iIZ(hGAlwOW z1{5E}9W<;~C~+O@vGMY8=u)I0kbwt~fECMdLL_km%tHp`vApf^PW16XI5NWsf)#6A z?K17{{=@hltN|>+b5LvmXrV!n!vcu0!yW)N#DT%eKsX2h6&OSwl(E#F@#?XhDl7yB z|HCh^01Moz219@XLdA@BdhHB&J{{ISByv%Xm_<}QThaxQ}QsqKa@?n3aw9zZpa z!zoK_D(7-?gz*?BY(fJ7EX#6o(DHMjfhOp3)besK$Es9y=RdH38wqnm-0DKGKteck zC*uJnYw|y^^goC~C&yd;jz;V51}Bd&1^_@xuk<>1+e~{#P45ICRDf1w1wD*KHNf;{ zxU^4)E=`LrJkM}U`*8{1G#%rB9{(C58GnzL}MQWS1AATCFDR0Y(OK|d^7L$oW)z+mM;aIGcZmHADC{U<>wc+`}Zh_8iMwX(z;G9|SgQGHV-zRWIClBSd-sgGvuEHMjsh6v7)Q zH4qDcJ(F8|AH;jNv{Zw)C(-j1>zj>604n^#V9~=bpn_gQz(?)&N8`gYIPl~CcEXbN zJ>bDvtMWf+0z(JDD?En{oWlh?v|CR!T+4NI^DGU#R~mElKB`Vg|H4Rnr(cV608>D$ zzat~8VGH;jQ?k7M_d&G(_j#9adbjkBA8e0*n~<|GR7Zq&133*JIT9~Yccrr#JvmbX-Gsi|_1S&ZX z1ZcT?GekSUvre=BG^W3Fa*VdOS#m^RayBzp&_OQ`=LfE@0C_ptZ@i|O@ zm1jDw?{FbsGOiy4Qn$1`WAhT{^uos*NI$w~3^N4exVw5ayi$0a&v{rsECG~kaWgcx zKL-_Wyt5H->jH2)Ah4?|hrX-5Jx{*W@0bpylKAZ zraq{{_Z!>+6>IvY=P^CUGzhc3uq}i~D@;fudoc0`J>2~>X71*;dFREh z>v}Fe)bIWS#6N)p2^KVX5Me@v3mGM0sW672^dlqe4wQJe7b^A6V3kWQJDf}gu1*VPZsL&>jdH44HJMm+zS||VO8X9?W<;$5jcm5pu<#nVZxH?Uco~w}%+8t~M zn{Ri8G-=xme4DUt;Op792QK_7ae|bi*SCKke}4V@`G-`k5|v+0qvsb?wmZ%s*T8#8 zw%N)%ZztRe+s(ZSExhn4_%xDiKI8iP5X2Bg9FfEl!@?&e(pVq@6;z0ji!>rQ-0GD7 z1zS30Muf=wg*FHW%grzhg&gui4I|siLlc!;lF25Wd=fN#{v(Y_DpARCD+OU|1<7 zOE%|Rl+i{VeH7C12;>paFn|1~fJ`;rl+#W<{S?$tMIDvYQcXP-)lLyb62VAaeHGSN zWySB$KnY6~*IaeomDgTJUA4GYXC0Q z8tY?mK60|Ek@f}brQO98>axu)Rcdn)sygeo-F|z~t%;t<>!kk;nC!Fl-h0!ut7aSS zzy%+iM7a~K8*H%ghBty&L?D%cFCOo7i^&U!U=j;7#oU6(C%>VRPPyoV?^FHWnefzA zUmZllw?aJe#UWQh^HdoC;}l$U-#v6rZ?L3xO&Q2s(;GTY z-P6+*0-W{iwckE7*Smf>abIK~l>u0Q*Hs8RiVyt;=%KfRi|74tes}nFmxT!T)h~bn z$20wXdep0)_o#(B?i~<;39O9V4k9J+#ZG1dBcJomXR6Wt?|21BUjdBwsSR#0Q~jGB z=Qv0@5#G*y&+DB4RYkyZ{S6{_D8oPQ5r?7}pc(@?#{_10kaK7thyOSS1(HFK9U>(F zMNEziX=p>D;82G=RLBsOXb^G;0EbLm4ijs5!ypP#iU$!z4G5x%9tz|fJh%=yW^kP) z&XA36q#+%uVMZaU@gR0g$Q`J_JtoGnAorl79n&bsK*~Xhn&_kdCXjN*xIsoB1$f;9 z6&Jz0iK=|MvjnPy5IPb@E_m^S-ticqgcV2vh0gCQ4~}-;!$Q;NP_4RB3(j@E|JMgf%x($NsJ;=76||-l0yMsbc-?(!c0U8 z5s1$ez%KGus#uZkk0DN|6CQ?!Xi%4kVrBWQrrx^3FxYGb!_|=TZ!C ziK3A4mfsYJA`PNNMnUo)04RV8zBeAbiO-Uy%H%C9m#WH@@Kd*2q46RhiA;S|c(9Pg z<6!xU+O^MpE0yH{hn6U{9mJLd5k&$_;!HsR-~kvws3`>hpo3ewfF8~q2or~ClmNUT znU>jUPs91spboXD1No^VP0@hU+`|LaxCaJ~VpO*H6CqOtXAZ3@RDlrHtmh=7IR&8t z06bNQ9H7TNGVq438ge0M6^kjd`BtwUvlj#T!!ay?gLCM0tV)?{Tnpk*wFnkYgbm_f z5vy3nI##cuFsdjVFoB~afD}0R$4`r5RLjn3IG8E{3{G*1`M|D{Op_ocVZqT`{wMN#9OXVk8r=Rm)UZAc80WQOFS1bK(`OK@>y}O`%%Rj+MN3cN*k_ggFNRQPHY00WLEUIh&oIp@2q{BCzS=lbX}gt)!$B{V}~ zt(H!sW39*ZFhFNW=N$_my$Nnh#UFL?jF)$`WbE&+Rm<9a0~t=_Ms`AIqU?-{>x5vC zUX-28!Dw&Jqzo{D^D@Y}PKMCiU+(!#$Ba`$qxzN@An~CEVb=bxmM9Qlzy^*H1kqMq z*dHM|NO)}Ku}(e1R{!^`_kE8RaGeAHo~VH!=1uIg99*?#m-<_&u6BmwxUP7PIE4>u z;kGojD0pSNQ4BzhunGc)tTyuw&+F*7jNM6yCyL_jd5M&xn&mwXJIvoCbFb0E=1PVa z=$f~`5W-@GqRil?uDm%|s4sq%$ac41I{T9@U6xJn?n6o}iZX!x4sm67H2;0hpe8)s zMX@_VFz=D#AK$gg?|0&%TF(Mp`o?q*D=(`)#O4>8_&6{=^0mKk9MiR!f98N59zb}& z9{VklF38mx0#*X@%1i(dDh3Hc1pQ9I0^kK4ZpXapyCkmg;w%63YX9I%^X|&sJggwh4hs$I{>-BK zm;?a_g8!<}#tP5@p$gcHVgehb0wv`F#bmcMP!5}g0~H1$81SxM;MNq5`EacUhR6+2 z(Cc)-1`ERc4391F5DEA2rY1>JcqF$la1MvjSL$#e za*Bp9;MG12>ZTCoAnu6&90{QI4H4PG)xL-sJ&p$dtq>*fmNt$krtj_|;u_2A*0hlX z&oA8w?h#MR6+6T&!f+eWh!nYxhPDvbs8JHRaGMU07UvO+9FZVci@dZEpzIB{da5~4wsA=Ba&WZj=MUrb@l}oJtHGsWg`^`KhR+oT0ta7k|bMU7SLhlbfh7ZOc*87 zB~6DSVdz6T5>jYVGi;IqJu*&aAxChg9eDEeC`D`@@+FHBZDP{g_~RY1WhtSfDXrxx zb#g=+WFYc^A}pdE&>>G!(n}_VN0!Yf!?J}GvVg7!MB-sz(DFmnGGEwIDxribtpY2v zQY*P6C}T$T#8NN+ImH+S0vVUXE!QP5^8At zH*-@rP4gcVlOhN~F{N`j8B!?0azI_OK>MRXi)BNVqeF+~ zLmd=4Ak;tqCsZXXv@$RBC6iM`Thv7lh(skcJqcnxy+uV=^gV0oMR$}(35P#}^B4Ye zGKZ2qZxlz#@`ZLLL_woZ#;A)FZK2Yuj|hSs7@z`rh>M)an!ZTSm}E(r)EvX{9{}l= zv^1KO=#Sdzmxfg2aw5|b_vd)$*HO+p2QJ9CUrlYl#Uh(7c(^>rtv5Q%AQm)M4+jMj!2sH>5P2o zR1MLzR&`7TU`h?bQt5F^#RyQvNlcBXRnfF4=1Es;^;L5fXn0aMI1?mibRcT9Y50^F z{j`by5a3Gt1DA$D1B$^=?dTpBfz6Pj&(6tLor#fXAPx}fil(%Npp{bV<6NUvKgOs~ z*-i%Lfexrap~keGu&I~S^p+A!AQr2!jHyJ7314fdkLqh(OI3wd4hmMh; za%gr_nr%}+2;3}(gfJ+CBkDm&EpJsn%Of0-30^u-^6`6lrAt z>nsigZffC{iiC)W2EuLk7S|+JjHY&Of2Iv7v^cMmd}s$(kn4W(hj(CVcdTu?I)`|C zws?-ma>2|fg|>;X7EH^O4CH`Xtu>f5fedWOkpOl~4^3~)5So0|ZoxBSN%u3FbWpoi zOXtaJ1)`o_jR1*ao;V>HnDGwcH4gfgJADX<8nAHTR$=9qaCNHB5;czUHg_A!aN+iD znYWKRHhHtRj|S?RJeCCwSE&>iNsDGkEi|OeCxAu;b2i`$EC7JGAauB`cqTyvL`al$ zXMU0k40NXw7{H`_&OP6^+~AX8b=Nbj7Il+$b!W(o7>OvJz)cJFNsD4iAvN*;KK6QX zH-hg&YYX*`dP3L*f1Eec@HeeFKV1INrmO8fp zwm@@+CyOyON7rUMZ#O!&Qxl*7b$K8hl=g0C2y8hub_02IpXtyTiUdhmf{V6$<+HqM zz-s}ikb;+q=|K}-jSP#Zc!AYG8w#PMcVurDpk%-flEGBVSBaB&dP^C6m&$qV_HUi| z?}S%k|F)r^7Gteuiu1IJWtPe4XOm6^0*-D|KuLj%s|9GMe0HvsPKnz8u-JGkcXxJ< zK;ziygjhfD02$;!5^A7OFSw6mL0)r+YXw*R%7CHrR)jYXkw=7%?*mh-A(+@{ujt?y zCZNwW;Z$Ll2Gtf$ZaHoT8K8{_&dSSnBt5=o@+In9%a1DZ%{W)lI zxjJE1em!NQfG?z6N^*6l4?yYJcIOnNr+jp;4{9&mysQs4sB+Rcbg6mx6nZ~+sf%LO zjx<39963`JDUPlPp%_VGRrqeFbevcDL)zIs0LqaSDvktc7F6*b6oaL2Ox4$y?kSW_!ihB)iaga-r5LgSG-j8zmpvL({Q7xDI)6FH4n#_@ zXRr2(=X{LEurqg>A-f{&a707_3a%HIOk0|`mXYrHR%>V(Z_TI^Ft-oLoDx-)DVx3Y z`H*S#Oye|x?wUsPdQZQ_uRT}1HD|C@X#)=Ua<6UopzH?!V!^xnl%_4x!A~5;u^W;O zCw}!hTEP2q13Str;C^8Ny@PJ(6q|Fo0C+A4IZIq&;IuP@+*OF2GmIQkkUYgL1HzM4 z!i|%{9h-j+7O&lH2$D+w! zR!m7Uw8z1yk%+kxHN#~s|sUEIqZ-OpX!nSI@-z1^=}+v7dl*`40qz24z{-tArA z@!j0-ecSte-;3STK^-DR9lH=6KOp@{6do-YzDXRO)5T8E8JEx<*WgFp%#$+WH=g6= zWZ<9N;xGQ-N!>3y-sDfdO+LQTLtf;AkK{9Rll2AS%VOr0q~=k+AwK>YcA2|do`nz| zh43{y^QQ_#lLTl|T!_w>0 zOu^fXb~t&a8|dW%)zv;Oq^JOsIorOCIr7_-1Q!DKjZoC$f0{w^CXNBHARQiG z0%s{4vclvLDOfybJ>hZS&0|K_UHi89@#N)_E&CH>(4j?*K1<59>C=B<>)XGNKfnI1 zW67EYik3`iv2>0Gq?LzYTNsf4kwIR2^(6=y7ytkmL?&s6gL4x)b`VMeI5r$a1|~>i zO$8oUVuGSP@D_58JvN$M0C1Gh9WUPa;$nroAxdEdB`^;LA*M*=OecO;<44bZ_gq3q z+Lh62^mM0Sg-N>9q#!_I5M@PA7L<{VGZI8mZB&YgVv%aDY14TZ3QA(+zvw&_DXT6t@(cTqPgause$p@tPE zMq`<{UYU@V^pxpgvY&qcRBN`Ox;bc^1HMG3d+^~o-=F55i!Qo>?$j+pJ$>uaTA${s ztz5YYl0$~r)t0-l7sSw++;#0 zLO0w(65?1k&qZhdm)XnT>8(-cF9Yq8(GgD$yJb%26gEgK;8SPS^6ANS@4ox)^_yS| zSl4N>%Y@m9iDB!nASzfa(sEL6+F_*F4vbLV|150$@ik%Az4tD8#$j<%3N#Cf_qb!B zbam6*>Cxh!eG!+DQFnUgwwCUztHnN7Flkk(QWZg!M9Ku5=$s=6NSjtg0=Ss)&2NG) znH^ASmyp}#?oL)K*YCcQ^b(-!p zFM<;?KqeHh7mZ}3M*(<&kMo=}8RVZbXac>`RCvJ#z4;R?0Z!l%7Z zK!c=-C~| zv3@!!p;AgyFy@xBbJ?vEeal;%05`bAEs|w*icNC46`in<>o!LVTUdm%oTDwRIa#p( z0Zy7z2o`m1NJ(o-+SYclxb5d~i%UQAqL(x0U9Wq^bKE(tHM7dythq{CfOU%Yvx1FE zT}PPCs1Q}0p&Vr?ohx4b*fvg#eaTwd0bzvH1;P>j$Al>?VF_c{!Wypdg+1Ki35Pht z7T)lOMOM!{{r&$0F)bGJ1((@te~G0B8`04)uNW9SPlUFT#1-Lz-npC)tZ+Fb_IV z!|4bydC5~#a*s!*7YX^pF)V_w$(ueoR08sb9|q(NiTlM@fATnJ-(yWDfZs0? zhwjt+)V87WtP{pS+Kmk^rp8UR2B zU^g3h_i~vrbSMaNzYzz3@qtn2aH(;FVMhh{hb1|ffG+ogs6qi!mxN2_gG4BVF!6yG zL41&hc^8CSY~^nSsD=2Ua}IVW=Ql_oM+R~bdZWj1nm`5zXC>0d7)9qCAt!sBf`L!? zPjom)LFaTJ_j?)xc7$;O9cUZalnBBbtJ-~bVs;@LgXItq1ieS-&@d6Td7lEzhfM$4f z520|b=NL~gfhBh-A?FxM=XiZ{b+iaj$oNd3;f8Fue(GKZuE$Sa%;%i^QRcdN_*nmyHYv5}Zg6q^OLg2y<~#g@$BJ(2!g;XJ4=A zk6ICn&c;%AAdS1XiBLd>JP-~LxQPH`f_(^#5s8j~;f9;2ba)_x1nF`M_$dV$J6~4~ z#>a*v2#=a@GFoJHgt2yAr*$gRAzvbdN0@Y_?3414j?qif>WjTv?gfgi)v*ILx83$fw zBuND(_jU;f0OwbcXt_*8hcNKiPqRsy-ZMiMLwqKOa_N&9^01dIL6%t8DShcr^=FA1 zp@4$vj*aOn8aR#5!xp*l5j+Ymz-h8b};ph3+j18SrC4Q zB+&R0D9J=u=Zuk~oGl46DQS0QB#dZ8ag|tnY=k11sE2p7i4Ka6aI~TvCzKz$5;L@T zq-dW6u|$Y>nd<2is~8`&W^?iRkMo%j&&Ht|0R@oQbOx%I80mU=iA!;yOFmMO8X8a; z$23%=lX^FT!iXcu^ozCmF(P-R==p1yxky0Tk3u@6RH=E=gr(>erzkV0#8szeI#y`< zqusWqZ2F2s8bf!gErLo}gqkgeDp`n%r!u9dOrfTJ>Y0GrY>P^%m1?Q()u>DHsE{g^ zlImEO3aX(hs*K8``$lYgN_pu*RP}`a3w|~gA4L_h68ZlXt=;Oa{zR?8}WkV)5?U)GwfZCa|6N}p}EW?!aeX!d4imSzGQ zux{qB1beUs%dY^Nu>HEQ1FNwA3b76=u?0)92>Y-W%di>Sup3*k9Xqiei?JWeu_a5g zC#z)P%BR~zPvpuK<|Tq>KYZzW2W z02ZrSPp&EzuqqW1FbOF{YI#QgSL%uj_v(+iI)mr-vp_pP|cOBhkLHz)dDj6S~MH8 zBEVg9Teo&Fx%FDPGwX`m8oIsfyT3~-qf5HQYPzbbx-mOKQo8|(%LR7OyoP03xbUv_ z6uGvWxVZagy1RwE3%uRyz26I8rMiknp{d1-E==1_dNsS(J5o~Hu9Y;qoFutz%c?H> zre2R6Pr)My3G&ae#3L07FM7d2uoYx|FkV$$~M{adta1z$n2QnK2OlqD(>y zzIiIXS4g}^doF5wyHSy@26kXVunMs7POXZwx!alCs~rNMMt8^}LDMe}aV9v_B9fsQ zQ->_h^ujS5O`8J56cm?Ogfmyv4K0E=CvhAS3>o*p3(fa@(MKtYcpW9SaS3j;?%0h!2Lv(*Y93u^rDwT|if})D-foX%=#`mkY z2pBEQLB}7NBz9cGtwSj`Qh|suAw$AP(y<)H@}MAb&B;t{A;>*gR2tQA8oX>A6C5oq z7#lcx#Vds+yWxYFV>+E9$=dPG%7M(v@^?PNGp^%0l~T{Bv&F7b9KFmgzdR>u?4GSS z%-f5 zYxfvCQiyl3CHj1%MPnc^=`uQ~I>3U{mi#}f11jDbVP1OS>+bxdSTHcZm^SwCpqfgyM*sUjGx z(jznt6R;vHNzBeFlMzSU9RMT%-UuvwtpnUK#7%-M=h!67lGL?CG(+t`L1T`3jm8^% z&`+(@NWW&Zkl^0E95wvoJVg)oPtRIhodgQ#b>GF>xI| zi_tNpVWG3s#5eN9tu&A?+1O3OM>11PIL+D_A;zLpBl`Rtu0zW`tvRIAGmK%G_m;-L zu#ZrU*_qwY^y$Dil9b|;HfzJkTm2VuLpPJ*Hh2>z*wVvWWJVk!P4j)AcL+Vza5$E% zIE)kjEsxX5%k)cOWjQj7)T|@ard&mrBboBk&)1FJl$}uYpxtYH z+1-tEF1*x(q&ySCJdd)P(W3*?BLLMi*2aiQ@sn85!)8F~-S7 z%``>?6+Q_RBKiZ+KXW>qz19blJ-aa2dtvgm=-M+NlgI6CA6{WVs2(7yoc34Lr~esdz;Pp=gJ zOGe}=pcbff?CJT&p1$FruH9fx>Hufz z!OrZ>4(whI>d2n#?>6Rk{kvKi0uEAR0vKk_O6@g@)R zE-&*IPxB}bXBrMJ4T6(xift~F2fWC<$(Riq|LCKUPF+Vw{I?nQt3*`E2DKlZkR^@EQ) zXO9&RWxrf8!tGQEau2;86;I!#RkBL2ANBfnU(k4;zwsWIa2R$A2Zj&#ei59af>+82 zT<%L0f6AAM4}5hItb(|wa$vfVm4EvbwE2Ob6y(d@zn@fJu~8xANeIUOUBf?00C5A? zz)Cmz6kza0M1csB3J9@Npn$;wTp~)um{H?KjvYOI1o`nFK9VKzjr^BV6-M%#|s>VG!TK{RPp^~m$oua;ewK? zCx8|E&u`+?T85O!02Z!W3!!6dC{f5ki`ZZPS;)9uBE=h(3TzRP zaA9^K0|#=ycwPQ{`XNW|K6%pjKj1q1H_a_Tx1t(GgJOk`sbeqz@={5Zvar%h z698z41H#T^@=QPv(*p2A5&NpasMg4uhYo6_+G>WI$Wg#9a$I!jo?cY?;}{EYIERO} zMg+2_9$$>{o;aKmr7$BAsGzaTmXh$tl#E1Dwx|f`P_Hn}l%6bVfXJwn zjI9?MQE6zCNl4H)ff3B0Ry85zXU=r{c_>Li1WC0H& z@g_Q`JccAu@6v}ZqNuz2J_WVD`*!QiC6;Q#RbXk7&EVRM zBtwn@4@626GU7-rG+VdAL8o15(y%LD1*_TS+?bZu>9>NC>S$h@ovG#%2eXNjWc;EyT(4U%&)-&5Nf}HHI~A&4+qla zJQv2PVd5T!SmHrh2B{(G2D%76ggn*`WPvs&c|C{Pb1!AePiJ{llM+tpRGt{$TS~;$ zik0UC?<&JWnw}WCC>*S&$urcx;x;8s%$_~5<7H3&C%KHe%GM#9^$Yo)yjIol=79td zueIOi3d*3X1)K_h>z-2Y#qPFO%h9wV$4u|#uGXgbiCP~g^tb0ZgG96i1Oe3VT1bDKOkUi_AmBj3IQ#@lFRq`!7 zAVUt4C=m;B7mE~W<%UEPMedxkrr~*|cxxP?CS5W`SjsXbLEH;cT0{@J9Ag4t(!^%q z8+L_%waN(IZjEEgmokF zU`hrExjaq`lJA6PJU>-VJnbi){BhO)IfC#i>qU`R6xvmXXr&1i2(dy`AR<>FWT7lU z?=CjX*FKrjPg(v`qGDs7KO=-RtIUm;beM&-?jesc^)4l+Tq5zXNzRuL3r%*@W?P!6 z#xV+vemDVN(PD?wdEL)3Ww@WeqNGoL(&K&(UEWJsYRoyd?w;$!qXG3OPpVecsu`i@ zIbF9C5T2_h8PzD!&=jJ9+GJM-D24(KBpD=uMG_CzLuM9^6*j5-Tt-3k(E;JJ<(7e*Z%?@rcvdQbvl zg>QW2J74UbZAk6)Dc8T2@>dIdaS`+V2EIq52DX=&dPEts4RW^k(_JYm%0 zm$k0tuYUm?TLO33!xCYyJ!M8=5|`M-Cq{9Kb7JA}(xboo?QeNEJh>0on7|?K;D}Yc zV;=X|$3KQ6i-Y6h7au3a{|&H>l}uY4SMr_-J}iWRd=@F&vdUBT$(6CZW!wl^C*qCq zFN_@H886w)Og8Y7wG7AqHFFt=&26)rXDMeof5^)WBXWPo+}|>v+0RvNGH%t}4np7Z zmV|ayq7iNAyDs{!hc5J^8y#syQyS8VzBHo|jp<2qdefSAbfrBV>P$=e)21eMr$KFL zRim2Krxx|9NB!zl!@AV5cJ-`vEo)xqy4Sb{_N|58>R=Ol*tRCNs*t_xS~r{4&)&7K zrCn@hL;Kgqc6PL>o$YHI+uPOFcBb##xIBxw+u{!WC{`eG9PM{th#`1wL`g5&Xb7x#z+)zHyFs zJb4XQ3BUFHZw^!c+~o62Gpg*py_Ijd<;{Eflw{4<|W|Prh^dSp3N}2YS$j zKJ*dU{2wAWcfWY(gO`|s0Zn?9g3OLt*s!m=Ge=yqI%|ps{OBHYA4~w=5chxZU3T~IKsC~S6%Odt zu6VzCiL;J#rI-Bcmj`jmF9|ogTN!Q-$iU!DaTFaa{tj$c$>{G9`l*C|^@G=*Ddg(P z!P6Cr#^j-|ZXZ_3%q8(D5d@eJA2rT9C;{|vB4LQX)Nje2HjV*H?Ikll=L;UN(RYdL zQ6I4JiDvizph=1I$2TU;)V?*xcV=wtB7VCQeez-6I-k3ad9R0k^XEeUgV~e;HE19c zq+h&yaDfnTkZKYI^fMem0DuR;00_~(2+6-FgPRD%J+d1;CrW^M@BnIHz3}V1!jqH2 z`#`OlRgB0LzpAaufN zP(l#@BtFA)2|>6P03d_k69wy2!JK%#7VH-c=n_uEzncKW)MFP<{0BkMfzvY@Qk+2M z`MZ08JqnOMO}xRSKt-N7Kq(1Dtb4lKTCEm?zbm8|C3qnDARRkk05EV5PB9NlIhhIi zLW%IgVf>hlSfq@=pny|DgA+jl1b`+qroSTt{_{ToBm=X%n<)H|(M!d%3qPev08(fG zZuG{b;yZb?D^UQwLj=6zL&U7%i{$f)<12(WK(0H;Kn$?K?n)cLLA_S|#90Iih7>{M zn@5OziCSb6RTPASWV<6INQo32j|7$`d?sBa6tE;tAZdWD7m zuoPxIg)>|TE>w?bQbavNtiiVE%W+DU{7X(YBfH^qM05;7#S{c3!Y&+xp+gmlO?61}iYquJ~s=>wJs6sN0;%%tNw%WI%8v;_LV%uLx# zkx?M?fQU@tNz)8N27(}s5XwIyN^I0T-SR->e9Sn)12@Qk7pQ^JbIMXIgFw(gQ;Nl- zC<9Xj&vpzv(Hp_$WGP2nQF4-t;aj^4MLb^u6G5=VvLq(^EHQDC&G&pyXL`$3yuos$ zCQMYt`ot+xl+76((k9gxARQA}e3fd_&s|&`)>_H_Y)Ox}97DOxnJk$Is7VQ8Mq~Vf zMNyQVe8xj^P-t9DYi!LwdrhhH!H$$qasnu`+rGsUgo2t*9WXrEL%VMO%s!n`(SI<` zMfA$Ug48}8CtsP14m3Q(3n?~nhcThbld8Rx!p`_wL?48b{43JA^vmNM$yBUMMs-h8 z6v-#?NQb;dqGF2U^T^>;%u)U!&qt3^TON3%14Oi+OTlMEOHix+?^7Gh8qOc(E}#8bvIEccq}airE`T*o=!@5<{Z)nA z&-nWViF>4#ZB2oY1tLJuh=@jwsRTHc#s`g#&NRb;uuRwFSpD}okrBeg+w|=To{?6yj$4h&Y%n2V+q|7 z8(qQWuCE0~0n6Mmv>4J6Lraj`xvhluz*&L7*)!AD4>H}|<=x)pGSn?r`V-#VO^K=V z-Qz{xs+ZTT{^km3CrF&*t5xxrLTqFu${l@-8tfo zI`CEB^=04iWnQNm*5?gg^Zh#XO%-mNHf*!D{QWlk-M0Px-*D?+0M=gt2DffIVE#?u z07hW{E#L+w-~l#Z2bN$6p5O>x;0IP<3eMmP-e3&o;1CAk5#BZNonQKGI{W=z5m{mS zYT;oSx)*NW)Oz1uRLOoDU$I4Do>Sq^1v(iP5FmyxA)euntKpRVvWLsz^4($1J>vBJ zAR@jEDZWG>ra3Au;(imDk3tI(cS zGA*K5<=|niT?T+wj-wjYmb(zXVeSj<3=HkuPVPbtC((?^0KeHdE$Azr4Ji%E@IK;; z=4MunXTFuMN%$mR~MDWs1w=mk^hw)EQan83kdG0)(3hc}okykfZ^a zch)X{uGCO+qOnmCb;0C!?&K-Ck(9`h9SLRaf|F=LlNj8RA|w-=N}npx6*<5Xo&rK` z$*1G}pL_k6+7YD?8k(8NLn{HAdI>F@ zsA-m>rJ>fOAiANydZE5)>0NROYrz(6sl?@aJWLE1cJZxwaT|h(lYW_(ciEqrQYKcM zmov(wuAZU&fhJt!YWGWH)_R6DR_B;T<&hP!`|Ba9o;NMYnVp%HX*$Q=aVVZ*$8mm* zvnFbA(rXe*7NKAkL^i8o_Q$nQ=C1h~xDp$(p{T?Tp{)4M5P6$!VxP};3L*+?Z@MXK z+8eSdZ8IV5>?DnnPHnebzMz}DxK3v~rfVm*>m0-Du~tqtiD%mxsNC@i-uV%zKxAGX z=j;ORs-_pmV{Ed69yl=~yQm)NehKXVq3!shrS7q!Yzm+0W1pIa6>~Z5)98x8Y^Jk< zANdJyZM<*7GW|eCr>dUjiz$3yONBlahayC$Z;3HQfvzCZR!xwb|yBeaUuNG z+s5rZ>u(`fHzJ?%r2;6R5vUgbBGe;7C>K#EDUl+n z=#d?iy3SmdFQu9xff4IKuPL)hZyMUEylD)ddXk_rm!Z0-%)Rwf-2CIkySPhncU|0_ z2X}XOcX#OGR-EFpxVuxJIK|zixECu$z+oJkcpg}^Exjo@THtJ zeP4`3RMAEGtmPa=Ge{9-1!YhK^CKETX?ug;P803_Gy*c6k#(=M@4hwf(}KmB+JHpH zckuu}Cia0NbXjU73}56VVwZ{dpU6e32v2IfwX<;Rlh4czA8}&~wK|DU@vsDwM0Ha+ zPm{%Hh26f`U%$NW_$I)4r|{U4sqRDXduJu0n;T`Dk|(vlOHkgxBdU2?Lh)oCxMw|)A0kWwIepBZAjFv8TBEyPZ!9- zdF0jtD-X7I&lH6edi?%zvD^PCl-_}3vfDt+rQ`R2aLq=gBwZT4PQ(HwsBddwXligu z>Nwm9I5t0<*jBcSY~R{_1H&fSq7XbFJ28{`uP@2Zv0(i#n9#BTh*Qf-*}|hD0GQbU zBX)|%XuHVJwQ%127^D&O3DQOY{u2}45qZel3-Gn1A~4~zU=Hnj&(BajKREJaINfLJ z+TWo5>u_^jaLiml>ni#eOvJyt(28pScF=a0chZkSmWgPWx!$13*?-R)|GFxa&gJw^ zG2g??z@`na=3fz0zXoJ6OUhzFe}OPSWo@r(eU@;I1#umBaUGPo+~WW+vpMoy=f09sGvmSvHl!tGUoq<@uSWC-i(p1$r^e z7t17B)XLo!%Lb7sH-n#?&bhFkL(Jc$li*}ykO}(*PjQQr6;NHZEZE1PB`AHcIG?HT zC}G%LQKUfL6RB|U4acw6LOON35r)T!%C*l$Qe}87yzft~hgPK-Z2uSCKbiSobe|=F zTYW4^T2N#hntZuhx5WkWr`wNrsM&d%s)wUd)r>Om5-%pc^J*Jf!tIvFCHab}-3$p2 zN6~N3d}GCyPiLa_U^Itz|M`DB zp0sq32fw2|7lNR$V!)wDJG$TyROmHu7zV2zWhDMQ7l46 z%zi9p^%_+?n*o7E9J>QUaRS#U|9+gnPN$_`xpRfOHFe!ej<&x2$nt-y`t(xd1ECzr z%uYqx{b-s*Pk8wD;}5uQUZE)@CeVLmRt=WqW$C;oIo9bc#Uw`at#+WK4V1k%vMZGQ z&R?(!gQ4RV3PZ6V29-rD1F;*)RJiiXDUFP0QHMK1Z1~qjZqv>{<^*&3dT1ghTo2lhkhP6#&2GQpl?heC1 z>rM&cy4FPv!@9Or-lME)tlONFhI&dy=H`P`!}_KPl~!lpI&=lcA8R&`SG9M8j)c7r z`+;@!Ti)^W9sP8Sxm_^WMvc0s1$g>DQ@7t7hF;JgZi=uZFR@2(Erl=oB&tVqN*dsZ zs|KjkjMxXy1r@R6mQC_*m01vwTP6c%j6BDz98QXmLBjsFK@d^tW<-+eQ&v_PYP z_GAVCE%KN_XygcsPj^!oQMJ_IWqj?XTNeQYYRWPvN?`91&Zq4ARfF6GfC!=gd)pRN zPZQ6kOQ2U0!m`}^tN=+58rudhHY?H0mX8z7>^}T<=YbM>g24o}woM#BB^RxZ0mDkI zgOOit`-xQB_WngAAL98+T>VxTx(3l>?O61(#1R5yYdQ*DwFB#(F2ckTQm*M@soqwR z<~*ZsJ)-j)t_V`l0DlN@3;iz_193zi8&Sl%<(88~pw=1!VMG38{x0Z!USzuFz9W_X zE&P;)zq7tqC4O|<5Fh`q69SQ>@j(8o^1Q|i>XyFna+njN6RQaC+a7|W)HAuMeCqS; zydsB$0s3LsF@+~n5}n|sc3Y(of514@!xuUhZeg)wV5q@(w+-bo;@ot%!>Rc7{Q5LW5*2oi@*y z9EyIKD;M*OakNYk+weCBr|7hg1Z%-H>>HjkXSTerwUoVI<>t+9J0Eb+oreE1h5~t) zoAVMaZqt&GSSVAW-1`fRP5l0*-fD{BIj4i59yM{eexHKFyi>uJ)gPyfzxsxIp_U zH66DE{%`2Hf!6hbTKNmGOI z#`x-_y8nh6q;0_G(?RurM@M+_B06*87Y~*5 z8dBe=5XrRYt2iD{${BW)!z8Y7XP5ohy1FNlDQR!5Pnx3o?~G${?SZF(pC?WQ(lM?n z{EAwcN}H|5b|-u4>`@LbbwpqL{0L(9s4^C^W_Hw7Z7g4E9UT6}z;o8cwO^f<9a%>y ze*Qx{ktZV(H$tL>UTCAq&EFtjC%;dwH?xl?{R(@4xbmS8NNRr-;n4=W!Q_{f8)>D zxU_DhUevN(JcO6|IXL?x#JKTE$7w;;CMla5ufduq&_oFOoBJiHN7t4RL?DI4xtwmR zR=M}Mw+~4I4ja!f)ZMOY*O@)OlI12^mH!vLL_D1Wyk~gT6SwKUnrlnvnaCEDNTm-= ze_wC)Zfllw;>7AO_XB-F%D5S}>v}CnrU=n+!#3d4*lj3jq6iag9(w23Qw4M-?LyM0 zvJ5bi>2q3Iv0>s+)CLbn+==JffRq@(p=wga_a>m(ULw~3Wo2@D{WJU5u%-GgR$BSv zJTusUXL6{%jExYHpU28=sP2+yO|ChsR*rM_Ly?cQvTIIUFuTEA&JKU$Y%k@w@N(le z&OR1$&pc87gvdVr8g!$LBO&*4MuY{s%59xpV1D2I%vSCC{CCIxcC1xs9a&u1<{>z%>Qn{~?6gk)U z`h8x6^ER&rUw@ELDHH1;V>fvmOZ0iku-x-5eaQDn6B0YQx|5RigLFdns2t5?eu z1*O0+i=R7UO`9rzh9=W=l^CW{X5nC`Z}5U@lZ1xd=xG9w)Q*Z@dsPTbtd`i zDgA$MW7i)Kv-I~LM7`VLm&%{+`iI!{012bQTzZ}e!>#_bXHy9ZlQn0MaV=Q}LjfE& zcm$3-)!)Qc3CyESVQXaeZnb-|{O#ZSkb{^cVn#u-e`JLowDS$Q1P+Bn?M?;242op* z6XtgyuuB6PKp_H`*Mf3D$mP-$KithQk@qmMD2ta!etIb(MuFeYj3kA}SSUt6q>*xK z%_=~lhcA&#J&|cv@@~63pYd2yb`Vf04CC1(lf3|f!E0QDV@}+?M;uas5C+ELG+z;b z)f1z1W~Q*vD%y39BNvP|ngj1Ui+Q$2l0L& zXvC8&kaO#eaH(yXMT~ftQke9Z7!QBi=EvM|Wbtz-2qwr-whG|Dk*2L;s{;E(qVaTh z7HqHkqwd960mUC#1zqVD$6l zUM6|y2o@l-Z@@4QA~B;80HNc84oMMdG!$^P%F(rU!gWk=WN410!^$)`t+TwP^jME7 z)-z-+BIvZ#WPQHJaipWtU`R63H09I2GAzEP9~l){>knd>9v^9kVAQ3gsN>okN0gZh zrrfjBqRd;HQ5{=6YGW20vbV$Yvu@ka!HQZ8&u1kwNYSMsC6S1keqssapBanvG6Ss*CFu*f_*}DqqI}S|<|H zskjdZE&;hwRCXSB$Dxm@(azgg!JM{6E>^O3VN6f}!p1U&(lYPnFIqMg zYg$(LBLl47m0`yW5;+NUYEU7~>PaC0+blYe7I|BPlDYdXA`NWhovlc%N$+Mb&T!DPs3xv<05v<*T;*lr<)W^Ih7BsH*g@lD(P2b{ zJ2*@`lryw7pAAKwL0VkSwKEvnp=$e6kE7t7G+pqG+ACWN7%CRR>FzTIzg$SHAGygZ zy2D|VOw^P+IC0uxR0c40?Vn5`tCl*Xr|wjxIUEKloKJF|$q_i9cb#A!UuZco{>;hC zOpIvXK_;UJCy|ptlcTL?bs`)NbBA6_3sWJ)teQi23}a+i(urSRP`LK9iU6Lp+UUXA zOC%`N$Z9dGBoLI|*_mdulonTA_UO%=v%n!X9WrVVA7@hS3a`=~z|>8}n1z0wk~4jF$J_~BhZyXTu47;9jMh6-ac8pT z<6yBMI<%m{dZW+!qYkz)-wSct(1s$>E6B}n|XcX%6pl`#A5TRx<);g?f8;SKH|u&ja6b|dT{3mN8jr8(m@K^ z8TRK)RG)Iyl|x6qQ?+0{?|T+IbmhX8<5R#j(ofx^s(c19sC=KJf92M(Gjv<~h9sw( zHS$h*w=Q+ljZ#Q7GrWzrBwK&VT`V_T^S>Vs*|R-$v#Y0O9=dIah7?E=!QmHvCY(4> zS5uH3?I9?-O}MH=c;vJTZeV=uNa7O|l5mb9r6$6{+hl=1Bp0`2e{YMHZVz`j$i807 z-n&y0-%)-YCEqlsIH5vqAf`z@+!%LPQ{u#-_IPLDq}Hvc{;bpryrU0qRnDJ&>h>s9qXG1`_JF(7akmA z9;{5B;omqJZF7Fg+%0K)s48(mN8e3xw{Y<_Grr9eIl6CY|5b_bFh3G*+L-6s-SR1MXU(JNmjK~z}y)IM2<4;FW!>|xCVv7AyVKG6*B^d#n@n# z!>}RTEw@5xo=XW_!qLQho=P9d?jk4KI~+*(oF=gUqy>E@_(w}c+DFKOpuPx?uM+N} ztiYiQdPz)ilcRZv8hEK(-18Lvl>|k8{3)a?H-|bWH5A@O+Zs_3mHLAQtG2OIR=S^- zwJrbOz4F&%6-#d&d=J&%MPh(9-9~B&Cnz8$EH$(llnw%Zssf-J+7uDW^gfC-#!KkV zSaPYAO#GhjNoBx%eF?m{{B2%*M{}IBMo6}mc77K4zI@j>yX|(kbFbW}+^VC9qAO&+ z_CR{ROok^ju2^hI)GkflO5s&Hq8c(l6(SB?G83D8$lmo#k1+;@c&q6@98N8JO(R3Z z{bxc_($8?TP8!jxsn#x&=bSON#0cqJ_%70=rwudkbs$;ZA2@g&o-LXz+dKLKJx(t$A6>2x(HLC6t^B6-g4E^zQ7nf@&%qL65GXI| zx~L%>VV^P26PWY+4^70LXb|c9f`f3;0o5o2YCLrszyb7~{%Le`DUA1IE5k`*!W1#@ z3W7gnM%r3&sv7WSU%H99ZiZ6>oB90$vh%g)gNwC@BbPUKJHJkN1}**#+Vq4}^bZEJ z!K2iIDz*0X*q$XirA^Gn6^Gzhiz6lZELeD>xj%M{Vbn|t3D|LY?MW7lo6@KvXCej( zX{?{QtPRoq4O5A+!I{~n@&OT{T8_5{=XqF)4<~GAeoOrf%&}+*K72wYp9KzSvDs^J z+L~Nvl^nQhh1puN0$rTWSc&q25%Yput=*UgypkYk9H2}D!f53)pGb3ov6DCoYNtD3 z*N$4&G$Qs24b~LZtf^+VK-KTy`K8)Zw`eXx5H~;r30j!rShy%7?dRD)?$_9^+Ikpd zHNPK*`hpK`=mR`B5|nfkoH%#FT16U5a#$R3<~Y7}0kPAsKXj+%IC3Ec^MUeJTL1ZH z50=y_&Fd%^u^@a1Hc9!Z?2i}>?&xBPuF!bVv8vSYMpW%f)?iN~$|RkLI0wF5h@ zC+RJOV|i6r8$DZPK>fQvTb?NrUQY$uFyGVAs<2!r?w6w#gpNQ(@OOhfl!C_Z1G3#s zGt2XvxF$URWGOR5f^l^H*XOYDN{Z%Ib@5w9_A)CPgId^wGZn_dBT2Pll>)|p{U!Yx zz8!u6Pjx44(&?>g5~nX_qTw1i_v;_)e9%;*hHce=?cP5-ZJ35oTn8wFT#xL=l)0XZ zjTjC5k=4MlD>N6VnVUcJl68ZKg$6pnR0@KbE?US?B ze?|C0r`4HkE*XtM9#`!?E6JlSh@RshmbBl5#Dj^9d~>`jfDVnlPl=Rbt(eJXKH39w z2d;#LMj|57bK4U@TgKTKjtxbH2goKZXl1p~M}9}j{=g2nK_AWG^F3!iOWzZyhuDnb z2xU0wx7gm6X~$oa8%92>iCcwY7#Q2p-H0r{eItwSgaaVpL4>p1%!i`C(ChSMxm%7U zA$1t%w*Qf6cPF=yA^3i_)KX~qS}TJITK*b_imbuWv~N#Jbe4@Jrm1!oQSL^9W2Jp$ zQ=ngF0Vk5jY+FzeOYh16JnKbeGS|$5!>Rs}N{{>a;p+meQA+(inp|a$+ig}ITgP}! zpMUvI?d!qH_D+Y2CXAfNXAv7(V8BTj_?+(JQ0Ncc-LRtC032n`H_i^MFh$nx%RxuB zzJIR>&1eFbb3+*7T1w61z`zUgX(EZT{BSwR35xYk?OPCD+>nEs1XJs}bqSq&0;GiV zi>4#K6q*8r4^Tsvx&B5|HBw@NLorHduQW57-xKdK0RcKn$x%J^z{XMm1J4uXZ`y}g z%PKmZ{uVN2za`QTSPw6Z;Qf}2QQ`ECV4GY_tX@>bhl;!-|3Lq)F~{E|(b~>(AdIZc z$5@w6i?AMsNr^KY^+`9iqVa#<8oHFx)XRit@}IpWIg{yG2`}zX+zgB z)@9>3tB?so&GAxE*<|qOCu=v+@CvO8ea%5{Y=zIYWn@#x^yf=E=gk1pZye_z%Puj0 zP=3q!UX4-8*1F`Jux#B;a?Be2oo*5l9IV0rUE>Zf$F_aHsIF@Ku&nR8{jh4DWc;|U zUbr<}qwOU76z;SX{KV(~l>fB*_1f5P_qXsTlp*%I_hm25Ry5$GB6`R7yrIM7asxq2 znL>T>6NBq!`wD9W{`b#T4E{={RSv1L8e`u^TfEcT^eOe~NmqEQ5EN-tQDuf?dvT9eUnPNCc>oGgLHsX>}@4(zH4tEe+FcQIsT zZgqHdHF3&AGchIvpQsOWIsOcp9dM6Us{VEZy z_hd|@zZ4t=)#gbeNHhc&#T+FTBG^w#DXGuZBI7t>x2TH{<|8z+6w1M{H~>!Y7-=OD zLzPEeMbw6hFEl_aZAMGM{0}ljZ{#(pV8V-1mPOtd6sc9`#Z!f-pP@exhEqdlr5{%8 zs7@VFrAU>KLwdh2^Cfpp4H_$p9L^RnvAgwglEO^zdLk1^`7cHPf z{M#eI>mLvxBH}+qjvyIjp%;>-EZOW^rYK%x(%J_Zi!Y}GoVKT|oi~>nL456|ET@3s z0OP79#&XnHpq?1#_Pz^GBYO7f2GC*65tz|m77jwvNj8IH%NjuQxj|L}gf4q?vm~OO z4fh)^cjM93KTk}V~n^m~QBVRZ8CdBnQ5;}@C zkz?A%*>;*Gdji#fPph;LZ6lCp>^$^rHWXsWP5$ka8Fppj;K0&0yExIzFV?cjjJl@Y z33+${x0Mz)+He8IYSV(_sL7MVD%A?3QzjVa(Wo6g1!v?rylaA*{(Tnhx`|jTb_5#V z8)uTfDZcrjSRiMp>+|DBm$pT6q6`!P(_rXq%Laeg#wg zAr73-^(u->X;|Q{`omDS;wlH(hPUD8GO%pQC#PU4if!C6A5&ScZJk5cf2M@x&p=3h zqkCUFfjfJWNaxko*~jA#WqNpbF3?uFB+L(G->5Rj?d_X_r`0oO*P)j#QcwspXXKx= zZ)YUP@yFu)Qo=X>kDXO%DxDjK=UUmv{C}`k4Sv3T@OjYTbP>6p&zuz@1?HUX!H9T^ z9SCwK)Ispq>DavTtjwaVw!D{_$NYl@8XoVxf<{fu8H0wjJpSesP}V1|1cbBdVNqUX z2)CB!4aC4#w$z`MUI@YrgS@Nw0F@_*qY}g0_k;wNFhAKSVf*WM?f(sthsJy$(>QgD z8tToVbm{+Q`e;i3pV_@qT+tNxr1uYxA*isGVIuj+Ds5RGbJgp472WeEN*^7z{Hb7c zJoRZmb-D!hjlx1{kj$-nSA!?sH0n&aze;Qkdr+}?<(APW#4nWQa^!MCdksn@@Z_Qrc zxSCpBew3^I3j@lpOo6i;1T!Sa6rlIe2j45pZYPcv4pF8A+5d$(FA8Fw@~Y8~V&0;s zRH&)`m-A<20adIr>|~eeOWiq!qS~WgQ0>Wt#DKr#eM!lCy^7%vp z{8!cUfMi^GTlh+IjNyJbLNoa40b(KmuH#%py({AI09>-#fJ!vdq{{DZRmwiqCAkSg z3^c>~i1NWnn3fx?>GA&o+JqH>jgxXTl=7$76?x2x;4hZ{-1fkSBoA~C!fL=z|Kk;r z1;)>k=bJfHT(vuyYO>&Z74R3ZN#X~UE9Pv|E>#1?3(`ZkgLh0A;8R7OhVwbAm7rEfp%;5fZMzBo5xrQQekWi8r0D- zG?urU6Xq}$HxxE*Y$f$1-}d0F=jr5SX{VKmL28r=o*X5rsEKZHUR<1Q7z|8G3{T2= zG4RFwWBl8&0z9$;d@W9b*w&(p;cl}LF-Zs)oadsc=UR(TM4kjje`&sO@%pRbVgHSe zQQHYJBO~D=6x@4FPxeZlzl`#n%V`n)^H&t+Lg34OVyPy}&r?BvHev61IO2XG=j3g( zMb#!Qz5#H&q5qOcT$AnJ zackqCskQQATfh(frBgf=j(6YL!4_po=bTp|uS*rEft6#El@oz*TZ!G1KYL1@F*iBg z%Um9zwAR#DXODV!cE5^5)CUVOoILY%>%jav&K0C=)v~qs>b3f~r zcDO_77{U&h!gkZc&bd{#aa5nuRo?EyF1b}-yi}mHRgoT4-tX1mc>M9&)DU>oAUNuz zJnEF%>eOxOw4dcOZ2^N?Qe){#Jm>v0O9NC+gG=0m`Hixnql(i}+HfbbKeZACwc!@A zw4A+@_B9FDmuxKBbb}vsCl{z%DzP0ObP^uoJ$STZvGlUr^z(5|ZFs2P{_0in#H4yN zaMbdTEojGv8-BmkuV66XsnV-yGm?$T9ZgJ5$BpZ6Gv0Wa8Coam=_rVFABrB;E6s-ZDv^~B&(wG=7=h3{3&TaDRc2hWCU8!I#6Gr~2*#oE z#!cEOhYG4eaaQJ4bY!1jd?RIEVm5D9_W48d1=J2T$$}Y&dj*4aSR*wbE_PhSc7Lxe z3=g=$4o;cj)h_$Dd9-&58Fszr_08?|W>y-{$hB)yymvH}t;G%P3XYkFrMnrxl42R&pT)ozCPTJaeQe7FYr zep>kYaB#WTv3Q(zgusO7Qs`LF`id4|ipIq`@Zd9h^$Q3-dFJ9ZvaSxRO?e0N84!$& zgjjmkNuy;_h4ESXRjE-0SSo>wsW6BA@TsgN!+rrks0J|ObZZv0Ykmom^ySc?hvA80 z3%->O(TzA!BVGC)s{i_+JwwA79rzheAuv$~PiBs;MxXJE?*tw}K2o5JuPlpS1NZ5H zQ53&Go+6p{a77GStf86hls!v9VzHCKnC?4gz3 zp@-nZxUD(aIIq@H0Zj-Jm@uf#sAI*i@XlRF3SGW?Py5T(HW69)C zJAgNR`fmFE-QsL93U@I1ArjO=;H6oDN(Kj@0sFfj$R`d0>vdG52vdCFMdx3h~+&}LC&TpjQRVRY;JW-mBoD?@n0UHl7xlWjBgHp zSUTffYMNf!_=|Pt8IIEc3!44cD#$%WpKA8v0ra*Sp9jcO0EE-Z{~cj4d|F2onFfe# z#dmkZ=tlU{qBcxbA?U=v3P@!g+{J^JO$KXzd!9rSuqw3XV@sDrNA{9TC=I&#<>gU zBT(o|g9++*FM#ITRRzCUWza@~S@e0D zCFtzT!*{H?E5J9OHW2I4+!`7CtMfaBd|@8|`o& zkOiNaB(L2N?|sAq>;`HTWJ9+!)9xE}PFuG?6rZ3l2)*XOzr~XF)V&%3LEPzCcbiJSyNDSM)$wxq5o*UFn7M7L3hjY2R1koQKxh^Kwdj5jGGQgWph0SU13>BAMpZ(X#hE<-v!B|;$kg!++Tr`hUa`CPqUHidTn zsyRo5;=DO$n;A^cs$@qL+j^BcFVfxm>Xiqf`rT^hRy~?)z?W|K&hZ@vu%KcmaTM)9p~OQ_HJ(I%R>A7`bL^53X{ z)L=HTqeBK&Z=0eSglCkkVxSOyEMbeo%Sc;M_*dKa@yI;47!sGnpb2d1@yv(uCgI6F zo(aI?l4ZE? zC1v9^l<+w;()ljHJXi0Mb?>}AX?oF|Mpdsy-L_i8yLwabW?SzjTRaaM z)4dx5`CELDhpiTot!?A&b&>5)!0AZvj<4-1cFAh+HV2j15=!`5xCnb^|1#7zG&<=L z$~!!8Z=ITYgPyOMVVjxCB$6p;!Ba%f79%Yt(1es^(Hsijg>nV|0G`))`GI8jmIOaf zgx$sL2u2d|-|oQx$qFGEJ4vqvQy(n-PD=a3euLfU@7htJf>m?ML-O!LIMQ_#z)_?z z;yuY3irC&b$vm|fme@OrRKcDr*?!>G{tuIr-~ziFQVvd$3yybO3*)owkU7%m7YxDYq~Fl3fmw*^P=C=Y`BK_btJgunYELxKJFc8=t*xLlXcl979&h zaJ0!GJ8!QacO3tneux@t^|C1D&%Xa#f;pHe?8CSUS}YUYCI5YC{eD%#|JVG#M<)Bf zM>gx3eJua=F0$;Q$ZW6c{&(lRvj_J>Auy2JGCsuz5{Xq$bzoh&!tV1=&jrnjyF~DxCQXRfmh(r>a-Oasd zJdHuK`k$-{Xp|FrRvCavvEKiU9j?99ei5ux0Bfir9^<*Inu-vA?uA5AF`vx?7j`KJ zN!p!{7s{>QnrN$8Z7{iwC5^u}T@QO!WBC+Ia}56{mgc^plB2Z2-JNewb~OC{34%c( zQ|fHo8;W`RaO81w`Z0DkSERUFU271T3E7Sh2TQ2LL$1_d6}vA)1ctbAhA89W=(3*h zmcJmGwTh{eeX;;B)v*CY?lLI2on3!zV~U(JP5PQUZTEjka~1YAQVNi03QT0lM(5-e zFxzU;Rsd@J!kz-q{&`M8CwdB3YZR&yeLUagM#oW|30Ej(b&l(*le|)vWs|_7YO8&n zlcpgJ$P=m9gk?|R0{FeWw-kmWvl5U>KQ?KR1=D2M?TcF_SZ9da*DbFYy3a$jSB)Vw zHU|m($CU?(;VdgzdP!~A>sH_2(+DLhTVaYc`Hp-n>=hKGN9?QWRyG_FA_)wfiLvkz z04ff0%VF;9{)SnqocKo|8;2O19OJrmOfue3oi9>^sk$0!CupVeP(&%Ac?{|U_NQWw z#ZUPKIp5E$RiMZa3sk6GGScX@w&p3bonL%Nsq~j%}>KZvvoQrc^6g(Dgj7y09t?1?8UF3lU^Bb)bL)3Z`Cv@mpR07FGdXq7=8jB^=-c_ z6-#suc3v3uuJB(@^Phb4Y_frhWlov2$T%GmYRl%7xX|$b^PRo-I9En>SQm)C=TT~= zLxMZuQpHLbd@ms{)Sa$l8jg1B-7W82m{0hnR_&+4RlDsvJUQ$iDHJ9<7ezqopOdkQ zj48U+5JRPgU-FT7rpI8EP$3 zj=WN1&CVH4YkxB)d3d1cM!Qvn9X~`N&pM9V1+_4?hN_7}Xz%kWD^^FsFaH=)^c);= zY7pxjC6i%fk8FJ=+_U5oC}?|3R-)E^5n%n&FGwxgRXJk3B|J>QqFmcyuY|NuhI5dJxen8il1-_m(=O=2nWbJt};4II=%zJ(ay3$1=DY7E7O+ z{v}5AMZrPJ5#z`r4mMTEYpFV$Q^<^{YJ9N({+N8z2@4RDfHB^l9rRw~3#K{J=rAA!p^XIJZ{RD1t<4q0q(&MXRU52M=$zwtQnZ+*Xuw&F zW{WS{h)&m-5ZiTS@RaAuJJ*;YD1HJ!9~)!xXAD2_v=K|%74us)Ru$_l*{{obAnAnx zi|+N|!KxMvxH?-^nvMA!-trbsc}v#^s+o1%(6j^=VkYAL$$Gnb8K5(@cc8)fO?&*$ zKYu*Jn6~y`XWJ3=>y8Z^#b%{-+UH0~owcnDOC2)mhI#6Bn^7dM9DJE}-s}B-M;hVm zJvPmZIC`z3bf3*scV~+rUMvyq+!mC6I-whaA-KiA-(Odyj=nRg7^CPvG(YtZd9Y3D z;h2W+KK{f^Y>c2+GXGw8Ie21y#bqA9i;kc;kom^sLT;$`$aX@=gCHKugTnfo%u=rESxJ9SKkKp+p}!b(&)If|$>2o1LzMryIO zLs(KaQ1ix--8-d>OZ++)!%84pAA2k#^g5rM*jn3zYGe80N6S28A0SB&%X^@QM|Ij- z;ckS~i)cOzhdD^rM-c`s1;8tT=P7)LhFCl&>djd`a#~_dUzoh*h*}6lmPRXIS`crR z2 zW(_z(dF%!9n`{Rk>I?3=C43F?n=S#_yO*nW!J@FzKm z2>*K{7eRTVE#-YE6fK{>iQ31BAw=^vUU-&IlpqbGWb^&XZ}u${lA_c%h6~>g>e@k2 zeI6XkJB?E9$xabv%4ag3n~utkGFCeIDHnXM{hO?g&qf462 zP@>LIlC@B>=TPKM^grMr$mCd{tM1q5%&&@1Hg`u(>9%H|TjzCM=fHOFx=eh$6Z`M| zAwD1Ek)+bq&3J&Ju<(nHN48F*_N# zD;ae?8T}>s1@YU!TA=GH`YpS!#TN{s@vqFMW)q0+0@xAf<^J(@&Ni7YzER;qbO{;# z35J>Ymk2(x&jAO1hDV5?^->#x@kGq^G|`tdF~W2S#-uX>F2Nb=dWew zZ)96d9J;cW*gX2#k2CnQ&{5w5oJaKYT4}|8F=9SM<=zk$-U$@m>lZ$D1-YH-dC1|P z*ax4D$Fz0en@i=$M7|rmp+M)g%#5g9Hm>Zn zs%$^Y;8NbgqPyH_qdZ2Y{KLMSj4troQJG6Xg3MOt3NnXcBZ@ z0f@tL(XafrQJFZQ6CGE1P3M1#5>5YDWWVf92Fpbk{HYv+jS76j{-4C+<_>ed|U>clXPsG43(z_ks1jeD%ix^`|-Y=iT*}8=v*O zg?6X)cY+P~1`UVE4WhOUuiXv*6u#ZBHvotmp@kY@4IAGayzU#(yTSl%$>^MSjhMtu zSVB!WhD~^ZO$1EYF^o-J3r%EiO%%kKH{1Kf+Bq%SJ%pOEeza@))MVM` zcKA)UdJ;F^-T>%8C>psP5r&;ofgN9~+Jb*{e%ow|GHi-*%*5O5WPj_-5W-KH%yjwD z;zrz&{-e`7x2rg}GgGKdF|eud4etVk0tE%2e1QdE0002yaX=%W3_1}i`f~vQ0HUB% z5|Xem0sxEvMn*;e4Gj$t2&82Y05Xekb8`y`3IYI{0H7v-F#rhA{Cvg%ftoDrVhjuc z08LGRMj)exCbztasEUcOniXSUpyvO(_2;HQU;rZ^fRRxXpsCKNq0Sf>z^I|20SNrx z#OUY8AR!?kCZVpVq$aPZuc@hNWMm|zWv!}fCZ}gBZ|I__V`XGwrefx4YG$Tp>22T` zq!ASCucjWL9uOF)VP+9$18yp-AU;;5QfdJYdfO-i)yP8qGgz0k(EMW|) zWeAu82F+7I5ib8c^^3a3}OQO?*L5NAZ--GgfOel?DNe)zz!D zwZVRBC4qsH0Sr@t8X#>D2&7$7qETI~T{0E81Y%kOX-}4DELCgYmuNt$wWp>6?guKTzL6iFh?=F(Sy0JCN!fEnHKZD}v;BeRzC+dVcx%`1rre?EjAgA_TyJ`2XoRM!y=1B%?TjpFawO0 zsg)??E3{QF*XXr4h!Fl-o6Qp$B72KljQ&<)w^*&6TO^|mHJs;?uh>!lN!9;*-bQ3c zpr2ydIRG3+a{JF%mvTuMw#OQ#1(V(|XC-%RHjtODj}B~jv-xYrL;)MOZslBA${Xakx* z??2QpJRV1xW>GI@-vtO6kG)~+{9~bofNsaRZll>`+1BH+bS%(oD-txVt-EFUAb8-Z zo7WEaZ>FeSa40-K!QBM-XI*lIvg1Ot0_@P51PV(#DhyHS$WbL@MM0QDUS+P&Yt<*E zioTE|k^-XjtGf1TWf0h;#6DTyGsCGA)b{8z#oqh)>e$$aX2{$yM)hV`#QTB?C(bn` zriRlh_?E+rG`IV!zI|<>hOOTLWs{@tp6IIcDCdHx`#f%vsp|^)v^oYxgmcp=303Qt zE=a90o&PIQ*v3Q)Buc z6ek=zZG?yWDF48eJ10sw31vFsB(*u@;eP`{KBfOmsZBj0wI6TsDRX1elX$d_ctcE zAq61o;`IO!fKNhdc434`3)!X6R8|PhdY{q008!c6b>+8150qw z5>0F#Q1T@)X+n}LK+I%3ZSu9CeGQF*5}E0C*14a+G=3cLUsNfm%5UPVofZ2EObcd& z5OM*2WxYvHS*2C9)^3a%OG5)h8bqN1Em**l!a@1w3n>_~NJbP$wXWq+p;;6cKfNEp zWNIgP@oHW3Y8O=juvfnV)v@V}tDr0kE_v;WUO!1gH*eS3>zUAJScMd6y=U54|DZM} z(n~|oLdeal=`MQ{3~HPTnhXvmqmV@^;6V;puOW%7Si?X@bDg`alSy~FuTfTYql;bF z5ZAcKwNf$=r6}Psv%9ZB6{#AF-qfg9Rqch%drKAH)dY612sJDO#arM0`uD$48fsCG zn$)iV0l)}Ou!2cMP)OoeVhMHJR}it_3S0QX03xO#jfqTUM)WHZ#juD+Ok(jA@{oyK zWFsFL$r8Kx#W2235eI@qB{I>8?2WOGcg$nlC|6cF?y-=EOys{Pq{v84vXYm~KKuF4fDW{v)6Bs_8~V_QPV{VwtLR2M`q7Y%^rIOq=}KEVZIr&W zrZ>%LNoTs#pboXDM@{NdoBGtE{xqsr&1&wcy49h6HLPd7YFX3z*0|2Ku6K=VTl4zY zk@hvP6)o&x8~f13KDM%#&Fp5II@!)4l@TVm&acd6qo?|R$&-prskzB#RLZ10=b{r^k8#}OKRY{T8GZ@~)Ew4-Pjuk>K6trH&hT~DdCr+Jb)WB@8A)$+ zT*UKlSL>4(Zqb?DVOBT?6i5FrCll?Xxla)?QBgLNDX^ z$WOlVk>7_0^kNyQ5Wy&xK`;w|zzD~WToaBT3?B3%`qM{#{~EdgebyOX49idd@tIK! zW~l%D@Q;7`oBw?9Qy&1<$Nn<3k9>lWANc|Ee9I6FB`^xX@KXn~ee$<}49I@&$AHY| ze9$L-_m_X!M*s@A3>l+=*e3@rz)k3v3M9}A!4Lvs5P%T43=WurEU12f00H5Lg2)#P zlz@D0un8Z41R_X+2q;Jzn1RYSel0kJ$hU$-c!Wrpghcp)F-QRd$bB_w|jigK`u0MLrl*9WlpgB&=6Cb)lHNQ-a?hW{sw)_9G|XN&2#hHQ0#nsf%` zWC|2`iob}B+PHk&2vpw4hR2r*9MA>2rF`I*3RFOSO^}M#SdPQkh1=MJ`X@SUm@$#l zfnAV?&^Lm42#`PsfBGnl@Z>|iFb84~LfDrE50DEWaFMQPkkD9uuy}yjcYuJ1jVj28 zBzcl#_>dG7krSzo7KxD$;5uw&g#-AEwkVCv|Hz9dxswa13_kgjKpB)$Q#l921U?Cn z2Lp@Bz%rsxH3r}@OVEfv(*U9nlve4J%rFehaFtxym0rn}Ln)O;sSHSIFiHuO{%4gT zbe2Q&m2UZ#SDBSt3728%F=JVl1#^}eqYQgVi%h8us6Ya|phYK00lWa0SgDnWxtNS; zl@i$sfGGl1`ICRiTU|hwNC1?PBZm)gn2q_FK`ED@Ihv$dnx^TMj~SVh>66&Qmqwrr ziAb23sSKH9l;d}rxS5-}*_Bc=n@b4-m+6~r37cX-n+0zsz!AYScTB7b5hi#b#V@Z~mccDPp2i9kozX>)Y>Xs2oqEdsR zwz;Bs34#F%00^+6AxfJ{P@wW-piEFT@mZob%9}`_qXEjJEozqWxtD!;nMWF!ZD0ZU z>6viZq!W6dL8+Z?$ucI;ncJxYnVF$LWunRerfwRipDCt5Nv2=fntSP!ve}y;%9kQ4 zr+_M*4r-i2ik)Lgro2_8%h{Yl{~DCH`K5{(r-Mo`h5DX{x}?MTldb6n1o{c)*_O@c zr4$OMRynEN`ICm~lZeVqJ@A?!8Zf+2RfGwv`x&WjN~b?brWQ)2OIe_$%AS9Ts`}}s zq#CHk+LgGfs`0t2d0Cvi)uwvtp?q4D0a~NSdaaF#r>qLCEV^+RY6MjS1|_hl64aX(=zW=FwkSPq2(M|8zx(eTX>_ftCc!a z^|HLhvQU<`+G4i_g15+`w_es?d|NAj>mPw@Dudg%-Ng*Y)Le+0Zw|7!ikrBGi(nnJ z42o+Dl-szLTe+7Tx&Jk}n)@K0TQ8x@x%3eWrhB@mo4TsIx~$u}uKT*M8@sYQyR=)o zwtKs{o4dNZyS&@GzWckt8@$3hyu@3)#(TWT`?|%qyv*CY&ilO38@-Z73({L^)LU=Y zTfL%|z1rKo-aBgC|NFg~7QX97zT#VH=6k;CyS|8)zUm)P(08Yh1a|jy zRVOh${C1Ovag_&p|H@4&cf}=VKa9cnI zgIvfz|GWhWr*^XpdP%@H6AS>Ae0g{5(Ct>w8x3wHyu7+N{m}TzXk; zXi^;uaJR(@oi;(72UBd#Ld|jp=ftcx+E-B0Yt7b3496PXb2CTR(Jb2gV$ykVdUgHU zA&k~}{m|&fy?I~-GVKJVV9tSUa9!8WI^EnBEq6Q3d1}1ROXt|Zt=EywZ28=Ep$B$R z|D4;ukOyvzcZ{9PT6}Nho6U}_+Q1FZLx2XJaK>?c$i5fEbo|^(W7RH<-ypr)5q#Tg z4bsEc(dzx%*!^y7&*T-Wey-2kyx4oY69l(>`v- zK3?Dk?%L@#cr#bbPnQQSAi)Q1c1g!_6`a^Y9Nogl3@=XOfo$F2_IeU*%1Os`jZnqH za0{O2!WB;59FBFsT-~Sr&R*`@4vo@Y&C?rA*_@Zz_`TZ>=LL0r=clI%P{6{v{~gVI z4&HH|763D*Fb00D*U$hgc+b>P!Nm&AwH)3ANr?QAfSK5Y4% z=l{*z5%;w${&_C0(po*%&A1pC;uEK#$a%fKMoTuub7tOD|darlK zyFJ(?cf|?q=^iH4iPrvk0KlD<6^;Vzt zOpo-YCrX9&-QE2^**}dSCZ* zfA?X(DGcDC9_&JhQ6or!BRS5bS<~iC zoH=#w7W};ACSnk zTiLQfyp)B80tO;tAB~+Ic=)K$Vjr%IJ?DLyY^i~>sz-kW|5jpS8nOpPla9;5BA^0= zJAZzeCN^W+$#A1ZeA)SP=x&!5j$WPCLE}rCK8-qcCS~OSjDRNEStZMkB2z0RT-`m# z>l~-Qw|-FXnu4{78q_~r?S6z5L(d>N5D+Pg-kdO$mNRh}2>AZ_{-0?ZQT9R@~xA5x2g7(Z)Zx{Ve%4k2o{z_@3Il`bwt27?K z1%&mmjIPQkL(vPnvqa1b!xQbx4MYK9l&?=bXVNnn|2f=T4LCLbjL5H-7)40XxUQ7* zQcNkuv?w~Y3$iq)E@EOb-5=sf8-Sb5TNFC{6HE6lv0+$qgg zx&p9PDrW*w4oCSr@uAa z5K$$VBH<4qz4NZW>WG`Z|<@M0Tc;~uw z=DDVI*8n4g9&iN}Q7+;LY@>dY?1KvrQ+6n(|5gk0`DdI2z8Y(Z4mLu+s6aZbHcdFl zO^yY@JE&={ozpru8TCB0PKn|MfyloIhPkDiRr^RrsV`({?iH!CxuLDwR@~6l7Kg7+ z^J0_Ng|CzIP{4=C0_!+^5#=|(#vKRRL|R2ZxXBC!tZk8DfvM%lmz&0DV#7rrUD@MA z1bl9f{ob=gX<_cX;X(5aE@Cbi)qN#Yo;V5I;D%qxKijLfuWH*Liea3S5ywczVxduuYc$sx*%&J`zVSV7lw%$3Xc;fwku7;N zogSaVM?VHqkXajKWdOOjLl)9tie%)CXz@s9FoPD6d?X|#Ny$o55|fskq$D$WNl$We zlbs~xCrc^HP?B<#noK1tE2+v>g7THFH03H~S<6_S5|*>PB`SHTOIrF8m%p?nFnhVn zVJ1_U%S0wKgV{`IK2w^@tAb9OS4^Q31z?Rigp=2M^h)Tcc8`A>ibRGljan8sA5Go@)wZEDhn z-jt>})u}ys+EbYR6sSWbYEg}PRHPAKEt-8~B`r!z|7(+^q z5Xn4v!4Frc=P4xM0WU;S4Qb_SN*X|ld8&c~X|1YIhbm7$q$I7UAi^)^*;b1Mz!PfS zYhUXrj53fStjth_6Z{HQ|GQpQvPP9_M&No^ditRVWEkuzk}%fAs)4NY^sF#A%M82r7me>Qr$>uSFI^AEt2H+9c;#DC1It*a@)T`; z_uJpaX4kRnJ%W{k+tnZ!SR`@IES-s((=caPt85soaI-w*F5i={V$Oqs0I&rK`vJR7 z&1q@_%~iTWdbjOeEj=GS2D;|q3ZliQr0bdI!(uwU9T==CNKM)kqgK?M9xk0L{biG~ z+NfOJ0vYtnU(jx$tLUvUcazZRu8QQrF^RLRooZ~NYWB2%1%Pq=jNIH#IJtBFg&sVS z*RQJK!(*^>R1r)HtKen zvcC;$k~+8D|FgFBnL(S@ur636RampHnJtphI(K5S75Gytj#RCBma%J&v7htWZGBoh z7OeHMRXP1zagWy1uT3j>>xpuAOM2b#Hg9?FY3{bxw%(qA`Gk=y?_ccPx&j&a%mEHk zZHxJ){>+0FZ0&?npc&z8O{|}-`)iG>nyy*bbR_v)&!i(Yr(wVExqCb4jsHTpK+i+8 zD?9OgCpX$lZ77EC?Q@#%cFt(?*@Y}>#-3W}yG1vWO}*WI7n{IG zAL-+f%7#vmp$;3Cx`Mr+2oS^d>%R7b7rHKMiMI;!iC_IvEpJrbCU&eOR(lyZ!2$c` z0lU4P|L5o_KVkcp8}a6jYl7?SS6T<#t2alydruu|x`JBP!sqq#>-l;o|Nf&~2f0qa z-B#}|HV-b?s)RK?=+^>w!AR!%Xur;Vr5_dkM*%dvr|0|2nE)Qc^!f}oPiFa^WGJ3BW8)G*YNuzV6g8%(=;^1T_G zE*o^N+Il!I04xU_I(=(Edvd}ZoWdl-3WU=u36#RzBChrlx)6jb;&PwX`#?0jC%m$P z|KZcTffy`4Td>@-Ij)K}Y`Z#pLPF+BLdL^8^?JC!NGsm+x&REKB4o5QOhiSDsK{Ex zfNI1Mbi{{(L`kefNu)$e#3xLwsZGqpdg??^3`J2KMN%w9Q#?gfOhr{(MOJLZjsitd zgvFSWMNgzfSG+}B%tc+?MP5{>cQU7S8Yf`orXotDMsg4%a>sY*5gDUF426^~G#`RNT1GD@*D5|!l9m70I$LW;IM9jRv6|)2k!JrYt zXpYfj4974C$dC-7Ov{T%i_P#4^4JZwJdHS+5aKA0&BT`3;E&|E8rkd({|ge1)gX_+ zQHtKw3eBJk!sG}K2_CL_kn8{w?vRRcfgLd!kJd1c_0XV~X->>UB#H3O>hYR>!5^^X zj73q-0MSVTF*F3(2nCrT8nUA4kPx{!k+=~}kZ_R>`H-XJo!=>*xL}dOX_1YHmhTKu z-O$hF6q{Xe&XY8eA5qNiz?*APo6Z@OlyH)m0GGpnQ1En!4^7aWIT$VhoxkK2lz^De zB+Fe$6BuffH>u6}{0^_^n848!yBQZ81(Xq8lIjeeLrIi3i3mpN(MN%xjhLC-p(quh2MNz0shN zDH$XU)s^`eoOu~ujhV7I9-8qMVC_}x(3|DlA!NmxDiIo@F`6o!3Z+R7wqZ)Bd6d{- z6;@SN5rPYD6`flFn^hT`5-6LqNgGqyR5hX#o!Qa7p_{E3oV(%D^bt^!=$mN~9Q)yu z3&q#N8JGsW2}Z@3%6%pm~H0RYa))Tl`Y|Nkk@|6!tmEf_699U4)c z5?~#rcpd&h2q0P?`RrEG@txfvlqO{vz-ifhjUnRUQ;;|w(@-7@A(7^Jo?T!R=>e0_ z30RuQ*qd|+R9TJg36<~32=O7Gu%U(+Nn@pF} zEu_>XUDh=u!dzWqf!#oo-PWyLqo7?q!d*NTq@aKTdYC+;1RCG4r{jf11e?ftj;sG(pomoTCIPRLb!{&?klPwj$)gN zJ>Rk~tGlN%^swWaHY|iHiSw~HoUZD+t}`4w|M-eRmrF0&%E2{u;&vOnDHgN$g5v@< zx}q{OT=Ors3a|k?K9bwP1{*f-!egW|m0x=QWF0>1@92PTSSg}ZIu@~!M zr{c038-pC%F(q5!C}Y6G`{c_qvUlS#QKqlSQ)M5MGAi?ABD=DiyRa==Gf5U;M8>L^ zE4V#Qv+HX(GdFp|XnM1^#>+RI!5jBj_i#W-2zSnua~j zGs2D&!jIEvd=j}pmamg*X~G-2mh)$@YCM@M>E^pQfv&EcgR7nEIb#Dlq2ub9K45oV zW(9LPOn^F^raDrvI*rS^mHRaXbHCL~>t?<_>sw|kM!TejE4FhxupMKG{tJ8-yTSvm zj?OzdYc{^~yT%JVvKl;-?lw=eyu|}TX4Y#Bl(Fn9V9(}6dcr)-T~Sk^D^PE+hyb`ub!@n}nzr*T3BP{JgT%X!j>^DO)3k))oPGwO8HD+FCUjr-5Mm(XDD=(

HDfI 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

  • 81m} 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ß>IhhT5R~_f5s~D3Equ^@}gnQRcO6NK5SH+#%6A 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 W@ZSW)$EKTE$EO(vGDu + +class QPushButton; +class QLineEdit; +class QProgressBar; +class QSlider; +class QRadioButton; +class QCheckBox; +class QScrollBar; + +#ifdef quc +#if (QT_VERSION < QT_VERSION_CHECK(5,7,0)) +#include +#else +#include +#endif + +class QDESIGNER_WIDGET_EXPORT FlatUI : public QObject +#else +class FlatUI : public QObject +#endif + +{ + Q_OBJECT +public: + static FlatUI *Instance(); + explicit FlatUI(QObject *parent = 0); + +private: + static QScopedPointer self; + +public: + //设置按钮样式 + static QString setPushButtonQss(QPushButton *btn, //按钮对象 + int radius = 5, //圆角半径 + int padding = 8, //间距 + const QString &normalColor = "#34495E", //正常颜色 + const QString &normalTextColor = "#FFFFFF", //文字颜色 + const QString &hoverColor = "#4E6D8C", //悬停颜色 + const QString &hoverTextColor = "#F0F0F0", //悬停文字颜色 + const QString &pressedColor = "#2D3E50", //按下颜色 + const QString &pressedTextColor = "#B8C6D1"); //按下文字颜色 + + //设置文本框样式 + static QString setLineEditQss(QLineEdit *txt, //文本框对象 + int radius = 3, //圆角半径 + int borderWidth = 2, //边框大小 + const QString &normalColor = "#DCE4EC", //正常颜色 + const QString &focusColor = "#34495E"); //选中颜色 + + //设置进度条样式 + static QString setProgressQss(QProgressBar *bar, + int barHeight = 8, //进度条高度 + int barRadius = 5, //进度条半径 + int fontSize = 9, //文字字号 + const QString &normalColor = "#E8EDF2", //正常颜色 + const QString &chunkColor = "#E74C3C"); //进度颜色 + + //设置滑块条样式 + static QString setSliderQss(QSlider *slider, //滑动条对象 + int sliderHeight = 8, //滑动条高度 + const QString &normalColor = "#E8EDF2", //正常颜色 + const QString &grooveColor = "#1ABC9C", //滑块颜色 + const QString &handleBorderColor = "#1ABC9C", //指示器边框颜色 + const QString &handleColor = "#FFFFFF"); //指示器颜色 + + //设置单选框样式 + static QString setRadioButtonQss(QRadioButton *rbtn, //单选框对象 + int indicatorRadius = 8, //指示器圆角角度 + const QString &normalColor = "#D7DBDE", //正常颜色 + const QString &checkColor = "#34495E"); //选中颜色 + + //设置滚动条样式 + static QString setScrollBarQss(QWidget *scroll, //滚动条对象 + int radius = 6, //圆角角度 + int min = 120, //指示器最小长度 + int max = 12, //滚动条最大长度 + const QString &bgColor = "#606060", //背景色 + const QString &handleNormalColor = "#34495E", //指示器正常颜色 + const QString &handleHoverColor = "#1ABC9C", //指示器悬停颜色 + const QString &handlePressedColor = "#E74C3C"); //指示器按下颜色 +}; + +#endif // FLATUI_H diff --git a/flatui/flatui.pro b/flatui/flatui.pro new file mode 100644 index 0000000..38cc673 --- /dev/null +++ b/flatui/flatui.pro @@ -0,0 +1,23 @@ +#------------------------------------------------- +# +# Project created by QtCreator 2017-01-09T09:29:12 +# +#------------------------------------------------- + +QT += core gui + +greaterThan(QT_MAJOR_VERSION, 4): QT += widgets + +TARGET = flatui +TEMPLATE = app +DESTDIR = $$PWD/../bin +CONFIG += warn_off + +SOURCES += main.cpp +SOURCES += frmflatui.cpp +SOURCES += flatui.cpp + +HEADERS += frmflatui.h +HEADERS += flatui.h + +FORMS += frmflatui.ui diff --git a/flatui/frmflatui.cpp b/flatui/frmflatui.cpp new file mode 100644 index 0000000..2b5d8ee --- /dev/null +++ b/flatui/frmflatui.cpp @@ -0,0 +1,99 @@ +#pragma execution_character_set("utf-8") + +#include "frmflatui.h" +#include "ui_frmflatui.h" +#include "flatui.h" +#include "qdebug.h" +#include "qdesktopwidget.h" +#include "qdatetime.h" + +frmFlatUI::frmFlatUI(QWidget *parent) : QWidget(parent), ui(new Ui::frmFlatUI) +{ + ui->setupUi(this); + this->initForm(); +} + +frmFlatUI::~frmFlatUI() +{ + delete ui; +} + +void frmFlatUI::initForm() +{ + ui->bar1->setRange(0, 100); + ui->bar2->setRange(0, 100); + ui->slider1->setRange(0, 100); + ui->slider2->setRange(0, 100); + + connect(ui->slider1, SIGNAL(valueChanged(int)), ui->bar1, SLOT(setValue(int))); + connect(ui->slider2, SIGNAL(valueChanged(int)), ui->bar2, SLOT(setValue(int))); + ui->slider1->setValue(30); + ui->slider2->setValue(30); + + this->setStyleSheet("*{outline:0px;}QWidget#frmFlatUI{background:#FFFFFF;}"); + + FlatUI::Instance()->setPushButtonQss(ui->btn1); + FlatUI::Instance()->setPushButtonQss(ui->btn2, 5, 8, "#1ABC9C", "#E6F8F5", "#2EE1C1", "#FFFFFF", "#16A086", "#A7EEE6"); + FlatUI::Instance()->setPushButtonQss(ui->btn3, 5, 8, "#3498DB", "#FFFFFF", "#5DACE4", "#E5FEFF", "#2483C7", "#A0DAFB"); + FlatUI::Instance()->setPushButtonQss(ui->btn4, 5, 8, "#E74C3C", "#FFFFFF", "#EC7064", "#FFF5E7", "#DC2D1A", "#F5A996"); + + FlatUI::Instance()->setLineEditQss(ui->txt1); + FlatUI::Instance()->setLineEditQss(ui->txt2, 5, 2, "#DCE4EC", "#1ABC9C"); + FlatUI::Instance()->setLineEditQss(ui->txt3, 3, 1, "#DCE4EC", "#3498DB"); + FlatUI::Instance()->setLineEditQss(ui->txt4, 3, 1, "#DCE4EC", "#E74C3C"); + + FlatUI::Instance()->setProgressQss(ui->bar1); + FlatUI::Instance()->setProgressQss(ui->bar2, 8, 5, 9, "#E8EDF2", "#1ABC9C"); + + FlatUI::Instance()->setSliderQss(ui->slider1); + FlatUI::Instance()->setSliderQss(ui->slider2, 10, "#E8EDF2", "#E74C3C", "#E74C3C"); + FlatUI::Instance()->setSliderQss(ui->slider3, 10, "#E8EDF2", "#34495E", "#34495E"); + + FlatUI::Instance()->setRadioButtonQss(ui->rbtn1); + FlatUI::Instance()->setRadioButtonQss(ui->rbtn2, 8, "#D7DBDE", "#1ABC9C"); + FlatUI::Instance()->setRadioButtonQss(ui->rbtn3, 8, "#D7DBDE", "#3498DB"); + FlatUI::Instance()->setRadioButtonQss(ui->rbtn4, 8, "#D7DBDE", "#E74C3C"); + + FlatUI::Instance()->setScrollBarQss(ui->horizontalScrollBar); + FlatUI::Instance()->setScrollBarQss(ui->verticalScrollBar, 8, 120, 20, "#606060", "#34495E", "#1ABC9C", "#E74C3C"); + + //设置列数和列宽 + int width = qApp->desktop()->availableGeometry().width() - 120; + ui->tableWidget->setColumnCount(5); + ui->tableWidget->setColumnWidth(0, width * 0.06); + ui->tableWidget->setColumnWidth(1, width * 0.10); + ui->tableWidget->setColumnWidth(2, width * 0.06); + ui->tableWidget->setColumnWidth(3, width * 0.10); + ui->tableWidget->setColumnWidth(4, width * 0.20); + ui->tableWidget->verticalHeader()->setDefaultSectionSize(25); + + QStringList headText; + headText << "设备编号" << "设备名称" << "设备地址" << "告警内容" << "告警时间"; + ui->tableWidget->setHorizontalHeaderLabels(headText); + ui->tableWidget->setSelectionBehavior(QAbstractItemView::SelectRows); + ui->tableWidget->setEditTriggers(QAbstractItemView::NoEditTriggers); + ui->tableWidget->setSelectionMode(QAbstractItemView::SingleSelection); + ui->tableWidget->setAlternatingRowColors(true); + ui->tableWidget->verticalHeader()->setVisible(false); + ui->tableWidget->horizontalHeader()->setStretchLastSection(true); + + //设置行高 + ui->tableWidget->setRowCount(300); + + for (int i = 0; i < 300; i++) { + ui->tableWidget->setRowHeight(i, 24); + + QTableWidgetItem *itemDeviceID = new QTableWidgetItem(QString::number(i + 1)); + QTableWidgetItem *itemDeviceName = new QTableWidgetItem(QString("测试设备%1").arg(i + 1)); + QTableWidgetItem *itemDeviceAddr = new QTableWidgetItem(QString::number(i + 1)); + QTableWidgetItem *itemContent = new QTableWidgetItem("防区告警"); + QTableWidgetItem *itemTime = new QTableWidgetItem(QDateTime::currentDateTime().toString("yyyy-MM-dd hh:mm:ss")); + + ui->tableWidget->setItem(i, 0, itemDeviceID); + ui->tableWidget->setItem(i, 1, itemDeviceName); + ui->tableWidget->setItem(i, 2, itemDeviceAddr); + ui->tableWidget->setItem(i, 3, itemContent); + ui->tableWidget->setItem(i, 4, itemTime); + } + +} diff --git a/flatui/frmflatui.h b/flatui/frmflatui.h new file mode 100644 index 0000000..96146f8 --- /dev/null +++ b/flatui/frmflatui.h @@ -0,0 +1,26 @@ +#ifndef FRMFLATUI_H +#define FRMFLATUI_H + +#include + +namespace Ui +{ +class frmFlatUI; +} + +class frmFlatUI : public QWidget +{ + Q_OBJECT + +public: + explicit frmFlatUI(QWidget *parent = 0); + ~frmFlatUI(); + +private: + Ui::frmFlatUI *ui; + +private slots: + void initForm(); +}; + +#endif // FRMFLATUI_H diff --git a/flatui/frmflatui.ui b/flatui/frmflatui.ui new file mode 100644 index 0000000..5034bea --- /dev/null +++ b/flatui/frmflatui.ui @@ -0,0 +1,203 @@ + + + frmFlatUI + + + + 0 + 0 + 600 + 450 + + + + Form + + + + + + + + + 语文 + + + true + + + + + + + + + + 测试按钮 + + + + + + + + + + + + + 测试按钮 + + + + + + + Qt::Vertical + + + false + + + QSlider::NoTicks + + + + + + + 英语 + + + + + + + + 0 + 16 + + + + 24 + + + + + + + + + + Qt::Horizontal + + + + + + + 历史 + + + + + + + 数学 + + + + + + + + + + 测试按钮 + + + + + + + + + + + + + + + + 测试按钮 + + + + + + + + + + + 0 + 16 + + + + 24 + + + + + + + Qt::Vertical + + + + + + + + 0 + 20 + + + + Qt::Horizontal + + + + + + + + 0 + 20 + + + + 255 + + + Qt::Horizontal + + + + + + + + + + Qt::DashDotLine + + + + + + + + + diff --git a/flatui/main.cpp b/flatui/main.cpp new file mode 100644 index 0000000..60518d2 --- /dev/null +++ b/flatui/main.cpp @@ -0,0 +1,31 @@ +#pragma execution_character_set("utf-8") + +#include "frmflatui.h" +#include +#include + +int main(int argc, char *argv[]) +{ + QApplication a(argc, argv); + a.setFont(QFont("Microsoft Yahei", 9)); + +#if (QT_VERSION <= QT_VERSION_CHECK(5,0,0)) +#if _MSC_VER + QTextCodec *codec = QTextCodec::codecForName("gbk"); +#else + QTextCodec *codec = QTextCodec::codecForName("utf-8"); +#endif + QTextCodec::setCodecForLocale(codec); + QTextCodec::setCodecForCStrings(codec); + QTextCodec::setCodecForTr(codec); +#else + QTextCodec *codec = QTextCodec::codecForName("utf-8"); + QTextCodec::setCodecForLocale(codec); +#endif + + frmFlatUI w; + w.setWindowTitle("FlatUI控件集合"); + w.show(); + + return a.exec(); +} diff --git a/gifwidget/gif.h b/gifwidget/gif.h new file mode 100644 index 0000000..fe797d9 --- /dev/null +++ b/gifwidget/gif.h @@ -0,0 +1,803 @@ +// +// gif.h +// by Charlie Tangora +// Public domain. +// Email me : ctangora -at- gmail -dot- com +// +// This file offers a simple, very limited way to create animated GIFs directly in code. +// +// Those looking for particular cleverness are likely to be disappointed; it's pretty +// much a straight-ahead implementation of the GIF format with optional Floyd-Steinberg +// dithering. (It does at least use delta encoding - only the changed portions of each +// frame are saved.) +// +// So resulting files are often quite large. The hope is that it will be handy nonetheless +// as a quick and easily-integrated way for programs to spit out animations. +// +// Only RGBA8 is currently supported as an input format. (The alpha is ignored.) +// +// USAGE: +// Create a GifWriter struct. Pass it to GifBegin() to initialize and write the header. +// Pass subsequent frames to GifWriteFrame(). +// Finally, call GifEnd() to close the file handle and free memory. +// + +#ifndef __gif_h__ +#define __gif_h__ + +#include // for FILE* +#include // for memcpy and bzero +#include // for integer typedefs + +// Define these macros to hook into a custom memory allocator. +// TEMP_MALLOC and TEMP_FREE will only be called in stack fashion - frees in the reverse order of mallocs +// and any temp memory allocated by a function will be freed before it exits. +// MALLOC and FREE are used only by GifBegin and GifEnd respectively (to allocate a buffer the size of the image, which +// is used to find changed pixels for delta-encoding.) + +#ifndef GIF_TEMP_MALLOC +#include +#define GIF_TEMP_MALLOC malloc +#endif + +#ifndef GIF_TEMP_FREE +#include +#define GIF_TEMP_FREE free +#endif + +#ifndef GIF_MALLOC +#include +#define GIF_MALLOC malloc +#endif + +#ifndef GIF_FREE +#include +#define GIF_FREE free +#endif + +class Gif +{ +public: + int kGifTransIndex; + struct GifPalette { + int bitDepth; + uint8_t r[256]; + uint8_t g[256]; + uint8_t b[256]; + // k-d tree over RGB space, organized in heap fashion + // i.e. left child of node i is node i*2, right child is node i*2+1 + // nodes 256-511 are implicitly the leaves, containing a color + uint8_t treeSplitElt[255]; + uint8_t treeSplit[255]; + }; + + // max, min, and abs functions + int GifIMax(int l, int r) + { + return l > r ? l : r; + } + int GifIMin(int l, int r) + { + return l < r ? l : r; + } + int GifIAbs(int i) + { + return i < 0 ? -i : i; + } + + // walks the k-d tree to pick the palette entry for a desired color. + // Takes as in/out parameters the current best color and its error - + // only changes them if it finds a better color in its subtree. + // this is the major hotspot in the code at the moment. + void GifGetClosestPaletteColor(GifPalette *pPal, int r, int g, int b, int &bestInd, int &bestDiff, int treeRoot = 1) + { + // base case, reached the bottom of the tree + if(treeRoot > (1 << pPal->bitDepth) - 1) { + int ind = treeRoot - (1 << pPal->bitDepth); + if(ind == kGifTransIndex) { + return; + } + // check whether this color is better than the current winner + int r_err = r - ((int32_t)pPal->r[ind]); + int g_err = g - ((int32_t)pPal->g[ind]); + int b_err = b - ((int32_t)pPal->b[ind]); + int diff = GifIAbs(r_err) + GifIAbs(g_err) + GifIAbs(b_err); + if(diff < bestDiff) { + bestInd = ind; + bestDiff = diff; + } + return; + } + // take the appropriate color (r, g, or b) for this node of the k-d tree + int comps[3]; + comps[0] = r; + comps[1] = g; + comps[2] = b; + int splitComp = comps[pPal->treeSplitElt[treeRoot]]; + + int splitPos = pPal->treeSplit[treeRoot]; + if(splitPos > splitComp) { + // check the left subtree + GifGetClosestPaletteColor(pPal, r, g, b, bestInd, bestDiff, treeRoot * 2); + if( bestDiff > splitPos - splitComp ) { + // cannot prove there's not a better value in the right subtree, check that too + GifGetClosestPaletteColor(pPal, r, g, b, bestInd, bestDiff, treeRoot * 2 + 1); + } + } else { + GifGetClosestPaletteColor(pPal, r, g, b, bestInd, bestDiff, treeRoot * 2 + 1); + if( bestDiff > splitComp - splitPos ) { + GifGetClosestPaletteColor(pPal, r, g, b, bestInd, bestDiff, treeRoot * 2); + } + } + } + + void GifSwapPixels(uint8_t *image, int pixA, int pixB) + { + uint8_t rA = image[pixA * 4]; + uint8_t gA = image[pixA * 4 + 1]; + uint8_t bA = image[pixA * 4 + 2]; + uint8_t aA = image[pixA * 4 + 3]; + + uint8_t rB = image[pixB * 4]; + uint8_t gB = image[pixB * 4 + 1]; + uint8_t bB = image[pixB * 4 + 2]; + uint8_t aB = image[pixA * 4 + 3]; + + image[pixA * 4] = rB; + image[pixA * 4 + 1] = gB; + image[pixA * 4 + 2] = bB; + image[pixA * 4 + 3] = aB; + + image[pixB * 4] = rA; + image[pixB * 4 + 1] = gA; + image[pixB * 4 + 2] = bA; + image[pixB * 4 + 3] = aA; + } + + // just the partition operation from quicksort + int GifPartition(uint8_t *image, const int left, const int right, const int elt, int pivotIndex) + { + const int pivotValue = image[(pivotIndex) * 4 + elt]; + GifSwapPixels(image, pivotIndex, right - 1); + int storeIndex = left; + bool split = 0; + for(int ii = left; ii < right - 1; ++ii) { + int arrayVal = image[ii * 4 + elt]; + if( arrayVal < pivotValue ) { + GifSwapPixels(image, ii, storeIndex); + ++storeIndex; + } else if( arrayVal == pivotValue ) { + if(split) { + GifSwapPixels(image, ii, storeIndex); + ++storeIndex; + } + split = !split; + } + } + GifSwapPixels(image, storeIndex, right - 1); + return storeIndex; + } + + // Perform an incomplete sort, finding all elements above and below the desired median + void GifPartitionByMedian(uint8_t *image, int left, int right, int com, int neededCenter) + { + if (left < right - 1) { + int pivotIndex = left + (right - left) / 2; + pivotIndex = GifPartition(image, left, right, com, pivotIndex); + // Only "sort" the section of the array that contains the median + if(pivotIndex > neededCenter) { + GifPartitionByMedian(image, left, pivotIndex, com, neededCenter); + } + if(pivotIndex < neededCenter) { + GifPartitionByMedian(image, pivotIndex + 1, right, com, neededCenter); + } + } + } + + // Builds a palette by creating a balanced k-d tree of all pixels in the image + void GifSplitPalette(uint8_t *image, + int numPixels, int firstElt, + int lastElt, int splitElt, + int splitDist, int treeNode, + bool buildForDither, GifPalette *pal) + { + if (lastElt <= firstElt || numPixels == 0) { + return; + } + // base case, bottom of the tree + if (lastElt == firstElt + 1) { + if (buildForDither) { + // Dithering needs at least one color as dark as anything + // in the image and at least one brightest color - + // otherwise it builds up error and produces strange artifacts + if( firstElt == 1 ) { + // special case: the darkest color in the image + uint32_t r = 255, g = 255, b = 255; + for(int ii = 0; ii < numPixels; ++ii) { + r = (uint32_t)GifIMin((int32_t)r, image[ii * 4 + 0]); + g = (uint32_t)GifIMin((int32_t)g, image[ii * 4 + 1]); + b = (uint32_t)GifIMin((int32_t)b, image[ii * 4 + 2]); + } + pal->r[firstElt] = (uint8_t)r; + pal->g[firstElt] = (uint8_t)g; + pal->b[firstElt] = (uint8_t)b; + return; + } + + if ( firstElt == (1 << pal->bitDepth) - 1 ) { + // special case: the lightest color in the image + uint32_t r = 0, g = 0, b = 0; + for(int ii = 0; ii < numPixels; ++ii) { + r = (uint32_t)GifIMax((int32_t)r, image[ii * 4 + 0]); + g = (uint32_t)GifIMax((int32_t)g, image[ii * 4 + 1]); + b = (uint32_t)GifIMax((int32_t)b, image[ii * 4 + 2]); + } + pal->r[firstElt] = (uint8_t)r; + pal->g[firstElt] = (uint8_t)g; + pal->b[firstElt] = (uint8_t)b; + return; + } + } + // otherwise, take the average of all colors in this subcube + uint64_t r = 0, g = 0, b = 0; + for (int ii = 0; ii < numPixels; ++ii) { + r += image[ii * 4 + 0]; + g += image[ii * 4 + 1]; + b += image[ii * 4 + 2]; + } + + r += (uint64_t)numPixels / 2; // round to nearest + g += (uint64_t)numPixels / 2; + b += (uint64_t)numPixels / 2; + + r /= (uint64_t)numPixels; + g /= (uint64_t)numPixels; + b /= (uint64_t)numPixels; + + pal->r[firstElt] = (uint8_t)r; + pal->g[firstElt] = (uint8_t)g; + pal->b[firstElt] = (uint8_t)b; + return; + } + // Find the axis with the largest range + int minR = 255, maxR = 0; + int minG = 255, maxG = 0; + int minB = 255, maxB = 0; + for(int ii = 0; ii < numPixels; ++ii) { + int r = image[ii * 4 + 0]; + int g = image[ii * 4 + 1]; + int b = image[ii * 4 + 2]; + + if(r > maxR) { + maxR = r; + } + if(r < minR) { + minR = r; + } + + if(g > maxG) { + maxG = g; + } + if(g < minG) { + minG = g; + } + + if(b > maxB) { + maxB = b; + } + if(b < minB) { + minB = b; + } + } + + int rRange = maxR - minR; + int gRange = maxG - minG; + int bRange = maxB - minB; + // and split along that axis. (incidentally, this means this isn't a "proper" k-d tree but I don't know what else to call it) + int splitCom = 1; + if (bRange > gRange) { + splitCom = 2; + } + if (rRange > bRange && rRange > gRange) { + splitCom = 0; + } + + int subPixelsA = numPixels * (splitElt - firstElt) / (lastElt - firstElt); + int subPixelsB = numPixels - subPixelsA; + + GifPartitionByMedian(image, 0, numPixels, splitCom, subPixelsA); + + pal->treeSplitElt[treeNode] = (uint8_t)splitCom; + pal->treeSplit[treeNode] = image[subPixelsA * 4 + splitCom]; + + GifSplitPalette(image, subPixelsA, firstElt, splitElt, splitElt - splitDist, splitDist / 2, treeNode * 2, buildForDither, pal); + GifSplitPalette(image + subPixelsA * 4, subPixelsB, splitElt, lastElt, splitElt + splitDist, splitDist / 2, treeNode * 2 + 1, buildForDither, pal); + } + + // Finds all pixels that have changed from the previous image and + // moves them to the fromt of th buffer. + // This allows us to build a palette optimized for the colors of the + // changed pixels only. + int GifPickChangedPixels( const uint8_t *lastFrame, uint8_t *frame, int numPixels ) + { + int numChanged = 0; + uint8_t *writeIter = frame; + for (int ii = 0; ii < numPixels; ++ii) { + if(lastFrame[0] != frame[0] || + lastFrame[1] != frame[1] || + lastFrame[2] != frame[2]) { + writeIter[0] = frame[0]; + writeIter[1] = frame[1]; + writeIter[2] = frame[2]; + ++numChanged; + writeIter += 4; + } + lastFrame += 4; + frame += 4; + } + return numChanged; + } + + // Creates a palette by placing all the image pixels in a k-d tree and then averaging the blocks at the bottom. + // This is known as the "modified median split" technique + void GifMakePalette( const uint8_t *lastFrame, + const uint8_t *nextFrame, + uint32_t width, uint32_t height, + int bitDepth, bool buildForDither, + GifPalette *pPal ) + { + pPal->bitDepth = bitDepth; + + // SplitPalette is destructive (it sorts the pixels by color) so + // we must create a copy of the image for it to destroy + size_t imageSize = (size_t)(width * height * 4 * sizeof(uint8_t)); + uint8_t *destroyableImage = (uint8_t *)GIF_TEMP_MALLOC(imageSize); + memcpy(destroyableImage, nextFrame, imageSize); + + int numPixels = (int)(width * height); + if(lastFrame) { + numPixels = GifPickChangedPixels(lastFrame, destroyableImage, numPixels); + } + + const int lastElt = 1 << bitDepth; + const int splitElt = lastElt / 2; + const int splitDist = splitElt / 2; + + GifSplitPalette(destroyableImage, numPixels, 1, lastElt, splitElt, splitDist, 1, buildForDither, pPal); + + GIF_TEMP_FREE(destroyableImage); + + // add the bottom node for the transparency index + pPal->treeSplit[1 << (bitDepth - 1)] = 0; + pPal->treeSplitElt[1 << (bitDepth - 1)] = 0; + + pPal->r[0] = pPal->g[0] = pPal->b[0] = 0; + } + + // Implements Floyd-Steinberg dithering, writes palette value to alpha + void GifDitherImage( const uint8_t *lastFrame, const uint8_t *nextFrame, + uint8_t *outFrame, uint32_t width, + uint32_t height, GifPalette *pPal ) + { + int numPixels = (int)(width * height); + + // quantPixels initially holds color*256 for all pixels + // The extra 8 bits of precision allow for sub-single-color error values + // to be propagated + int32_t *quantPixels = (int32_t *)GIF_TEMP_MALLOC(sizeof(int32_t) * (size_t)numPixels * 4); + for( int ii = 0; ii < numPixels * 4; ++ii ) { + uint8_t pix = nextFrame[ii]; + int32_t pix16 = int32_t(pix) * 256; + quantPixels[ii] = pix16; + } + + for( uint32_t yy = 0; yy < height; ++yy ) { + for( uint32_t xx = 0; xx < width; ++xx ) { + int32_t *nextPix = quantPixels + 4 * (yy * width + xx); + const uint8_t *lastPix = lastFrame ? lastFrame + 4 * (yy * width + xx) : NULL; + // Compute the colors we want (rounding to nearest) + int32_t rr = (nextPix[0] + 127) / 256; + int32_t gg = (nextPix[1] + 127) / 256; + int32_t bb = (nextPix[2] + 127) / 256; + // if it happens that we want the color from last frame, then just write out + // a transparent pixel + if( lastFrame && + lastPix[0] == rr && + lastPix[1] == gg && + lastPix[2] == bb ) { + nextPix[0] = rr; + nextPix[1] = gg; + nextPix[2] = bb; + nextPix[3] = kGifTransIndex; + continue; + } + + int32_t bestDiff = 1000000; + int32_t bestInd = kGifTransIndex; + // Search the palete + GifGetClosestPaletteColor(pPal, rr, gg, bb, bestInd, bestDiff); + // Write the result to the temp buffer + int32_t r_err = nextPix[0] - int32_t(pPal->r[bestInd]) * 256; + int32_t g_err = nextPix[1] - int32_t(pPal->g[bestInd]) * 256; + int32_t b_err = nextPix[2] - int32_t(pPal->b[bestInd]) * 256; + + nextPix[0] = pPal->r[bestInd]; + nextPix[1] = pPal->g[bestInd]; + nextPix[2] = pPal->b[bestInd]; + nextPix[3] = bestInd; + + // Propagate the error to the four adjacent locations + // that we haven't touched yet + int quantloc_7 = (int)(yy * width + xx + 1); + int quantloc_3 = (int)(yy * width + width + xx - 1); + int quantloc_5 = (int)(yy * width + width + xx); + int quantloc_1 = (int)(yy * width + width + xx + 1); + + if(quantloc_7 < numPixels) { + int32_t *pix7 = quantPixels + 4 * quantloc_7; + pix7[0] += GifIMax( -pix7[0], r_err * 7 / 16 ); + pix7[1] += GifIMax( -pix7[1], g_err * 7 / 16 ); + pix7[2] += GifIMax( -pix7[2], b_err * 7 / 16 ); + } + + if(quantloc_3 < numPixels) { + int32_t *pix3 = quantPixels + 4 * quantloc_3; + pix3[0] += GifIMax( -pix3[0], r_err * 3 / 16 ); + pix3[1] += GifIMax( -pix3[1], g_err * 3 / 16 ); + pix3[2] += GifIMax( -pix3[2], b_err * 3 / 16 ); + } + + if(quantloc_5 < numPixels) { + int32_t *pix5 = quantPixels + 4 * quantloc_5; + pix5[0] += GifIMax( -pix5[0], r_err * 5 / 16 ); + pix5[1] += GifIMax( -pix5[1], g_err * 5 / 16 ); + pix5[2] += GifIMax( -pix5[2], b_err * 5 / 16 ); + } + + if(quantloc_1 < numPixels) { + int32_t *pix1 = quantPixels + 4 * quantloc_1; + pix1[0] += GifIMax( -pix1[0], r_err / 16 ); + pix1[1] += GifIMax( -pix1[1], g_err / 16 ); + pix1[2] += GifIMax( -pix1[2], b_err / 16 ); + } + } + } + // Copy the palettized result to the output buffer + for( int ii = 0; ii < numPixels * 4; ++ii ) { + outFrame[ii] = (uint8_t)quantPixels[ii]; + } + + GIF_TEMP_FREE(quantPixels); + } + + // Picks palette colors for the image using simple thresholding, no dithering + void GifThresholdImage( const uint8_t *lastFrame, const uint8_t *nextFrame, + uint8_t *outFrame, uint32_t width, uint32_t height, + GifPalette *pPal ) + { + uint32_t numPixels = width * height; + for( uint32_t ii = 0; ii < numPixels; ++ii ) { + // if a previous color is available, and it matches the current color, + // set the pixel to transparent + if(lastFrame && + lastFrame[0] == nextFrame[0] && + lastFrame[1] == nextFrame[1] && + lastFrame[2] == nextFrame[2]) { + outFrame[0] = lastFrame[0]; + outFrame[1] = lastFrame[1]; + outFrame[2] = lastFrame[2]; + outFrame[3] = kGifTransIndex; + } else { + // palettize the pixel + int32_t bestDiff = 1000000; + int32_t bestInd = 1; + GifGetClosestPaletteColor(pPal, nextFrame[0], nextFrame[1], nextFrame[2], bestInd, bestDiff); + + // Write the resulting color to the output buffer + outFrame[0] = pPal->r[bestInd]; + outFrame[1] = pPal->g[bestInd]; + outFrame[2] = pPal->b[bestInd]; + outFrame[3] = (uint8_t)bestInd; + } + if(lastFrame) { + lastFrame += 4; + } + outFrame += 4; + nextFrame += 4; + } + } + + // Simple structure to write out the LZW-compressed portion of the image + // one bit at a time + struct GifBitStatus { + uint8_t bitIndex; // how many bits in the partial byte written so far + uint8_t byte; // current partial byte + + uint32_t chunkIndex; + uint8_t chunk[256]; // bytes are written in here until we have 256 of them, then written to the file + }; + + // insert a single bit + void GifWriteBit( GifBitStatus &stat, uint32_t bit ) + { + bit = bit & 1; + bit = bit << stat.bitIndex; + stat.byte |= bit; + + ++stat.bitIndex; + if( stat.bitIndex > 7 ) { + // move the newly-finished byte to the chunk buffer + stat.chunk[stat.chunkIndex++] = stat.byte; + // and start a new byte + stat.bitIndex = 0; + stat.byte = 0; + } + } + + // write all bytes so far to the file + void GifWriteChunk( FILE *f, GifBitStatus &stat ) + { + fputc((int)stat.chunkIndex, f); + fwrite(stat.chunk, 1, stat.chunkIndex, f); + + stat.bitIndex = 0; + stat.byte = 0; + stat.chunkIndex = 0; + } + + void GifWriteCode( FILE *f, GifBitStatus &stat, uint32_t code, uint32_t length ) + { + for( uint32_t ii = 0; ii < length; ++ii ) { + GifWriteBit(stat, code); + code = code >> 1; + if( stat.chunkIndex == 255 ) { + GifWriteChunk(f, stat); + } + } + } + + // The LZW dictionary is a 256-ary tree constructed as the file is encoded, + // this is one node + struct GifLzwNode { + uint16_t m_next[256]; + }; + + // write a 256-color (8-bit) image palette to the file + void GifWritePalette( const GifPalette *pPal, FILE *f ) + { + fputc(0, f); // first color: transparency + fputc(0, f); + fputc(0, f); + for(int ii = 1; ii < (1 << pPal->bitDepth); ++ii) { + uint32_t r = pPal->r[ii]; + uint32_t g = pPal->g[ii]; + uint32_t b = pPal->b[ii]; + fputc((int)r, f); + fputc((int)g, f); + fputc((int)b, f); + } + } + + // write the image header, LZW-compress and write out the image + void GifWriteLzwImage(FILE *f, uint8_t *image, uint32_t left, + uint32_t top, uint32_t width, + uint32_t height, uint32_t delay, + GifPalette *pPal) + { + // graphics control extension + fputc(0x21, f); + fputc(0xf9, f); + fputc(0x04, f); + fputc(0x05, f); // leave prev frame in place, this frame has transparency + fputc(delay & 0xff, f); + fputc((delay >> 8) & 0xff, f); + fputc(kGifTransIndex, f); // transparent color index + fputc(0, f); + + fputc(0x2c, f); // image descriptor block + + fputc(left & 0xff, f); // corner of image in canvas space + fputc((left >> 8) & 0xff, f); + fputc(top & 0xff, f); + fputc((top >> 8) & 0xff, f); + + fputc(width & 0xff, f); // width and height of image + fputc((width >> 8) & 0xff, f); + fputc(height & 0xff, f); + fputc((height >> 8) & 0xff, f); + + //fputc(0, f); // no local color table, no transparency + //fputc(0x80, f); // no local color table, but transparency + + fputc(0x80 + pPal->bitDepth - 1, f); // local color table present, 2 ^ bitDepth entries + GifWritePalette(pPal, f); + + const int minCodeSize = pPal->bitDepth; + const uint32_t clearCode = 1 << pPal->bitDepth; + + fputc(minCodeSize, f); // min code size 8 bits + + GifLzwNode *codetree = (GifLzwNode *)GIF_TEMP_MALLOC(sizeof(GifLzwNode) * 4096); + + memset(codetree, 0, sizeof(GifLzwNode) * 4096); + int32_t curCode = -1; + uint32_t codeSize = (uint32_t)minCodeSize + 1; + uint32_t maxCode = clearCode + 1; + + GifBitStatus stat; + stat.byte = 0; + stat.bitIndex = 0; + stat.chunkIndex = 0; + + GifWriteCode(f, stat, clearCode, codeSize); // start with a fresh LZW dictionary + + for(uint32_t yy = 0; yy < height; ++yy) { + for(uint32_t xx = 0; xx < width; ++xx) { + uint8_t nextValue = image[(yy * width + xx) * 4 + 3]; + // "loser mode" - no compression, every single code is followed immediately by a clear + //WriteCode( f, stat, nextValue, codeSize ); + //WriteCode( f, stat, 256, codeSize ); + if( curCode < 0 ) { + // first value in a new run + curCode = nextValue; + } else if( codetree[curCode].m_next[nextValue] ) { + // current run already in the dictionary + curCode = codetree[curCode].m_next[nextValue]; + } else { + // finish the current run, write a code + GifWriteCode(f, stat, (uint32_t)curCode, codeSize); + // insert the new run into the dictionary + codetree[curCode].m_next[nextValue] = (uint16_t)++maxCode; + if( maxCode >= (1ul << codeSize) ) { + // dictionary entry count has broken a size barrier, + // we need more bits for codes + codeSize++; + } + if( maxCode == 4095 ) { + // the dictionary is full, clear it out and begin anew + GifWriteCode(f, stat, clearCode, codeSize); // clear tree + + memset(codetree, 0, sizeof(GifLzwNode) * 4096); + codeSize = (uint32_t)(minCodeSize + 1); + maxCode = clearCode + 1; + } + curCode = nextValue; + } + } + } + // compression footer + GifWriteCode(f, stat, (uint32_t)curCode, codeSize); + GifWriteCode(f, stat, clearCode, codeSize); + GifWriteCode(f, stat, clearCode + 1, (uint32_t)minCodeSize + 1); + // write out the last partial chunk + while( stat.bitIndex ) { + GifWriteBit(stat, 0); + } + if( stat.chunkIndex ) { + GifWriteChunk(f, stat); + } + + fputc(0, f); // image block terminator + + GIF_TEMP_FREE(codetree); + } + + struct GifWriter { + FILE *f; + uint8_t *oldImage; + bool firstFrame; + }; + + // Creates a gif file. + // The input GIFWriter is assumed to be uninitialized. + // The delay value is the time between frames in hundredths of a second - note that not all viewers pay much attention to this value. + bool GifBegin( GifWriter *writer, const char *filename, + uint32_t width, uint32_t height, + uint32_t delay, int32_t bitDepth = 8, + bool dither = false ) + { + (void)bitDepth; + (void)dither; // Mute "Unused argument" warnings +#if defined(_MSC_VER) && (_MSC_VER >= 1400) + writer->f = 0; + fopen_s(&writer->f, filename, "wb"); +#else + writer->f = fopen(filename, "wb"); +#endif + if(!writer->f) { + return false; + } + + writer->firstFrame = true; + + // allocate + writer->oldImage = (uint8_t *)GIF_MALLOC(width * height * 4); + fputs("GIF89a", writer->f); + + // screen descriptor + fputc(width & 0xff, writer->f); + fputc((width >> 8) & 0xff, writer->f); + fputc(height & 0xff, writer->f); + fputc((height >> 8) & 0xff, writer->f); + + fputc(0xf0, writer->f); // there is an unsorted global color table of 2 entries + fputc(0, writer->f); // background color + fputc(0, writer->f); // pixels are square (we need to specify this because it's 1989) + + // now the "global" palette (really just a dummy palette) + // color 0: black + fputc(0, writer->f); + fputc(0, writer->f); + fputc(0, writer->f); + // color 1: also black + fputc(0, writer->f); + fputc(0, writer->f); + fputc(0, writer->f); + + if( delay != 0 ) { + // animation header + fputc(0x21, writer->f); // extension + fputc(0xff, writer->f); // application specific + fputc(11, writer->f); // length 11 + fputs("NETSCAPE2.0", writer->f); // yes, really + fputc(3, writer->f); // 3 bytes of NETSCAPE2.0 data + + fputc(1, writer->f); // JUST BECAUSE + fputc(0, writer->f); // loop infinitely (byte 0) + fputc(0, writer->f); // loop infinitely (byte 1) + + fputc(0, writer->f); // block terminator + } + return true; + } + + // Writes out a new frame to a GIF in progress. + // The GIFWriter should have been created by GIFBegin. + // AFAIK, it is legal to use different bit depths for different frames of an image - + // this may be handy to save bits in animations that don't change much. + bool GifWriteFrame( GifWriter *writer, const uint8_t *image, + uint32_t width, uint32_t height, + uint32_t delay, int bitDepth = 8, bool dither = false ) + { + if(!writer->f) { + return false; + } + + const uint8_t *oldImage = writer->firstFrame ? NULL : writer->oldImage; + writer->firstFrame = false; + + GifPalette pal; + GifMakePalette((dither ? NULL : oldImage), image, width, height, bitDepth, dither, &pal); + + if(dither) { + GifDitherImage(oldImage, image, writer->oldImage, width, height, &pal); + } else { + GifThresholdImage(oldImage, image, writer->oldImage, width, height, &pal); + } + + GifWriteLzwImage(writer->f, writer->oldImage, 0, 0, width, height, delay, &pal); + + return true; + } + + // Writes the EOF code, closes the file handle, and frees temp memory used by a GIF. + // Many if not most viewers will still display a GIF properly if the EOF code is missing, + // but it's still a good idea to write it out. + bool GifEnd( GifWriter *writer ) + { + if(!writer->f) { + return false; + } + + fputc(0x3b, writer->f); // end of file + fclose(writer->f); + GIF_FREE(writer->oldImage); + + writer->f = NULL; + writer->oldImage = NULL; + + return true; + } +}; + +#endif diff --git a/gifwidget/gifwidget.cpp b/gifwidget/gifwidget.cpp new file mode 100644 index 0000000..49e46b7 --- /dev/null +++ b/gifwidget/gifwidget.cpp @@ -0,0 +1,363 @@ +#pragma execution_character_set("utf-8") + +#include "gifwidget.h" +#include "qmutex.h" +#include "qlabel.h" +#include "qlineedit.h" +#include "qpushbutton.h" +#include "qlayout.h" +#include "qpainter.h" +#include "qevent.h" +#include "qstyle.h" +#include "qpixmap.h" +#include "qtimer.h" +#include "qdatetime.h" +#include "qapplication.h" +#include "qdesktopwidget.h" +#include "qdesktopservices.h" +#include "qfiledialog.h" +#include "qurl.h" +#include "qdebug.h" +#if (QT_VERSION > QT_VERSION_CHECK(5,0,0)) +#include "qscreen.h" +#endif + +QScopedPointer GifWidget::self; +GifWidget *GifWidget::Instance() +{ + if (self.isNull()) { + static QMutex mutex; + QMutexLocker locker(&mutex); + if (self.isNull()) { + self.reset(new GifWidget); + } + } + + return self.data(); +} + +GifWidget::GifWidget(QWidget *parent) : QDialog(parent) +{ + this->initControl(); + this->initForm(); +} + +bool GifWidget::eventFilter(QObject *watched, QEvent *event) +{ + static QPoint mousePoint; + static bool mousePressed = false; + + QMouseEvent *mouseEvent = static_cast(event); + if (mouseEvent->type() == QEvent::MouseButtonPress) { + if (mouseEvent->button() == Qt::LeftButton) { + mousePressed = true; + mousePoint = mouseEvent->globalPos() - this->pos(); + return true; + } + } else if (mouseEvent->type() == QEvent::MouseButtonRelease) { + mousePressed = false; + return true; + } else if (mouseEvent->type() == QEvent::MouseMove) { + if (mousePressed && (mouseEvent->buttons() && Qt::LeftButton)) { + this->move(mouseEvent->globalPos() - mousePoint); + return true; + } + } + + return QWidget::eventFilter(watched, event); +} + +void GifWidget::resizeEvent(QResizeEvent *e) +{ + //拉动右下角改变大小自动赋值 + txtWidth->setText(QString::number(widgetMain->width())); + txtHeight->setText(QString::number(widgetMain->height())); + QDialog::resizeEvent(e); +} + +void GifWidget::paintEvent(QPaintEvent *) +{ + int width = txtWidth->text().toInt(); + int height = txtHeight->text().toInt(); + rectGif = QRect(borderWidth, widgetTop->height(), width - (borderWidth * 2), height); + + QPainter painter(this); + painter.setPen(Qt::NoPen); + painter.setBrush(bgColor); + painter.drawRoundedRect(this->rect(), 5, 5); + painter.setCompositionMode(QPainter::CompositionMode_Clear); + painter.fillRect(rectGif, Qt::SolidPattern); +} + +int GifWidget::getBorderWidth() const +{ + return this->borderWidth; +} + +QColor GifWidget::getBgColor() const +{ + return this->bgColor; +} + +void GifWidget::initControl() +{ + this->setObjectName("GifWidget"); + this->resize(800, 600); + this->setSizeGripEnabled(true); + QVBoxLayout *verticalLayout = new QVBoxLayout(this); + verticalLayout->setSpacing(0); + verticalLayout->setContentsMargins(11, 11, 11, 11); + verticalLayout->setObjectName("verticalLayout"); + verticalLayout->setContentsMargins(0, 0, 0, 0); + + widgetTop = new QWidget(this); + widgetTop->setObjectName("widgetTop"); + widgetTop->setMinimumSize(QSize(0, 35)); + widgetTop->setMaximumSize(QSize(16777215, 35)); + + QHBoxLayout *layoutTop = new QHBoxLayout(widgetTop); + layoutTop->setSpacing(0); + layoutTop->setContentsMargins(11, 11, 11, 11); + layoutTop->setObjectName("layoutTop"); + layoutTop->setContentsMargins(0, 0, 0, 0); + + QPushButton *btnIcon = new QPushButton(widgetTop); + btnIcon->setObjectName("btnIcon"); + QSizePolicy sizePolicy(QSizePolicy::Minimum, QSizePolicy::Expanding); + sizePolicy.setHorizontalStretch(0); + sizePolicy.setVerticalStretch(0); + sizePolicy.setHeightForWidth(btnIcon->sizePolicy().hasHeightForWidth()); + btnIcon->setSizePolicy(sizePolicy); + btnIcon->setMinimumSize(QSize(35, 0)); + btnIcon->setFlat(true); + layoutTop->addWidget(btnIcon); + + QLabel *labTitle = new QLabel(widgetTop); + labTitle->setObjectName("labTitle"); + layoutTop->addWidget(labTitle); + + QSpacerItem *horizontalSpacer = new QSpacerItem(87, 20, QSizePolicy::Expanding, QSizePolicy::Minimum); + layoutTop->addItem(horizontalSpacer); + + QPushButton *btnClose = new QPushButton(widgetTop); + btnClose->setObjectName("btnClose"); + sizePolicy.setHeightForWidth(btnClose->sizePolicy().hasHeightForWidth()); + btnClose->setSizePolicy(sizePolicy); + btnClose->setMinimumSize(QSize(35, 0)); + btnClose->setFocusPolicy(Qt::NoFocus); + btnClose->setFlat(true); + layoutTop->addWidget(btnClose); + verticalLayout->addWidget(widgetTop); + + widgetMain = new QWidget(this); + widgetMain->setObjectName("widgetMain"); + QSizePolicy sizePolicy1(QSizePolicy::Preferred, QSizePolicy::Expanding); + sizePolicy1.setHorizontalStretch(0); + sizePolicy1.setVerticalStretch(0); + sizePolicy1.setHeightForWidth(widgetMain->sizePolicy().hasHeightForWidth()); + widgetMain->setSizePolicy(sizePolicy1); + verticalLayout->addWidget(widgetMain); + + widgetBottom = new QWidget(this); + widgetBottom->setObjectName("widgetBottom"); + widgetBottom->setMinimumSize(QSize(0, 45)); + widgetBottom->setMaximumSize(QSize(16777215, 45)); + + QHBoxLayout *layoutBottom = new QHBoxLayout(widgetBottom); + layoutBottom->setSpacing(6); + layoutBottom->setContentsMargins(11, 11, 11, 11); + layoutBottom->setObjectName("layoutBottom"); + layoutBottom->setContentsMargins(9, 9, -1, -1); + + QLabel *labFps = new QLabel(widgetBottom); + labFps->setObjectName("labFps"); + layoutBottom->addWidget(labFps); + + txtFps = new QLineEdit(widgetBottom); + txtFps->setObjectName("txtFps"); + txtFps->setMaximumSize(QSize(50, 16777215)); + txtFps->setAlignment(Qt::AlignCenter); + layoutBottom->addWidget(txtFps); + + QLabel *labWidth = new QLabel(widgetBottom); + labWidth->setObjectName("labWidth"); + layoutBottom->addWidget(labWidth); + + txtWidth = new QLineEdit(widgetBottom); + txtWidth->setObjectName("txtWidth"); + txtWidth->setEnabled(true); + txtWidth->setMaximumSize(QSize(50, 16777215)); + txtWidth->setAlignment(Qt::AlignCenter); + layoutBottom->addWidget(txtWidth); + + QLabel *labHeight = new QLabel(widgetBottom); + labHeight->setObjectName("labHeight"); + layoutBottom->addWidget(labHeight); + + txtHeight = new QLineEdit(widgetBottom); + txtHeight->setObjectName("txtHeight"); + txtHeight->setEnabled(true); + txtHeight->setMaximumSize(QSize(50, 16777215)); + txtHeight->setAlignment(Qt::AlignCenter); + layoutBottom->addWidget(txtHeight); + + labStatus = new QLabel(widgetBottom); + labStatus->setObjectName("labStatus"); + QSizePolicy sizePolicy2(QSizePolicy::Expanding, QSizePolicy::Preferred); + sizePolicy2.setHorizontalStretch(0); + sizePolicy2.setVerticalStretch(0); + sizePolicy2.setHeightForWidth(labStatus->sizePolicy().hasHeightForWidth()); + labStatus->setSizePolicy(sizePolicy2); + labStatus->setAlignment(Qt::AlignCenter); + layoutBottom->addWidget(labStatus); + + btnStart = new QPushButton(widgetBottom); + btnStart->setObjectName("btnStart"); + sizePolicy.setHeightForWidth(btnStart->sizePolicy().hasHeightForWidth()); + btnStart->setSizePolicy(sizePolicy); + layoutBottom->addWidget(btnStart); + verticalLayout->addWidget(widgetBottom); + + labTitle->setText("GIF录屏工具(QQ:517216493)"); + labFps->setText("帧率"); + labWidth->setText("宽度"); + labHeight->setText("高度"); + btnStart->setText("开始"); + this->setWindowTitle(labTitle->text()); + + btnIcon->setIcon(style()->standardIcon(QStyle::SP_ComputerIcon)); + btnClose->setIcon(style()->standardIcon(QStyle::SP_TitleBarCloseButton)); + + connect(btnClose, SIGNAL(clicked(bool)), this, SLOT(closeAll())); + connect(btnStart, SIGNAL(clicked(bool)), this, SLOT(record())); + connect(txtWidth, SIGNAL(editingFinished()), this, SLOT(resizeForm())); + connect(txtHeight, SIGNAL(editingFinished()), this, SLOT(resizeForm())); +} + +void GifWidget::initForm() +{ + borderWidth = 3; + bgColor = QColor(34, 163, 169); + + fps = 10; + txtFps->setText(QString::number(fps)); + gifWriter = 0; + + timer = new QTimer(this); + timer->setInterval(100); + connect(timer, SIGNAL(timeout()), this, SLOT(saveImage())); + + this->setAttribute(Qt::WA_TranslucentBackground); + this->setWindowFlags(Qt::FramelessWindowHint | Qt::WindowSystemMenuHint | Qt::WindowMinMaxButtonsHint | Qt::WindowStaysOnTopHint); + this->installEventFilter(this); + + QStringList qss; + qss.append("QLabel{color:#ffffff;}"); + qss.append("#btnClose,#btnIcon{border:none;border-radius:0px;}"); + qss.append("#btnClose:hover{background-color:#ff0000;}"); + qss.append("#btnClose{border-top-right-radius:5px;}"); + qss.append("#labTitle{font:bold 16px;}"); + qss.append("#labStatus{font:15px;}"); + this->setStyleSheet(qss.join("")); +} + +void GifWidget::saveImage() +{ + if (!gifWriter) { + return; + } + +#if (QT_VERSION <= QT_VERSION_CHECK(5,0,0)) + //由于qt4没有RGBA8888,采用最接近RGBA8888的是ARGB32,颜色会有点偏差 + QPixmap pix = QPixmap::grabWindow(0, x() + rectGif.x(), y() + rectGif.y(), rectGif.width(), rectGif.height()); + QImage image = pix.toImage().convertToFormat(QImage::Format_ARGB32); +#else + QScreen *screen = QApplication::primaryScreen(); + QPixmap pix = screen->grabWindow(0, x() + rectGif.x(), y() + rectGif.y(), rectGif.width(), rectGif.height()); + QImage image = pix.toImage().convertToFormat(QImage::Format_RGBA8888); +#endif + + gif.GifWriteFrame(gifWriter, image.bits(), rectGif.width(), rectGif.height(), fps); + count++; + labStatus->setText(QString("正在录制 第 %1 帧").arg(count)); +} + +void GifWidget::record() +{ + if (btnStart->text() == "开始") { + if (0 != gifWriter) { + delete gifWriter; + gifWriter = 0; + } + + //先弹出文件保存对话框 + //fileName = qApp->applicationDirPath() + "/" + QDateTime::currentDateTime().toString("yyyy-MM-dd-hh-mm-ss.gif"); + fileName = QFileDialog::getSaveFileName(this, "选择保存位置", qApp->applicationDirPath() + "/", "gif图片(*.gif)"); + if (fileName.isEmpty()) { + return; + } + + int width = txtWidth->text().toInt(); + int height = txtHeight->text().toInt(); + fps = txtFps->text().toInt(); + + gifWriter = new Gif::GifWriter; + bool bOk = gif.GifBegin(gifWriter, fileName.toLocal8Bit().data(), width, height, fps); + if (!bOk) { + delete gifWriter; + gifWriter = 0; + return; + } + + count = 0; + labStatus->setText("开始录制..."); + btnStart->setText("停止"); + //延时启动 + timer->setInterval(1000 / fps); + QTimer::singleShot(1000, timer, SLOT(start())); + //saveImage(); + } else { + timer->stop(); + gif.GifEnd(gifWriter); + + delete gifWriter; + gifWriter = 0; + + labStatus->setText(QString("录制完成 共 %1 帧").arg(count)); + btnStart->setText("开始"); + QDesktopServices::openUrl(QUrl(fileName)); + } +} + +void GifWidget::closeAll() +{ + if (0 != gifWriter) { + delete gifWriter; + gifWriter = 0; + } + + this->close(); +} + +void GifWidget::resizeForm() +{ + int width = txtWidth->text().toInt(); + int height = txtHeight->text().toInt(); + this->resize(width, height + widgetTop->height() + widgetBottom->height()); +} + +void GifWidget::setBorderWidth(int borderWidth) +{ + if (this->borderWidth != borderWidth) { + this->borderWidth = borderWidth; + this->update(); + } +} + +void GifWidget::setBgColor(const QColor &bgColor) +{ + if (this->bgColor != bgColor) { + this->bgColor = bgColor; + this->update(); + } +} diff --git a/gifwidget/gifwidget.h b/gifwidget/gifwidget.h new file mode 100644 index 0000000..10b3269 --- /dev/null +++ b/gifwidget/gifwidget.h @@ -0,0 +1,85 @@ +#ifndef GIFWIDGET_H +#define GIFWIDGET_H + +/** + * GIF录屏控件 作者:feiyangqingyun(QQ:517216493) 2019-4-3 + * 1:可设置要录制屏幕的宽高,支持右下角直接拉动改变. + * 2:可设置变宽的宽度 + * 3:可设置录屏控件的背景颜色 + * 4:可设置录制的帧数 + * 5:录制区域可自由拖动选择 + */ + +#include +#include "gif.h" + +class QLineEdit; +class QLabel; + +#ifdef quc +#if (QT_VERSION < QT_VERSION_CHECK(5,7,0)) +#include +#else +#include +#endif + +class QDESIGNER_WIDGET_EXPORT GifWidget : public QDialog +#else +class GifWidget : public QDialog +#endif + +{ + Q_OBJECT + Q_PROPERTY(int borderWidth READ getBorderWidth WRITE setBorderWidth) + Q_PROPERTY(QColor bgColor READ getBgColor WRITE setBgColor) + +public: + static GifWidget *Instance(); + explicit GifWidget(QWidget *parent = 0); + +protected: + bool eventFilter(QObject *watched, QEvent *event); + void resizeEvent(QResizeEvent *); + void paintEvent(QPaintEvent *); + +private: + static QScopedPointer self; + QWidget *widgetTop; //标题栏 + QWidget *widgetMain; //中间部分 + QWidget *widgetBottom; //底部栏 + QLineEdit *txtFps; //帧率输入框 + QLineEdit *txtWidth; //宽度输入框 + QLineEdit *txtHeight; //高度输入框 + QPushButton *btnStart; //开始按钮 + QLabel *labStatus; //显示状态信息 + + int fps; //帧数 100为1s + int borderWidth; //边框宽度 + QColor bgColor; //背景颜色 + + int count; //帧数计数 + QString fileName; //保存文件名称 + QRect rectGif; //截屏区域 + QTimer *timer; //截屏定时器 + + Gif gif; //gif类对象 + Gif::GifWriter *gifWriter; //gif写入对象 + +public: + int getBorderWidth() const; + QColor getBgColor() const; + +private slots: + void initControl(); + void initForm(); + void saveImage(); + void record(); + void closeAll(); + void resizeForm(); + +public Q_SLOTS: + void setBorderWidth(int borderWidth); + void setBgColor(const QColor &bgColor); +}; + +#endif // GIFWIDGET_H diff --git a/gifwidget/gifwidget.pro b/gifwidget/gifwidget.pro new file mode 100644 index 0000000..b0dde84 --- /dev/null +++ b/gifwidget/gifwidget.pro @@ -0,0 +1,20 @@ +#------------------------------------------------- +# +# Project created by QtCreator 2017-01-05T22:11:54 +# +#------------------------------------------------- + +QT += core gui + +greaterThan(QT_MAJOR_VERSION, 4): QT += widgets + +TARGET = gifwidget +TEMPLATE = app +DESTDIR = $$PWD/../bin +CONFIG += warn_off + +SOURCES += main.cpp +SOURCES += gifwidget.cpp +HEADERS += gifwidget.h +HEADERS += gif.h +RESOURCES += main.qrc diff --git a/gifwidget/image/gifwidget.ico b/gifwidget/image/gifwidget.ico new file mode 100644 index 0000000000000000000000000000000000000000..c23ad4ab26d6f05af57d3e9bf11537453b65eea5 GIT binary patch literal 16958 zcmeI3dr(yO701^}CYcT@2!dh~L$yZ2_)J37XyxGp4Wfu3Y*_>Zd09mi3?fyMn3xAD zk3ZU4ZD-7k?MO=e_MG442g`Qv?y}rvNN(2o z^1J)n-Ru3FbAIP{?(g1fFpQvo!NCUl>u2x}H5hyh27^C|x(r1m?ia6MgTc#9k`7P~shnPPn9U(0w-AC%RgLTUP z?@fyH5I(14HJGAD^L8NVBPX;#yB^N%O|G zOdk@r_LZA8R@iC#FP*a62gL6wZNTF|#yz$766ZduurtEA# z&G{)7I6oL8W+NwkoIM+SL;PXHU2Kb;=d=}zCTY&@Dt?(K5~Bkk=St#Kv&E~#-e`+I zCSp87=1%|K@kcG0hpeQD$g^E1G!XlBHGcLz&*@r>b!+=@Mf^+u^Efb3KC}}9eTlb7#Ippwf|#?*1xQB%Y2}AY})kmx{$Iq zWNm*6KdviotJbqNStYZ1YwfrO)0Yr4n%2NZAt}xisU}}+NO%A#@#Dn$m??TB z<&i#nB*)S9k4!HVZk>o{HkqHhdm=yE7X>*F+OUl_HW&=66zqRF85QLv zsH!}PbJg$S%x~VovA3Vc3q?`LNb>8oL1OGElpZqT>o3}Ip>i+TU>xN^PwdW{jP~Y} z`1}vG*tcgs^^F;@U(J1NYul2++4t<%!tJ3rUtNKYj!vP*hFW}5|1nyc8_{|78rs|2 zQC(Gz-8;gB4cPz94Q1fhjq88Lv-$qChBF$6io?*=^>5LCx?(%cU+%-2pZ&gV(-XK< za~4;L^YW#$DBimcIa#x?IXwW+Y?+6H`!nhDGxYgyMLh7BNH%()t+_&Q{`2OS*t2t* z;6HL;MKAx^4+@7pKacejM_&*=ZXloU%3nfj;5^nx37OWoAwKFSIC5|c@qdPMRqu+t z(2xJd7gqVt40C>F+?3{z+RN3#_vK~9BKOI0#5s_2LRQLTl>T~04}ZDC{2#qvKtyfeJAfR9But$*UWX7(2!xe&8gX zF9fYEO~U{CUs>PF&-+X=dWl%)I)LMWZL)5yho}b}8UJ5@c?GSF$4Mv9+H?YKO=URs zPCA{_E7!psSAXdU_P@9gB`<~a>cHM0?8=?g6BC20 zgSFt7`{4Sv_Hvb|1KQeJM7_g4Z)&U;d7s%!U(3h(U-{x&Yjz$zq|Xt=%Q_NecSaP)YTjsHvX6VJkGanoQ>BH=i=-~$EXgh6!YH47f;jp zD8Zgxk;LvT*!eeH|Cha$j(<_@*HHVqIOpNGF5LDoYR>P&AAet?s`8^5!_NQA#AAWS ze2QtjsChP~K7x#7KdOnm#Cf6l`7qc2xmiAVz97KjTu&L>`J2bXy6j%tayT~neCPc5 zx4sX~`F*nX9eMt*R;tzn`XSf6H{b{;l`xADjd9 zeEp00b#nbv^%}5Fu7B(O{s+C^|DyN%pY(qJo8Iq#-PR7v$+lQ@cjE-1$cM2(gxj9TKBJ%_WnAhy{AZNN61!r`{Uo? ZVgczF+14oscF$Kzd%yIn^t1H){{Z!d*cJc) literal 0 HcmV?d00001 diff --git a/gifwidget/image/gifwidget.png b/gifwidget/image/gifwidget.png new file mode 100644 index 0000000000000000000000000000000000000000..c6bc6d19c0fe97bf4587c028f0412131a4c3c07e GIT binary patch literal 2785 zcmV<73Lf=|P)X#BuOA73pooDAh&bjAoKb$+aGehsIb51SMe{z$1@7`yhwbovHueH}+ zOQ?bLrhCBmK?IBer3Bx<9QXuqBd`is2y_CmT4S9TT4SX-%w1%G4-`6PTU%D9J)G zL{g)J5uqiQCzBnjXN}r{4GOrSRr)P8?q|g6n!YCe?Mn(`49P;VCJ$8|X)&f^N+bdq7)+V4<_=KJBIcG*zK>tUL#!zP zPiykFT}y>#0fQ)wmuf{R9XkI;0=M0(6K$$00ADGxnJ#=41@mQSjqd0~ROlhG3Tn+h z)DQrGr=yLBP(If;d>Fa_T(Abr7QwPUr`J-ANdqQ`M>Kty3jr_oRaV1SR#>EY&OOIdzd zADL7uS}6*y%aOq$o_|){AT+O4)hOD@_goZcJS48*R%HWg?xU^3f?$z zk{1rVivo1n%7{oMG?s{2l|AF(7q;`rj$P;}JGpNR$Fjqfr7|0YB7lTtamSjKbho8A zJvPRcZO^ms_z85GiR{D#KY#WGzTb8$i@GypT3bIjNEJWe`0xn3j~v6AVak+9^^LU& z%vu1xG0aW3v#f6}V0i8DQQq!9HH}~`!ux|+e)PAeS(NGG)kB9-4HBj;OR4zJg=g%mR2OK;JkG#JIwooSsb_2Favk2S;>`idjnOM z;4a~%e;?$rU3&xbIZK4H1d_2BS_#G&@{U{iKM}LoynY?aFYCh?g8_Ws@Z8()@aSuM z8uEVEEMCZ(MGGpwMTCwPo2`4_z^Nbhs*6wrkaHYLzE4bRQswx(0kkO6woTf$@r@ys zNYHL45rL;(-%qXqTmHN4JJ`DS4RrbX%wRZldN35`Ap`-42m@o|jOOyRb|zRlx0kqO z;rTu}$Kk<$JWDE>z&D1CYge=Bx{m{mZ(s*b4e`Rf#Z3kZJSjK=X2Atr3jFBT}m?|P1Sjd_Jk0M0F(&toI1@< zwmrw@_3OBzw}<;a^Jzx&1xlVrOFT|%GLBpFc=KdGkL=h*-f<9Z;g0Fzc>Z!pep7>1j)$mE!pD2*-zp*>m(byWc;?(8NULEb!Fc z{VeV4h;<0A(?=C5bG30HVVxlJfSp^)b)@no;Z%ajc zKNt}_tr_lYuSfeK1-w$LM~W`a`o6 z#29idHrY&9y$yT}ct#PFmh7q3)6<%vt}cp+*;mO#2{DkjZ3cShR7`jc>;ZNtUfn5L=N=+6_Y{i&g(qO@a6OS|0 z6~`*I&#GWTl8K95F!2lEuN4{q(i`uZ{G9OK&yr|VEQ|oX8tJx-lloJ8lbR$FXhS+ z2<+o?z#QOeqKq0Tg-%3THV5DVza?P)gI4Ge5O@beb(IzWF-#^3{{sU5@enmqp}7pp~HbFx=|V=mandJVsFX`6yFP nyfaH@|6e>^YsCMB^7;P&={gKonG^ea00000NkvXXu0mjfK#d&* literal 0 HcmV?d00001 diff --git a/gifwidget/main.cpp b/gifwidget/main.cpp new file mode 100644 index 0000000..f076726 --- /dev/null +++ b/gifwidget/main.cpp @@ -0,0 +1,31 @@ +#pragma execution_character_set("utf-8") + +#include "gifwidget.h" +#include +#include +#include + +int main(int argc, char *argv[]) +{ + QApplication a(argc, argv); + a.setFont(QFont("Microsoft Yahei", 9)); + a.setWindowIcon(QIcon(":/image/gifwidget.ico")); + +#if (QT_VERSION <= QT_VERSION_CHECK(5,0,0)) +#if _MSC_VER + QTextCodec *codec = QTextCodec::codecForName("gbk"); +#else + QTextCodec *codec = QTextCodec::codecForName("utf-8"); +#endif + QTextCodec::setCodecForLocale(codec); + QTextCodec::setCodecForCStrings(codec); + QTextCodec::setCodecForTr(codec); +#else + QTextCodec *codec = QTextCodec::codecForName("utf-8"); + QTextCodec::setCodecForLocale(codec); +#endif + + GifWidget::Instance()->show(); + + return a.exec(); +} diff --git a/gifwidget/main.qrc b/gifwidget/main.qrc new file mode 100644 index 0000000..a71d67b --- /dev/null +++ b/gifwidget/main.qrc @@ -0,0 +1,5 @@ + + + image/gifwidget.ico + + diff --git a/lightbutton/frmlightbutton.cpp b/lightbutton/frmlightbutton.cpp new file mode 100644 index 0000000..a52567e --- /dev/null +++ b/lightbutton/frmlightbutton.cpp @@ -0,0 +1,56 @@ +#pragma execution_character_set("utf-8") + +#include "frmlightbutton.h" +#include "ui_frmlightbutton.h" +#include "qdatetime.h" +#include "qtimer.h" + +frmLightButton::frmLightButton(QWidget *parent) : QWidget(parent), ui(new Ui::frmLightButton) +{ + ui->setupUi(this); + this->initForm(); +} + +frmLightButton::~frmLightButton() +{ + delete ui; +} + +void frmLightButton::initForm() +{ + ui->lightButton2->setBgColor(QColor(255, 107, 107)); + ui->lightButton3->setBgColor(QColor(24, 189, 155)); + + type = 0; + + QTimer *timer = new QTimer(this); + timer->setInterval(1000); + connect(timer, SIGNAL(timeout()), this, SLOT(updateValue())); + timer->start(); + updateValue(); + + //以下方法启动报警 + //ui->lightButton1->setAlarmColor(QColor(255, 0, 0)); + //ui->lightButton1->setNormalColor(QColor(0, 0, 0)); + //ui->lightButton1->startAlarm(); +} + +void frmLightButton::updateValue() +{ + if (type == 0) { + ui->lightButton1->setLightGreen(); + ui->lightButton2->setLightRed(); + ui->lightButton3->setLightBlue(); + type = 1; + } else if (type == 1) { + ui->lightButton1->setLightBlue(); + ui->lightButton2->setLightGreen(); + ui->lightButton3->setLightRed(); + type = 2; + } else if (type == 2) { + ui->lightButton1->setLightRed(); + ui->lightButton2->setLightBlue(); + ui->lightButton3->setLightGreen(); + type = 0; + } +} diff --git a/lightbutton/frmlightbutton.h b/lightbutton/frmlightbutton.h new file mode 100644 index 0000000..ec45049 --- /dev/null +++ b/lightbutton/frmlightbutton.h @@ -0,0 +1,28 @@ +#ifndef FRMLIGHTBUTTON_H +#define FRMLIGHTBUTTON_H + +#include + +namespace Ui +{ +class frmLightButton; +} + +class frmLightButton : public QWidget +{ + Q_OBJECT + +public: + explicit frmLightButton(QWidget *parent = 0); + ~frmLightButton(); + +private: + Ui::frmLightButton *ui; + int type; + +private slots: + void initForm(); + void updateValue(); +}; + +#endif // FRMLIGHTBUTTON_H diff --git a/lightbutton/frmlightbutton.ui b/lightbutton/frmlightbutton.ui new file mode 100644 index 0000000..8a6a34b --- /dev/null +++ b/lightbutton/frmlightbutton.ui @@ -0,0 +1,38 @@ + + + frmLightButton + + + + 0 + 0 + 500 + 300 + + + + Form + + + + + + + + + + + + + + + + LightButton + QWidget +
    lightbutton.h
    + 1 +
    +
    + + +
    diff --git a/lightbutton/lightbutton.cpp b/lightbutton/lightbutton.cpp new file mode 100644 index 0000000..9e29389 --- /dev/null +++ b/lightbutton/lightbutton.cpp @@ -0,0 +1,449 @@ +#pragma execution_character_set("utf-8") + +#include "lightbutton.h" +#include "qpainter.h" +#include "qevent.h" +#include "qtimer.h" +#include "qdebug.h" + +LightButton::LightButton(QWidget *parent) : QWidget(parent) +{ + text = ""; + textColor = QColor(255, 255, 255); + alarmColor = QColor(255, 107, 107); + normalColor = QColor(10, 10, 10); + + borderOutColorStart = QColor(255, 255, 255); + borderOutColorEnd = QColor(166, 166, 166); + + borderInColorStart = QColor(166, 166, 166); + borderInColorEnd = QColor(255, 255, 255); + + bgColor = QColor(100, 184, 255); + + showRect = false; + showOverlay = true; + overlayColor = QColor(255, 255, 255); + + canMove = false; + this->installEventFilter(this); + + timerAlarm = new QTimer(this); + connect(timerAlarm, SIGNAL(timeout()), this, SLOT(alarm())); + timerAlarm->setInterval(500); + + //setFont(QFont("Arial", 8)); +} + +bool LightButton::eventFilter(QObject *watched, QEvent *event) +{ + if (canMove) { + static QPoint lastPoint; + static bool pressed = false; + QMouseEvent *mouseEvent = static_cast(event); + + if (mouseEvent->type() == QEvent::MouseButtonPress) { + if (this->rect().contains(mouseEvent->pos()) && (mouseEvent->button() == Qt::LeftButton)) { + lastPoint = mouseEvent->pos(); + pressed = true; + } + } else if (mouseEvent->type() == QEvent::MouseMove && pressed) { + int dx = mouseEvent->pos().x() - lastPoint.x(); + int dy = mouseEvent->pos().y() - lastPoint.y(); + this->move(this->x() + dx, this->y() + dy); + } else if (mouseEvent->type() == QEvent::MouseButtonRelease && pressed) { + pressed = false; + } + } + + return QWidget::eventFilter(watched, event); +} + +void LightButton::paintEvent(QPaintEvent *) +{ + int width = this->width(); + int height = this->height(); + int side = qMin(width, height); + + //绘制准备工作,启用反锯齿,平移坐标轴中心,等比例缩放 + QPainter painter(this); + painter.setRenderHints(QPainter::Antialiasing | QPainter::TextAntialiasing); + + if (showRect) { + //绘制矩形区域 + painter.setPen(Qt::NoPen); + painter.setBrush(bgColor); + painter.drawRoundedRect(this->rect(), 5, 5); + + //绘制文字 + if (!text.isEmpty()) { + QFont font; + font.setPixelSize(side - 20); + painter.setFont(font); + painter.setPen(textColor); + painter.drawText(this->rect(), Qt::AlignCenter, text); + } + } else { + painter.translate(width / 2, height / 2); + painter.scale(side / 200.0, side / 200.0); + + //绘制外边框 + drawBorderOut(&painter); + //绘制内边框 + drawBorderIn(&painter); + //绘制内部指示颜色 + drawBg(&painter); + //绘制居中文字 + drawText(&painter); + //绘制遮罩层 + drawOverlay(&painter); + } +} + +void LightButton::drawBorderOut(QPainter *painter) +{ + int radius = 99; + painter->save(); + painter->setPen(Qt::NoPen); + QLinearGradient borderGradient(0, -radius, 0, radius); + borderGradient.setColorAt(0, borderOutColorStart); + borderGradient.setColorAt(1, borderOutColorEnd); + painter->setBrush(borderGradient); + painter->drawEllipse(-radius, -radius, radius * 2, radius * 2); + painter->restore(); +} + +void LightButton::drawBorderIn(QPainter *painter) +{ + int radius = 90; + painter->save(); + painter->setPen(Qt::NoPen); + QLinearGradient borderGradient(0, -radius, 0, radius); + borderGradient.setColorAt(0, borderInColorStart); + borderGradient.setColorAt(1, borderInColorEnd); + painter->setBrush(borderGradient); + painter->drawEllipse(-radius, -radius, radius * 2, radius * 2); + painter->restore(); +} + +void LightButton::drawBg(QPainter *painter) +{ + int radius = 80; + painter->save(); + painter->setPen(Qt::NoPen); + painter->setBrush(bgColor); + painter->drawEllipse(-radius, -radius, radius * 2, radius * 2); + painter->restore(); +} + +void LightButton::drawText(QPainter *painter) +{ + if (text.isEmpty()) { + return; + } + + int radius = 100; + painter->save(); + + QFont font; + font.setPixelSize(85); + painter->setFont(font); + painter->setPen(textColor); + QRect rect(-radius, -radius, radius * 2, radius * 2); + painter->drawText(rect, Qt::AlignCenter, text); + painter->restore(); +} + +void LightButton::drawOverlay(QPainter *painter) +{ + if (!showOverlay) { + return; + } + + int radius = 80; + painter->save(); + painter->setPen(Qt::NoPen); + + QPainterPath smallCircle; + QPainterPath bigCircle; + radius -= 1; + smallCircle.addEllipse(-radius, -radius, radius * 2, radius * 2); + radius *= 2; + bigCircle.addEllipse(-radius, -radius + 140, radius * 2, radius * 2); + + //高光的形状为小圆扣掉大圆的部分 + QPainterPath highlight = smallCircle - bigCircle; + + QLinearGradient linearGradient(0, -radius / 2, 0, 0); + overlayColor.setAlpha(100); + linearGradient.setColorAt(0.0, overlayColor); + overlayColor.setAlpha(30); + linearGradient.setColorAt(1.0, overlayColor); + painter->setBrush(linearGradient); + painter->rotate(-20); + painter->drawPath(highlight); + + painter->restore(); +} + +QString LightButton::getText() const +{ + return this->text; +} + +QColor LightButton::getTextColor() const +{ + return this->textColor; +} + +QColor LightButton::getAlarmColor() const +{ + return this->alarmColor; +} + +QColor LightButton::getNormalColor() const +{ + return this->normalColor; +} + +QColor LightButton::getBorderOutColorStart() const +{ + return this->borderOutColorStart; +} + +QColor LightButton::getBorderOutColorEnd() const +{ + return this->borderOutColorEnd; +} + +QColor LightButton::getBorderInColorStart() const +{ + return this->borderInColorStart; +} + +QColor LightButton::getBorderInColorEnd() const +{ + return this->borderInColorEnd; +} + +QColor LightButton::getBgColor() const +{ + return this->bgColor; +} + +bool LightButton::getCanMove() const +{ + return this->canMove; +} + +bool LightButton::getShowRect() const +{ + return this->showRect; +} + +bool LightButton::getShowOverlay() const +{ + return this->showOverlay; +} + +QColor LightButton::getOverlayColor() const +{ + return this->overlayColor; +} + +QSize LightButton::sizeHint() const +{ + return QSize(100, 100); +} + +QSize LightButton::minimumSizeHint() const +{ + return QSize(10, 10); +} + +void LightButton::setText(const QString &text) +{ + if (this->text != text) { + this->text = text; + this->update(); + } +} + +void LightButton::setTextColor(const QColor &textColor) +{ + if (this->textColor != textColor) { + this->textColor = textColor; + this->update(); + } +} + +void LightButton::setAlarmColor(const QColor &alarmColor) +{ + if (this->alarmColor != alarmColor) { + this->alarmColor = alarmColor; + this->update(); + } +} + +void LightButton::setNormalColor(const QColor &normalColor) +{ + if (this->normalColor != normalColor) { + this->normalColor = normalColor; + this->update(); + } +} + +void LightButton::setBorderOutColorStart(const QColor &borderOutColorStart) +{ + if (this->borderOutColorStart != borderOutColorStart) { + this->borderOutColorStart = borderOutColorStart; + this->update(); + } +} + +void LightButton::setBorderOutColorEnd(const QColor &borderOutColorEnd) +{ + if (this->borderOutColorEnd != borderOutColorEnd) { + this->borderOutColorEnd = borderOutColorEnd; + this->update(); + } +} + +void LightButton::setBorderInColorStart(const QColor &borderInColorStart) +{ + if (this->borderInColorStart != borderInColorStart) { + this->borderInColorStart = borderInColorStart; + this->update(); + } +} + +void LightButton::setBorderInColorEnd(const QColor &borderInColorEnd) +{ + if (this->borderInColorEnd != borderInColorEnd) { + this->borderInColorEnd = borderInColorEnd; + this->update(); + } +} + +void LightButton::setBgColor(const QColor &bgColor) +{ + if (this->bgColor != bgColor) { + this->bgColor = bgColor; + this->update(); + } +} + +void LightButton::setCanMove(bool canMove) +{ + if (this->canMove != canMove) { + this->canMove = canMove; + this->update(); + } +} + +void LightButton::setShowRect(bool showRect) +{ + if (this->showRect != showRect) { + this->showRect = showRect; + this->update(); + } +} + +void LightButton::setShowOverlay(bool showOverlay) +{ + if (this->showOverlay != showOverlay) { + this->showOverlay = showOverlay; + this->update(); + } +} + +void LightButton::setOverlayColor(const QColor &overlayColor) +{ + if (this->overlayColor != overlayColor) { + this->overlayColor = overlayColor; + this->update(); + } +} + +void LightButton::setGreen() +{ + textColor = QColor(255, 255, 255); + setBgColor(QColor(0, 166, 0)); +} + +void LightButton::setRed() +{ + textColor = QColor(255, 255, 255); + setBgColor(QColor(255, 0, 0)); +} + +void LightButton::setYellow() +{ + textColor = QColor(25, 50, 7); + setBgColor(QColor(238, 238, 0)); +} + +void LightButton::setBlack() +{ + textColor = QColor(255, 255, 255); + setBgColor(QColor(10, 10, 10)); +} + +void LightButton::setGray() +{ + textColor = QColor(255, 255, 255); + setBgColor(QColor(129, 129, 129)); +} + +void LightButton::setBlue() +{ + textColor = QColor(255, 255, 255); + setBgColor(QColor(0, 0, 166)); +} + +void LightButton::setLightBlue() +{ + textColor = QColor(255, 255, 255); + setBgColor(QColor(100, 184, 255)); +} + +void LightButton::setLightRed() +{ + textColor = QColor(255, 255, 255); + setBgColor(QColor(255, 107, 107)); +} + +void LightButton::setLightGreen() +{ + textColor = QColor(255, 255, 255); + setBgColor(QColor(24, 189, 155)); +} + +void LightButton::startAlarm() +{ + if (!timerAlarm->isActive()) { + timerAlarm->start(); + } +} + +void LightButton::stopAlarm() +{ + if (timerAlarm->isActive()) { + timerAlarm->stop(); + } +} + +void LightButton::alarm() +{ + static bool isAlarm = false; + if (isAlarm) { + textColor = QColor(255, 255, 255); + bgColor = normalColor; + } else { + textColor = QColor(255, 255, 255); + bgColor = alarmColor; + } + + this->update(); + isAlarm = !isAlarm; +} diff --git a/lightbutton/lightbutton.gif b/lightbutton/lightbutton.gif new file mode 100644 index 0000000000000000000000000000000000000000..efcc22d91071623f662016c9a0be36af5c2b5277 GIT binary patch literal 65988 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 literal 0 HcmV?d00001 diff --git a/lightbutton/lightbutton.h b/lightbutton/lightbutton.h new file mode 100644 index 0000000..7cbd679 --- /dev/null +++ b/lightbutton/lightbutton.h @@ -0,0 +1,156 @@ +#ifndef LIGHTBUTTON_H +#define LIGHTBUTTON_H + +/** + * 高亮发光按钮控件 作者:feiyangqingyun(QQ:517216493) 2016-10-16 + * 1:可设置文本,居中显示 + * 2:可设置文本颜色 + * 3:可设置外边框渐变颜色 + * 4:可设置里边框渐变颜色 + * 5:可设置背景色 + * 6:可直接调用内置的设置 绿色/红色/黄色/黑色/蓝色 等公有槽函数 + * 7:可设置是否在容器中可移动,当成一个对象使用 + * 8:可设置是否显示矩形 + * 9:可设置报警颜色+非报警颜色 + * 10:可控制启动报警和停止报警,报警时闪烁 + */ + +#include + +#ifdef quc +#if (QT_VERSION < QT_VERSION_CHECK(5,7,0)) +#include +#else +#include +#endif + +class QDESIGNER_WIDGET_EXPORT LightButton : public QWidget +#else +class LightButton : public QWidget +#endif + +{ + Q_OBJECT + Q_PROPERTY(QString text READ getText WRITE setText) + Q_PROPERTY(QColor textColor READ getTextColor WRITE setTextColor) + Q_PROPERTY(QColor alarmColor READ getAlarmColor WRITE setAlarmColor) + Q_PROPERTY(QColor normalColor READ getNormalColor WRITE setNormalColor) + + Q_PROPERTY(QColor borderOutColorStart READ getBorderOutColorStart WRITE setBorderOutColorStart) + Q_PROPERTY(QColor borderOutColorEnd READ getBorderOutColorEnd WRITE setBorderOutColorEnd) + Q_PROPERTY(QColor borderInColorStart READ getBorderInColorStart WRITE setBorderInColorStart) + Q_PROPERTY(QColor borderInColorEnd READ getBorderInColorEnd WRITE setBorderInColorEnd) + Q_PROPERTY(QColor bgColor READ getBgColor WRITE setBgColor) + + Q_PROPERTY(bool canMove READ getCanMove WRITE setCanMove) + Q_PROPERTY(bool showRect READ getShowRect WRITE setShowRect) + Q_PROPERTY(bool showOverlay READ getShowOverlay WRITE setShowOverlay) + Q_PROPERTY(QColor overlayColor READ getOverlayColor WRITE setOverlayColor) + +public: + explicit LightButton(QWidget *parent = 0); + +protected: + bool eventFilter(QObject *watched, QEvent *event); + void paintEvent(QPaintEvent *); + void drawBorderOut(QPainter *painter); + void drawBorderIn(QPainter *painter); + void drawBg(QPainter *painter); + void drawText(QPainter *painter); + void drawOverlay(QPainter *painter); + +private: + QString text; //文本 + QColor textColor; //文字颜色 + QColor alarmColor; //报警颜色 + QColor normalColor; //正常颜色 + + QColor borderOutColorStart; //外边框渐变开始颜色 + QColor borderOutColorEnd; //外边框渐变结束颜色 + QColor borderInColorStart; //里边框渐变开始颜色 + QColor borderInColorEnd; //里边框渐变结束颜色 + QColor bgColor; //背景颜色 + + bool showRect; //显示成矩形 + bool canMove; //是否能够移动 + bool showOverlay; //是否显示遮罩层 + QColor overlayColor; //遮罩层颜色 + + QTimer *timerAlarm; //定时器切换颜色 + +public: + QString getText() const; + QColor getTextColor() const; + QColor getAlarmColor() const; + QColor getNormalColor() const; + + QColor getBorderOutColorStart() const; + QColor getBorderOutColorEnd() const; + QColor getBorderInColorStart() const; + QColor getBorderInColorEnd() const; + QColor getBgColor() const; + + bool getCanMove() const; + bool getShowRect() const; + bool getShowOverlay() const; + QColor getOverlayColor() const; + + QSize sizeHint() const; + QSize minimumSizeHint() const; + +public Q_SLOTS: + //设置文本 + void setText(const QString &text); + //设置文本颜色 + void setTextColor(const QColor &textColor); + + //设置报警颜色+正常颜色 + void setAlarmColor(const QColor &alarmColor); + void setNormalColor(const QColor &normalColor); + + //设置外边框渐变颜色 + void setBorderOutColorStart(const QColor &borderOutColorStart); + void setBorderOutColorEnd(const QColor &borderOutColorEnd); + + //设置里边框渐变颜色 + void setBorderInColorStart(const QColor &borderInColorStart); + void setBorderInColorEnd(const QColor &borderInColorEnd); + + //设置背景色 + void setBgColor(const QColor &bgColor); + + //设置是否可移动 + void setCanMove(bool canMove); + //设置是否显示矩形 + void setShowRect(bool showRect); + //设置是否显示遮罩层 + void setShowOverlay(bool showOverlay); + //设置遮罩层颜色 + void setOverlayColor(const QColor &overlayColor); + + //设置为绿色 + void setGreen(); + //设置为红色 + void setRed(); + //设置为黄色 + void setYellow(); + //设置为黑色 + void setBlack(); + //设置为灰色 + void setGray(); + //设置为蓝色 + void setBlue(); + //设置为淡蓝色 + void setLightBlue(); + //设置为淡红色 + void setLightRed(); + //设置为淡绿色 + void setLightGreen(); + + //设置报警闪烁 + void startAlarm(); + void stopAlarm(); + void alarm(); +}; + +#endif // LIGHTBUTTON_H diff --git a/lightbutton/lightbutton.pro b/lightbutton/lightbutton.pro new file mode 100644 index 0000000..86b6d24 --- /dev/null +++ b/lightbutton/lightbutton.pro @@ -0,0 +1,23 @@ +#------------------------------------------------- +# +# Project created by QtCreator 2017-02-08T15:04:18 +# +#------------------------------------------------- + +QT += core gui + +greaterThan(QT_MAJOR_VERSION, 4): QT += widgets + +TARGET = lightbutton +TEMPLATE = app +DESTDIR = $$PWD/../bin +CONFIG += warn_off + +SOURCES += main.cpp +SOURCES += frmlightbutton.cpp +SOURCES += lightbutton.cpp + +HEADERS += frmlightbutton.h +HEADERS += lightbutton.h + +FORMS += frmlightbutton.ui diff --git a/lightbutton/main.cpp b/lightbutton/main.cpp new file mode 100644 index 0000000..c088c12 --- /dev/null +++ b/lightbutton/main.cpp @@ -0,0 +1,31 @@ +#pragma execution_character_set("utf-8") + +#include "frmlightbutton.h" +#include +#include + +int main(int argc, char *argv[]) +{ + QApplication a(argc, argv); + a.setFont(QFont("Microsoft Yahei", 9)); + +#if (QT_VERSION <= QT_VERSION_CHECK(5,0,0)) +#if _MSC_VER + QTextCodec *codec = QTextCodec::codecForName("gbk"); +#else + QTextCodec *codec = QTextCodec::codecForName("utf-8"); +#endif + QTextCodec::setCodecForLocale(codec); + QTextCodec::setCodecForCStrings(codec); + QTextCodec::setCodecForTr(codec); +#else + QTextCodec *codec = QTextCodec::codecForName("utf-8"); + QTextCodec::setCodecForLocale(codec); +#endif + + frmLightButton w; + w.setWindowTitle("高亮发光按钮"); + w.show(); + + return a.exec(); +} diff --git a/movewidget/frmmovewidget.cpp b/movewidget/frmmovewidget.cpp new file mode 100644 index 0000000..6cc5cc4 --- /dev/null +++ b/movewidget/frmmovewidget.cpp @@ -0,0 +1,41 @@ +#pragma execution_character_set("utf-8") + +#include "frmmovewidget.h" +#include "ui_frmmovewidget.h" +#include "qpushbutton.h" +#include "qprogressbar.h" +#include "movewidget.h" + +frmMoveWidget::frmMoveWidget(QWidget *parent) : QWidget(parent), ui(new Ui::frmMoveWidget) +{ + ui->setupUi(this); + this->initForm(); +} + +frmMoveWidget::~frmMoveWidget() +{ + delete ui; +} + +void frmMoveWidget::initForm() +{ + QPushButton *btn1 = new QPushButton(this); + btn1->setGeometry(10, 10, 250, 25); + btn1->setText("按住我拖动(仅限左键拖动)"); + MoveWidget *moveWidget1 = new MoveWidget(this); + moveWidget1->setWidget(btn1); + + QPushButton *btn2 = new QPushButton(this); + btn2->setGeometry(10, 40, 250, 25); + btn2->setText("按住我拖动(支持右键拖动)"); + MoveWidget *moveWidget2 = new MoveWidget(this); + moveWidget2->setWidget(btn2); + moveWidget2->setLeftButton(false); + + QProgressBar *bar = new QProgressBar(this); + bar->setGeometry(10, 70, 250, 25); + bar->setRange(0, 0); + bar->setTextVisible(false); + MoveWidget *moveWidget3 = new MoveWidget(this); + moveWidget3->setWidget(bar); +} \ No newline at end of file diff --git a/movewidget/frmmovewidget.h b/movewidget/frmmovewidget.h new file mode 100644 index 0000000..b25d2b2 --- /dev/null +++ b/movewidget/frmmovewidget.h @@ -0,0 +1,26 @@ +#ifndef FRMMOVEWIDGET_H +#define FRMMOVEWIDGET_H + +#include + +namespace Ui +{ + class frmMoveWidget; +} + +class frmMoveWidget : public QWidget +{ + Q_OBJECT + +public: + explicit frmMoveWidget(QWidget *parent = 0); + ~frmMoveWidget(); + +private: + Ui::frmMoveWidget *ui; + +private slots: + void initForm(); +}; + +#endif // FRMMOVEWIDGET_H diff --git a/movewidget/frmmovewidget.ui b/movewidget/frmmovewidget.ui new file mode 100644 index 0000000..6443bc6 --- /dev/null +++ b/movewidget/frmmovewidget.ui @@ -0,0 +1,19 @@ + + + frmMoveWidget + + + + 0 + 0 + 500 + 300 + + + + Form + + + + + diff --git a/movewidget/main.cpp b/movewidget/main.cpp new file mode 100644 index 0000000..a5982f5 --- /dev/null +++ b/movewidget/main.cpp @@ -0,0 +1,31 @@ +#pragma execution_character_set("utf-8") + +#include "frmmovewidget.h" +#include +#include + +int main(int argc, char *argv[]) +{ + QApplication a(argc, argv); + a.setFont(QFont("Microsoft Yahei", 9)); + +#if (QT_VERSION <= QT_VERSION_CHECK(5,0,0)) +#if _MSC_VER + QTextCodec *codec = QTextCodec::codecForName("gbk"); +#else + QTextCodec *codec = QTextCodec::codecForName("utf-8"); +#endif + QTextCodec::setCodecForLocale(codec); + QTextCodec::setCodecForCStrings(codec); + QTextCodec::setCodecForTr(codec); +#else + QTextCodec *codec = QTextCodec::codecForName("utf-8"); + QTextCodec::setCodecForLocale(codec); +#endif + + frmMoveWidget w; + w.setWindowTitle("通用移动类"); + w.show(); + + return a.exec(); +} diff --git a/movewidget/movewidget.cpp b/movewidget/movewidget.cpp new file mode 100644 index 0000000..7f57248 --- /dev/null +++ b/movewidget/movewidget.cpp @@ -0,0 +1,74 @@ +#include "movewidget.h" +#include "qevent.h" +#include "qdebug.h" + +MoveWidget::MoveWidget(QObject *parent) : QObject(parent) +{ + lastPoint = QPoint(0, 0); + pressed = false; + leftButton = true; + inControl = true; + widget = 0; +} + +bool MoveWidget::eventFilter(QObject *watched, QEvent *event) +{ + if (widget != 0 && watched == widget) { + QMouseEvent *mouseEvent = (QMouseEvent *)event; + if (mouseEvent->type() == QEvent::MouseButtonPress) { + //如果限定了只能鼠标左键拖动则判断当前是否是鼠标左键 + if (leftButton && mouseEvent->button() != Qt::LeftButton) { + return false; + } + + //判断控件的区域是否包含了当前鼠标的坐标 + if (widget->rect().contains(mouseEvent->pos())) { + lastPoint = mouseEvent->pos(); + pressed = true; + } + } else if (mouseEvent->type() == QEvent::MouseMove && pressed) { + //计算坐标偏移值,调用move函数移动过去 + int offsetX = mouseEvent->pos().x() - lastPoint.x(); + int offsetY = mouseEvent->pos().y() - lastPoint.y(); + int x = widget->x() + offsetX; + int y = widget->y() + offsetY; + if (inControl) { + //可以自行调整限定在容器中的范围,这里默认保留20个像素在里面 + int offset = 20; + bool xyOut = (x + widget->width() < offset || y + widget->height() < offset); + bool whOut = false; + QWidget *w = (QWidget *)widget->parent(); + if (w != 0) { + whOut = (w->width() - x < offset || w->height() - y < offset); + } + if (xyOut || whOut) { + return false; + } + } + + widget->move(x, y); + } else if (mouseEvent->type() == QEvent::MouseButtonRelease && pressed) { + pressed = false; + } + } + + return QObject::eventFilter(watched, event); +} + +void MoveWidget::setWidget(QWidget *widget) +{ + if (this->widget == 0) { + this->widget = widget; + this->widget->installEventFilter(this); + } +} + +void MoveWidget::setLeftButton(bool leftButton) +{ + this->leftButton = leftButton; +} + +void MoveWidget::setInControl(bool inControl) +{ + this->inControl = inControl; +} diff --git a/movewidget/movewidget.h b/movewidget/movewidget.h new file mode 100644 index 0000000..d39d917 --- /dev/null +++ b/movewidget/movewidget.h @@ -0,0 +1,49 @@ +#ifndef MOVEWIDGET_H +#define MOVEWIDGET_H + +/** + * 通用控件移动类 作者:feiyangqingyun(QQ:517216493) 2019-9-28 + * 1:可以指定需要移动的widget + * 2:可设置是否限定鼠标左键拖动 + * 3:支持任意widget控件 + */ + +#include + +#ifdef quc +#if (QT_VERSION < QT_VERSION_CHECK(5,7,0)) +#include +#else +#include +#endif + +class QDESIGNER_WIDGET_EXPORT MoveWidget : public QObject +#else +class MoveWidget : public QObject +#endif + +{ + Q_OBJECT +public: + explicit MoveWidget(QObject *parent = 0); + +protected: + bool eventFilter(QObject *watched, QEvent *event); + +private: + QPoint lastPoint; //最后按下的坐标 + bool pressed; //鼠标是否按下 + bool leftButton; //限定鼠标左键 + bool inControl; //限定在容器内 + QWidget *widget; //移动的控件 + +public Q_SLOTS: + //设置是否限定鼠标左键 + void setLeftButton(bool leftButton); + //设置是否限定不能移出容器外面 + void setInControl(bool inControl); + //设置要移动的控件 + void setWidget(QWidget *widget); +}; + +#endif // MOVEWIDGET_H diff --git a/movewidget/movewidget.pro b/movewidget/movewidget.pro new file mode 100644 index 0000000..5fd1378 --- /dev/null +++ b/movewidget/movewidget.pro @@ -0,0 +1,23 @@ +#------------------------------------------------- +# +# Project created by QtCreator 2019-09-28T15:04:18 +# +#------------------------------------------------- + +QT += core gui + +greaterThan(QT_MAJOR_VERSION, 4): QT += widgets + +TARGET = lightbutton +TEMPLATE = app +DESTDIR = $$PWD/../bin +CONFIG += warn_off + +SOURCES += main.cpp +SOURCES += frmmovewidget.cpp +SOURCES += movewidget.cpp + +HEADERS += frmmovewidget.h +HEADERS += movewidget.h + +FORMS += frmmovewidget.ui diff --git a/navbutton/frmnavbutton.cpp b/navbutton/frmnavbutton.cpp new file mode 100644 index 0000000..2d9e2e1 --- /dev/null +++ b/navbutton/frmnavbutton.cpp @@ -0,0 +1,367 @@ +#pragma execution_character_set("utf-8") + +#include "frmnavbutton.h" +#include "ui_frmnavbutton.h" +#include "navbutton.h" +#include "iconhelper.h" +#include "qdebug.h" + +frmNavButton::frmNavButton(QWidget *parent) : QWidget(parent), ui(new Ui::frmNavButton) +{ + ui->setupUi(this); + this->initForm(); +} + +frmNavButton::~frmNavButton() +{ + delete ui; +} + +void frmNavButton::initForm() +{ + quint32 size = 15; + quint32 pixWidth = 15; + quint32 pixHeight = 15; + + //从图形字体获得图片,也可以从资源文件或者路径文件获取 + QChar icon = 0xf061; + QPixmap iconNormal = IconHelper::Instance()->getPixmap(QColor(100, 100, 100).name(), icon, size, pixWidth, pixHeight); + QPixmap iconHover = IconHelper::Instance()->getPixmap(QColor(255, 255, 255).name(), icon, size, pixWidth, pixHeight); + QPixmap iconCheck = IconHelper::Instance()->getPixmap(QColor(255, 255, 255).name(), icon, size, pixWidth, pixHeight); + + btns1 << ui->navButton11 << ui->navButton12 << ui->navButton13 << ui->navButton14; + for (int i = 0; i < btns1.count(); i++) { + NavButton *btn = btns1.at(i); + btn->setPaddingLeft(32); + btn->setLineSpace(6); + + btn->setShowIcon(true); + btn->setIconSpace(15); + btn->setIconSize(QSize(10, 10)); + btn->setIconNormal(iconNormal); + btn->setIconHover(iconHover); + btn->setIconCheck(iconCheck); + + connect(btn, SIGNAL(clicked(bool)), this, SLOT(buttonClick1())); + } + + size = 15; + pixWidth = 20; + pixHeight = 20; + + QList pixChar; + pixChar << 0xf17b << 0xf002 << 0xf013 << 0xf021 << 0xf0e0 << 0xf135; + QColor normalBgColor = QColor("#2D9191"); + QColor hoverBgColor = QColor("#187294"); + QColor checkBgColor = QColor("#145C75"); + QColor normalTextColor = QColor("#FFFFFF"); + QColor hoverTextColor = QColor("#FFFFFF"); + QColor checkTextColor = QColor("#FFFFFF"); + + btns2 << ui->navButton21 << ui->navButton22 << ui->navButton23 << ui->navButton24; + for (int i = 0; i < btns2.count(); i++) { + NavButton *btn = btns2.at(i); + btn->setPaddingLeft(35); + btn->setLineSpace(0); + btn->setLineWidth(8); + btn->setLineColor(QColor(255, 107, 107)); + btn->setShowTriangle(true); + + btn->setShowIcon(true); + btn->setIconSpace(10); + btn->setIconSize(QSize(22, 22)); + + //分开设置图标 + QChar icon = pixChar.at(i); + QPixmap iconNormal = IconHelper::Instance()->getPixmap(normalTextColor.name(), icon, size, pixWidth, pixHeight); + QPixmap iconHover = IconHelper::Instance()->getPixmap(hoverTextColor.name(), icon, size, pixWidth, pixHeight); + QPixmap iconCheck = IconHelper::Instance()->getPixmap(checkTextColor.name(), icon, size, pixWidth, pixHeight); + + btn->setIconNormal(iconNormal); + btn->setIconHover(iconHover); + btn->setIconCheck(iconCheck); + + btn->setNormalBgColor(normalBgColor); + btn->setHoverBgColor(hoverBgColor); + btn->setCheckBgColor(checkBgColor); + btn->setNormalTextColor(normalTextColor); + btn->setHoverTextColor(hoverTextColor); + btn->setCheckTextColor(checkTextColor); + + connect(btn, SIGNAL(clicked(bool)), this, SLOT(buttonClick2())); + } + + normalBgColor = QColor("#292F38"); + hoverBgColor = QColor("#1D2025"); + checkBgColor = QColor("#1D2025"); + normalTextColor = QColor("#54626F"); + hoverTextColor = QColor("#FDFDFD"); + checkTextColor = QColor("#FDFDFD"); + + btns3 << ui->navButton31 << ui->navButton32 << ui->navButton33 << ui->navButton34; + for (int i = 0; i < btns3.count(); i++) { + NavButton *btn = btns3.at(i); + btn->setPaddingLeft(35); + btn->setLineWidth(10); + btn->setLineColor(QColor("#029FEA")); + btn->setShowTriangle(true); + btn->setTextAlign(NavButton::TextAlign_Left); + btn->setTrianglePosition(NavButton::TrianglePosition_Left); + btn->setLinePosition(NavButton::LinePosition_Right); + + btn->setShowIcon(true); + btn->setIconSpace(10); + btn->setIconSize(QSize(22, 22)); + + //分开设置图标 + QChar icon = pixChar.at(i); + QPixmap iconNormal = IconHelper::Instance()->getPixmap(normalTextColor.name(), icon, size, pixWidth, pixHeight); + QPixmap iconHover = IconHelper::Instance()->getPixmap(hoverTextColor.name(), icon, size, pixWidth, pixHeight); + QPixmap iconCheck = IconHelper::Instance()->getPixmap(checkTextColor.name(), icon, size, pixWidth, pixHeight); + + btn->setIconNormal(iconNormal); + btn->setIconHover(iconHover); + btn->setIconCheck(iconCheck); + + btn->setNormalBgColor(normalBgColor); + btn->setHoverBgColor(hoverBgColor); + btn->setCheckBgColor(checkBgColor); + btn->setNormalTextColor(normalTextColor); + btn->setHoverTextColor(hoverTextColor); + btn->setCheckTextColor(checkTextColor); + + connect(btn, SIGNAL(clicked(bool)), this, SLOT(buttonClick3())); + } + + size = 15; + pixWidth = 15; + pixHeight = 15; + + icon = 0xf105; + iconNormal = IconHelper::Instance()->getPixmap(QColor(100, 100, 100).name(), icon, size, pixWidth, pixHeight); + iconHover = IconHelper::Instance()->getPixmap(QColor(255, 255, 255).name(), icon, size, pixWidth, pixHeight); + iconCheck = IconHelper::Instance()->getPixmap(QColor(255, 255, 255).name(), icon, size, pixWidth, pixHeight); + + btns4 << ui->navButton41 << ui->navButton42 << ui->navButton43 << ui->navButton44; + for (int i = 0; i < btns4.count(); i++) { + NavButton *btn = btns4.at(i); + btn->setLineSpace(10); + btn->setLineWidth(10); + btn->setPaddingRight(25); + btn->setShowTriangle(true); + btn->setTextAlign(NavButton::TextAlign_Right); + btn->setTrianglePosition(NavButton::TrianglePosition_Left); + btn->setLinePosition(NavButton::LinePosition_Right); + + btn->setShowIcon(true); + btn->setIconSpace(25); + btn->setIconSize(QSize(15, 15)); + btn->setIconNormal(iconNormal); + btn->setIconHover(iconHover); + btn->setIconCheck(iconCheck); + + connect(btn, SIGNAL(clicked(bool)), this, SLOT(buttonClick4())); + } + + size = 15; + pixWidth = 20; + pixHeight = 20; + + QFont font; + font.setPixelSize(15); + font.setBold(true); + + normalBgColor = QColor("#292929"); + hoverBgColor = QColor("#064077"); + checkBgColor = QColor("#10689A"); + normalTextColor = QColor("#FFFFFF"); + hoverTextColor = Qt::yellow; + checkTextColor = QColor("#FFFFFF"); + + btns5 << ui->navButton51 << ui->navButton52 << ui->navButton53 << ui->navButton54 << ui->navButton55; + for (int i = 0; i < btns5.count(); i++) { + NavButton *btn = btns5.at(i); + btn->setFont(font); + btn->setPaddingLeft(20); + btn->setShowLine(false); + btn->setTextAlign(NavButton::TextAlign_Center); + btn->setLinePosition(NavButton::LinePosition_Bottom); + + btn->setShowIcon(true); + btn->setIconSpace(15); + btn->setIconSize(QSize(22, 22)); + + //分开设置图标 + QChar icon = pixChar.at(i); + QPixmap iconNormal = IconHelper::Instance()->getPixmap(normalTextColor.name(), icon, size, pixWidth, pixHeight); + QPixmap iconHover = IconHelper::Instance()->getPixmap(hoverTextColor.name(), icon, size, pixWidth, pixHeight); + QPixmap iconCheck = IconHelper::Instance()->getPixmap(checkTextColor.name(), icon, size, pixWidth, pixHeight); + + btn->setIconNormal(iconNormal); + btn->setIconHover(iconHover); + btn->setIconCheck(iconCheck); + + btn->setNormalBgColor(normalBgColor); + btn->setHoverBgColor(hoverBgColor); + btn->setCheckBgColor(checkBgColor); + btn->setNormalTextColor(normalTextColor); + btn->setHoverTextColor(hoverTextColor); + btn->setCheckTextColor(checkTextColor); + + connect(btn, SIGNAL(clicked(bool)), this, SLOT(buttonClick5())); + } + + normalBgColor = QColor("#E6393D"); + hoverBgColor = QColor("#EE0000"); + checkBgColor = QColor("#A40001"); + normalTextColor = QColor("#FFFFFF"); + hoverTextColor = QColor("#FFFFFF"); + checkTextColor = QColor("#FFFFFF"); + + btns6 << ui->navButton61 << ui->navButton62 << ui->navButton63 << ui->navButton64 << ui->navButton65; + for (int i = 0; i < btns6.count(); i++) { + NavButton *btn = btns6.at(i); + btn->setFont(font); + btn->setPaddingLeft(20); + btn->setShowLine(false); + btn->setTextAlign(NavButton::TextAlign_Center); + btn->setLinePosition(NavButton::LinePosition_Bottom); + + btn->setShowIcon(true); + btn->setIconSpace(15); + btn->setIconSize(QSize(22, 22)); + + //分开设置图标 + QChar icon = pixChar.at(i); + QPixmap iconNormal = IconHelper::Instance()->getPixmap(normalTextColor.name(), icon, size, pixWidth, pixHeight); + QPixmap iconHover = IconHelper::Instance()->getPixmap(hoverTextColor.name(), icon, size, pixWidth, pixHeight); + QPixmap iconCheck = IconHelper::Instance()->getPixmap(checkTextColor.name(), icon, size, pixWidth, pixHeight); + + btn->setIconNormal(iconNormal); + btn->setIconHover(iconHover); + btn->setIconCheck(iconCheck); + + btn->setNormalBgColor(normalBgColor); + btn->setHoverBgColor(hoverBgColor); + btn->setCheckBgColor(checkBgColor); + btn->setNormalTextColor(normalTextColor); + btn->setHoverTextColor(hoverTextColor); + btn->setCheckTextColor(checkTextColor); + + connect(btn, SIGNAL(clicked(bool)), this, SLOT(buttonClick6())); + } + + //设置背景色为画刷 + QLinearGradient normalBgBrush(0, 0, 0, ui->navButton61->height()); + normalBgBrush.setColorAt(0.0, QColor("#3985BF")); + normalBgBrush.setColorAt(0.5, QColor("#2972A9")); + normalBgBrush.setColorAt(1.0, QColor("#1C6496")); + + QLinearGradient hoverBgBrush(0, 0, 0, ui->navButton61->height()); + hoverBgBrush.setColorAt(0.0, QColor("#4897D1")); + hoverBgBrush.setColorAt(0.5, QColor("#3283BC")); + hoverBgBrush.setColorAt(1.0, QColor("#3088C3")); + + btns7 << ui->navButton71 << ui->navButton72 << ui->navButton73 << ui->navButton74 << ui->navButton75 << ui->navButton76; + for (int i = 0; i < btns7.count(); i++) { + NavButton *btn = btns7.at(i); + btn->setFont(font); + btn->setPaddingLeft(0); + btn->setLineSpace(0); + btn->setShowTriangle(true); + btn->setTextAlign(NavButton::TextAlign_Center); + btn->setTrianglePosition(NavButton::TrianglePosition_Bottom); + btn->setLinePosition(NavButton::LinePosition_Top); + + btn->setNormalTextColor(normalTextColor); + btn->setHoverTextColor(hoverTextColor); + btn->setCheckTextColor(checkTextColor); + + btn->setNormalBgBrush(normalBgBrush); + btn->setHoverBgBrush(hoverBgBrush); + btn->setCheckBgBrush(hoverBgBrush); + + connect(btn, SIGNAL(clicked(bool)), this, SLOT(buttonClick7())); + } + + ui->navButton11->setChecked(true); + ui->navButton23->setChecked(true); + ui->navButton31->setChecked(true); + ui->navButton44->setChecked(true); + ui->navButton53->setChecked(true); + ui->navButton61->setChecked(true); + ui->navButton75->setChecked(true); + + //设置整体圆角 + ui->widgetNav5->setStyleSheet(".QWidget{background:#292929;border:1px solid #292929;border-radius:20px;}"); +} + +void frmNavButton::buttonClick1() +{ + NavButton *b = (NavButton *)sender(); + qDebug() << "当前按下" << b->text(); + for (int i = 0; i < btns1.count(); i++) { + NavButton *btn = btns1.at(i); + btn->setChecked(b == btn); + } +} + +void frmNavButton::buttonClick2() +{ + NavButton *b = (NavButton *)sender(); + qDebug() << "当前按下" << b->text(); + for (int i = 0; i < btns2.count(); i++) { + NavButton *btn = btns2.at(i); + btn->setChecked(b == btn); + } +} + +void frmNavButton::buttonClick3() +{ + NavButton *b = (NavButton *)sender(); + qDebug() << "当前按下" << b->text(); + for (int i = 0; i < btns3.count(); i++) { + NavButton *btn = btns3.at(i); + btn->setChecked(b == btn); + } +} + +void frmNavButton::buttonClick4() +{ + NavButton *b = (NavButton *)sender(); + qDebug() << "当前按下" << b->text(); + for (int i = 0; i < btns4.count(); i++) { + NavButton *btn = btns4.at(i); + btn->setChecked(b == btn); + } +} + +void frmNavButton::buttonClick5() +{ + NavButton *b = (NavButton *)sender(); + qDebug() << "当前按下" << b->text(); + for (int i = 0; i < btns5.count(); i++) { + NavButton *btn = btns5.at(i); + btn->setChecked(b == btn); + } +} + +void frmNavButton::buttonClick6() +{ + NavButton *b = (NavButton *)sender(); + qDebug() << "当前按下" << b->text(); + for (int i = 0; i < btns6.count(); i++) { + NavButton *btn = btns6.at(i); + btn->setChecked(b == btn); + } +} + +void frmNavButton::buttonClick7() +{ + NavButton *b = (NavButton *)sender(); + qDebug() << "当前按下" << b->text(); + for (int i = 0; i < btns7.count(); i++) { + NavButton *btn = btns7.at(i); + btn->setChecked(b == btn); + } +} diff --git a/navbutton/frmnavbutton.h b/navbutton/frmnavbutton.h new file mode 100644 index 0000000..08775dc --- /dev/null +++ b/navbutton/frmnavbutton.h @@ -0,0 +1,42 @@ +#ifndef FRMNAVBUTTON_H +#define FRMNAVBUTTON_H + +#include + +class NavButton; + +namespace Ui +{ +class frmNavButton; +} + +class frmNavButton : public QWidget +{ + Q_OBJECT + +public: + explicit frmNavButton(QWidget *parent = 0); + ~frmNavButton(); + +private: + Ui::frmNavButton *ui; + QList btns1; + QList btns2; + QList btns3; + QList btns4; + QList btns5; + QList btns6; + QList btns7; + +private slots: + void initForm(); + void buttonClick1(); + void buttonClick2(); + void buttonClick3(); + void buttonClick4(); + void buttonClick5(); + void buttonClick6(); + void buttonClick7(); +}; + +#endif // FRMNAVBUTTON_H diff --git a/navbutton/frmnavbutton.ui b/navbutton/frmnavbutton.ui new file mode 100644 index 0000000..4e786d7 --- /dev/null +++ b/navbutton/frmnavbutton.ui @@ -0,0 +1,547 @@ + + + frmNavButton + + + + 0 + 0 + 500 + 300 + + + + + 500 + 0 + + + + + 500 + 16777215 + + + + Form + + + + + + + 0 + 40 + + + + + 16777215 + 40 + + + + + 0 + + + 0 + + + 0 + + + 0 + + + 0 + + + + + + 0 + 0 + + + + 首页 + + + + + + + + 0 + 0 + + + + 论坛 + + + + + + + + 0 + 0 + + + + Qt下载 + + + + + + + + 0 + 0 + + + + 作品展 + + + + + + + + 0 + 0 + + + + 群组 + + + + + + + + 0 + 0 + + + + 个人中心 + + + + + + + + + + + 0 + + + 0 + + + 0 + + + 0 + + + + + 学生管理 + + + + + + + 教师管理 + + + + + + + 成绩管理 + + + + + + + 记录查询 + + + + + + + + + + + 0 + + + 0 + + + 0 + + + 0 + + + + + 访客登记 + + + + + + + 记录查询 + + + + + + + 系统设置 + + + + + + + 系统重启 + + + + + + + + + + + 0 + 40 + + + + + 16777215 + 40 + + + + + 0 + + + 0 + + + 0 + + + 0 + + + 0 + + + + + + 0 + 0 + + + + 首页 + + + + + + + + 0 + 0 + + + + 论坛 + + + + + + + + 0 + 0 + + + + 作品 + + + + + + + + 0 + 0 + + + + 群组 + + + + + + + + 0 + 0 + + + + 帮助 + + + + + + + + + + + 0 + 40 + + + + + 16777215 + 40 + + + + + 0 + + + 0 + + + 0 + + + 0 + + + 0 + + + + + + 0 + 0 + + + + 首页 + + + + + + + + 0 + 0 + + + + 论坛 + + + + + + + + 0 + 0 + + + + 作品 + + + + + + + + 0 + 0 + + + + 群组 + + + + + + + + 0 + 0 + + + + 帮助 + + + + + + + + + + + 6 + + + 0 + + + 0 + + + 0 + + + 0 + + + + + 学生管理 + + + + + + + 教师管理 + + + + + + + 成绩管理 + + + + + + + 记录查询 + + + + + + + + + + + 0 + + + 0 + + + 0 + + + 0 + + + + + 学生管理 + + + + + + + 教师管理 + + + + + + + 成绩管理 + + + + + + + 记录查询 + + + + + + + + + + Qt::Vertical + + + + 20 + 40 + + + + + + + + + NavButton + QPushButton +
    navbutton.h
    +
    +
    + + +
    diff --git a/navbutton/iconhelper.cpp b/navbutton/iconhelper.cpp new file mode 100644 index 0000000..356e065 --- /dev/null +++ b/navbutton/iconhelper.cpp @@ -0,0 +1,240 @@ +#include "iconhelper.h" + +QScopedPointer IconHelper::self; +IconHelper *IconHelper::Instance() +{ + if (self.isNull()) { + static QMutex mutex; + QMutexLocker locker(&mutex); + if (self.isNull()) { + self.reset(new IconHelper); + } + } + + return self.data(); +} + +IconHelper::IconHelper(QObject *parent) : QObject(parent) +{ + //判断图形字体是否存在,不存在则加入 + QFontDatabase fontDb; + if (!fontDb.families().contains("FontAwesome")) { + int fontId = fontDb.addApplicationFont(":/image/fontawesome-webfont.ttf"); + QStringList fontName = fontDb.applicationFontFamilies(fontId); + if (fontName.count() == 0) { + qDebug() << "load fontawesome-webfont.ttf error"; + } + } + + if (fontDb.families().contains("FontAwesome")) { + iconFont = QFont("FontAwesome"); +#if (QT_VERSION >= QT_VERSION_CHECK(4,8,0)) + iconFont.setHintingPreference(QFont::PreferNoHinting); +#endif + } +} + +void IconHelper::setIcon(QLabel *lab, const QChar &str, quint32 size) +{ + iconFont.setPixelSize(size); + lab->setFont(iconFont); + lab->setText(str); +} + +void IconHelper::setIcon(QAbstractButton *btn, const QChar &str, quint32 size) +{ + iconFont.setPixelSize(size); + btn->setFont(iconFont); + btn->setText(str); +} + +QPixmap IconHelper::getPixmap(const QColor &color, const QChar &str, quint32 size, + quint32 pixWidth, quint32 pixHeight, int flags) +{ + QPixmap pix(pixWidth, pixHeight); + pix.fill(Qt::transparent); + + QPainter painter; + painter.begin(&pix); + painter.setRenderHints(QPainter::Antialiasing | QPainter::TextAntialiasing); + painter.setPen(color); + + iconFont.setPixelSize(size); + painter.setFont(iconFont); + painter.drawText(pix.rect(), flags, str); + painter.end(); + + return pix; +} + +QPixmap IconHelper::getPixmap(QToolButton *btn, bool normal) +{ + QPixmap pix; + int index = btns.indexOf(btn); + + if (index >= 0) { + if (normal) { + pix = pixNormal.at(index); + } else { + pix = pixDark.at(index); + } + } + + return pix; +} + +void IconHelper::setStyle(QWidget *widget, const QString &type, int borderWidth, const QString &borderColor, + const QString &normalBgColor, const QString &darkBgColor, + const QString &normalTextColor, const QString &darkTextColor) +{ + QString strBorder; + if (type == "top") { + strBorder = QString("border-width:%1px 0px 0px 0px;padding:%1px %2px %2px %2px;") + .arg(borderWidth).arg(borderWidth * 2); + } else if (type == "right") { + strBorder = QString("border-width:0px %1px 0px 0px;padding:%2px %1px %2px %2px;") + .arg(borderWidth).arg(borderWidth * 2); + } else if (type == "bottom") { + strBorder = QString("border-width:0px 0px %1px 0px;padding:%2px %2px %1px %2px;") + .arg(borderWidth).arg(borderWidth * 2); + } else if (type == "left") { + strBorder = QString("border-width:0px 0px 0px %1px;padding:%2px %2px %2px %1px;") + .arg(borderWidth).arg(borderWidth * 2); + } + + QStringList qss; + qss.append(QString("QWidget[flag=\"%1\"] QAbstractButton{border-style:none;border-radius:0px;padding:5px;color:%2;background:%3;}") + .arg(type).arg(normalTextColor).arg(normalBgColor)); + + qss.append(QString("QWidget[flag=\"%1\"] QAbstractButton:hover," + "QWidget[flag=\"%1\"] QAbstractButton:pressed," + "QWidget[flag=\"%1\"] QAbstractButton:checked{" + "border-style:solid;%2border-color:%3;color:%4;background:%5;}") + .arg(type).arg(strBorder).arg(borderColor).arg(darkTextColor).arg(darkBgColor)); + + widget->setStyleSheet(qss.join("")); +} + +void IconHelper::setStyle(QWidget *widget, QList btns, QList pixChar, + quint32 iconSize, quint32 iconWidth, quint32 iconHeight, + const QString &type, int borderWidth, const QString &borderColor, + const QString &normalBgColor, const QString &darkBgColor, + const QString &normalTextColor, const QString &darkTextColor) +{ + int btnCount = btns.count(); + int charCount = pixChar.count(); + if (btnCount <= 0 || charCount <= 0 || btnCount != charCount) { + return; + } + + QString strBorder; + if (type == "top") { + strBorder = QString("border-width:%1px 0px 0px 0px;padding:%1px %2px %2px %2px;") + .arg(borderWidth).arg(borderWidth * 2); + } else if (type == "right") { + strBorder = QString("border-width:0px %1px 0px 0px;padding:%2px %1px %2px %2px;") + .arg(borderWidth).arg(borderWidth * 2); + } else if (type == "bottom") { + strBorder = QString("border-width:0px 0px %1px 0px;padding:%2px %2px %1px %2px;") + .arg(borderWidth).arg(borderWidth * 2); + } else if (type == "left") { + strBorder = QString("border-width:0px 0px 0px %1px;padding:%2px %2px %2px %1px;") + .arg(borderWidth).arg(borderWidth * 2); + } + + //如果图标是左侧显示则需要让没有选中的按钮左侧也有加深的边框,颜色为背景颜色 + QStringList qss; + if (btns.at(0)->toolButtonStyle() == Qt::ToolButtonTextBesideIcon) { + qss.append(QString("QWidget[flag=\"%1\"] QAbstractButton{border-style:solid;border-radius:0px;%2border-color:%3;color:%4;background:%5;}") + .arg(type).arg(strBorder).arg(normalBgColor).arg(normalTextColor).arg(normalBgColor)); + } else { + qss.append(QString("QWidget[flag=\"%1\"] QAbstractButton{border-style:none;border-radius:0px;padding:5px;color:%2;background:%3;}") + .arg(type).arg(normalTextColor).arg(normalBgColor)); + } + + qss.append(QString("QWidget[flag=\"%1\"] QAbstractButton:hover," + "QWidget[flag=\"%1\"] QAbstractButton:pressed," + "QWidget[flag=\"%1\"] QAbstractButton:checked{" + "border-style:solid;%2border-color:%3;color:%4;background:%5;}") + .arg(type).arg(strBorder).arg(borderColor).arg(darkTextColor).arg(darkBgColor)); + + qss.append(QString("QWidget#%1{background:%2;}").arg(widget->objectName()).arg(normalBgColor)); + + qss.append(QString("QWidget>QToolButton{border-width:0px;}")); + qss.append(QString("QWidget>QToolButton{background-color:%1;color:%2;}") + .arg(normalBgColor).arg(normalTextColor)); + qss.append(QString("QWidget>QToolButton:hover,QWidget>QToolButton:pressed,QWidget>QToolButton:checked{background-color:%1;color:%2;}") + .arg(darkBgColor).arg(darkTextColor)); + + widget->setStyleSheet(qss.join("")); + + for (int i = 0; i < btnCount; i++) { + //存储对应按钮对象,方便鼠标移上去的时候切换图片 + QPixmap pixNormal = getPixmap(normalTextColor, QChar(pixChar.at(i)), iconSize, iconWidth, iconHeight); + QPixmap pixDark = getPixmap(darkTextColor, QChar(pixChar.at(i)), iconSize, iconWidth, iconHeight); + + btns.at(i)->setIcon(QIcon(pixNormal)); + btns.at(i)->setIconSize(QSize(iconWidth, iconHeight)); + btns.at(i)->installEventFilter(this); + + this->btns.append(btns.at(i)); + this->pixNormal.append(pixNormal); + this->pixDark.append(pixDark); + } +} + +void IconHelper::setStyle(QFrame *frame, QList btns, QList pixChar, + quint32 iconSize, quint32 iconWidth, quint32 iconHeight, + const QString &normalBgColor, const QString &darkBgColor, + const QString &normalTextColor, const QString &darkTextColor) +{ + int btnCount = btns.count(); + int charCount = pixChar.count(); + if (btnCount <= 0 || charCount <= 0 || btnCount != charCount) { + return; + } + + QStringList qss; + qss.append(QString("QFrame>QToolButton{border-style:none;border-width:0px;}")); + qss.append(QString("QFrame>QToolButton{background-color:%1;color:%2;}") + .arg(normalBgColor).arg(normalTextColor)); + qss.append(QString("QFrame>QToolButton:hover,QFrame>QToolButton:pressed,QFrame>QToolButton:checked{background-color:%1;color:%2;}") + .arg(darkBgColor).arg(darkTextColor)); + + frame->setStyleSheet(qss.join("")); + + for (int i = 0; i < btnCount; i++) { + //存储对应按钮对象,方便鼠标移上去的时候切换图片 + QPixmap pixNormal = getPixmap(normalTextColor, QChar(pixChar.at(i)), iconSize, iconWidth, iconHeight); + QPixmap pixDark = getPixmap(darkTextColor, QChar(pixChar.at(i)), iconSize, iconWidth, iconHeight); + + btns.at(i)->setIcon(QIcon(pixNormal)); + btns.at(i)->setIconSize(QSize(iconWidth, iconHeight)); + btns.at(i)->installEventFilter(this); + + this->btns.append(btns.at(i)); + this->pixNormal.append(pixNormal); + this->pixDark.append(pixDark); + } +} + +bool IconHelper::eventFilter(QObject *watched, QEvent *event) +{ + if (watched->inherits("QToolButton")) { + QToolButton *btn = (QToolButton *)watched; + int index = btns.indexOf(btn); + if (index >= 0) { + if (event->type() == QEvent::Enter) { + btn->setIcon(QIcon(pixDark.at(index))); + } else if (event->type() == QEvent::Leave) { + if (btn->isChecked()) { + btn->setIcon(QIcon(pixDark.at(index))); + } else { + btn->setIcon(QIcon(pixNormal.at(index))); + } + } + } + } + + return QObject::eventFilter(watched, event); +} diff --git a/navbutton/iconhelper.h b/navbutton/iconhelper.h new file mode 100644 index 0000000..fb24137 --- /dev/null +++ b/navbutton/iconhelper.h @@ -0,0 +1,64 @@ +#ifndef ICONHELPER_H +#define ICONHELPER_H + +#include +#include +#if (QT_VERSION > QT_VERSION_CHECK(5,0,0)) +#include +#endif + +//图形字体处理类 +class IconHelper : public QObject +{ + Q_OBJECT + +public: + static IconHelper *Instance(); + explicit IconHelper(QObject *parent = 0); + + void setIcon(QLabel *lab, const QChar &str, quint32 size = 12); + void setIcon(QAbstractButton *btn, const QChar &str, quint32 size = 12); + QPixmap getPixmap(const QColor &color, const QChar &str, quint32 size = 12, + quint32 pixWidth = 15, quint32 pixHeight = 15, + int flags = Qt::AlignCenter); + + //根据按钮获取该按钮对应的图标 + QPixmap getPixmap(QToolButton *btn, bool normal); + + //指定导航面板样式,不带图标 + static void setStyle(QWidget *widget, const QString &type = "left", int borderWidth = 3, + const QString &borderColor = "#029FEA", + const QString &normalBgColor = "#292F38", + const QString &darkBgColor = "#1D2025", + const QString &normalTextColor = "#54626F", + const QString &darkTextColor = "#FDFDFD"); + + //指定导航面板样式,带图标和效果切换 + void setStyle(QWidget *widget, QList btns, QList pixChar, + quint32 iconSize = 12, quint32 iconWidth = 15, quint32 iconHeight = 15, + const QString &type = "left", int borderWidth = 3, + const QString &borderColor = "#029FEA", + const QString &normalBgColor = "#292F38", + const QString &darkBgColor = "#1D2025", + const QString &normalTextColor = "#54626F", + const QString &darkTextColor = "#FDFDFD"); + + //指定导航按钮样式,带图标和效果切换 + void setStyle(QFrame *frame, QList btns, QList pixChar, + quint32 iconSize = 12, quint32 iconWidth = 15, quint32 iconHeight = 15, + const QString &normalBgColor = "#2FC5A2", + const QString &darkBgColor = "#3EA7E9", + const QString &normalTextColor = "#EEEEEE", + const QString &darkTextColor = "#FFFFFF"); + +protected: + bool eventFilter(QObject *watched, QEvent *event); + +private: + static QScopedPointer self; + QFont iconFont; //图形字体 + QList btns; //按钮队列 + QList pixNormal; //正常图片队列 + QList pixDark; //加深图片队列 +}; +#endif // ICONHELPER_H diff --git a/navbutton/image/fontawesome-webfont.ttf b/navbutton/image/fontawesome-webfont.ttf new file mode 100644 index 0000000000000000000000000000000000000000..5cd6cff6d6f6cf438a882e366420dbcc5dddd3f1 GIT binary patch literal 141564 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ƓCICn66&u!PHl6pn& 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 +#include + +int main(int argc, char *argv[]) +{ + QApplication a(argc, argv); + a.setFont(QFont("Microsoft Yahei", 9)); + +#if (QT_VERSION <= QT_VERSION_CHECK(5,0,0)) +#if _MSC_VER + QTextCodec *codec = QTextCodec::codecForName("gbk"); +#else + QTextCodec *codec = QTextCodec::codecForName("utf-8"); +#endif + QTextCodec::setCodecForLocale(codec); + QTextCodec::setCodecForCStrings(codec); + QTextCodec::setCodecForTr(codec); +#else + QTextCodec *codec = QTextCodec::codecForName("utf-8"); + QTextCodec::setCodecForLocale(codec); +#endif + + frmNavButton w; + w.setWindowTitle("导航按钮控件"); + w.show(); + + return a.exec(); +} diff --git a/navbutton/main.qrc b/navbutton/main.qrc new file mode 100644 index 0000000..827aaf3 --- /dev/null +++ b/navbutton/main.qrc @@ -0,0 +1,5 @@ + + + image/fontawesome-webfont.ttf + + diff --git a/navbutton/navbutton.cpp b/navbutton/navbutton.cpp new file mode 100644 index 0000000..54b0910 --- /dev/null +++ b/navbutton/navbutton.cpp @@ -0,0 +1,629 @@ +#pragma execution_character_set("utf-8") + +#include "navbutton.h" +#include "qpainter.h" +#include "qdebug.h" + +NavButton::NavButton(QWidget *parent) : QPushButton(parent) +{ + paddingLeft = 20; + paddingRight = 5; + paddingTop = 5; + paddingBottom = 5; + textAlign = TextAlign_Left; + + showTriangle = false; + triangleLen = 5; + trianglePosition = TrianglePosition_Right; + triangleColor = QColor(255, 255, 255); + + showIcon = false; + iconSpace = 10; + iconSize = QSize(16, 16); + iconNormal = QPixmap(); + iconHover = QPixmap(); + iconCheck = QPixmap(); + + showLine = true; + lineSpace = 0; + lineWidth = 5; + linePosition = LinePosition_Left; + lineColor = QColor(0, 187, 158); + + normalBgColor = QColor(230, 230, 230); + hoverBgColor = QColor(130, 130, 130); + checkBgColor = QColor(80, 80, 80); + normalTextColor = QColor(100, 100, 100); + hoverTextColor = QColor(255, 255, 255); + checkTextColor = QColor(255, 255, 255); + + normalBgBrush = Qt::NoBrush; + hoverBgBrush = Qt::NoBrush; + checkBgBrush = Qt::NoBrush; + + hover = false; + setCheckable(true); +} + +void NavButton::enterEvent(QEvent *) +{ + hover = true; + this->update(); +} + +void NavButton::leaveEvent(QEvent *) +{ + hover = false; + this->update(); +} + +void NavButton::paintEvent(QPaintEvent *) +{ + //绘制准备工作,启用反锯齿 + QPainter painter(this); + painter.setRenderHints(QPainter::Antialiasing | QPainter::TextAntialiasing); + + //绘制背景 + drawBg(&painter); + //绘制文字 + drawText(&painter); + //绘制图标 + drawIcon(&painter); + //绘制边框线条 + drawLine(&painter); + //绘制倒三角 + drawTriangle(&painter); +} + +void NavButton::drawBg(QPainter *painter) +{ + painter->save(); + painter->setPen(Qt::NoPen); + + int width = this->width(); + int height = this->height(); + + QRect bgRect; + if (linePosition == LinePosition_Left) { + bgRect = QRect(lineSpace, 0, width - lineSpace, height); + } else if (linePosition == LinePosition_Right) { + bgRect = QRect(0, 0, width - lineSpace, height); + } else if (linePosition == LinePosition_Top) { + bgRect = QRect(0, lineSpace, width, height - lineSpace); + } else if (linePosition == LinePosition_Bottom) { + bgRect = QRect(0, 0, width, height - lineSpace); + } + + //如果画刷存在则取画刷 + QBrush bgBrush; + if (isChecked()) { + bgBrush = checkBgBrush; + } else if (hover) { + bgBrush = hoverBgBrush; + } else { + bgBrush = normalBgBrush; + } + + if (bgBrush != Qt::NoBrush) { + painter->setBrush(bgBrush); + } else { + //根据当前状态选择对应颜色 + QColor bgColor; + if (isChecked()) { + bgColor = checkBgColor; + } else if (hover) { + bgColor = hoverBgColor; + } else { + bgColor = normalBgColor; + } + + painter->setBrush(bgColor); + } + + painter->drawRect(bgRect); + + painter->restore(); +} + +void NavButton::drawText(QPainter *painter) +{ + painter->save(); + painter->setBrush(Qt::NoBrush); + + //根据当前状态选择对应颜色 + QColor textColor; + if (isChecked()) { + textColor = checkTextColor; + } else if (hover) { + textColor = hoverTextColor; + } else { + textColor = normalTextColor; + } + + QRect textRect = QRect(paddingLeft, paddingTop, width() - paddingLeft - paddingRight, height() - paddingTop - paddingBottom); + painter->setPen(textColor); + painter->drawText(textRect, textAlign | Qt::AlignVCenter, text()); + + painter->restore(); +} + +void NavButton::drawIcon(QPainter *painter) +{ + if (!showIcon) { + return; + } + + painter->save(); + + QPixmap pix; + if (isChecked()) { + pix = iconCheck; + } else if (hover) { + pix = iconHover; + } else { + pix = iconNormal; + } + + if (!pix.isNull()) { + //等比例平滑缩放图标 + pix = pix.scaled(iconSize, Qt::KeepAspectRatio, Qt::SmoothTransformation); + painter->drawPixmap(iconSpace, (height() - iconSize.height()) / 2, pix); + } + + painter->restore(); +} + +void NavButton::drawLine(QPainter *painter) +{ + if (!showLine) { + return; + } + + if (!isChecked()) { + return; + } + + painter->save(); + + QPen pen; + pen.setWidth(lineWidth); + pen.setColor(lineColor); + painter->setPen(pen); + + //根据线条位置设置线条坐标 + QPoint pointStart, pointEnd; + if (linePosition == LinePosition_Left) { + pointStart = QPoint(0, 0); + pointEnd = QPoint(0, height()); + } else if (linePosition == LinePosition_Right) { + pointStart = QPoint(width(), 0); + pointEnd = QPoint(width(), height()); + } else if (linePosition == LinePosition_Top) { + pointStart = QPoint(0, 0); + pointEnd = QPoint(width(), 0); + } else if (linePosition == LinePosition_Bottom) { + pointStart = QPoint(0, height()); + pointEnd = QPoint(width(), height()); + } + + painter->drawLine(pointStart, pointEnd); + + painter->restore(); +} + +void NavButton::drawTriangle(QPainter *painter) +{ + if (!showTriangle) { + return; + } + + //选中或者悬停显示 + if (!hover && !isChecked()) { + return; + } + + painter->save(); + painter->setPen(Qt::NoPen); + painter->setBrush(triangleColor); + + //绘制在右侧中间,根据设定的倒三角的边长设定三个点位置 + int width = this->width(); + int height = this->height(); + int midWidth = width / 2; + int midHeight = height / 2; + + QPolygon pts; + if (trianglePosition == TrianglePosition_Left) { + pts.setPoints(3, triangleLen, midHeight, 0, midHeight - triangleLen, 0, midHeight + triangleLen); + } else if (trianglePosition == TrianglePosition_Right) { + pts.setPoints(3, width - triangleLen, midHeight, width, midHeight - triangleLen, width, midHeight + triangleLen); + } else if (trianglePosition == TrianglePosition_Top) { + pts.setPoints(3, midWidth, triangleLen, midWidth - triangleLen, 0, midWidth + triangleLen, 0); + } else if (trianglePosition == TrianglePosition_Bottom) { + pts.setPoints(3, midWidth, height - triangleLen, midWidth - triangleLen, height, midWidth + triangleLen, height); + } + + painter->drawPolygon(pts); + + painter->restore(); +} + +int NavButton::getPaddingLeft() const +{ + return this->paddingLeft; +} + +int NavButton::getPaddingRight() const +{ + return this->paddingRight; +} + +int NavButton::getPaddingTop() const +{ + return this->paddingTop; +} + +int NavButton::getPaddingBottom() const +{ + return this->paddingBottom; +} + +NavButton::TextAlign NavButton::getTextAlign() const +{ + return this->textAlign; +} + +bool NavButton::getShowTriangle() const +{ + return this->showTriangle; +} + +int NavButton::getTriangleLen() const +{ + return this->triangleLen; +} + +NavButton::TrianglePosition NavButton::getTrianglePosition() const +{ + return this->trianglePosition; +} + +QColor NavButton::getTriangleColor() const +{ + return this->triangleColor; +} + +bool NavButton::getShowIcon() const +{ + return this->showIcon; +} + +int NavButton::getIconSpace() const +{ + return this->iconSpace; +} + +QSize NavButton::getIconSize() const +{ + return this->iconSize; +} + +QPixmap NavButton::getIconNormal() const +{ + return this->iconNormal; +} + +QPixmap NavButton::getIconHover() const +{ + return this->iconHover; +} + +QPixmap NavButton::getIconCheck() const +{ + return this->iconCheck; +} + +bool NavButton::getShowLine() const +{ + return this->showLine; +} + +int NavButton::getLineSpace() const +{ + return this->lineSpace; +} + +int NavButton::getLineWidth() const +{ + return this->lineWidth; +} + +NavButton::LinePosition NavButton::getLinePosition() const +{ + return this->linePosition; +} + +QColor NavButton::getLineColor() const +{ + return this->lineColor; +} + +QColor NavButton::getNormalBgColor() const +{ + return this->normalBgColor; +} + +QColor NavButton::getHoverBgColor() const +{ + return this->hoverBgColor; +} + +QColor NavButton::getCheckBgColor() const +{ + return this->checkBgColor; +} + +QColor NavButton::getNormalTextColor() const +{ + return this->normalTextColor; +} + +QColor NavButton::getHoverTextColor() const +{ + return this->hoverTextColor; +} + +QColor NavButton::getCheckTextColor() const +{ + return this->checkTextColor; +} + +QSize NavButton::sizeHint() const +{ + return QSize(100, 30); +} + +QSize NavButton::minimumSizeHint() const +{ + return QSize(20, 10); +} + +void NavButton::setPaddingLeft(int paddingLeft) +{ + if (this->paddingLeft != paddingLeft) { + this->paddingLeft = paddingLeft; + this->update(); + } +} + +void NavButton::setPaddingRight(int paddingRight) +{ + if (this->paddingRight != paddingRight) { + this->paddingRight = paddingRight; + this->update(); + } +} + +void NavButton::setPaddingTop(int paddingTop) +{ + if (this->paddingTop != paddingTop) { + this->paddingTop = paddingTop; + this->update(); + } +} + +void NavButton::setPaddingBottom(int paddingBottom) +{ + if (this->paddingBottom != paddingBottom) { + this->paddingBottom = paddingBottom; + this->update(); + } +} + +void NavButton::setPadding(int padding) +{ + setPadding(padding, padding, padding, padding); +} + +void NavButton::setPadding(int paddingLeft, int paddingRight, int paddingTop, int paddingBottom) +{ + this->paddingLeft = paddingLeft; + this->paddingRight = paddingRight; + this->paddingTop = paddingTop; + this->paddingBottom = paddingBottom; + this->update(); +} + +void NavButton::setTextAlign(const NavButton::TextAlign &textAlign) +{ + if (this->textAlign != textAlign) { + this->textAlign = textAlign; + this->update(); + } +} + +void NavButton::setShowTriangle(bool showTriangle) +{ + if (this->showTriangle != showTriangle) { + this->showTriangle = showTriangle; + this->update(); + } +} + +void NavButton::setTriangleLen(int triangleLen) +{ + if (this->triangleLen != triangleLen) { + this->triangleLen = triangleLen; + this->update(); + } +} + +void NavButton::setTrianglePosition(const NavButton::TrianglePosition &trianglePosition) +{ + if (this->trianglePosition != trianglePosition) { + this->trianglePosition = trianglePosition; + this->update(); + } +} + +void NavButton::setTriangleColor(const QColor &triangleColor) +{ + if (this->triangleColor != triangleColor) { + this->triangleColor = triangleColor; + this->update(); + } +} + +void NavButton::setShowIcon(bool showIcon) +{ + if (this->showIcon != showIcon) { + this->showIcon = showIcon; + this->update(); + } +} + +void NavButton::setIconSpace(int iconSpace) +{ + if (this->iconSpace != iconSpace) { + this->iconSpace = iconSpace; + this->update(); + } +} + +void NavButton::setIconSize(const QSize &iconSize) +{ + if (this->iconSize != iconSize) { + this->iconSize = iconSize; + this->update(); + } +} + +void NavButton::setIconNormal(const QPixmap &iconNormal) +{ + this->iconNormal = iconNormal; + this->update(); +} + +void NavButton::setIconHover(const QPixmap &iconHover) +{ + this->iconHover = iconHover; + this->update(); +} + +void NavButton::setIconCheck(const QPixmap &iconCheck) +{ + this->iconCheck = iconCheck; + this->update(); +} + +void NavButton::setShowLine(bool showLine) +{ + if (this->showLine != showLine) { + this->showLine = showLine; + this->update(); + } +} + +void NavButton::setLineSpace(int lineSpace) +{ + if (this->lineSpace != lineSpace) { + this->lineSpace = lineSpace; + this->update(); + } +} + +void NavButton::setLineWidth(int lineWidth) +{ + if (this->lineWidth != lineWidth) { + this->lineWidth = lineWidth; + this->update(); + } +} + +void NavButton::setLinePosition(const NavButton::LinePosition &linePosition) +{ + if (this->linePosition != linePosition) { + this->linePosition = linePosition; + this->update(); + } +} + +void NavButton::setLineColor(const QColor &lineColor) +{ + if (this->lineColor != lineColor) { + this->lineColor = lineColor; + this->update(); + } +} + +void NavButton::setNormalBgColor(const QColor &normalBgColor) +{ + if (this->normalBgColor != normalBgColor) { + this->normalBgColor = normalBgColor; + this->update(); + } +} + +void NavButton::setHoverBgColor(const QColor &hoverBgColor) +{ + if (this->hoverBgColor != hoverBgColor) { + this->hoverBgColor = hoverBgColor; + this->update(); + } +} + +void NavButton::setCheckBgColor(const QColor &checkBgColor) +{ + if (this->checkBgColor != checkBgColor) { + this->checkBgColor = checkBgColor; + this->update(); + } +} + +void NavButton::setNormalTextColor(const QColor &normalTextColor) +{ + if (this->normalTextColor != normalTextColor) { + this->normalTextColor = normalTextColor; + this->update(); + } +} + +void NavButton::setHoverTextColor(const QColor &hoverTextColor) +{ + if (this->hoverTextColor != hoverTextColor) { + this->hoverTextColor = hoverTextColor; + this->update(); + } +} + +void NavButton::setCheckTextColor(const QColor &checkTextColor) +{ + if (this->checkTextColor != checkTextColor) { + this->checkTextColor = checkTextColor; + this->update(); + } +} + +void NavButton::setNormalBgBrush(const QBrush &normalBgBrush) +{ + if (this->normalBgBrush != normalBgBrush) { + this->normalBgBrush = normalBgBrush; + this->update(); + } +} + +void NavButton::setHoverBgBrush(const QBrush &hoverBgBrush) +{ + if (this->hoverBgBrush != hoverBgBrush) { + this->hoverBgBrush = hoverBgBrush; + this->update(); + } +} + +void NavButton::setCheckBgBrush(const QBrush &checkBgBrush) +{ + if (this->checkBgBrush != checkBgBrush) { + this->checkBgBrush = checkBgBrush; + this->update(); + } +} diff --git a/navbutton/navbutton.h b/navbutton/navbutton.h new file mode 100644 index 0000000..fb8a671 --- /dev/null +++ b/navbutton/navbutton.h @@ -0,0 +1,251 @@ +#ifndef NAVBUTTON_H +#define NAVBUTTON_H + +/** + * 导航按钮控件 作者:feiyangqingyun(QQ:517216493) 2017-12-19 + * 1:可设置文字的左侧+右侧+顶部+底部间隔 + * 2:可设置文字对齐方式 + * 3:可设置显示倒三角/倒三角边长/倒三角位置/倒三角颜色 + * 4:可设置显示图标/图标间隔/图标尺寸/正常状态图标/悬停状态图标/选中状态图标 + * 5:可设置显示边框线条/线条宽度/线条间隔/线条位置/线条颜色 + * 6:可设置正常背景颜色/悬停背景颜色/选中背景颜色 + * 7:可设置正常文字颜色/悬停文字颜色/选中文字颜色 + * 8:可设置背景颜色为画刷颜色 + */ + +#include + +#ifdef quc +#if (QT_VERSION < QT_VERSION_CHECK(5,7,0)) +#include +#else +#include +#endif + +class QDESIGNER_WIDGET_EXPORT NavButton : public QPushButton +#else +class NavButton : public QPushButton +#endif + +{ + Q_OBJECT + Q_ENUMS(TextAlign) + Q_ENUMS(TrianglePosition) + Q_ENUMS(LinePosition) + Q_ENUMS(IconPosition) + + Q_PROPERTY(int paddingLeft READ getPaddingLeft WRITE setPaddingLeft) + Q_PROPERTY(int paddingRight READ getPaddingRight WRITE setPaddingRight) + Q_PROPERTY(int paddingTop READ getPaddingTop WRITE setPaddingTop) + Q_PROPERTY(int paddingBottom READ getPaddingBottom WRITE setPaddingBottom) + Q_PROPERTY(TextAlign textAlign READ getTextAlign WRITE setTextAlign) + + Q_PROPERTY(bool showTriangle READ getShowTriangle WRITE setShowTriangle) + Q_PROPERTY(int triangleLen READ getTriangleLen WRITE setTriangleLen) + Q_PROPERTY(TrianglePosition trianglePosition READ getTrianglePosition WRITE setTrianglePosition) + Q_PROPERTY(QColor triangleColor READ getTriangleColor WRITE setTriangleColor) + + Q_PROPERTY(bool showIcon READ getShowIcon WRITE setShowIcon) + Q_PROPERTY(int iconSpace READ getIconSpace WRITE setIconSpace) + Q_PROPERTY(QSize iconSize READ getIconSize WRITE setIconSize) + Q_PROPERTY(QPixmap iconNormal READ getIconNormal WRITE setIconNormal) + Q_PROPERTY(QPixmap iconHover READ getIconHover WRITE setIconHover) + Q_PROPERTY(QPixmap iconCheck READ getIconCheck WRITE setIconCheck) + + Q_PROPERTY(bool showLine READ getShowLine WRITE setShowLine) + Q_PROPERTY(int lineSpace READ getLineSpace WRITE setLineSpace) + Q_PROPERTY(int lineWidth READ getLineWidth WRITE setLineWidth) + Q_PROPERTY(LinePosition linePosition READ getLinePosition WRITE setLinePosition) + Q_PROPERTY(QColor lineColor READ getLineColor WRITE setLineColor) + + Q_PROPERTY(QColor normalBgColor READ getNormalBgColor WRITE setNormalBgColor) + Q_PROPERTY(QColor hoverBgColor READ getHoverBgColor WRITE setHoverBgColor) + Q_PROPERTY(QColor checkBgColor READ getCheckBgColor WRITE setCheckBgColor) + Q_PROPERTY(QColor normalTextColor READ getNormalTextColor WRITE setNormalTextColor) + Q_PROPERTY(QColor hoverTextColor READ getHoverTextColor WRITE setHoverTextColor) + Q_PROPERTY(QColor checkTextColor READ getCheckTextColor WRITE setCheckTextColor) + +public: + enum TextAlign { + TextAlign_Left = 0x0001, //左侧对齐 + TextAlign_Right = 0x0002, //右侧对齐 + TextAlign_Top = 0x0020, //顶部对齐 + TextAlign_Bottom = 0x0040, //底部对齐 + TextAlign_Center = 0x0004 //居中对齐 + }; + + enum TrianglePosition { + TrianglePosition_Left = 0, //左侧 + TrianglePosition_Right = 1, //右侧 + TrianglePosition_Top = 2, //顶部 + TrianglePosition_Bottom = 3 //底部 + }; + + enum IconPosition { + IconPosition_Left = 0, //左侧 + IconPosition_Right = 1, //右侧 + IconPosition_Top = 2, //顶部 + IconPosition_Bottom = 3 //底部 + }; + + enum LinePosition { + LinePosition_Left = 0, //左侧 + LinePosition_Right = 1, //右侧 + LinePosition_Top = 2, //顶部 + LinePosition_Bottom = 3 //底部 + }; + + explicit NavButton(QWidget *parent = 0); + +protected: + void enterEvent(QEvent *); + void leaveEvent(QEvent *); + void paintEvent(QPaintEvent *); + void drawBg(QPainter *painter); + void drawText(QPainter *painter); + void drawIcon(QPainter *painter); + void drawLine(QPainter *painter); + void drawTriangle(QPainter *painter); + +private: + int paddingLeft; //文字左侧间隔 + int paddingRight; //文字右侧间隔 + int paddingTop; //文字顶部间隔 + int paddingBottom; //文字底部间隔 + TextAlign textAlign; //文字对齐 + + bool showTriangle; //显示倒三角 + int triangleLen; //倒三角边长 + TrianglePosition trianglePosition; //倒三角位置 + QColor triangleColor; //倒三角颜色 + + bool showIcon; //显示图标 + int iconSpace; //图标间隔 + QSize iconSize; //图标尺寸 + QPixmap iconNormal; //正常图标 + QPixmap iconHover; //悬停图标 + QPixmap iconCheck; //选中图标 + + bool showLine; //显示线条 + int lineSpace; //线条间隔 + int lineWidth; //线条宽度 + LinePosition linePosition; //线条位置 + QColor lineColor; //线条颜色 + + QColor normalBgColor; //正常背景颜色 + QColor hoverBgColor; //悬停背景颜色 + QColor checkBgColor; //选中背景颜色 + QColor normalTextColor; //正常文字颜色 + QColor hoverTextColor; //悬停文字颜色 + QColor checkTextColor; //选中文字颜色 + + QBrush normalBgBrush; //正常背景画刷 + QBrush hoverBgBrush; //悬停背景画刷 + QBrush checkBgBrush; //选中背景画刷 + + bool hover; //悬停标志位 + +public: + int getPaddingLeft() const; + int getPaddingRight() const; + int getPaddingTop() const; + int getPaddingBottom() const; + TextAlign getTextAlign() const; + + bool getShowTriangle() const; + int getTriangleLen() const; + TrianglePosition getTrianglePosition()const; + QColor getTriangleColor() const; + + bool getShowIcon() const; + int getIconSpace() const; + QSize getIconSize() const; + QPixmap getIconNormal() const; + QPixmap getIconHover() const; + QPixmap getIconCheck() const; + + bool getShowLine() const; + int getLineSpace() const; + int getLineWidth() const; + LinePosition getLinePosition() const; + QColor getLineColor() const; + + QColor getNormalBgColor() const; + QColor getHoverBgColor() const; + QColor getCheckBgColor() const; + QColor getNormalTextColor() const; + QColor getHoverTextColor() const; + QColor getCheckTextColor() const; + + QSize sizeHint() const; + QSize minimumSizeHint() const; + +public Q_SLOTS: + //设置文字间隔 + void setPaddingLeft(int paddingLeft); + void setPaddingRight(int paddingRight); + void setPaddingTop(int paddingTop); + void setPaddingBottom(int paddingBottom); + void setPadding(int padding); + void setPadding(int paddingLeft, int paddingRight, int paddingTop, int paddingBottom); + + //设置文字对齐 + void setTextAlign(const TextAlign &textAlign); + + //设置显示倒三角 + void setShowTriangle(bool showTriangle); + //设置倒三角边长 + void setTriangleLen(int triangleLen); + //设置倒三角位置 + void setTrianglePosition(const TrianglePosition &trianglePosition); + //设置倒三角颜色 + void setTriangleColor(const QColor &triangleColor); + + //设置显示图标 + void setShowIcon(bool showIcon); + //设置图标间隔 + void setIconSpace(int iconSpace); + //设置图标尺寸 + void setIconSize(const QSize &iconSize); + //设置正常图标 + void setIconNormal(const QPixmap &iconNormal); + //设置悬停图标 + void setIconHover(const QPixmap &iconHover); + //设置按下图标 + void setIconCheck(const QPixmap &iconCheck); + + //设置显示线条 + void setShowLine(bool showLine); + //设置线条间隔 + void setLineSpace(int lineSpace); + //设置线条宽度 + void setLineWidth(int lineWidth); + //设置线条位置 + void setLinePosition(const LinePosition &linePosition); + //设置线条颜色 + void setLineColor(const QColor &lineColor); + + //设置正常背景颜色 + void setNormalBgColor(const QColor &normalBgColor); + //设置悬停背景颜色 + void setHoverBgColor(const QColor &hoverBgColor); + //设置选中背景颜色 + void setCheckBgColor(const QColor &checkBgColor); + + //设置正常文字颜色 + void setNormalTextColor(const QColor &normalTextColor); + //设置悬停文字颜色 + void setHoverTextColor(const QColor &hoverTextColor); + //设置选中文字颜色 + void setCheckTextColor(const QColor &checkTextColor); + + //设置正常背景画刷 + void setNormalBgBrush(const QBrush &normalBgBrush); + //设置悬停背景画刷 + void setHoverBgBrush(const QBrush &hoverBgBrush); + //设置选中背景画刷 + void setCheckBgBrush(const QBrush &checkBgBrush); + +}; + +#endif // NAVBUTTON_H diff --git a/navbutton/navbutton.pro b/navbutton/navbutton.pro new file mode 100644 index 0000000..31bb886 --- /dev/null +++ b/navbutton/navbutton.pro @@ -0,0 +1,27 @@ +#------------------------------------------------- +# +# Project created by QtCreator 2017-02-08T15:12:35 +# +#------------------------------------------------- + +QT += core gui + +greaterThan(QT_MAJOR_VERSION, 4): QT += widgets + +TARGET = navbutton +TEMPLATE = app +DESTDIR = $$PWD/../bin +CONFIG += warn_off + +SOURCES += main.cpp +SOURCES += iconhelper.cpp +SOURCES += frmnavbutton.cpp +SOURCES += navbutton.cpp + +HEADERS += frmnavbutton.h +HEADERS += iconhelper.h +HEADERS += navbutton.h + +FORMS += frmnavbutton.ui + +RESOURCES += main.qrc diff --git a/nettool/api/api.pri b/nettool/api/api.pri new file mode 100644 index 0000000..5f363c7 --- /dev/null +++ b/nettool/api/api.pri @@ -0,0 +1,9 @@ +HEADERS += \ + $$PWD/app.h \ + $$PWD/quiwidget.h \ + $$PWD/tcpserver.h + +SOURCES += \ + $$PWD/app.cpp \ + $$PWD/quiwidget.cpp \ + $$PWD/tcpserver.cpp diff --git a/nettool/api/app.cpp b/nettool/api/app.cpp new file mode 100644 index 0000000..e32e911 --- /dev/null +++ b/nettool/api/app.cpp @@ -0,0 +1,226 @@ +#include "app.h" +#include "quiwidget.h" + +QString App::ConfigFile = "config.ini"; +QString App::SendFileName = "send.txt"; +QString App::DeviceFileName = "device.txt"; + +int App::CurrentIndex = 0; + +bool App::HexSendTcpClient = false; +bool App::HexReceiveTcpClient = false; +bool App::AsciiTcpClient = false; +bool App::DebugTcpClient = false; +bool App::AutoSendTcpClient = false; +int App::IntervalTcpClient = 1000; +QString App::TcpServerIP = "127.0.0.1"; +int App::TcpServerPort = 6000; + +bool App::HexSendTcpServer = false; +bool App::HexReceiveTcpServer = false; +bool App::AsciiTcpServer = false; +bool App::DebugTcpServer = false; +bool App::AutoSendTcpServer = false; +bool App::SelectAllTcpServer = false; +int App::IntervalTcpServer = 1000; +int App::TcpListenPort = 6000; + +bool App::HexSendUdpServer = false; +bool App::HexReceiveUdpServer = false; +bool App::AsciiUdpServer = false; +bool App::DebugUdpServer = false; +bool App::AutoSendUdpServer = false; +int App::IntervalUdpServer = 1000; +int App::UdpListenPort = 6000; +QString App::UdpServerIP = "127.0.0.1"; +int App::UdpServerPort = 6000; + +void App::readConfig() +{ + if (!checkConfig()) { + return; + } + + QSettings set(App::ConfigFile, QSettings::IniFormat); + + set.beginGroup("AppConfig"); + App::CurrentIndex = set.value("CurrentIndex").toInt(); + set.endGroup(); + + set.beginGroup("TcpClientConfig"); + App::HexSendTcpClient = set.value("HexSendTcpClient").toBool(); + App::HexReceiveTcpClient = set.value("HexReceiveTcpClient").toBool(); + App::AsciiTcpClient = set.value("AsciiTcpClient").toBool(); + App::DebugTcpClient = set.value("DebugTcpClient").toBool(); + App::AutoSendTcpClient = set.value("AutoSendTcpClient").toBool(); + App::IntervalTcpClient = set.value("IntervalTcpClient").toInt(); + App::TcpServerIP = set.value("TcpServerIP").toString(); + App::TcpServerPort = set.value("TcpServerPort").toInt(); + set.endGroup(); + + set.beginGroup("TcpServerConfig"); + App::HexSendTcpServer = set.value("HexSendTcpServer").toBool(); + App::HexReceiveTcpServer = set.value("HexReceiveTcpServer").toBool(); + App::AsciiTcpServer = set.value("AsciiTcpServer").toBool(); + App::DebugTcpServer = set.value("DebugTcpServer").toBool(); + App::AutoSendTcpServer = set.value("AutoSendTcpServer").toBool(); + App::SelectAllTcpServer = set.value("SelectAllTcpServer").toBool(); + App::IntervalTcpServer = set.value("IntervalTcpServer").toInt(); + App::TcpListenPort = set.value("TcpListenPort").toInt(); + set.endGroup(); + + set.beginGroup("UdpServerConfig"); + App::HexSendUdpServer = set.value("HexSendUdpServer").toBool(); + App::HexReceiveUdpServer = set.value("HexReceiveUdpServer").toBool(); + App::AsciiUdpServer = set.value("AsciiUdpServer").toBool(); + App::DebugUdpServer = set.value("DebugUdpServer").toBool(); + App::AutoSendUdpServer = set.value("AutoSendUdpServer").toBool(); + App::IntervalUdpServer = set.value("IntervalUdpServer").toInt(); + App::UdpServerIP = set.value("UdpServerIP").toString(); + App::UdpServerPort = set.value("UdpServerPort").toInt(); + App::UdpListenPort = set.value("UdpListenPort").toInt(); + set.endGroup(); +} + +void App::writeConfig() +{ + QSettings set(App::ConfigFile, QSettings::IniFormat); + + set.beginGroup("AppConfig"); + set.setValue("CurrentIndex", App::CurrentIndex); + set.endGroup(); + + set.beginGroup("TcpClientConfig"); + set.setValue("HexSendTcpClient", App::HexSendTcpClient); + set.setValue("HexReceiveTcpClient", App::HexReceiveTcpClient); + set.setValue("DebugTcpClient", App::DebugTcpClient); + set.setValue("AutoSendTcpClient", App::AutoSendTcpClient); + set.setValue("IntervalTcpClient", App::IntervalTcpClient); + set.setValue("TcpServerIP", App::TcpServerIP); + set.setValue("TcpServerPort", App::TcpServerPort); + set.endGroup(); + + set.beginGroup("TcpServerConfig"); + set.setValue("HexSendTcpServer", App::HexSendTcpServer); + set.setValue("HexReceiveTcpServer", App::HexReceiveTcpServer); + set.setValue("DebugTcpServer", App::DebugTcpServer); + set.setValue("AutoSendTcpServer", App::AutoSendTcpServer); + set.setValue("SelectAllTcpServer", App::SelectAllTcpServer); + set.setValue("IntervalTcpServer", App::IntervalTcpServer); + set.setValue("TcpListenPort", App::TcpListenPort); + set.endGroup(); + + set.beginGroup("UdpServerConfig"); + set.setValue("HexSendUdpServer", App::HexSendUdpServer); + set.setValue("HexReceiveUdpServer", App::HexReceiveUdpServer); + set.setValue("DebugUdpServer", App::DebugUdpServer); + set.setValue("AutoSendUdpServer", App::AutoSendUdpServer); + set.setValue("IntervalUdpServer", App::IntervalUdpServer); + set.setValue("UdpServerIP", App::UdpServerIP); + set.setValue("UdpServerPort", App::UdpServerPort); + set.setValue("UdpListenPort", App::UdpListenPort); + set.endGroup(); +} + +void App::newConfig() +{ +#if (QT_VERSION <= QT_VERSION_CHECK(5,0,0)) +#endif + writeConfig(); +} + +bool App::checkConfig() +{ + //如果配置文件大小为0,则以初始值继续运行,并生成配置文件 + QFile file(App::ConfigFile); + if (file.size() == 0) { + newConfig(); + return false; + } + + //如果配置文件不完整,则以初始值继续运行,并生成配置文件 + if (file.open(QFile::ReadOnly)) { + bool ok = true; + while (!file.atEnd()) { + QString line = file.readLine(); + line = line.replace("\r", ""); + line = line.replace("\n", ""); + QStringList list = line.split("="); + + if (list.count() == 2) { + if (list.at(1) == "") { + ok = false; + break; + } + } + } + + if (!ok) { + newConfig(); + return false; + } + } else { + newConfig(); + return false; + } + + return true; +} + +QStringList App::Intervals = QStringList(); +QStringList App::Datas = QStringList(); +QStringList App::Keys = QStringList(); +QStringList App::Values = QStringList(); + +void App::readSendData() +{ + //读取发送数据列表 + App::Datas.clear(); + QString fileName = QString("%1/%2").arg(QUIHelper::appPath()).arg(App::SendFileName); + QFile file(fileName); + if (file.size() > 0 && file.open(QFile::ReadOnly | QIODevice::Text)) { + while (!file.atEnd()) { + QString line = file.readLine(); + line = line.trimmed(); + line = line.replace("\r", ""); + line = line.replace("\n", ""); + if (!line.isEmpty()) { + App::Datas.append(line); + } + } + + file.close(); + } +} + +void App::readDeviceData() +{ + //读取转发数据列表 + App::Keys.clear(); + App::Values.clear(); + QString fileName = QString("%1/%2").arg(QUIHelper::appPath()).arg(App::DeviceFileName); + QFile file(fileName); + if (file.size() > 0 && file.open(QFile::ReadOnly | QIODevice::Text)) { + while (!file.atEnd()) { + QString line = file.readLine(); + line = line.trimmed(); + line = line.replace("\r", ""); + line = line.replace("\n", ""); + if (!line.isEmpty()) { + QStringList list = line.split(";"); + QString key = list.at(0); + QString value; + for (int i = 1; i < list.count(); i++) { + value += QString("%1;").arg(list.at(i)); + } + + //去掉末尾分号 + value = value.mid(0, value.length() - 1); + App::Keys.append(key); + App::Values.append(value); + } + } + + file.close(); + } +} diff --git a/nettool/api/app.h b/nettool/api/app.h new file mode 100644 index 0000000..dd91669 --- /dev/null +++ b/nettool/api/app.h @@ -0,0 +1,60 @@ +#ifndef APP_H +#define APP_H + +#include "head.h" + +class App +{ +public: + static QString ConfigFile; //配置文件路径 + static QString SendFileName; //发送配置文件名 + static QString DeviceFileName; //模拟设备数据文件名 + + static int CurrentIndex; //当前索引 + + //TCP客户端配置参数 + static bool HexSendTcpClient; //16进制发送 + static bool HexReceiveTcpClient; //16进制接收 + static bool AsciiTcpClient; //ASCII模式 + static bool DebugTcpClient; //启用数据调试 + static bool AutoSendTcpClient; //自动发送数据 + static int IntervalTcpClient; //发送数据间隔 + static QString TcpServerIP; //服务器IP + static int TcpServerPort; //服务器端口 + + //TCP服务器配置参数 + static bool HexSendTcpServer; //16进制发送 + static bool HexReceiveTcpServer; //16进制接收 + static bool AsciiTcpServer; //ASCII模式 + static bool DebugTcpServer; //启用数据调试 + static bool AutoSendTcpServer; //自动发送数据 + static bool SelectAllTcpServer; //选中所有 + static int IntervalTcpServer; //发送数据间隔 + static int TcpListenPort; //监听端口 + + //UDP服务器配置参数 + static bool HexSendUdpServer; //16进制发送 + static bool HexReceiveUdpServer; //16进制接收 + static bool AsciiUdpServer; //ASCII模式 + static bool DebugUdpServer; //启用数据调试 + static bool AutoSendUdpServer; //自动发送数据 + static int IntervalUdpServer; //发送数据间隔 + static QString UdpServerIP; //服务器IP + static int UdpServerPort; //服务器端口 + static int UdpListenPort; //监听端口 + + //读写配置参数及其他操作 + static void readConfig(); //读取配置参数 + static void writeConfig(); //写入配置参数 + static void newConfig(); //以初始值新建配置文件 + static bool checkConfig(); //校验配置文件 + + static QStringList Intervals; + static QStringList Datas; + static QStringList Keys; + static QStringList Values; + static void readSendData(); + static void readDeviceData(); +}; + +#endif // APP_H diff --git a/nettool/api/quiwidget.cpp b/nettool/api/quiwidget.cpp new file mode 100644 index 0000000..3153671 --- /dev/null +++ b/nettool/api/quiwidget.cpp @@ -0,0 +1,3688 @@ +#include "quiwidget.h" +#ifdef Q_OS_ANDROID +#include "qandroid.h" +#endif + +#ifdef arma7 +#define TOOL true +#else +#define TOOL false +#endif + +QUIWidget::QUIWidget(QWidget *parent) : QDialog(parent) +{ + this->initControl(); + this->initForm(); + QUIHelper::setFormInCenter(this); +} + +QUIWidget::~QUIWidget() +{ +} + +bool QUIWidget::eventFilter(QObject *watched, QEvent *event) +{ + static QPoint mousePoint; + static bool mousePressed = false; + + QMouseEvent *mouseEvent = static_cast(event); + if (mouseEvent->type() == QEvent::MouseButtonPress) { + if (mouseEvent->button() == Qt::LeftButton) { + mousePressed = true; + mousePoint = mouseEvent->globalPos() - this->pos(); + } + } else if (mouseEvent->type() == QEvent::MouseButtonRelease) { + mousePressed = false; + } else if (mouseEvent->type() == QEvent::MouseMove) { + if (mousePressed && (mouseEvent->buttons() && Qt::LeftButton)) { + if (this->property("canMove").toBool()) { + this->move(mouseEvent->globalPos() - mousePoint); + } + } + } else if (mouseEvent->type() == QEvent::MouseButtonDblClick) { + //以下写法可以将双击识别限定在标题栏 + if (this->btnMenu_Max->isVisible() && watched == this->widgetTitle) { + //if (this->btnMenu_Max->isVisible()) { + this->on_btnMenu_Max_clicked(); + } + } + + return QWidget::eventFilter(watched, event); +} + +QLabel *QUIWidget::getLabIco() const +{ + return this->labIco; +} + +QLabel *QUIWidget::getLabTitle() const +{ + return this->labTitle; +} + +QToolButton *QUIWidget::getBtnMenu() const +{ + return this->btnMenu; +} + +QPushButton *QUIWidget::getBtnMenuMin() const +{ + return this->btnMenu_Min; +} + +QPushButton *QUIWidget::getBtnMenuMax() const +{ + return this->btnMenu_Max; +} + +QPushButton *QUIWidget::getBtnMenuMClose() const +{ + return this->btnMenu_Close; +} + +QString QUIWidget::getTitle() const +{ + return this->title; +} + +Qt::Alignment QUIWidget::getAlignment() const +{ + return this->alignment; +} + +bool QUIWidget::getMinHide() const +{ + return this->minHide; +} + +bool QUIWidget::getExitAll() const +{ + return this->exitAll; +} + +QSize QUIWidget::sizeHint() const +{ + return QSize(600, 450); +} + +QSize QUIWidget::minimumSizeHint() const +{ + return QSize(200, 150); +} + +void QUIWidget::initControl() +{ + this->setObjectName(QString::fromUtf8("QUIWidget")); + this->resize(900, 750); + verticalLayout1 = new QVBoxLayout(this); + verticalLayout1->setSpacing(0); + verticalLayout1->setContentsMargins(11, 11, 11, 11); + verticalLayout1->setObjectName(QString::fromUtf8("verticalLayout1")); + verticalLayout1->setContentsMargins(1, 1, 1, 1); + widgetMain = new QWidget(this); + widgetMain->setObjectName(QString::fromUtf8("widgetMainQUI")); + verticalLayout2 = new QVBoxLayout(widgetMain); + verticalLayout2->setSpacing(0); + verticalLayout2->setContentsMargins(11, 11, 11, 11); + verticalLayout2->setObjectName(QString::fromUtf8("verticalLayout2")); + verticalLayout2->setContentsMargins(0, 0, 0, 0); + widgetTitle = new QWidget(widgetMain); + widgetTitle->setObjectName(QString::fromUtf8("widgetTitle")); + QSizePolicy sizePolicy(QSizePolicy::Preferred, QSizePolicy::Fixed); + sizePolicy.setHorizontalStretch(0); + sizePolicy.setVerticalStretch(0); + sizePolicy.setHeightForWidth(widgetTitle->sizePolicy().hasHeightForWidth()); + widgetTitle->setSizePolicy(sizePolicy); + widgetTitle->setMinimumSize(QSize(0, 30)); + horizontalLayout4 = new QHBoxLayout(widgetTitle); + horizontalLayout4->setSpacing(0); + horizontalLayout4->setContentsMargins(11, 11, 11, 11); + horizontalLayout4->setObjectName(QString::fromUtf8("horizontalLayout4")); + horizontalLayout4->setContentsMargins(0, 0, 0, 0); + + labIco = new QLabel(widgetTitle); + labIco->setObjectName(QString::fromUtf8("labIco")); + QSizePolicy sizePolicy1(QSizePolicy::Minimum, QSizePolicy::Preferred); + sizePolicy1.setHorizontalStretch(0); + sizePolicy1.setVerticalStretch(0); + sizePolicy1.setHeightForWidth(labIco->sizePolicy().hasHeightForWidth()); + labIco->setSizePolicy(sizePolicy1); + labIco->setMinimumSize(QSize(30, 0)); + labIco->setAlignment(Qt::AlignCenter); + horizontalLayout4->addWidget(labIco); + + labTitle = new QLabel(widgetTitle); + labTitle->setObjectName(QString::fromUtf8("labTitle")); + QSizePolicy sizePolicy2(QSizePolicy::Expanding, QSizePolicy::Preferred); + sizePolicy2.setHorizontalStretch(0); + sizePolicy2.setVerticalStretch(0); + sizePolicy2.setHeightForWidth(labTitle->sizePolicy().hasHeightForWidth()); + labTitle->setSizePolicy(sizePolicy2); + labTitle->setAlignment(Qt::AlignLeading | Qt::AlignLeft | Qt::AlignVCenter); + horizontalLayout4->addWidget(labTitle); + + widgetMenu = new QWidget(widgetTitle); + widgetMenu->setObjectName(QString::fromUtf8("widgetMenu")); + sizePolicy1.setHeightForWidth(widgetMenu->sizePolicy().hasHeightForWidth()); + widgetMenu->setSizePolicy(sizePolicy1); + horizontalLayout = new QHBoxLayout(widgetMenu); + horizontalLayout->setSpacing(0); + horizontalLayout->setContentsMargins(11, 11, 11, 11); + horizontalLayout->setObjectName(QString::fromUtf8("horizontalLayout")); + horizontalLayout->setContentsMargins(0, 0, 0, 0); + + btnMenu = new QToolButton(widgetMenu); + btnMenu->setObjectName(QString::fromUtf8("btnMenu")); + QSizePolicy sizePolicy3(QSizePolicy::Fixed, QSizePolicy::Expanding); + sizePolicy3.setHorizontalStretch(0); + sizePolicy3.setVerticalStretch(0); + sizePolicy3.setHeightForWidth(btnMenu->sizePolicy().hasHeightForWidth()); + btnMenu->setSizePolicy(sizePolicy3); + btnMenu->setMinimumSize(QSize(30, 0)); + btnMenu->setMaximumSize(QSize(30, 16777215)); + btnMenu->setFocusPolicy(Qt::NoFocus); + btnMenu->setPopupMode(QToolButton::InstantPopup); + horizontalLayout->addWidget(btnMenu); + + btnMenu_Min = new QPushButton(widgetMenu); + btnMenu_Min->setObjectName(QString::fromUtf8("btnMenu_Min")); + QSizePolicy sizePolicy4(QSizePolicy::Minimum, QSizePolicy::Expanding); + sizePolicy4.setHorizontalStretch(0); + sizePolicy4.setVerticalStretch(0); + sizePolicy4.setHeightForWidth(btnMenu_Min->sizePolicy().hasHeightForWidth()); + btnMenu_Min->setSizePolicy(sizePolicy4); + btnMenu_Min->setMinimumSize(QSize(30, 0)); + btnMenu_Min->setMaximumSize(QSize(30, 16777215)); + btnMenu_Min->setCursor(QCursor(Qt::ArrowCursor)); + btnMenu_Min->setFocusPolicy(Qt::NoFocus); + horizontalLayout->addWidget(btnMenu_Min); + + btnMenu_Max = new QPushButton(widgetMenu); + btnMenu_Max->setObjectName(QString::fromUtf8("btnMenu_Max")); + sizePolicy3.setHeightForWidth(btnMenu_Max->sizePolicy().hasHeightForWidth()); + btnMenu_Max->setSizePolicy(sizePolicy3); + btnMenu_Max->setMinimumSize(QSize(30, 0)); + btnMenu_Max->setMaximumSize(QSize(30, 16777215)); + btnMenu_Max->setCursor(QCursor(Qt::ArrowCursor)); + btnMenu_Max->setFocusPolicy(Qt::NoFocus); + horizontalLayout->addWidget(btnMenu_Max); + + btnMenu_Close = new QPushButton(widgetMenu); + btnMenu_Close->setObjectName(QString::fromUtf8("btnMenu_Close")); + sizePolicy3.setHeightForWidth(btnMenu_Close->sizePolicy().hasHeightForWidth()); + btnMenu_Close->setSizePolicy(sizePolicy3); + btnMenu_Close->setMinimumSize(QSize(30, 0)); + btnMenu_Close->setMaximumSize(QSize(30, 16777215)); + btnMenu_Close->setCursor(QCursor(Qt::ArrowCursor)); + btnMenu_Close->setFocusPolicy(Qt::NoFocus); + horizontalLayout->addWidget(btnMenu_Close); + horizontalLayout4->addWidget(widgetMenu); + verticalLayout2->addWidget(widgetTitle); + + widget = new QWidget(widgetMain); + widget->setObjectName(QString::fromUtf8("widget")); + verticalLayout3 = new QVBoxLayout(widget); + verticalLayout3->setSpacing(0); + verticalLayout3->setContentsMargins(11, 11, 11, 11); + verticalLayout3->setObjectName(QString::fromUtf8("verticalLayout3")); + verticalLayout3->setContentsMargins(0, 0, 0, 0); + verticalLayout2->addWidget(widget); + verticalLayout1->addWidget(widgetMain); + + connect(this->btnMenu_Min, SIGNAL(clicked()), this, SLOT(on_btnMenu_Min_clicked())); + connect(this->btnMenu_Max, SIGNAL(clicked()), this, SLOT(on_btnMenu_Max_clicked())); + connect(this->btnMenu_Close, SIGNAL(clicked()), this, SLOT(on_btnMenu_Close_clicked())); +} + +void QUIWidget::initForm() +{ + //设置图形字体 + setIcon(QUIWidget::Lab_Ico, QUIConfig::IconMain, 11); + setIcon(QUIWidget::BtnMenu, QUIConfig::IconMenu); + setIcon(QUIWidget::BtnMenu_Min, QUIConfig::IconMin); + setIcon(QUIWidget::BtnMenu_Normal, QUIConfig::IconNormal); + setIcon(QUIWidget::BtnMenu_Close, QUIConfig::IconClose); + + this->setProperty("form", true); + this->setProperty("canMove", true); + this->widgetTitle->setProperty("form", "title"); + this->setWindowFlags(Qt::FramelessWindowHint | Qt::WindowMinMaxButtonsHint); + + //设置标题及对齐方式 + title = "QUI Demo"; + alignment = Qt::AlignLeft | Qt::AlignVCenter; + minHide = false; + exitAll = true; + mainWidget = 0; + + setVisible(QUIWidget::BtnMenu, false); + + //绑定事件过滤器监听鼠标移动 + this->installEventFilter(this); + this->widgetTitle->installEventFilter(this); + + //添加换肤菜单 + QStringList styleNames; + styleNames << "银色" << "蓝色" << "浅蓝色" << "深蓝色" << "灰色" << "浅灰色" << "深灰色" << "黑色" + << "浅黑色" << "深黑色" << "PS黑色" << "黑色扁平" << "白色扁平" << "蓝色扁平" << "紫色" << "黑蓝色" << "视频黑"; + + foreach (QString styleName, styleNames) { + QAction *action = new QAction(styleName, this); + connect(action, SIGNAL(triggered(bool)), this, SLOT(changeStyle())); + this->btnMenu->addAction(action); + } +} + +void QUIWidget::changeStyle() +{ + QAction *act = (QAction *)sender(); + QString name = act->text(); + QString qssFile = ":/qss/lightblue.css"; + + if (name == "银色") { + qssFile = ":/qss/silvery.css"; + QUIHelper::setStyle(QUIWidget::Style_Silvery); + } else if (name == "蓝色") { + qssFile = ":/qss/blue.css"; + QUIHelper::setStyle(QUIWidget::Style_Blue); + } else if (name == "浅蓝色") { + qssFile = ":/qss/lightblue.css"; + QUIHelper::setStyle(QUIWidget::Style_LightBlue); + } else if (name == "深蓝色") { + qssFile = ":/qss/darkblue.css"; + QUIHelper::setStyle(QUIWidget::Style_DarkBlue); + } else if (name == "灰色") { + qssFile = ":/qss/gray.css"; + QUIHelper::setStyle(QUIWidget::Style_Gray); + } else if (name == "浅灰色") { + qssFile = ":/qss/lightgray.css"; + QUIHelper::setStyle(QUIWidget::Style_LightGray); + } else if (name == "深灰色") { + qssFile = ":/qss/darkgray.css"; + QUIHelper::setStyle(QUIWidget::Style_DarkGray); + } else if (name == "黑色") { + qssFile = ":/qss/black.css"; + QUIHelper::setStyle(QUIWidget::Style_Black); + } else if (name == "浅黑色") { + qssFile = ":/qss/lightblack.css"; + QUIHelper::setStyle(QUIWidget::Style_LightBlack); + } else if (name == "深黑色") { + qssFile = ":/qss/darkblack.css"; + QUIHelper::setStyle(QUIWidget::Style_DarkBlack); + } else if (name == "PS黑色") { + qssFile = ":/qss/psblack.css"; + QUIHelper::setStyle(QUIWidget::Style_PSBlack); + } else if (name == "黑色扁平") { + qssFile = ":/qss/flatblack.css"; + QUIHelper::setStyle(QUIWidget::Style_FlatBlack); + } else if (name == "白色扁平") { + qssFile = ":/qss/flatwhite.css"; + QUIHelper::setStyle(QUIWidget::Style_FlatWhite); + } else if (name == "蓝色扁平") { + qssFile = ":/qss/flatblue.css"; + QUIHelper::setStyle(QUIWidget::Style_FlatBlue); + } else if (name == "紫色") { + qssFile = ":/qss/purple.css"; + QUIHelper::setStyle(QUIWidget::Style_Purple); + } else if (name == "黑蓝色") { + qssFile = ":/qss/blackblue.css"; + QUIHelper::setStyle(QUIWidget::Style_BlackBlue); + } else if (name == "视频黑") { + qssFile = ":/qss/blackvideo.css"; + QUIHelper::setStyle(QUIWidget::Style_BlackVideo); + } + + emit changeStyle(qssFile); +} + +void QUIWidget::setIcon(QUIWidget::Widget widget, const QChar &str, quint32 size) +{ + if (widget == QUIWidget::Lab_Ico) { + setIconMain(str, size); + } else if (widget == QUIWidget::BtnMenu) { + QUIConfig::IconMenu = str; + IconHelper::Instance()->setIcon(this->btnMenu, str, size); + } else if (widget == QUIWidget::BtnMenu_Min) { + QUIConfig::IconMin = str; + IconHelper::Instance()->setIcon(this->btnMenu_Min, str, size); + } else if (widget == QUIWidget::BtnMenu_Max) { + QUIConfig::IconMax = str; + IconHelper::Instance()->setIcon(this->btnMenu_Max, str, size); + } else if (widget == QUIWidget::BtnMenu_Normal) { + QUIConfig::IconNormal = str; + IconHelper::Instance()->setIcon(this->btnMenu_Max, str, size); + } else if (widget == QUIWidget::BtnMenu_Close) { + QUIConfig::IconClose = str; + IconHelper::Instance()->setIcon(this->btnMenu_Close, str, size); + } +} + +void QUIWidget::setIconMain(const QChar &str, quint32 size) +{ + QUIConfig::IconMain = str; + IconHelper::Instance()->setIcon(this->labIco, str, size); + QUIMessageBox::Instance()->setIconMain(str, size); + QUIInputBox::Instance()->setIconMain(str, size); + QUIDateSelect::Instance()->setIconMain(str, size); +} + +void QUIWidget::setPixmap(QUIWidget::Widget widget, const QString &file, const QSize &size) +{ + //按照宽高比自动缩放 + QPixmap pix = QPixmap(file); + pix = pix.scaled(size, Qt::KeepAspectRatio); + if (widget == QUIWidget::Lab_Ico) { + this->labIco->setPixmap(pix); + } else if (widget == QUIWidget::BtnMenu) { + this->btnMenu->setIcon(QIcon(file)); + } else if (widget == QUIWidget::BtnMenu_Min) { + this->btnMenu_Min->setIcon(QIcon(file)); + } else if (widget == QUIWidget::BtnMenu_Max) { + this->btnMenu_Max->setIcon(QIcon(file)); + } else if (widget == QUIWidget::BtnMenu_Close) { + this->btnMenu_Close->setIcon(QIcon(file)); + } +} + +void QUIWidget::setVisible(QUIWidget::Widget widget, bool visible) +{ + if (widget == QUIWidget::Lab_Ico) { + this->labIco->setVisible(visible); + } else if (widget == QUIWidget::BtnMenu) { + this->btnMenu->setVisible(visible); + } else if (widget == QUIWidget::BtnMenu_Min) { + this->btnMenu_Min->setVisible(visible); + } else if (widget == QUIWidget::BtnMenu_Max) { + this->btnMenu_Max->setVisible(visible); + } else if (widget == QUIWidget::BtnMenu_Close) { + this->btnMenu_Close->setVisible(visible); + } +} + +void QUIWidget::setOnlyCloseBtn() +{ + this->btnMenu->setVisible(false); + this->btnMenu_Min->setVisible(false); + this->btnMenu_Max->setVisible(false); +} + +void QUIWidget::setTitleHeight(int height) +{ + this->widgetTitle->setFixedHeight(height); +} + +void QUIWidget::setBtnWidth(int width) +{ + this->labIco->setFixedWidth(width); + this->btnMenu->setFixedWidth(width); + this->btnMenu_Min->setFixedWidth(width); + this->btnMenu_Max->setFixedWidth(width); + this->btnMenu_Close->setFixedWidth(width); +} + +void QUIWidget::setTitle(const QString &title) +{ + if (this->title != title) { + this->title = title; + this->labTitle->setText(title); + this->setWindowTitle(this->labTitle->text()); + } +} + +void QUIWidget::setAlignment(Qt::Alignment alignment) +{ + if (this->alignment != alignment) { + this->alignment = alignment; + this->labTitle->setAlignment(alignment); + } +} + +void QUIWidget::setMinHide(bool minHide) +{ + if (this->minHide != minHide) { + this->minHide = minHide; + } +} + +void QUIWidget::setExitAll(bool exitAll) +{ + if (this->exitAll != exitAll) { + this->exitAll = exitAll; + } +} + +void QUIWidget::setMainWidget(QWidget *mainWidget) +{ + //一个QUI窗体对象只能设置一个主窗体 + if (this->mainWidget == 0) { + //将子窗体添加到布局 + this->widget->layout()->addWidget(mainWidget); + //自动设置大小 + resize(mainWidget->width(), mainWidget->height() + this->widgetTitle->height()); + this->mainWidget = mainWidget; + } +} + +void QUIWidget::on_btnMenu_Min_clicked() +{ + if (minHide) { + hide(); + } else { + showMinimized(); + } +} + +void QUIWidget::on_btnMenu_Max_clicked() +{ + static bool max = false; + static QRect location = this->geometry(); + + if (max) { + this->setGeometry(location); + setIcon(QUIWidget::BtnMenu_Normal, QUIConfig::IconNormal); + } else { + location = this->geometry(); + this->setGeometry(qApp->desktop()->availableGeometry()); + setIcon(QUIWidget::BtnMenu_Max, QUIConfig::IconMax); + } + + this->setProperty("canMove", max); + max = !max; +} + +void QUIWidget::on_btnMenu_Close_clicked() +{ + //先发送关闭信号 + emit closing(); + mainWidget->close(); + if (exitAll) { + this->close(); + } +} + + +QScopedPointer QUIMessageBox::self; +QUIMessageBox *QUIMessageBox::Instance() +{ + if (self.isNull()) { + static QMutex mutex; + QMutexLocker locker(&mutex); + if (self.isNull()) { + self.reset(new QUIMessageBox); + } + } + + return self.data(); +} + +QUIMessageBox::QUIMessageBox(QWidget *parent) : QDialog(parent) +{ + this->initControl(); + this->initForm(); + QUIHelper::setFormInCenter(this); +} + +QUIMessageBox::~QUIMessageBox() +{ + delete widgetMain; +} + +void QUIMessageBox::closeEvent(QCloseEvent *) +{ + closeSec = 0; + currentSec = 0; +} + +bool QUIMessageBox::eventFilter(QObject *watched, QEvent *event) +{ + static QPoint mousePoint; + static bool mousePressed = false; + + QMouseEvent *mouseEvent = static_cast(event); + if (mouseEvent->type() == QEvent::MouseButtonPress) { + if (mouseEvent->button() == Qt::LeftButton) { + mousePressed = true; + mousePoint = mouseEvent->globalPos() - this->pos(); + return true; + } + } else if (mouseEvent->type() == QEvent::MouseButtonRelease) { + mousePressed = false; + return true; + } else if (mouseEvent->type() == QEvent::MouseMove) { + if (mousePressed && (mouseEvent->buttons() && Qt::LeftButton)) { + this->move(mouseEvent->globalPos() - mousePoint); + return true; + } + } + + return QWidget::eventFilter(watched, event); +} + +void QUIMessageBox::initControl() +{ + this->setObjectName(QString::fromUtf8("QUIMessageBox")); + + verticalLayout1 = new QVBoxLayout(this); + verticalLayout1->setSpacing(0); + verticalLayout1->setObjectName(QString::fromUtf8("verticalLayout1")); + verticalLayout1->setContentsMargins(1, 1, 1, 1); + widgetTitle = new QWidget(this); + widgetTitle->setObjectName(QString::fromUtf8("widgetTitle")); + QSizePolicy sizePolicy(QSizePolicy::Preferred, QSizePolicy::Fixed); + sizePolicy.setHorizontalStretch(0); + sizePolicy.setVerticalStretch(0); + sizePolicy.setHeightForWidth(widgetTitle->sizePolicy().hasHeightForWidth()); + widgetTitle->setSizePolicy(sizePolicy); + widgetTitle->setMinimumSize(QSize(0, TitleMinSize)); + horizontalLayout3 = new QHBoxLayout(widgetTitle); + horizontalLayout3->setSpacing(0); + horizontalLayout3->setObjectName(QString::fromUtf8("horizontalLayout3")); + horizontalLayout3->setContentsMargins(0, 0, 0, 0); + labIco = new QLabel(widgetTitle); + labIco->setObjectName(QString::fromUtf8("labIco")); + QSizePolicy sizePolicy1(QSizePolicy::Minimum, QSizePolicy::Preferred); + sizePolicy1.setHorizontalStretch(0); + sizePolicy1.setVerticalStretch(0); + sizePolicy1.setHeightForWidth(labIco->sizePolicy().hasHeightForWidth()); + labIco->setSizePolicy(sizePolicy1); + labIco->setMinimumSize(QSize(TitleMinSize, 0)); + labIco->setAlignment(Qt::AlignCenter); + + horizontalLayout3->addWidget(labIco); + + labTitle = new QLabel(widgetTitle); + labTitle->setObjectName(QString::fromUtf8("labTitle")); + labTitle->setAlignment(Qt::AlignLeading | Qt::AlignLeft | Qt::AlignVCenter); + + horizontalLayout3->addWidget(labTitle); + + labTime = new QLabel(widgetTitle); + labTime->setObjectName(QString::fromUtf8("labTime")); + QSizePolicy sizePolicy2(QSizePolicy::Expanding, QSizePolicy::Preferred); + sizePolicy2.setHorizontalStretch(0); + sizePolicy2.setVerticalStretch(0); + sizePolicy2.setHeightForWidth(labTime->sizePolicy().hasHeightForWidth()); + labTime->setSizePolicy(sizePolicy2); + labTime->setAlignment(Qt::AlignCenter); + + horizontalLayout3->addWidget(labTime); + + widgetMenu = new QWidget(widgetTitle); + widgetMenu->setObjectName(QString::fromUtf8("widgetMenu")); + sizePolicy1.setHeightForWidth(widgetMenu->sizePolicy().hasHeightForWidth()); + widgetMenu->setSizePolicy(sizePolicy1); + horizontalLayout4 = new QHBoxLayout(widgetMenu); + horizontalLayout4->setSpacing(0); + horizontalLayout4->setObjectName(QString::fromUtf8("horizontalLayout4")); + horizontalLayout4->setContentsMargins(0, 0, 0, 0); + btnMenu_Close = new QPushButton(widgetMenu); + btnMenu_Close->setObjectName(QString::fromUtf8("btnMenu_Close")); + QSizePolicy sizePolicy3(QSizePolicy::Minimum, QSizePolicy::Expanding); + sizePolicy3.setHorizontalStretch(0); + sizePolicy3.setVerticalStretch(0); + sizePolicy3.setHeightForWidth(btnMenu_Close->sizePolicy().hasHeightForWidth()); + btnMenu_Close->setSizePolicy(sizePolicy3); + btnMenu_Close->setMinimumSize(QSize(TitleMinSize, 0)); + btnMenu_Close->setMaximumSize(QSize(TitleMinSize, 16777215)); + btnMenu_Close->setCursor(QCursor(Qt::ArrowCursor)); + btnMenu_Close->setFocusPolicy(Qt::NoFocus); + btnMenu_Close->setFlat(true); + + horizontalLayout4->addWidget(btnMenu_Close); + horizontalLayout3->addWidget(widgetMenu); + verticalLayout1->addWidget(widgetTitle); + + widgetMain = new QWidget(this); + widgetMain->setObjectName(QString::fromUtf8("widgetMainQUI")); + verticalLayout2 = new QVBoxLayout(widgetMain); + verticalLayout2->setSpacing(5); + verticalLayout2->setObjectName(QString::fromUtf8("verticalLayout2")); + verticalLayout2->setContentsMargins(5, 5, 5, 5); + frame = new QFrame(widgetMain); + frame->setObjectName(QString::fromUtf8("frame")); + frame->setFrameShape(QFrame::Box); + frame->setFrameShadow(QFrame::Sunken); + verticalLayout4 = new QVBoxLayout(frame); + verticalLayout4->setObjectName(QString::fromUtf8("verticalLayout4")); + verticalLayout4->setContentsMargins(-1, 9, -1, -1); + horizontalLayout1 = new QHBoxLayout(); + horizontalLayout1->setObjectName(QString::fromUtf8("horizontalLayout1")); + labIcoMain = new QLabel(frame); + labIcoMain->setObjectName(QString::fromUtf8("labIcoMain")); + labIcoMain->setAlignment(Qt::AlignCenter); + horizontalLayout1->addWidget(labIcoMain); + horizontalSpacer1 = new QSpacerItem(5, 0, QSizePolicy::Minimum, QSizePolicy::Minimum); + horizontalLayout1->addItem(horizontalSpacer1); + + labInfo = new QLabel(frame); + labInfo->setObjectName(QString::fromUtf8("labInfo")); + QSizePolicy sizePolicy4(QSizePolicy::Expanding, QSizePolicy::Expanding); + sizePolicy4.setHorizontalStretch(0); + sizePolicy4.setVerticalStretch(0); + sizePolicy4.setHeightForWidth(labInfo->sizePolicy().hasHeightForWidth()); + labInfo->setSizePolicy(sizePolicy4); + labInfo->setMinimumSize(QSize(0, TitleMinSize)); + labInfo->setScaledContents(false); + labInfo->setWordWrap(true); + horizontalLayout1->addWidget(labInfo); + verticalLayout4->addLayout(horizontalLayout1); + + horizontalLayout2 = new QHBoxLayout(); + horizontalLayout2->setObjectName(QString::fromUtf8("horizontalLayout2")); + horizontalSpacer2 = new QSpacerItem(40, 20, QSizePolicy::Expanding, QSizePolicy::Minimum); + horizontalLayout2->addItem(horizontalSpacer2); + + btnOk = new QPushButton(frame); + btnOk->setObjectName(QString::fromUtf8("btnOk")); + btnOk->setMinimumSize(QSize(85, 0)); + btnOk->setFocusPolicy(Qt::StrongFocus); + btnOk->setIcon(QIcon(":/image/btn_ok.png")); + horizontalLayout2->addWidget(btnOk); + + btnCancel = new QPushButton(frame); + btnCancel->setObjectName(QString::fromUtf8("btnCancel")); + btnCancel->setMinimumSize(QSize(85, 0)); + btnCancel->setFocusPolicy(Qt::StrongFocus); + btnCancel->setIcon(QIcon(":/image/btn_close.png")); + horizontalLayout2->addWidget(btnCancel); + + verticalLayout4->addLayout(horizontalLayout2); + verticalLayout2->addWidget(frame); + verticalLayout1->addWidget(widgetMain); + + widgetTitle->raise(); + widgetMain->raise(); + frame->raise(); + + btnOk->setText("确定"); + btnCancel->setText("取消"); + + connect(btnOk, SIGNAL(clicked()), this, SLOT(on_btnOk_clicked())); + connect(btnCancel, SIGNAL(clicked()), this, SLOT(on_btnMenu_Close_clicked())); + connect(btnMenu_Close, SIGNAL(clicked()), this, SLOT(on_btnMenu_Close_clicked())); +} + +void QUIMessageBox::initForm() +{ + IconHelper::Instance()->setIcon(labIco, QUIConfig::IconMain, QUIConfig::FontSize + 2); + IconHelper::Instance()->setIcon(btnMenu_Close, QUIConfig::IconClose, QUIConfig::FontSize); + + this->setProperty("form", true); + this->widgetTitle->setProperty("form", "title"); + if (TOOL) { + this->setWindowFlags(Qt::Tool | Qt::WindowStaysOnTopHint | Qt::FramelessWindowHint | Qt::X11BypassWindowManagerHint); + } else { + this->setWindowFlags(Qt::WindowStaysOnTopHint | Qt::FramelessWindowHint); + } + + this->setWindowTitle(this->labTitle->text()); + +#ifdef __arm__ + int width = 90; + int iconWidth = 22; + int iconHeight = 22; + this->setFixedSize(350, 180); + labIcoMain->setFixedSize(40, 40); +#else + int width = 80; + int iconWidth = 18; + int iconHeight = 18; + this->setFixedSize(280, 150); + labIcoMain->setFixedSize(30, 30); +#endif + + QList btns = this->frame->findChildren(); + foreach (QPushButton *btn, btns) { + btn->setMinimumWidth(width); + btn->setIconSize(QSize(iconWidth, iconHeight)); + } + + closeSec = 0; + currentSec = 0; + + QTimer *timer = new QTimer(this); + timer->setInterval(1000); + connect(timer, SIGNAL(timeout()), this, SLOT(checkSec())); + timer->start(); + + this->installEventFilter(this); +} + +void QUIMessageBox::checkSec() +{ + if (closeSec == 0) { + return; + } + + if (currentSec < closeSec) { + currentSec++; + } else { + this->close(); + } + + QString str = QString("关闭倒计时 %1 s").arg(closeSec - currentSec + 1); + this->labTime->setText(str); +} + +void QUIMessageBox::on_btnOk_clicked() +{ + done(QMessageBox::Yes); + close(); +} + +void QUIMessageBox::on_btnMenu_Close_clicked() +{ + done(QMessageBox::No); + close(); +} + +void QUIMessageBox::setIconMain(const QChar &str, quint32 size) +{ + IconHelper::Instance()->setIcon(this->labIco, str, size); +} + +void QUIMessageBox::setMessage(const QString &msg, int type, int closeSec) +{ + this->closeSec = closeSec; + this->currentSec = 0; + this->labTime->clear(); + checkSec(); + + //图片存在则取图片,不存在则取图形字体 + int size = this->labIcoMain->size().height(); + bool exist = !QImage(":/image/msg_info.png").isNull(); + if (type == 0) { + if (exist) { + this->labIcoMain->setStyleSheet("border-image: url(:/image/msg_info.png);"); + } else { + IconHelper::Instance()->setIcon(this->labIcoMain, 0xf05a, size); + } + + this->btnCancel->setVisible(false); + this->labTitle->setText("提示"); + } else if (type == 1) { + if (exist) { + this->labIcoMain->setStyleSheet("border-image: url(:/image/msg_question.png);"); + } else { + IconHelper::Instance()->setIcon(this->labIcoMain, 0xf059, size); + } + + this->labTitle->setText("询问"); + } else if (type == 2) { + if (exist) { + this->labIcoMain->setStyleSheet("border-image: url(:/image/msg_error.png);"); + } else { + IconHelper::Instance()->setIcon(this->labIcoMain, 0xf057, size); + } + + this->btnCancel->setVisible(false); + this->labTitle->setText("错误"); + } + + this->labInfo->setText(msg); + this->setWindowTitle(this->labTitle->text()); +} + + +QScopedPointer QUITipBox::self; +QUITipBox *QUITipBox::Instance() +{ + if (self.isNull()) { + static QMutex mutex; + QMutexLocker locker(&mutex); + if (self.isNull()) { + self.reset(new QUITipBox); + } + } + + return self.data(); +} + +QUITipBox::QUITipBox(QWidget *parent) : QDialog(parent) +{ + this->initControl(); + this->initForm(); +} + +QUITipBox::~QUITipBox() +{ + delete widgetMain; +} + +void QUITipBox::closeEvent(QCloseEvent *) +{ + closeSec = 0; + currentSec = 0; +} + +bool QUITipBox::eventFilter(QObject *watched, QEvent *event) +{ + static QPoint mousePoint; + static bool mousePressed = false; + + QMouseEvent *mouseEvent = static_cast(event); + if (mouseEvent->type() == QEvent::MouseButtonPress) { + if (mouseEvent->button() == Qt::LeftButton) { + mousePressed = true; + mousePoint = mouseEvent->globalPos() - this->pos(); + return true; + } + } else if (mouseEvent->type() == QEvent::MouseButtonRelease) { + mousePressed = false; + return true; + } else if (mouseEvent->type() == QEvent::MouseMove) { + if (mousePressed && (mouseEvent->buttons() && Qt::LeftButton)) { + this->move(mouseEvent->globalPos() - mousePoint); + return true; + } + } + + return QWidget::eventFilter(watched, event); +} + +void QUITipBox::initControl() +{ + this->setObjectName(QString::fromUtf8("QUITipBox")); + + verticalLayout = new QVBoxLayout(this); + verticalLayout->setSpacing(0); + verticalLayout->setObjectName(QString::fromUtf8("verticalLayout")); + verticalLayout->setContentsMargins(1, 1, 1, 1); + widgetTitle = new QWidget(this); + widgetTitle->setObjectName(QString::fromUtf8("widgetTitle")); + QSizePolicy sizePolicy(QSizePolicy::Preferred, QSizePolicy::Fixed); + sizePolicy.setHorizontalStretch(0); + sizePolicy.setVerticalStretch(0); + sizePolicy.setHeightForWidth(widgetTitle->sizePolicy().hasHeightForWidth()); + widgetTitle->setSizePolicy(sizePolicy); + horizontalLayout2 = new QHBoxLayout(widgetTitle); + horizontalLayout2->setSpacing(0); + horizontalLayout2->setObjectName(QString::fromUtf8("horizontalLayout2")); + horizontalLayout2->setContentsMargins(0, 0, 0, 0); + labIco = new QLabel(widgetTitle); + labIco->setObjectName(QString::fromUtf8("labIco")); + labIco->setMinimumSize(QSize(TitleMinSize, 0)); + labIco->setAlignment(Qt::AlignCenter); + horizontalLayout2->addWidget(labIco); + + labTitle = new QLabel(widgetTitle); + labTitle->setObjectName(QString::fromUtf8("labTitle")); + labTitle->setAlignment(Qt::AlignLeading | Qt::AlignLeft | Qt::AlignVCenter); + horizontalLayout2->addWidget(labTitle); + + labTime = new QLabel(widgetTitle); + labTime->setObjectName(QString::fromUtf8("labTime")); + QSizePolicy sizePolicy1(QSizePolicy::Expanding, QSizePolicy::Preferred); + sizePolicy1.setHorizontalStretch(0); + sizePolicy1.setVerticalStretch(0); + sizePolicy1.setHeightForWidth(labTime->sizePolicy().hasHeightForWidth()); + labTime->setSizePolicy(sizePolicy1); + horizontalLayout2->addWidget(labTime); + + widgetMenu = new QWidget(widgetTitle); + widgetMenu->setObjectName(QString::fromUtf8("widgetMenu")); + QSizePolicy sizePolicy2(QSizePolicy::Minimum, QSizePolicy::Preferred); + sizePolicy2.setHorizontalStretch(0); + sizePolicy2.setVerticalStretch(0); + sizePolicy2.setHeightForWidth(widgetMenu->sizePolicy().hasHeightForWidth()); + widgetMenu->setSizePolicy(sizePolicy2); + horizontalLayout = new QHBoxLayout(widgetMenu); + horizontalLayout->setSpacing(0); + horizontalLayout->setObjectName(QString::fromUtf8("horizontalLayout")); + horizontalLayout->setContentsMargins(0, 0, 0, 0); + btnMenu_Close = new QPushButton(widgetMenu); + btnMenu_Close->setObjectName(QString::fromUtf8("btnMenu_Close")); + QSizePolicy sizePolicy3(QSizePolicy::Minimum, QSizePolicy::Expanding); + sizePolicy3.setHorizontalStretch(0); + sizePolicy3.setVerticalStretch(0); + sizePolicy3.setHeightForWidth(btnMenu_Close->sizePolicy().hasHeightForWidth()); + btnMenu_Close->setSizePolicy(sizePolicy3); + btnMenu_Close->setMinimumSize(QSize(TitleMinSize, 0)); + btnMenu_Close->setMaximumSize(QSize(TitleMinSize, 16777215)); + btnMenu_Close->setCursor(QCursor(Qt::ArrowCursor)); + btnMenu_Close->setFocusPolicy(Qt::NoFocus); + btnMenu_Close->setFlat(true); + + horizontalLayout->addWidget(btnMenu_Close); + horizontalLayout2->addWidget(widgetMenu); + verticalLayout->addWidget(widgetTitle); + + widgetMain = new QWidget(this); + widgetMain->setObjectName(QString::fromUtf8("widgetMainQUI")); + widgetMain->setAutoFillBackground(true); + verticalLayout2 = new QVBoxLayout(widgetMain); + verticalLayout2->setObjectName(QString::fromUtf8("verticalLayout2")); + labInfo = new QLabel(widgetMain); + labInfo->setObjectName(QString::fromUtf8("labInfo")); + labInfo->setScaledContents(true); + verticalLayout2->addWidget(labInfo); + verticalLayout->addWidget(widgetMain); + + connect(btnMenu_Close, SIGNAL(clicked()), this, SLOT(on_btnMenu_Close_clicked())); +} + +void QUITipBox::initForm() +{ + IconHelper::Instance()->setIcon(labIco, QUIConfig::IconMain, QUIConfig::FontSize + 2); + IconHelper::Instance()->setIcon(btnMenu_Close, QUIConfig::IconClose, QUIConfig::FontSize); + + this->setProperty("form", true); + this->widgetTitle->setProperty("form", "title"); + this->setWindowFlags(Qt::Tool | Qt::WindowStaysOnTopHint | Qt::FramelessWindowHint | Qt::X11BypassWindowManagerHint); + this->setWindowTitle(this->labTitle->text()); + +#ifdef __arm__ + this->setFixedSize(350, 180); +#else + this->setFixedSize(280, 150); +#endif + + closeSec = 0; + currentSec = 0; + + QTimer *timer = new QTimer(this); + timer->setInterval(1000); + connect(timer, SIGNAL(timeout()), this, SLOT(checkSec())); + timer->start(); + + this->installEventFilter(this); + + //字体加大 + QFont font; + font.setPixelSize(QUIConfig::FontSize + 3); + font.setBold(true); + this->labInfo->setFont(font); + + //显示和隐藏窗体动画效果 + animation = new QPropertyAnimation(this, "pos"); + animation->setDuration(500); + animation->setEasingCurve(QEasingCurve::InOutQuad); +} + +void QUITipBox::checkSec() +{ + if (closeSec == 0) { + return; + } + + if (currentSec < closeSec) { + currentSec++; + } else { + this->close(); + } + + QString str = QString("关闭倒计时 %1 s").arg(closeSec - currentSec + 1); + this->labTime->setText(str); +} + +void QUITipBox::on_btnMenu_Close_clicked() +{ + done(QMessageBox::No); + close(); +} + +void QUITipBox::setIconMain(const QChar &str, quint32 size) +{ + IconHelper::Instance()->setIcon(this->labIco, str, size); +} + +void QUITipBox::setTip(const QString &title, const QString &tip, bool fullScreen, bool center, int closeSec) +{ + this->closeSec = closeSec; + this->currentSec = 0; + this->labTime->clear(); + checkSec(); + + this->fullScreen = fullScreen; + this->labTitle->setText(title); + this->labInfo->setText(tip); + this->labInfo->setAlignment(center ? Qt::AlignCenter : Qt::AlignLeft); + this->setWindowTitle(this->labTitle->text()); + + QRect rect = fullScreen ? qApp->desktop()->availableGeometry() : qApp->desktop()->geometry(); + int width = rect.width(); + int height = rect.height(); + int x = width - this->width(); + int y = height - this->height(); + + //移到右下角 + this->move(x, y); + + //启动动画 + animation->stop(); + animation->setStartValue(QPoint(x, height)); + animation->setEndValue(QPoint(x, y)); + animation->start(); +} + +void QUITipBox::hide() +{ + QRect rect = fullScreen ? qApp->desktop()->availableGeometry() : qApp->desktop()->geometry(); + int width = rect.width(); + int height = rect.height(); + int x = width - this->width(); + int y = height - this->height(); + + //启动动画 + animation->stop(); + animation->setStartValue(QPoint(x, y)); + animation->setEndValue(QPoint(x, qApp->desktop()->geometry().height())); + animation->start(); +} + + +QScopedPointer QUIInputBox::self; +QUIInputBox *QUIInputBox::Instance() +{ + if (self.isNull()) { + static QMutex mutex; + QMutexLocker locker(&mutex); + if (self.isNull()) { + self.reset(new QUIInputBox); + } + } + + return self.data(); +} + +QUIInputBox::QUIInputBox(QWidget *parent) : QDialog(parent) +{ + this->initControl(); + this->initForm(); + QUIHelper::setFormInCenter(this); +} + +QUIInputBox::~QUIInputBox() +{ + delete widgetMain; +} + +void QUIInputBox::showEvent(QShowEvent *) +{ + txtValue->setFocus(); + this->activateWindow(); +} + +void QUIInputBox::initControl() +{ + this->setObjectName(QString::fromUtf8("QUIInputBox")); + + verticalLayout1 = new QVBoxLayout(this); + verticalLayout1->setSpacing(0); + verticalLayout1->setObjectName(QString::fromUtf8("verticalLayout1")); + verticalLayout1->setContentsMargins(1, 1, 1, 1); + widgetTitle = new QWidget(this); + widgetTitle->setObjectName(QString::fromUtf8("widgetTitle")); + QSizePolicy sizePolicy(QSizePolicy::Preferred, QSizePolicy::Fixed); + sizePolicy.setHorizontalStretch(0); + sizePolicy.setVerticalStretch(0); + sizePolicy.setHeightForWidth(widgetTitle->sizePolicy().hasHeightForWidth()); + widgetTitle->setSizePolicy(sizePolicy); + widgetTitle->setMinimumSize(QSize(0, TitleMinSize)); + horizontalLayout1 = new QHBoxLayout(widgetTitle); + horizontalLayout1->setSpacing(0); + horizontalLayout1->setObjectName(QString::fromUtf8("horizontalLayout1")); + horizontalLayout1->setContentsMargins(0, 0, 0, 0); + labIco = new QLabel(widgetTitle); + labIco->setObjectName(QString::fromUtf8("labIco")); + QSizePolicy sizePolicy1(QSizePolicy::Minimum, QSizePolicy::Preferred); + sizePolicy1.setHorizontalStretch(0); + sizePolicy1.setVerticalStretch(0); + sizePolicy1.setHeightForWidth(labIco->sizePolicy().hasHeightForWidth()); + labIco->setSizePolicy(sizePolicy1); + labIco->setMinimumSize(QSize(TitleMinSize, 0)); + labIco->setAlignment(Qt::AlignCenter); + + horizontalLayout1->addWidget(labIco); + + labTitle = new QLabel(widgetTitle); + labTitle->setObjectName(QString::fromUtf8("labTitle")); + labTitle->setAlignment(Qt::AlignLeading | Qt::AlignLeft | Qt::AlignVCenter); + + horizontalLayout1->addWidget(labTitle); + + labTime = new QLabel(widgetTitle); + labTime->setObjectName(QString::fromUtf8("labTime")); + QSizePolicy sizePolicy2(QSizePolicy::Expanding, QSizePolicy::Preferred); + sizePolicy2.setHorizontalStretch(0); + sizePolicy2.setVerticalStretch(0); + sizePolicy2.setHeightForWidth(labTime->sizePolicy().hasHeightForWidth()); + labTime->setSizePolicy(sizePolicy2); + labTime->setAlignment(Qt::AlignCenter); + + horizontalLayout1->addWidget(labTime); + + widgetMenu = new QWidget(widgetTitle); + widgetMenu->setObjectName(QString::fromUtf8("widgetMenu")); + sizePolicy1.setHeightForWidth(widgetMenu->sizePolicy().hasHeightForWidth()); + widgetMenu->setSizePolicy(sizePolicy1); + horizontalLayout2 = new QHBoxLayout(widgetMenu); + horizontalLayout2->setSpacing(0); + horizontalLayout2->setObjectName(QString::fromUtf8("horizontalLayout2")); + horizontalLayout2->setContentsMargins(0, 0, 0, 0); + btnMenu_Close = new QPushButton(widgetMenu); + btnMenu_Close->setObjectName(QString::fromUtf8("btnMenu_Close")); + QSizePolicy sizePolicy3(QSizePolicy::Minimum, QSizePolicy::Expanding); + sizePolicy3.setHorizontalStretch(0); + sizePolicy3.setVerticalStretch(0); + sizePolicy3.setHeightForWidth(btnMenu_Close->sizePolicy().hasHeightForWidth()); + btnMenu_Close->setSizePolicy(sizePolicy3); + btnMenu_Close->setMinimumSize(QSize(TitleMinSize, 0)); + btnMenu_Close->setMaximumSize(QSize(TitleMinSize, 16777215)); + btnMenu_Close->setCursor(QCursor(Qt::ArrowCursor)); + btnMenu_Close->setFocusPolicy(Qt::NoFocus); + btnMenu_Close->setFlat(true); + + horizontalLayout2->addWidget(btnMenu_Close); + horizontalLayout1->addWidget(widgetMenu); + verticalLayout1->addWidget(widgetTitle); + + widgetMain = new QWidget(this); + widgetMain->setObjectName(QString::fromUtf8("widgetMainQUI")); + verticalLayout2 = new QVBoxLayout(widgetMain); + verticalLayout2->setSpacing(5); + verticalLayout2->setObjectName(QString::fromUtf8("verticalLayout2")); + verticalLayout2->setContentsMargins(5, 5, 5, 5); + frame = new QFrame(widgetMain); + frame->setObjectName(QString::fromUtf8("frame")); + frame->setFrameShape(QFrame::Box); + frame->setFrameShadow(QFrame::Sunken); + verticalLayout3 = new QVBoxLayout(frame); + verticalLayout3->setObjectName(QString::fromUtf8("verticalLayout3")); + labInfo = new QLabel(frame); + labInfo->setObjectName(QString::fromUtf8("labInfo")); + labInfo->setScaledContents(false); + labInfo->setWordWrap(true); + verticalLayout3->addWidget(labInfo); + + txtValue = new QLineEdit(frame); + txtValue->setObjectName(QString::fromUtf8("txtValue")); + verticalLayout3->addWidget(txtValue); + + cboxValue = new QComboBox(frame); + cboxValue->setObjectName(QString::fromUtf8("cboxValue")); + verticalLayout3->addWidget(cboxValue); + + lay = new QHBoxLayout(); + lay->setObjectName(QString::fromUtf8("lay")); + horizontalSpacer = new QSpacerItem(40, 20, QSizePolicy::Expanding, QSizePolicy::Minimum); + lay->addItem(horizontalSpacer); + + btnOk = new QPushButton(frame); + btnOk->setObjectName(QString::fromUtf8("btnOk")); + btnOk->setMinimumSize(QSize(85, 0)); + btnOk->setIcon(QIcon(":/image/btn_ok.png")); + lay->addWidget(btnOk); + + btnCancel = new QPushButton(frame); + btnCancel->setObjectName(QString::fromUtf8("btnCancel")); + btnCancel->setMinimumSize(QSize(85, 0)); + btnCancel->setIcon(QIcon(":/image/btn_close.png")); + lay->addWidget(btnCancel); + + verticalLayout3->addLayout(lay); + verticalLayout2->addWidget(frame); + verticalLayout1->addWidget(widgetMain); + + QWidget::setTabOrder(txtValue, btnOk); + QWidget::setTabOrder(btnOk, btnCancel); + + labTitle->setText("输入框"); + btnOk->setText("确定"); + btnCancel->setText("取消"); + + connect(btnOk, SIGNAL(clicked()), this, SLOT(on_btnOk_clicked())); + connect(btnCancel, SIGNAL(clicked()), this, SLOT(on_btnMenu_Close_clicked())); + connect(btnMenu_Close, SIGNAL(clicked()), this, SLOT(on_btnMenu_Close_clicked())); +} + +void QUIInputBox::initForm() +{ + IconHelper::Instance()->setIcon(labIco, QUIConfig::IconMain, QUIConfig::FontSize + 2); + IconHelper::Instance()->setIcon(btnMenu_Close, QUIConfig::IconClose, QUIConfig::FontSize); + + this->setProperty("form", true); + this->widgetTitle->setProperty("form", "title"); + if (TOOL) { + this->setWindowFlags(Qt::Tool | Qt::WindowStaysOnTopHint | Qt::FramelessWindowHint | Qt::X11BypassWindowManagerHint); + } else { + this->setWindowFlags(Qt::WindowStaysOnTopHint | Qt::FramelessWindowHint); + } + + this->setWindowTitle(this->labTitle->text()); + +#ifdef __arm__ + int width = 90; + int iconWidth = 22; + int iconHeight = 22; + this->setFixedSize(350, 180); +#else + int width = 80; + int iconWidth = 18; + int iconHeight = 18; + this->setFixedSize(280, 150); +#endif + + QList btns = this->frame->findChildren(); + foreach (QPushButton *btn, btns) { + btn->setMinimumWidth(width); + btn->setIconSize(QSize(iconWidth, iconHeight)); + } + + closeSec = 0; + currentSec = 0; + + QTimer *timer = new QTimer(this); + timer->setInterval(1000); + connect(timer, SIGNAL(timeout()), this, SLOT(checkSec())); + timer->start(); + + this->installEventFilter(this); +} + +void QUIInputBox::checkSec() +{ + if (closeSec == 0) { + return; + } + + if (currentSec < closeSec) { + currentSec++; + } else { + this->close(); + } + + QString str = QString("关闭倒计时 %1 s").arg(closeSec - currentSec + 1); + this->labTime->setText(str); +} + +void QUIInputBox::setParameter(const QString &title, int type, int closeSec, + QString placeholderText, bool pwd, + const QString &defaultValue) +{ + this->closeSec = closeSec; + this->currentSec = 0; + this->labTime->clear(); + this->labInfo->setText(title); + checkSec(); + + if (type == 0) { + this->cboxValue->setVisible(false); + this->txtValue->setPlaceholderText(placeholderText); + this->txtValue->setText(defaultValue); + + if (pwd) { + this->txtValue->setEchoMode(QLineEdit::Password); + } + } else if (type == 1) { + this->txtValue->setVisible(false); + this->cboxValue->addItems(defaultValue.split("|")); + } +} + +QString QUIInputBox::getValue() const +{ + return this->value; +} + +void QUIInputBox::closeEvent(QCloseEvent *) +{ + closeSec = 0; + currentSec = 0; +} + +bool QUIInputBox::eventFilter(QObject *watched, QEvent *event) +{ + static QPoint mousePoint; + static bool mousePressed = false; + + QMouseEvent *mouseEvent = static_cast(event); + if (mouseEvent->type() == QEvent::MouseButtonPress) { + if (mouseEvent->button() == Qt::LeftButton) { + mousePressed = true; + mousePoint = mouseEvent->globalPos() - this->pos(); + return true; + } + } else if (mouseEvent->type() == QEvent::MouseButtonRelease) { + mousePressed = false; + return true; + } else if (mouseEvent->type() == QEvent::MouseMove) { + if (mousePressed && (mouseEvent->buttons() && Qt::LeftButton)) { + this->move(mouseEvent->globalPos() - mousePoint); + return true; + } + } + + return QWidget::eventFilter(watched, event); +} + +void QUIInputBox::on_btnOk_clicked() +{ + if (this->txtValue->isVisible()) { + value = this->txtValue->text(); + } else if (this->cboxValue->isVisible()) { + value = this->cboxValue->currentText(); + } + + done(QMessageBox::Ok); + close(); +} + +void QUIInputBox::on_btnMenu_Close_clicked() +{ + done(QMessageBox::Cancel); + close(); +} + +void QUIInputBox::setIconMain(const QChar &str, quint32 size) +{ + IconHelper::Instance()->setIcon(this->labIco, str, size); +} + + +QScopedPointer QUIDateSelect::self; +QUIDateSelect *QUIDateSelect::Instance() +{ + if (self.isNull()) { + static QMutex mutex; + QMutexLocker locker(&mutex); + if (self.isNull()) { + self.reset(new QUIDateSelect); + } + } + + return self.data(); +} + +QUIDateSelect::QUIDateSelect(QWidget *parent) : QDialog(parent) +{ + this->initControl(); + this->initForm(); + QUIHelper::setFormInCenter(this); +} + +QUIDateSelect::~QUIDateSelect() +{ + delete widgetMain; +} + +bool QUIDateSelect::eventFilter(QObject *watched, QEvent *event) +{ + static QPoint mousePoint; + static bool mousePressed = false; + + QMouseEvent *mouseEvent = static_cast(event); + if (mouseEvent->type() == QEvent::MouseButtonPress) { + if (mouseEvent->button() == Qt::LeftButton) { + mousePressed = true; + mousePoint = mouseEvent->globalPos() - this->pos(); + return true; + } + } else if (mouseEvent->type() == QEvent::MouseButtonRelease) { + mousePressed = false; + return true; + } else if (mouseEvent->type() == QEvent::MouseMove) { + if (mousePressed && (mouseEvent->buttons() && Qt::LeftButton)) { + this->move(mouseEvent->globalPos() - mousePoint); + return true; + } + } + + return QWidget::eventFilter(watched, event); +} + +void QUIDateSelect::initControl() +{ + this->setObjectName(QString::fromUtf8("QUIDateSelect")); + + verticalLayout = new QVBoxLayout(this); + verticalLayout->setSpacing(0); + verticalLayout->setObjectName(QString::fromUtf8("verticalLayout")); + verticalLayout->setContentsMargins(1, 1, 1, 1); + widgetTitle = new QWidget(this); + widgetTitle->setObjectName(QString::fromUtf8("widgetTitle")); + QSizePolicy sizePolicy(QSizePolicy::Preferred, QSizePolicy::Fixed); + sizePolicy.setHorizontalStretch(0); + sizePolicy.setVerticalStretch(0); + sizePolicy.setHeightForWidth(widgetTitle->sizePolicy().hasHeightForWidth()); + widgetTitle->setSizePolicy(sizePolicy); + widgetTitle->setMinimumSize(QSize(0, TitleMinSize)); + horizontalLayout1 = new QHBoxLayout(widgetTitle); + horizontalLayout1->setSpacing(0); + horizontalLayout1->setObjectName(QString::fromUtf8("horizontalLayout1")); + horizontalLayout1->setContentsMargins(0, 0, 0, 0); + labIco = new QLabel(widgetTitle); + labIco->setObjectName(QString::fromUtf8("labIco")); + QSizePolicy sizePolicy1(QSizePolicy::Minimum, QSizePolicy::Preferred); + sizePolicy1.setHorizontalStretch(0); + sizePolicy1.setVerticalStretch(0); + sizePolicy1.setHeightForWidth(labIco->sizePolicy().hasHeightForWidth()); + labIco->setSizePolicy(sizePolicy1); + labIco->setMinimumSize(QSize(TitleMinSize, 0)); + labIco->setAlignment(Qt::AlignCenter); + horizontalLayout1->addWidget(labIco); + + labTitle = new QLabel(widgetTitle); + labTitle->setObjectName(QString::fromUtf8("labTitle")); + QSizePolicy sizePolicy2(QSizePolicy::Expanding, QSizePolicy::Preferred); + sizePolicy2.setHorizontalStretch(0); + sizePolicy2.setVerticalStretch(0); + sizePolicy2.setHeightForWidth(labTitle->sizePolicy().hasHeightForWidth()); + labTitle->setSizePolicy(sizePolicy2); + labTitle->setAlignment(Qt::AlignLeading | Qt::AlignLeft | Qt::AlignVCenter); + horizontalLayout1->addWidget(labTitle); + + widgetMenu = new QWidget(widgetTitle); + widgetMenu->setObjectName(QString::fromUtf8("widgetMenu")); + sizePolicy1.setHeightForWidth(widgetMenu->sizePolicy().hasHeightForWidth()); + widgetMenu->setSizePolicy(sizePolicy1); + horizontalLayout = new QHBoxLayout(widgetMenu); + horizontalLayout->setSpacing(0); + horizontalLayout->setObjectName(QString::fromUtf8("horizontalLayout")); + horizontalLayout->setContentsMargins(0, 0, 0, 0); + btnMenu_Close = new QPushButton(widgetMenu); + btnMenu_Close->setObjectName(QString::fromUtf8("btnMenu_Close")); + QSizePolicy sizePolicy3(QSizePolicy::Minimum, QSizePolicy::Expanding); + sizePolicy3.setHorizontalStretch(0); + sizePolicy3.setVerticalStretch(0); + sizePolicy3.setHeightForWidth(btnMenu_Close->sizePolicy().hasHeightForWidth()); + btnMenu_Close->setSizePolicy(sizePolicy3); + btnMenu_Close->setMinimumSize(QSize(TitleMinSize, 0)); + btnMenu_Close->setMaximumSize(QSize(TitleMinSize, 16777215)); + btnMenu_Close->setCursor(QCursor(Qt::ArrowCursor)); + btnMenu_Close->setFocusPolicy(Qt::NoFocus); + btnMenu_Close->setFlat(true); + + horizontalLayout->addWidget(btnMenu_Close); + horizontalLayout1->addWidget(widgetMenu); + verticalLayout->addWidget(widgetTitle); + + widgetMain = new QWidget(this); + widgetMain->setObjectName(QString::fromUtf8("widgetMainQUI")); + verticalLayout1 = new QVBoxLayout(widgetMain); + verticalLayout1->setSpacing(6); + verticalLayout1->setObjectName(QString::fromUtf8("verticalLayout1")); + verticalLayout1->setContentsMargins(6, 6, 6, 6); + frame = new QFrame(widgetMain); + frame->setObjectName(QString::fromUtf8("frame")); + frame->setFrameShape(QFrame::Box); + frame->setFrameShadow(QFrame::Sunken); + gridLayout = new QGridLayout(frame); + gridLayout->setObjectName(QString::fromUtf8("gridLayout")); + labStart = new QLabel(frame); + labStart->setObjectName(QString::fromUtf8("labStart")); + labStart->setFocusPolicy(Qt::TabFocus); + gridLayout->addWidget(labStart, 0, 0, 1, 1); + + btnOk = new QPushButton(frame); + btnOk->setObjectName(QString::fromUtf8("btnOk")); + btnOk->setMinimumSize(QSize(85, 0)); + btnOk->setCursor(QCursor(Qt::PointingHandCursor)); + btnOk->setFocusPolicy(Qt::StrongFocus); + btnOk->setIcon(QIcon(":/image/btn_ok.png")); + gridLayout->addWidget(btnOk, 0, 2, 1, 1); + + labEnd = new QLabel(frame); + labEnd->setObjectName(QString::fromUtf8("labEnd")); + labEnd->setFocusPolicy(Qt::TabFocus); + gridLayout->addWidget(labEnd, 1, 0, 1, 1); + + btnClose = new QPushButton(frame); + btnClose->setObjectName(QString::fromUtf8("btnClose")); + btnClose->setMinimumSize(QSize(85, 0)); + btnClose->setCursor(QCursor(Qt::PointingHandCursor)); + btnClose->setFocusPolicy(Qt::StrongFocus); + btnClose->setIcon(QIcon(":/image/btn_close.png")); + gridLayout->addWidget(btnClose, 1, 2, 1, 1); + + dateStart = new QDateTimeEdit(frame); + dateStart->setObjectName(QString::fromUtf8("dateStart")); + QSizePolicy sizePolicy4(QSizePolicy::Expanding, QSizePolicy::Fixed); + sizePolicy4.setHorizontalStretch(0); + sizePolicy4.setVerticalStretch(0); + sizePolicy4.setHeightForWidth(dateStart->sizePolicy().hasHeightForWidth()); + dateStart->setSizePolicy(sizePolicy4); + dateStart->setCalendarPopup(true); + gridLayout->addWidget(dateStart, 0, 1, 1, 1); + + dateEnd = new QDateTimeEdit(frame); + dateEnd->setObjectName(QString::fromUtf8("dateEnd")); + sizePolicy4.setHeightForWidth(dateEnd->sizePolicy().hasHeightForWidth()); + dateEnd->setSizePolicy(sizePolicy4); + dateEnd->setCalendarPopup(true); + + gridLayout->addWidget(dateEnd, 1, 1, 1, 1); + verticalLayout1->addWidget(frame); + verticalLayout->addWidget(widgetMain); + + QWidget::setTabOrder(labStart, labEnd); + QWidget::setTabOrder(labEnd, dateStart); + QWidget::setTabOrder(dateStart, dateEnd); + QWidget::setTabOrder(dateEnd, btnOk); + QWidget::setTabOrder(btnOk, btnClose); + + labTitle->setText("日期时间选择"); + labStart->setText("开始时间"); + labEnd->setText("结束时间"); + btnOk->setText("确定"); + btnClose->setText("关闭"); + + dateStart->setDate(QDate::currentDate()); + dateEnd->setDate(QDate::currentDate().addDays(1)); + + dateStart->calendarWidget()->setGridVisible(true); + dateEnd->calendarWidget()->setGridVisible(true); + dateStart->calendarWidget()->setLocale(QLocale::Chinese); + dateEnd->calendarWidget()->setLocale(QLocale::Chinese); + setFormat("yyyy-MM-dd"); + + connect(btnOk, SIGNAL(clicked()), this, SLOT(on_btnOk_clicked())); + connect(btnClose, SIGNAL(clicked()), this, SLOT(on_btnMenu_Close_clicked())); + connect(btnMenu_Close, SIGNAL(clicked()), this, SLOT(on_btnMenu_Close_clicked())); +} + +void QUIDateSelect::initForm() +{ + IconHelper::Instance()->setIcon(labIco, QUIConfig::IconMain, QUIConfig::FontSize + 2); + IconHelper::Instance()->setIcon(btnMenu_Close, QUIConfig::IconClose, QUIConfig::FontSize); + + this->setProperty("form", true); + this->widgetTitle->setProperty("form", "title"); + if (TOOL) { + this->setWindowFlags(Qt::Tool | Qt::WindowStaysOnTopHint | Qt::FramelessWindowHint | Qt::X11BypassWindowManagerHint); + } else { + this->setWindowFlags(Qt::WindowStaysOnTopHint | Qt::FramelessWindowHint); + } + + this->setWindowTitle(this->labTitle->text()); + +#ifdef __arm__ + int width = 90; + int iconWidth = 22; + int iconHeight = 22; + this->setFixedSize(370, 160); +#else + int width = 80; + int iconWidth = 18; + int iconHeight = 18; + this->setFixedSize(320, 130); +#endif + + QList btns = this->frame->findChildren(); + foreach (QPushButton *btn, btns) { + btn->setMinimumWidth(width); + btn->setIconSize(QSize(iconWidth, iconHeight)); + } + + this->installEventFilter(this); +} + +void QUIDateSelect::on_btnOk_clicked() +{ + if (dateStart->dateTime() > dateEnd->dateTime()) { + QUIHelper::showMessageBoxError("开始时间不能大于结束时间!", 3); + return; + } + + startDateTime = dateStart->dateTime().toString(format); + endDateTime = dateEnd->dateTime().toString(format); + + done(QMessageBox::Ok); + close(); +} + +void QUIDateSelect::on_btnMenu_Close_clicked() +{ + done(QMessageBox::Cancel); + close(); +} + +QString QUIDateSelect::getStartDateTime() const +{ + return this->startDateTime; +} + +QString QUIDateSelect::getEndDateTime() const +{ + return this->endDateTime; +} + +void QUIDateSelect::setIconMain(const QChar &str, quint32 size) +{ + IconHelper::Instance()->setIcon(this->labIco, str, size); +} + +void QUIDateSelect::setFormat(const QString &format) +{ + this->format = format; + this->dateStart->setDisplayFormat(format); + this->dateEnd->setDisplayFormat(format); +} + + +QScopedPointer IconHelper::self; +IconHelper *IconHelper::Instance() +{ + if (self.isNull()) { + static QMutex mutex; + QMutexLocker locker(&mutex); + if (self.isNull()) { + self.reset(new IconHelper); + } + } + + return self.data(); +} + +IconHelper::IconHelper(QObject *parent) : QObject(parent) +{ + //判断图形字体是否存在,不存在则加入 + QFontDatabase fontDb; + if (!fontDb.families().contains("FontAwesome")) { + int fontId = fontDb.addApplicationFont(":/image/fontawesome-webfont.ttf"); + QStringList fontName = fontDb.applicationFontFamilies(fontId); + if (fontName.count() == 0) { + qDebug() << "load fontawesome-webfont.ttf error"; + } + } + + if (fontDb.families().contains("FontAwesome")) { + iconFont = QFont("FontAwesome"); +#if (QT_VERSION >= QT_VERSION_CHECK(4,8,0)) + iconFont.setHintingPreference(QFont::PreferNoHinting); +#endif + } +} + +QFont IconHelper::getIconFont() +{ + return this->iconFont; +} + +void IconHelper::setIcon(QLabel *lab, const QChar &str, quint32 size) +{ + iconFont.setPixelSize(size); + lab->setFont(iconFont); + lab->setText(str); +} + +void IconHelper::setIcon(QAbstractButton *btn, const QChar &str, quint32 size) +{ + iconFont.setPixelSize(size); + btn->setFont(iconFont); + btn->setText(str); +} + +QPixmap IconHelper::getPixmap(const QColor &color, const QChar &str, quint32 size, + quint32 pixWidth, quint32 pixHeight, int flags) +{ + QPixmap pix(pixWidth, pixHeight); + pix.fill(Qt::transparent); + + QPainter painter; + painter.begin(&pix); + painter.setRenderHints(QPainter::Antialiasing | QPainter::TextAntialiasing); + painter.setPen(color); + + iconFont.setPixelSize(size); + painter.setFont(iconFont); + painter.drawText(pix.rect(), flags, str); + painter.end(); + + return pix; +} + +QPixmap IconHelper::getPixmap(QToolButton *btn, bool normal) +{ + QPixmap pix; + int index = btns.indexOf(btn); + if (index >= 0) { + if (normal) { + pix = pixNormal.at(index); + } else { + pix = pixDark.at(index); + } + } + + return pix; +} + +QPixmap IconHelper::getPixmap(QToolButton *btn, int type) +{ + QPixmap pix; + int index = btns.indexOf(btn); + if (index >= 0) { + if (type == 0) { + pix = pixNormal.at(index); + } else if (type == 1) { + pix = pixHover.at(index); + } else if (type == 2) { + pix = pixPressed.at(index); + } else if (type == 3) { + pix = pixChecked.at(index); + } + } + + return pix; +} + +void IconHelper::setStyle(QFrame *frame, QList btns, QList pixChar, + quint32 iconSize, quint32 iconWidth, quint32 iconHeight, + const QString &normalBgColor, const QString &darkBgColor, + const QString &normalTextColor, const QString &darkTextColor) +{ + int btnCount = btns.count(); + int charCount = pixChar.count(); + if (btnCount <= 0 || charCount <= 0 || btnCount != charCount) { + return; + } + + QStringList qss; + qss.append(QString("QFrame>QToolButton{border-style:none;border-width:0px;" + "background-color:%1;color:%2;}").arg(normalBgColor).arg(normalTextColor)); + qss.append(QString("QFrame>QToolButton:hover,QFrame>QToolButton:pressed,QFrame>QToolButton:checked" + "{background-color:%1;color:%2;}").arg(darkBgColor).arg(darkTextColor)); + + frame->setStyleSheet(qss.join("")); + + //存储对应按钮对象,方便鼠标移上去的时候切换图片 + for (int i = 0; i < btnCount; i++) { + QChar c = QChar(pixChar.at(i)); + QPixmap pixNormal = getPixmap(normalTextColor, c, iconSize, iconWidth, iconHeight); + QPixmap pixDark = getPixmap(darkTextColor, c, iconSize, iconWidth, iconHeight); + + QToolButton *btn = btns.at(i); + btn->setIcon(QIcon(pixNormal)); + btn->setIconSize(QSize(iconWidth, iconHeight)); + btn->installEventFilter(this); + + this->btns.append(btn); + this->pixNormal.append(pixNormal); + this->pixDark.append(pixDark); + this->pixHover.append(pixDark); + this->pixPressed.append(pixDark); + this->pixChecked.append(pixDark); + } +} + +void IconHelper::setStyle(QWidget *widget, const QString &type, int borderWidth, const QString &borderColor, + const QString &normalBgColor, const QString &darkBgColor, + const QString &normalTextColor, const QString &darkTextColor) +{ + QString strBorder; + if (type == "top") { + strBorder = QString("border-width:%1px 0px 0px 0px;padding-top:%1px;padding-bottom:%2px;") + .arg(borderWidth).arg(borderWidth * 2); + } else if (type == "right") { + strBorder = QString("border-width:0px %1px 0px 0px;padding-right:%1px;padding-left:%2px;") + .arg(borderWidth).arg(borderWidth * 2); + } else if (type == "bottom") { + strBorder = QString("border-width:0px 0px %1px 0px;padding-bottom:%1px;padding-top:%2px;") + .arg(borderWidth).arg(borderWidth * 2); + } else if (type == "left") { + strBorder = QString("border-width:0px 0px 0px %1px;padding-left:%1px;padding-right:%2px;") + .arg(borderWidth).arg(borderWidth * 2); + } + + QStringList qss; + qss.append(QString("QWidget[flag=\"%1\"] QAbstractButton{border-style:none;border-radius:0px;padding:5px;" + "color:%2;background:%3;}").arg(type).arg(normalTextColor).arg(normalBgColor)); + + qss.append(QString("QWidget[flag=\"%1\"] QAbstractButton:hover," + "QWidget[flag=\"%1\"] QAbstractButton:pressed," + "QWidget[flag=\"%1\"] QAbstractButton:checked{" + "border-style:solid;%2border-color:%3;color:%4;background:%5;}") + .arg(type).arg(strBorder).arg(borderColor).arg(darkTextColor).arg(darkBgColor)); + + widget->setStyleSheet(qss.join("")); +} + +void IconHelper::removeStyle(QList btns) +{ + for (int i = 0; i < btns.count(); i++) { + for (int j = 0; j < this->btns.count(); j++) { + if (this->btns.at(j) == btns.at(i)) { + this->btns.at(j)->removeEventFilter(this); + this->btns.removeAt(j); + this->pixNormal.removeAt(j); + this->pixDark.removeAt(j); + this->pixHover.removeAt(j); + this->pixPressed.removeAt(j); + this->pixChecked.removeAt(j); + break; + } + } + } +} + +void IconHelper::setStyle(QWidget *widget, QList btns, QList pixChar, + quint32 iconSize, quint32 iconWidth, quint32 iconHeight, + const QString &type, int borderWidth, const QString &borderColor, + const QString &normalBgColor, const QString &darkBgColor, + const QString &normalTextColor, const QString &darkTextColor) +{ + int btnCount = btns.count(); + int charCount = pixChar.count(); + if (btnCount <= 0 || charCount <= 0 || btnCount != charCount) { + return; + } + + QString strBorder; + if (type == "top") { + strBorder = QString("border-width:%1px 0px 0px 0px;padding-top:%1px;padding-bottom:%2px;") + .arg(borderWidth).arg(borderWidth * 2); + } else if (type == "right") { + strBorder = QString("border-width:0px %1px 0px 0px;padding-right:%1px;padding-left:%2px;") + .arg(borderWidth).arg(borderWidth * 2); + } else if (type == "bottom") { + strBorder = QString("border-width:0px 0px %1px 0px;padding-bottom:%1px;padding-top:%2px;") + .arg(borderWidth).arg(borderWidth * 2); + } else if (type == "left") { + strBorder = QString("border-width:0px 0px 0px %1px;padding-left:%1px;padding-right:%2px;") + .arg(borderWidth).arg(borderWidth * 2); + } + + //如果图标是左侧显示则需要让没有选中的按钮左侧也有加深的边框,颜色为背景颜色 + QStringList qss; + if (btns.at(0)->toolButtonStyle() == Qt::ToolButtonTextBesideIcon) { + qss.append(QString("QWidget[flag=\"%1\"] QAbstractButton{border-style:solid;border-radius:0px;%2border-color:%3;color:%4;background:%5;}") + .arg(type).arg(strBorder).arg(normalBgColor).arg(normalTextColor).arg(normalBgColor)); + } else { + qss.append(QString("QWidget[flag=\"%1\"] QAbstractButton{border-style:none;border-radius:0px;padding:5px;color:%2;background:%3;}") + .arg(type).arg(normalTextColor).arg(normalBgColor)); + } + + qss.append(QString("QWidget[flag=\"%1\"] QAbstractButton:hover," + "QWidget[flag=\"%1\"] QAbstractButton:pressed," + "QWidget[flag=\"%1\"] QAbstractButton:checked{" + "border-style:solid;%2border-color:%3;color:%4;background:%5;}") + .arg(type).arg(strBorder).arg(borderColor).arg(darkTextColor).arg(darkBgColor)); + + qss.append(QString("QWidget#%1{background:%2;}").arg(widget->objectName()).arg(normalBgColor)); + qss.append(QString("QWidget>QToolButton{border-width:0px;" + "background-color:%1;color:%2;}").arg(normalBgColor).arg(normalTextColor)); + qss.append(QString("QWidget>QToolButton:hover,QWidget>QToolButton:pressed,QWidget>QToolButton:checked{" + "background-color:%1;color:%2;}").arg(darkBgColor).arg(darkTextColor)); + + widget->setStyleSheet(qss.join("")); + + //存储对应按钮对象,方便鼠标移上去的时候切换图片 + for (int i = 0; i < btnCount; i++) { + QChar c = QChar(pixChar.at(i)); + QPixmap pixNormal = getPixmap(normalTextColor, c, iconSize, iconWidth, iconHeight); + QPixmap pixDark = getPixmap(darkTextColor, c, iconSize, iconWidth, iconHeight); + + QToolButton *btn = btns.at(i); + btn->setIcon(QIcon(pixNormal)); + btn->setIconSize(QSize(iconWidth, iconHeight)); + btn->installEventFilter(this); + + this->btns.append(btn); + this->pixNormal.append(pixNormal); + this->pixDark.append(pixDark); + this->pixHover.append(pixDark); + this->pixPressed.append(pixDark); + this->pixChecked.append(pixDark); + } +} + +void IconHelper::setStyle(QWidget *widget, QList btns, QList pixChar, const IconHelper::StyleColor &styleColor) +{ + int btnCount = btns.count(); + int charCount = pixChar.count(); + if (btnCount <= 0 || charCount <= 0 || btnCount != charCount) { + return; + } + + quint32 iconSize = styleColor.iconSize; + quint32 iconWidth = styleColor.iconWidth; + quint32 iconHeight = styleColor.iconHeight; + quint32 borderWidth = styleColor.borderWidth; + QString type = styleColor.type; + + QString strBorder; + if (type == "top") { + strBorder = QString("border-width:%1px 0px 0px 0px;padding-top:%1px;padding-bottom:%2px;") + .arg(borderWidth).arg(borderWidth * 2); + } else if (type == "right") { + strBorder = QString("border-width:0px %1px 0px 0px;padding-right:%1px;padding-left:%2px;") + .arg(borderWidth).arg(borderWidth * 2); + } else if (type == "bottom") { + strBorder = QString("border-width:0px 0px %1px 0px;padding-bottom:%1px;padding-top:%2px;") + .arg(borderWidth).arg(borderWidth * 2); + } else if (type == "left") { + strBorder = QString("border-width:0px 0px 0px %1px;padding-left:%1px;padding-right:%2px;") + .arg(borderWidth).arg(borderWidth * 2); + } + + //如果图标是左侧显示则需要让没有选中的按钮左侧也有加深的边框,颜色为背景颜色 + QStringList qss; + if (btns.at(0)->toolButtonStyle() == Qt::ToolButtonTextBesideIcon) { + qss.append(QString("QWidget[flag=\"%1\"] QAbstractButton{border-style:solid;border-radius:0px;%2border-color:%3;color:%4;background:%5;}") + .arg(type).arg(strBorder).arg(styleColor.normalBgColor).arg(styleColor.normalTextColor).arg(styleColor.normalBgColor)); + } else { + qss.append(QString("QWidget[flag=\"%1\"] QAbstractButton{border-style:none;border-radius:0px;padding:5px;color:%2;background:%3;}") + .arg(type).arg(styleColor.normalTextColor).arg(styleColor.normalBgColor)); + } + + qss.append(QString("QWidget[flag=\"%1\"] QAbstractButton:hover{border-style:solid;%2border-color:%3;color:%4;background:%5;}") + .arg(type).arg(strBorder).arg(styleColor.borderColor).arg(styleColor.hoverTextColor).arg(styleColor.hoverBgColor)); + qss.append(QString("QWidget[flag=\"%1\"] QAbstractButton:pressed{border-style:solid;%2border-color:%3;color:%4;background:%5;}") + .arg(type).arg(strBorder).arg(styleColor.borderColor).arg(styleColor.pressedTextColor).arg(styleColor.pressedBgColor)); + qss.append(QString("QWidget[flag=\"%1\"] QAbstractButton:checked{border-style:solid;%2border-color:%3;color:%4;background:%5;}") + .arg(type).arg(strBorder).arg(styleColor.borderColor).arg(styleColor.checkedTextColor).arg(styleColor.checkedBgColor)); + + qss.append(QString("QWidget#%1{background:%2;}").arg(widget->objectName()).arg(styleColor.normalBgColor)); + qss.append(QString("QWidget>QToolButton{border-width:0px;background-color:%1;color:%2;}").arg(styleColor.normalBgColor).arg(styleColor.normalTextColor)); + qss.append(QString("QWidget>QToolButton:hover{background-color:%1;color:%2;}").arg(styleColor.hoverBgColor).arg(styleColor.hoverTextColor)); + qss.append(QString("QWidget>QToolButton:pressed{background-color:%1;color:%2;}").arg(styleColor.pressedBgColor).arg(styleColor.pressedTextColor)); + qss.append(QString("QWidget>QToolButton:checked{background-color:%1;color:%2;}").arg(styleColor.checkedBgColor).arg(styleColor.checkedTextColor)); + + widget->setStyleSheet(qss.join("")); + + //存储对应按钮对象,方便鼠标移上去的时候切换图片 + for (int i = 0; i < btnCount; i++) { + QChar c = QChar(pixChar.at(i)); + QPixmap pixNormal = getPixmap(styleColor.normalTextColor, c, iconSize, iconWidth, iconHeight); + QPixmap pixHover = getPixmap(styleColor.hoverTextColor, c, iconSize, iconWidth, iconHeight); + QPixmap pixPressed = getPixmap(styleColor.pressedTextColor, c, iconSize, iconWidth, iconHeight); + QPixmap pixChecked = getPixmap(styleColor.checkedTextColor, c, iconSize, iconWidth, iconHeight); + + QToolButton *btn = btns.at(i); + btn->setIcon(QIcon(pixNormal)); + btn->setIconSize(QSize(iconWidth, iconHeight)); + btn->installEventFilter(this); + + this->btns.append(btn); + this->pixNormal.append(pixNormal); + this->pixDark.append(pixHover); + this->pixHover.append(pixHover); + this->pixPressed.append(pixPressed); + this->pixChecked.append(pixChecked); + } +} + +bool IconHelper::eventFilter(QObject *watched, QEvent *event) +{ + if (watched->inherits("QToolButton")) { + QToolButton *btn = (QToolButton *)watched; + int index = btns.indexOf(btn); + if (index >= 0) { + if (event->type() == QEvent::Enter) { + btn->setIcon(QIcon(pixHover.at(index))); + } else if (event->type() == QEvent::MouseButtonPress) { + btn->setIcon(QIcon(pixPressed.at(index))); + } else if (event->type() == QEvent::Leave) { + if (btn->isChecked()) { + btn->setIcon(QIcon(pixChecked.at(index))); + } else { + btn->setIcon(QIcon(pixNormal.at(index))); + } + } + } + } + + return QObject::eventFilter(watched, event); +} + + +QScopedPointer TrayIcon::self; +TrayIcon *TrayIcon::Instance() +{ + if (self.isNull()) { + static QMutex mutex; + QMutexLocker locker(&mutex); + if (self.isNull()) { + self.reset(new TrayIcon); + } + } + + return self.data(); +} + +TrayIcon::TrayIcon(QObject *parent) : QObject(parent) +{ + mainWidget = 0; + trayIcon = new QSystemTrayIcon(this); + connect(trayIcon, SIGNAL(activated(QSystemTrayIcon::ActivationReason)), + this, SLOT(iconIsActived(QSystemTrayIcon::ActivationReason))); + menu = new QMenu(QApplication::desktop()); + exitDirect = true; +} + +void TrayIcon::iconIsActived(QSystemTrayIcon::ActivationReason reason) +{ + switch (reason) { + case QSystemTrayIcon::Trigger: + case QSystemTrayIcon::DoubleClick: { + mainWidget->showNormal(); + break; + } + + default: + break; + } +} + +void TrayIcon::setExitDirect(bool exitDirect) +{ + if (this->exitDirect != exitDirect) { + this->exitDirect = exitDirect; + } +} + +void TrayIcon::setMainWidget(QWidget *mainWidget) +{ + this->mainWidget = mainWidget; + menu->addAction("主界面", mainWidget, SLOT(showNormal())); + + if (exitDirect) { + menu->addAction("退出", this, SLOT(closeAll())); + } else { + menu->addAction("退出", this, SIGNAL(trayIconExit())); + } + + trayIcon->setContextMenu(menu); +} + +void TrayIcon::showMessage(const QString &title, const QString &msg, QSystemTrayIcon::MessageIcon icon, int msecs) +{ + trayIcon->showMessage(title, msg, icon, msecs); +} + +void TrayIcon::setIcon(const QString &strIcon) +{ + trayIcon->setIcon(QIcon(strIcon)); +} + +void TrayIcon::setToolTip(const QString &tip) +{ + trayIcon->setToolTip(tip); +} + +void TrayIcon::setVisible(bool visible) +{ + trayIcon->setVisible(visible); +} + +void TrayIcon::closeAll() +{ + trayIcon->hide(); + trayIcon->deleteLater(); + exit(0); +} + + +int QUIHelper::deskWidth() +{ + //没有必要每次都获取,只有当变量为空时才去获取一次 + static int width = 0; + if (width == 0) { + width = qApp->desktop()->availableGeometry().width(); + } + + return width; +} + +int QUIHelper::deskHeight() +{ + //没有必要每次都获取,只有当变量为空时才去获取一次 + static int height = 0; + if (height == 0) { + height = qApp->desktop()->availableGeometry().height(); + } + + return height; +} + +QString QUIHelper::appName() +{ + //没有必要每次都获取,只有当变量为空时才去获取一次 + static QString name; + if (name.isEmpty()) { + name = qApp->applicationFilePath(); + QStringList list = name.split("/"); + name = list.at(list.count() - 1).split(".").at(0); + } + + return name; +} + +QString QUIHelper::appPath() +{ +#ifdef Q_OS_ANDROID + return QString("/sdcard/Android/%1").arg(appName()); +#else + return qApp->applicationDirPath(); +#endif +} + +void QUIHelper::initRand() +{ + //初始化随机数种子 + QTime t = QTime::currentTime(); + qsrand(t.msec() + t.second() * 1000); +} + +void QUIHelper::initDb(const QString &dbName) +{ + initFile(QString(":/%1.db").arg(appName()), dbName); +} + +void QUIHelper::initFile(const QString &sourceName, const QString &targetName) +{ + //判断文件是否存在,不存在则从资源文件复制出来 + QFile file(targetName); + if (!file.exists() || file.size() == 0) { + file.remove(); + QUIHelper::copyFile(sourceName, targetName); + } +} + +void QUIHelper::newDir(const QString &dirName) +{ + QString strDir = dirName; + + //如果路径中包含斜杠字符则说明是绝对路径 + //linux系统路径字符带有 / windows系统 路径字符带有 :/ + if (!strDir.startsWith("/") && !strDir.contains(":/")) { + strDir = QString("%1/%2").arg(QUIHelper::appPath()).arg(strDir); + } + + QDir dir(strDir); + if (!dir.exists()) { + dir.mkpath(strDir); + } +} + +void QUIHelper::writeInfo(const QString &info, const QString &filePath) +{ + QString fileName = QString("%1/%2/%3_runinfo_%4.txt").arg(QUIHelper::appPath()) + .arg(filePath).arg(QUIHelper::appName()).arg(QDate::currentDate().toString("yyyyMM")); + + QFile file(fileName); + file.open(QIODevice::WriteOnly | QIODevice::Append | QFile::Text); + QTextStream stream(&file); + stream << DATETIME << " " << info << NEWLINE; + file.close(); +} + +void QUIHelper::writeError(const QString &info, const QString &filePath) +{ + //正式运行屏蔽掉输出错误信息,调试阶段才需要 + return; + QString fileName = QString("%1/%2/%3_runerror_%4.txt").arg(QUIHelper::appPath()) + .arg(filePath).arg(QUIHelper::appName()).arg(QDate::currentDate().toString("yyyyMM")); + + QFile file(fileName); + file.open(QIODevice::WriteOnly | QIODevice::Append | QFile::Text); + QTextStream stream(&file); + stream << DATETIME << " " << info << NEWLINE; + file.close(); +} + +void QUIHelper::setStyle(QUIWidget::Style style) +{ + QString qssFile = ":/qss/lightblue.css"; + + if (style == QUIWidget::Style_Silvery) { + qssFile = ":/qss/silvery.css"; + } else if (style == QUIWidget::Style_Blue) { + qssFile = ":/qss/blue.css"; + } else if (style == QUIWidget::Style_LightBlue) { + qssFile = ":/qss/lightblue.css"; + } else if (style == QUIWidget::Style_DarkBlue) { + qssFile = ":/qss/darkblue.css"; + } else if (style == QUIWidget::Style_Gray) { + qssFile = ":/qss/gray.css"; + } else if (style == QUIWidget::Style_LightGray) { + qssFile = ":/qss/lightgray.css"; + } else if (style == QUIWidget::Style_DarkGray) { + qssFile = ":/qss/darkgray.css"; + } else if (style == QUIWidget::Style_Black) { + qssFile = ":/qss/black.css"; + } else if (style == QUIWidget::Style_LightBlack) { + qssFile = ":/qss/lightblack.css"; + } else if (style == QUIWidget::Style_DarkBlack) { + qssFile = ":/qss/darkblack.css"; + } else if (style == QUIWidget::Style_PSBlack) { + qssFile = ":/qss/psblack.css"; + } else if (style == QUIWidget::Style_FlatBlack) { + qssFile = ":/qss/flatblack.css"; + } else if (style == QUIWidget::Style_FlatWhite) { + qssFile = ":/qss/flatwhite.css"; + } else if (style == QUIWidget::Style_Purple) { + qssFile = ":/qss/purple.css"; + } else if (style == QUIWidget::Style_BlackBlue) { + qssFile = ":/qss/blackblue.css"; + } else if (style == QUIWidget::Style_BlackVideo) { + qssFile = ":/qss/blackvideo.css"; + } + + QFile file(qssFile); + + if (file.open(QFile::ReadOnly)) { + QString qss = QLatin1String(file.readAll()); + QString paletteColor = qss.mid(20, 7); + getQssColor(qss, QUIConfig::TextColor, QUIConfig::PanelColor, QUIConfig::BorderColor, QUIConfig::NormalColorStart, + QUIConfig::NormalColorEnd, QUIConfig::DarkColorStart, QUIConfig::DarkColorEnd, QUIConfig::HighColor); + + qApp->setPalette(QPalette(QColor(paletteColor))); + qApp->setStyleSheet(qss); + file.close(); + } +} + +void QUIHelper::setStyle(const QString &qssFile, QString &paletteColor, QString &textColor) +{ + QFile file(qssFile); + if (file.open(QFile::ReadOnly)) { + QString qss = QLatin1String(file.readAll()); + paletteColor = qss.mid(20, 7); + textColor = qss.mid(49, 7); + getQssColor(qss, QUIConfig::TextColor, QUIConfig::PanelColor, QUIConfig::BorderColor, QUIConfig::NormalColorStart, + QUIConfig::NormalColorEnd, QUIConfig::DarkColorStart, QUIConfig::DarkColorEnd, QUIConfig::HighColor); + + qApp->setPalette(QPalette(QColor(paletteColor))); + qApp->setStyleSheet(qss); + file.close(); + } +} + +void QUIHelper::setStyle(const QString &qssFile, QString &textColor, QString &panelColor, QString &borderColor, + QString &normalColorStart, QString &normalColorEnd, + QString &darkColorStart, QString &darkColorEnd, QString &highColor) +{ + QFile file(qssFile); + if (file.open(QFile::ReadOnly)) { + QString qss = QLatin1String(file.readAll()); + getQssColor(qss, textColor, panelColor, borderColor, normalColorStart, normalColorEnd, darkColorStart, darkColorEnd, highColor); + qApp->setPalette(QPalette(QColor(panelColor))); + qApp->setStyleSheet(qss); + file.close(); + } +} + +void QUIHelper::getQssColor(const QString &qss, QString &textColor, QString &panelColor, QString &borderColor, + QString &normalColorStart, QString &normalColorEnd, + QString &darkColorStart, QString &darkColorEnd, QString &highColor) +{ + QString str = qss; + + QString flagTextColor = "TextColor:"; + int indexTextColor = str.indexOf(flagTextColor); + if (indexTextColor >= 0) { + textColor = str.mid(indexTextColor + flagTextColor.length(), 7); + } + + QString flagPanelColor = "PanelColor:"; + int indexPanelColor = str.indexOf(flagPanelColor); + if (indexPanelColor >= 0) { + panelColor = str.mid(indexPanelColor + flagPanelColor.length(), 7); + } + + QString flagBorderColor = "BorderColor:"; + int indexBorderColor = str.indexOf(flagBorderColor); + if (indexBorderColor >= 0) { + borderColor = str.mid(indexBorderColor + flagBorderColor.length(), 7); + } + + QString flagNormalColorStart = "NormalColorStart:"; + int indexNormalColorStart = str.indexOf(flagNormalColorStart); + if (indexNormalColorStart >= 0) { + normalColorStart = str.mid(indexNormalColorStart + flagNormalColorStart.length(), 7); + } + + QString flagNormalColorEnd = "NormalColorEnd:"; + int indexNormalColorEnd = str.indexOf(flagNormalColorEnd); + if (indexNormalColorEnd >= 0) { + normalColorEnd = str.mid(indexNormalColorEnd + flagNormalColorEnd.length(), 7); + } + + QString flagDarkColorStart = "DarkColorStart:"; + int indexDarkColorStart = str.indexOf(flagDarkColorStart); + if (indexDarkColorStart >= 0) { + darkColorStart = str.mid(indexDarkColorStart + flagDarkColorStart.length(), 7); + } + + QString flagDarkColorEnd = "DarkColorEnd:"; + int indexDarkColorEnd = str.indexOf(flagDarkColorEnd); + if (indexDarkColorEnd >= 0) { + darkColorEnd = str.mid(indexDarkColorEnd + flagDarkColorEnd.length(), 7); + } + + QString flagHighColor = "HighColor:"; + int indexHighColor = str.indexOf(flagHighColor); + if (indexHighColor >= 0) { + highColor = str.mid(indexHighColor + flagHighColor.length(), 7); + } +} + +QPixmap QUIHelper::ninePatch(const QString &picName, int horzSplit, int vertSplit, int dstWidth, int dstHeight) +{ + QPixmap pix(picName); + return ninePatch(pix, horzSplit, vertSplit, dstWidth, dstHeight); +} + +QPixmap QUIHelper::ninePatch(const QPixmap &pix, int horzSplit, int vertSplit, int dstWidth, int dstHeight) +{ + int pixWidth = pix.width(); + int pixHeight = pix.height(); + + QPixmap pix1 = pix.copy(0, 0, horzSplit, vertSplit); + QPixmap pix2 = pix.copy(horzSplit, 0, pixWidth - horzSplit * 2, vertSplit); + QPixmap pix3 = pix.copy(pixWidth - horzSplit, 0, horzSplit, vertSplit); + + QPixmap pix4 = pix.copy(0, vertSplit, horzSplit, pixHeight - vertSplit * 2); + QPixmap pix5 = pix.copy(horzSplit, vertSplit, pixWidth - horzSplit * 2, pixHeight - vertSplit * 2); + QPixmap pix6 = pix.copy(pixWidth - horzSplit, vertSplit, horzSplit, pixHeight - vertSplit * 2); + + QPixmap pix7 = pix.copy(0, pixHeight - vertSplit, horzSplit, vertSplit); + QPixmap pix8 = pix.copy(horzSplit, pixHeight - vertSplit, pixWidth - horzSplit * 2, pixWidth - horzSplit * 2); + QPixmap pix9 = pix.copy(pixWidth - horzSplit, pixHeight - vertSplit, horzSplit, vertSplit); + + //保持高度拉宽 + pix2 = pix2.scaled(dstWidth - horzSplit * 2, vertSplit, Qt::IgnoreAspectRatio); + //保持宽度拉高 + pix4 = pix4.scaled(horzSplit, dstHeight - vertSplit * 2, Qt::IgnoreAspectRatio); + //宽高都缩放 + pix5 = pix5.scaled(dstWidth - horzSplit * 2, dstHeight - vertSplit * 2, Qt::IgnoreAspectRatio); + //保持宽度拉高 + pix6 = pix6.scaled(horzSplit, dstHeight - vertSplit * 2, Qt::IgnoreAspectRatio); + //保持高度拉宽 + pix8 = pix8.scaled(dstWidth - horzSplit * 2, vertSplit); + + //生成宽高图片并填充透明背景颜色 + QPixmap resultImg(dstWidth, dstHeight); + resultImg.fill(Qt::transparent); + + QPainter painter; + painter.begin(&resultImg); + + if (!resultImg.isNull()) { + painter.drawPixmap(0, 0, pix1); + painter.drawPixmap(horzSplit, 0, pix2); + painter.drawPixmap(dstWidth - horzSplit, 0, pix3); + + painter.drawPixmap(0, vertSplit, pix4); + painter.drawPixmap(horzSplit, vertSplit, pix5); + painter.drawPixmap(dstWidth - horzSplit, vertSplit, pix6); + + painter.drawPixmap(0, dstHeight - vertSplit, pix7); + painter.drawPixmap(horzSplit, dstHeight - vertSplit, pix8); + painter.drawPixmap(dstWidth - horzSplit, dstHeight - vertSplit, pix9); + } + + painter.end(); + + return resultImg; +} + +void QUIHelper::setLabStyle(QLabel *lab, quint8 type) +{ + QString qssDisable = QString("QLabel::disabled{background:none;color:%1;}").arg(QUIConfig::BorderColor); + QString qssRed = "QLabel{border:none;background-color:rgb(214,64,48);color:rgb(255,255,255);}" + qssDisable; + QString qssGreen = "QLabel{border:none;background-color:rgb(46,138,87);color:rgb(255,255,255);}" + qssDisable; + QString qssBlue = "QLabel{border:none;background-color:rgb(67,122,203);color:rgb(255,255,255);}" + qssDisable; + QString qssDark = "QLabel{border:none;background-color:rgb(75,75,75);color:rgb(255,255,255);}" + qssDisable; + + if (type == 0) { + lab->setStyleSheet(qssRed); + } else if (type == 1) { + lab->setStyleSheet(qssGreen); + } else if (type == 2) { + lab->setStyleSheet(qssBlue); + } else if (type == 3) { + lab->setStyleSheet(qssDark); + } +} + +void QUIHelper::setFormInCenter(QWidget *frm) +{ + int frmX = frm->width(); + int frmY = frm->height(); + QDesktopWidget w; + int deskWidth = w.availableGeometry().width(); + int deskHeight = w.availableGeometry().height(); + QPoint movePoint(deskWidth / 2 - frmX / 2, deskHeight / 2 - frmY / 2); + frm->move(movePoint); +} + +void QUIHelper::setTranslator(const QString &qmFile) +{ + QTranslator *translator = new QTranslator(qApp); + translator->load(qmFile); + qApp->installTranslator(translator); +} + +void QUIHelper::setCode() +{ +#if (QT_VERSION <= QT_VERSION_CHECK(5,0,0)) +#if _MSC_VER + QTextCodec *codec = QTextCodec::codecForName("gbk"); +#else + QTextCodec *codec = QTextCodec::codecForName("utf-8"); +#endif + QTextCodec::setCodecForLocale(codec); + QTextCodec::setCodecForCStrings(codec); + QTextCodec::setCodecForTr(codec); +#else + QTextCodec *codec = QTextCodec::codecForName("utf-8"); + QTextCodec::setCodecForLocale(codec); +#endif +} + +void QUIHelper::sleep(int msec) +{ + QTime dieTime = QTime::currentTime().addMSecs(msec); + while (QTime::currentTime() < dieTime) { + QCoreApplication::processEvents(QEventLoop::AllEvents, 100); + } +} + +void QUIHelper::setSystemDateTime(const QString &year, const QString &month, const QString &day, const QString &hour, const QString &min, const QString &sec) +{ +#ifdef Q_OS_WIN + QProcess p(0); + p.start("cmd"); + p.waitForStarted(); + p.write(QString("date %1-%2-%3\n").arg(year).arg(month).arg(day).toLatin1()); + p.closeWriteChannel(); + p.waitForFinished(1000); + p.close(); + p.start("cmd"); + p.waitForStarted(); + p.write(QString("time %1:%2:%3.00\n").arg(hour).arg(min).arg(sec).toLatin1()); + p.closeWriteChannel(); + p.waitForFinished(1000); + p.close(); +#else + QString cmd = QString("date %1%2%3%4%5.%6").arg(month).arg(day).arg(hour).arg(min).arg(year).arg(sec); + system(cmd.toLatin1()); + system("hwclock -w"); +#endif +} + +void QUIHelper::runWithSystem(const QString &strName, const QString &strPath, bool autoRun) +{ +#ifdef Q_OS_WIN + QSettings reg("HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Run", QSettings::NativeFormat); + reg.setValue(strName, autoRun ? strPath : ""); +#endif +} + +bool QUIHelper::isIP(const QString &ip) +{ + QRegExp RegExp("((2[0-4]\\d|25[0-5]|[01]?\\d\\d?)\\.){3}(2[0-4]\\d|25[0-5]|[01]?\\d\\d?)"); + return RegExp.exactMatch(ip); +} + +bool QUIHelper::isMac(const QString &mac) +{ + QRegExp RegExp("^[A-F0-9]{2}(-[A-F0-9]{2}){5}$"); + return RegExp.exactMatch(mac); +} + +bool QUIHelper::isTel(const QString &tel) +{ + if (tel.length() != 11) { + return false; + } + + if (!tel.startsWith("13") && !tel.startsWith("14") && !tel.startsWith("15") && !tel.startsWith("18")) { + return false; + } + + return true; +} + +bool QUIHelper::isEmail(const QString &email) +{ + if (!email.contains("@") || !email.contains(".com")) { + return false; + } + + return true; +} + +int QUIHelper::strHexToDecimal(const QString &strHex) +{ + bool ok; + return strHex.toInt(&ok, 16); +} + +int QUIHelper::strDecimalToDecimal(const QString &strDecimal) +{ + bool ok; + return strDecimal.toInt(&ok, 10); +} + +int QUIHelper::strBinToDecimal(const QString &strBin) +{ + bool ok; + return strBin.toInt(&ok, 2); +} + +QString QUIHelper::strHexToStrBin(const QString &strHex) +{ + uchar decimal = strHexToDecimal(strHex); + QString bin = QString::number(decimal, 2); + uchar len = bin.length(); + + if (len < 8) { + for (int i = 0; i < 8 - len; i++) { + bin = "0" + bin; + } + } + + return bin; +} + +QString QUIHelper::decimalToStrBin1(int decimal) +{ + QString bin = QString::number(decimal, 2); + uchar len = bin.length(); + + if (len <= 8) { + for (int i = 0; i < 8 - len; i++) { + bin = "0" + bin; + } + } + + return bin; +} + +QString QUIHelper::decimalToStrBin2(int decimal) +{ + QString bin = QString::number(decimal, 2); + uchar len = bin.length(); + + if (len <= 16) { + for (int i = 0; i < 16 - len; i++) { + bin = "0" + bin; + } + } + + return bin; +} + +QString QUIHelper::decimalToStrHex(int decimal) +{ + QString temp = QString::number(decimal, 16); + if (temp.length() == 1) { + temp = "0" + temp; + } + + return temp; +} + +QByteArray QUIHelper::intToByte(int i) +{ + QByteArray result; + result.resize(4); + result[3] = (uchar)(0x000000ff & i); + result[2] = (uchar)((0x0000ff00 & i) >> 8); + result[1] = (uchar)((0x00ff0000 & i) >> 16); + result[0] = (uchar)((0xff000000 & i) >> 24); + return result; +} + +QByteArray QUIHelper::intToByteRec(int i) +{ + QByteArray result; + result.resize(4); + result[0] = (uchar)(0x000000ff & i); + result[1] = (uchar)((0x0000ff00 & i) >> 8); + result[2] = (uchar)((0x00ff0000 & i) >> 16); + result[3] = (uchar)((0xff000000 & i) >> 24); + return result; +} + +int QUIHelper::byteToInt(const QByteArray &data) +{ + int i = data.at(3) & 0x000000ff; + i |= ((data.at(2) << 8) & 0x0000ff00); + i |= ((data.at(1) << 16) & 0x00ff0000); + i |= ((data.at(0) << 24) & 0xff000000); + return i; +} + +int QUIHelper::byteToIntRec(const QByteArray &data) +{ + int i = data.at(0) & 0x000000ff; + i |= ((data.at(1) << 8) & 0x0000ff00); + i |= ((data.at(2) << 16) & 0x00ff0000); + i |= ((data.at(3) << 24) & 0xff000000); + return i; +} + +quint32 QUIHelper::byteToUInt(const QByteArray &data) +{ + quint32 i = data.at(3) & 0x000000ff; + i |= ((data.at(2) << 8) & 0x0000ff00); + i |= ((data.at(1) << 16) & 0x00ff0000); + i |= ((data.at(0) << 24) & 0xff000000); + return i; +} + +quint32 QUIHelper::byteToUIntRec(const QByteArray &data) +{ + quint32 i = data.at(0) & 0x000000ff; + i |= ((data.at(1) << 8) & 0x0000ff00); + i |= ((data.at(2) << 16) & 0x00ff0000); + i |= ((data.at(3) << 24) & 0xff000000); + return i; +} + +QByteArray QUIHelper::ushortToByte(ushort i) +{ + QByteArray result; + result.resize(2); + result[1] = (uchar)(0x000000ff & i); + result[0] = (uchar)((0x0000ff00 & i) >> 8); + return result; +} + +QByteArray QUIHelper::ushortToByteRec(ushort i) +{ + QByteArray result; + result.resize(2); + result[0] = (uchar) (0x000000ff & i); + result[1] = (uchar) ((0x0000ff00 & i) >> 8); + return result; +} + +int QUIHelper::byteToUShort(const QByteArray &data) +{ + int i = data.at(1) & 0x000000FF; + i |= ((data.at(0) << 8) & 0x0000FF00); + + if (i >= 32768) { + i = i - 65536; + } + + return i; +} + +int QUIHelper::byteToUShortRec(const QByteArray &data) +{ + int i = data.at(0) & 0x000000FF; + i |= ((data.at(1) << 8) & 0x0000FF00); + + if (i >= 32768) { + i = i - 65536; + } + + return i; +} + +QString QUIHelper::getXorEncryptDecrypt(const QString &str, char key) +{ + QByteArray data = str.toLatin1(); + int size = data.size(); + for (int i = 0; i < size; i++) { + data[i] = data[i] ^ key; + } + + return QLatin1String(data); +} + +uchar QUIHelper::getOrCode(const QByteArray &data) +{ + int len = data.length(); + uchar result = 0; + + for (int i = 0; i < len; i++) { + result ^= data.at(i); + } + + return result; +} + +uchar QUIHelper::getCheckCode(const QByteArray &data) +{ + int len = data.length(); + uchar temp = 0; + + for (uchar i = 0; i < len; i++) { + temp += data.at(i); + } + + return temp % 256; +} + +QString QUIHelper::getValue(quint8 value) +{ + QString result = QString::number(value); + if (result.length() <= 1) { + result = QString("0%1").arg(result); + } + return result; +} + +//函数功能:计算CRC16 +//参数1:*data 16位CRC校验数据, +//参数2:len 数据流长度 +//参数3:init 初始化值 +//参数4:table 16位CRC查找表 + +//逆序CRC计算 +quint16 QUIHelper::getRevCrc_16(quint8 *data, int len, quint16 init, const quint16 *table) +{ + quint16 cRc_16 = init; + quint8 temp; + + while(len-- > 0) { + temp = cRc_16 >> 8; + cRc_16 = (cRc_16 << 8) ^ table[(temp ^ *data++) & 0xff]; + } + + return cRc_16; +} + +//正序CRC计算 +quint16 QUIHelper::getCrc_16(quint8 *data, int len, quint16 init, const quint16 *table) +{ + quint16 cRc_16 = init; + quint8 temp; + + while(len-- > 0) { + temp = cRc_16 & 0xff; + cRc_16 = (cRc_16 >> 8) ^ table[(temp ^ *data++) & 0xff]; + } + + return cRc_16; +} + +//Modbus CRC16校验 +quint16 QUIHelper::getModbus16(quint8 *data, int len) +{ + //MODBUS CRC-16表 8005 逆序 + const quint16 table_16[256] = { + 0x0000, 0xC0C1, 0xC181, 0x0140, 0xC301, 0x03C0, 0x0280, 0xC241, + 0xC601, 0x06C0, 0x0780, 0xC741, 0x0500, 0xC5C1, 0xC481, 0x0440, + 0xCC01, 0x0CC0, 0x0D80, 0xCD41, 0x0F00, 0xCFC1, 0xCE81, 0x0E40, + 0x0A00, 0xCAC1, 0xCB81, 0x0B40, 0xC901, 0x09C0, 0x0880, 0xC841, + 0xD801, 0x18C0, 0x1980, 0xD941, 0x1B00, 0xDBC1, 0xDA81, 0x1A40, + 0x1E00, 0xDEC1, 0xDF81, 0x1F40, 0xDD01, 0x1DC0, 0x1C80, 0xDC41, + 0x1400, 0xD4C1, 0xD581, 0x1540, 0xD701, 0x17C0, 0x1680, 0xD641, + 0xD201, 0x12C0, 0x1380, 0xD341, 0x1100, 0xD1C1, 0xD081, 0x1040, + 0xF001, 0x30C0, 0x3180, 0xF141, 0x3300, 0xF3C1, 0xF281, 0x3240, + 0x3600, 0xF6C1, 0xF781, 0x3740, 0xF501, 0x35C0, 0x3480, 0xF441, + 0x3C00, 0xFCC1, 0xFD81, 0x3D40, 0xFF01, 0x3FC0, 0x3E80, 0xFE41, + 0xFA01, 0x3AC0, 0x3B80, 0xFB41, 0x3900, 0xF9C1, 0xF881, 0x3840, + 0x2800, 0xE8C1, 0xE981, 0x2940, 0xEB01, 0x2BC0, 0x2A80, 0xEA41, + 0xEE01, 0x2EC0, 0x2F80, 0xEF41, 0x2D00, 0xEDC1, 0xEC81, 0x2C40, + 0xE401, 0x24C0, 0x2580, 0xE541, 0x2700, 0xE7C1, 0xE681, 0x2640, + 0x2200, 0xE2C1, 0xE381, 0x2340, 0xE101, 0x21C0, 0x2080, 0xE041, + 0xA001, 0x60C0, 0x6180, 0xA141, 0x6300, 0xA3C1, 0xA281, 0x6240, + 0x6600, 0xA6C1, 0xA781, 0x6740, 0xA501, 0x65C0, 0x6480, 0xA441, + 0x6C00, 0xACC1, 0xAD81, 0x6D40, 0xAF01, 0x6FC0, 0x6E80, 0xAE41, + 0xAA01, 0x6AC0, 0x6B80, 0xAB41, 0x6900, 0xA9C1, 0xA881, 0x6840, + 0x7800, 0xB8C1, 0xB981, 0x7940, 0xBB01, 0x7BC0, 0x7A80, 0xBA41, + 0xBE01, 0x7EC0, 0x7F80, 0xBF41, 0x7D00, 0xBDC1, 0xBC81, 0x7C40, + 0xB401, 0x74C0, 0x7580, 0xB541, 0x7700, 0xB7C1, 0xB681, 0x7640, + 0x7200, 0xB2C1, 0xB381, 0x7340, 0xB101, 0x71C0, 0x7080, 0xB041, + 0x5000, 0x90C1, 0x9181, 0x5140, 0x9301, 0x53C0, 0x5280, 0x9241, + 0x9601, 0x56C0, 0x5780, 0x9741, 0x5500, 0x95C1, 0x9481, 0x5440, + 0x9C01, 0x5CC0, 0x5D80, 0x9D41, 0x5F00, 0x9FC1, 0x9E81, 0x5E40, + 0x5A00, 0x9AC1, 0x9B81, 0x5B40, 0x9901, 0x59C0, 0x5880, 0x9841, + 0x8801, 0x48C0, 0x4980, 0x8941, 0x4B00, 0x8BC1, 0x8A81, 0x4A40, + 0x4E00, 0x8EC1, 0x8F81, 0x4F40, 0x8D01, 0x4DC0, 0x4C80, 0x8C41, + 0x4400, 0x84C1, 0x8581, 0x4540, 0x8701, 0x47C0, 0x4680, 0x8641, + 0x8201, 0x42C0, 0x4380, 0x8341, 0x4100, 0x81C1, 0x8081, 0x4040 + }; + + return getCrc_16(data, len, 0xFFFF, table_16); +} + +//CRC16校验 +QByteArray QUIHelper::getCRCCode(const QByteArray &data) +{ + quint16 result = getModbus16((quint8 *)data.data(), data.length()); + return QUIHelper::ushortToByteRec(result); +} + +QString QUIHelper::byteArrayToAsciiStr(const QByteArray &data) +{ + QString temp; + int len = data.size(); + + for (int i = 0; i < len; i++) { + //0x20为空格,空格以下都是不可见字符 + char b = data.at(i); + + if (0x00 == b) { + temp += QString("\\NUL"); + } else if (0x01 == b) { + temp += QString("\\SOH"); + } else if (0x02 == b) { + temp += QString("\\STX"); + } else if (0x03 == b) { + temp += QString("\\ETX"); + } else if (0x04 == b) { + temp += QString("\\EOT"); + } else if (0x05 == b) { + temp += QString("\\ENQ"); + } else if (0x06 == b) { + temp += QString("\\ACK"); + } else if (0x07 == b) { + temp += QString("\\BEL"); + } else if (0x08 == b) { + temp += QString("\\BS"); + } else if (0x09 == b) { + temp += QString("\\HT"); + } else if (0x0A == b) { + temp += QString("\\LF"); + } else if (0x0B == b) { + temp += QString("\\VT"); + } else if (0x0C == b) { + temp += QString("\\FF"); + } else if (0x0D == b) { + temp += QString("\\CR"); + } else if (0x0E == b) { + temp += QString("\\SO"); + } else if (0x0F == b) { + temp += QString("\\SI"); + } else if (0x10 == b) { + temp += QString("\\DLE"); + } else if (0x11 == b) { + temp += QString("\\DC1"); + } else if (0x12 == b) { + temp += QString("\\DC2"); + } else if (0x13 == b) { + temp += QString("\\DC3"); + } else if (0x14 == b) { + temp += QString("\\DC4"); + } else if (0x15 == b) { + temp += QString("\\NAK"); + } else if (0x16 == b) { + temp += QString("\\SYN"); + } else if (0x17 == b) { + temp += QString("\\ETB"); + } else if (0x18 == b) { + temp += QString("\\CAN"); + } else if (0x19 == b) { + temp += QString("\\EM"); + } else if (0x1A == b) { + temp += QString("\\SUB"); + } else if (0x1B == b) { + temp += QString("\\ESC"); + } else if (0x1C == b) { + temp += QString("\\FS"); + } else if (0x1D == b) { + temp += QString("\\GS"); + } else if (0x1E == b) { + temp += QString("\\RS"); + } else if (0x1F == b) { + temp += QString("\\US"); + } else if (0x7F == b) { + temp += QString("\\x7F"); + } else if (0x5C == b) { + temp += QString("\\x5C"); + } else if (0x20 >= b) { + temp += QString("\\x%1").arg(decimalToStrHex((quint8)b)); + } else { + temp += QString("%1").arg(b); + } + } + + return temp.trimmed(); +} + +QByteArray QUIHelper::hexStrToByteArray(const QString &str) +{ + QByteArray senddata; + int hexdata, lowhexdata; + int hexdatalen = 0; + int len = str.length(); + senddata.resize(len / 2); + char lstr, hstr; + + for (int i = 0; i < len;) { + hstr = str.at(i).toLatin1(); + if (hstr == ' ') { + i++; + continue; + } + + i++; + if (i >= len) { + break; + } + + lstr = str.at(i).toLatin1(); + hexdata = convertHexChar(hstr); + lowhexdata = convertHexChar(lstr); + + if ((hexdata == 16) || (lowhexdata == 16)) { + break; + } else { + hexdata = hexdata * 16 + lowhexdata; + } + + i++; + senddata[hexdatalen] = (char)hexdata; + hexdatalen++; + } + + senddata.resize(hexdatalen); + return senddata; +} + +char QUIHelper::convertHexChar(char ch) +{ + if ((ch >= '0') && (ch <= '9')) { + return ch - 0x30; + } else if ((ch >= 'A') && (ch <= 'F')) { + return ch - 'A' + 10; + } else if ((ch >= 'a') && (ch <= 'f')) { + return ch - 'a' + 10; + } else { + return (-1); + } +} + +QByteArray QUIHelper::asciiStrToByteArray(const QString &str) +{ + QByteArray buffer; + int len = str.length(); + QString letter; + QString hex; + + for (int i = 0; i < len; i++) { + letter = str.at(i); + + if (letter == "\\") { + i++; + letter = str.mid(i, 1); + + if (letter == "x") { + i++; + hex = str.mid(i, 2); + buffer.append(strHexToDecimal(hex)); + i++; + continue; + } else if (letter == "N") { + i++; + hex = str.mid(i, 1); + + if (hex == "U") { + i++; + hex = str.mid(i, 1); + + if (hex == "L") { //NUL=0x00 + buffer.append((char)0x00); + continue; + } + } else if (hex == "A") { + i++; + hex = str.mid(i, 1); + + if (hex == "K") { //NAK=0x15 + buffer.append(0x15); + continue; + } + } + } else if (letter == "S") { + i++; + hex = str.mid(i, 1); + + if (hex == "O") { + i++; + hex = str.mid(i, 1); + + if (hex == "H") { //SOH=0x01 + buffer.append(0x01); + continue; + } else { //SO=0x0E + buffer.append(0x0E); + i--; + continue; + } + } else if (hex == "T") { + i++; + hex = str.mid(i, 1); + + if (hex == "X") { //STX=0x02 + buffer.append(0x02); + continue; + } + } else if (hex == "I") { //SI=0x0F + buffer.append(0x0F); + continue; + } else if (hex == "Y") { + i++; + hex = str.mid(i, 1); + + if (hex == "N") { //SYN=0x16 + buffer.append(0x16); + continue; + } + } else if (hex == "U") { + i++; + hex = str.mid(i, 1); + + if (hex == "B") { //SUB=0x1A + buffer.append(0x1A); + continue; + } + } + } else if (letter == "E") { + i++; + hex = str.mid(i, 1); + + if (hex == "T") { + i++; + hex = str.mid(i, 1); + + if (hex == "X") { //ETX=0x03 + buffer.append(0x03); + continue; + } else if (hex == "B") { //ETB=0x17 + buffer.append(0x17); + continue; + } + } else if (hex == "O") { + i++; + hex = str.mid(i, 1); + + if (hex == "T") { //EOT=0x04 + buffer.append(0x04); + continue; + } + } else if (hex == "N") { + i++; + hex = str.mid(i, 1); + + if (hex == "Q") { //ENQ=0x05 + buffer.append(0x05); + continue; + } + } else if (hex == "M") { //EM=0x19 + buffer.append(0x19); + continue; + } else if (hex == "S") { + i++; + hex = str.mid(i, 1); + + if (hex == "C") { //ESC=0x1B + buffer.append(0x1B); + continue; + } + } + } else if (letter == "A") { + i++; + hex = str.mid(i, 1); + + if (hex == "C") { + i++; + hex = str.mid(i, 1); + + if (hex == "K") { //ACK=0x06 + buffer.append(0x06); + continue; + } + } + } else if (letter == "B") { + i++; + hex = str.mid(i, 1); + + if (hex == "E") { + i++; + hex = str.mid(i, 1); + + if (hex == "L") { //BEL=0x07 + buffer.append(0x07); + continue; + } + } else if (hex == "S") { //BS=0x08 + buffer.append(0x08); + continue; + } + } else if (letter == "C") { + i++; + hex = str.mid(i, 1); + + if (hex == "R") { //CR=0x0D + buffer.append(0x0D); + continue; + } else if (hex == "A") { + i++; + hex = str.mid(i, 1); + + if (hex == "N") { //CAN=0x18 + buffer.append(0x18); + continue; + } + } + } else if (letter == "D") { + i++; + hex = str.mid(i, 1); + + if (hex == "L") { + i++; + hex = str.mid(i, 1); + + if (hex == "E") { //DLE=0x10 + buffer.append(0x10); + continue; + } + } else if (hex == "C") { + i++; + hex = str.mid(i, 1); + + if (hex == "1") { //DC1=0x11 + buffer.append(0x11); + continue; + } else if (hex == "2") { //DC2=0x12 + buffer.append(0x12); + continue; + } else if (hex == "3") { //DC3=0x13 + buffer.append(0x13); + continue; + } else if (hex == "4") { //DC2=0x14 + buffer.append(0x14); + continue; + } + } + } else if (letter == "F") { + i++; + hex = str.mid(i, 1); + + if (hex == "F") { //FF=0x0C + buffer.append(0x0C); + continue; + } else if (hex == "S") { //FS=0x1C + buffer.append(0x1C); + continue; + } + } else if (letter == "H") { + i++; + hex = str.mid(i, 1); + + if (hex == "T") { //HT=0x09 + buffer.append(0x09); + continue; + } + } else if (letter == "L") { + i++; + hex = str.mid(i, 1); + + if (hex == "F") { //LF=0x0A + buffer.append(0x0A); + continue; + } + } else if (letter == "G") { + i++; + hex = str.mid(i, 1); + + if (hex == "S") { //GS=0x1D + buffer.append(0x1D); + continue; + } + } else if (letter == "R") { + i++; + hex = str.mid(i, 1); + + if (hex == "S") { //RS=0x1E + buffer.append(0x1E); + continue; + } + } else if (letter == "U") { + i++; + hex = str.mid(i, 1); + + if (hex == "S") { //US=0x1F + buffer.append(0x1F); + continue; + } + } else if (letter == "V") { + i++; + hex = str.mid(i, 1); + + if (hex == "T") { //VT=0x0B + buffer.append(0x0B); + continue; + } + } else if (letter == "\\") { + //如果连着的是多个\\则对应添加\对应的16进制0x5C + buffer.append(0x5C); + continue; + } else { + //将对应的\[前面的\\也要加入 + buffer.append(0x5C); + buffer.append(letter.toLatin1()); + continue; + } + } + + buffer.append(str.mid(i, 1).toLatin1()); + + } + + return buffer; +} + +QString QUIHelper::byteArrayToHexStr(const QByteArray &data) +{ + QString temp = ""; + QString hex = data.toHex(); + + for (int i = 0; i < hex.length(); i = i + 2) { + temp += hex.mid(i, 2) + " "; + } + + return temp.trimmed().toUpper(); +} + +QString QUIHelper::getSaveName(const QString &filter, QString defaultDir) +{ + return QFileDialog::getSaveFileName(0, "选择文件", defaultDir , filter); +} + +QString QUIHelper::getFileName(const QString &filter, QString defaultDir) +{ + return QFileDialog::getOpenFileName(0, "选择文件", defaultDir , filter); +} + +QStringList QUIHelper::getFileNames(const QString &filter, QString defaultDir) +{ + return QFileDialog::getOpenFileNames(0, "选择文件", defaultDir, filter); +} + +QString QUIHelper::getFolderName() +{ + return QFileDialog::getExistingDirectory(); +} + +QString QUIHelper::getFileNameWithExtension(const QString &strFilePath) +{ + QFileInfo fileInfo(strFilePath); + return fileInfo.fileName(); +} + +QStringList QUIHelper::getFolderFileNames(const QStringList &filter) +{ + QStringList fileList; + QString strFolder = QFileDialog::getExistingDirectory(); + + if (!strFolder.length() == 0) { + QDir myFolder(strFolder); + + if (myFolder.exists()) { + fileList = myFolder.entryList(filter); + } + } + + return fileList; +} + +bool QUIHelper::folderIsExist(const QString &strFolder) +{ + QDir tempFolder(strFolder); + return tempFolder.exists(); +} + +bool QUIHelper::fileIsExist(const QString &strFile) +{ + QFile tempFile(strFile); + return tempFile.exists(); +} + +bool QUIHelper::copyFile(const QString &sourceFile, const QString &targetFile) +{ + bool ok; + ok = QFile::copy(sourceFile, targetFile); + //将复制过去的文件只读属性取消 + ok = QFile::setPermissions(targetFile, QFile::WriteOwner); + return ok; +} + +void QUIHelper::deleteDirectory(const QString &path) +{ + QDir dir(path); + if (!dir.exists()) { + return; + } + + dir.setFilter(QDir::AllEntries | QDir::NoDotAndDotDot); + QFileInfoList fileList = dir.entryInfoList(); + + foreach (QFileInfo fi, fileList) { + if (fi.isFile()) { + fi.dir().remove(fi.fileName()); + } else { + deleteDirectory(fi.absoluteFilePath()); + dir.rmdir(fi.absoluteFilePath()); + } + } +} + +bool QUIHelper::ipLive(const QString &ip, int port, int timeout) +{ + QTcpSocket tcpClient; + tcpClient.abort(); + tcpClient.connectToHost(ip, port); + //超时没有连接上则判断不在线 + return tcpClient.waitForConnected(timeout); +} + +QString QUIHelper::getHtml(const QString &url) +{ + QNetworkAccessManager *manager = new QNetworkAccessManager(); + QNetworkReply *reply = manager->get(QNetworkRequest(QUrl(url))); + QByteArray responseData; + QEventLoop eventLoop; + QObject::connect(manager, SIGNAL(finished(QNetworkReply *)), &eventLoop, SLOT(quit())); + eventLoop.exec(); + responseData = reply->readAll(); + return QString(responseData); +} + +QString QUIHelper::getNetIP(const QString &webCode) +{ + QString web = webCode; + web = web.replace(' ', ""); + web = web.replace("\r", ""); + web = web.replace("\n", ""); + QStringList list = web.split("
    "); + QString tar = list.at(3); + QStringList ip = tar.split("="); + return ip.at(1); +} + +QString QUIHelper::getLocalIP() +{ + QStringList ips; + QList addrs = QNetworkInterface::allAddresses(); + foreach (QHostAddress addr, addrs) { + QString ip = addr.toString(); + if (QUIHelper::isIP(ip)) { + ips << ip; + } + } + + //优先取192开头的IP,如果获取不到IP则取127.0.0.1 + QString ip = "127.0.0.1"; + foreach (QString str, ips) { + if (str.startsWith("192.168.1") || str.startsWith("192")) { + ip = str; + break; + } + } + + return ip; +} + +QString QUIHelper::urlToIP(const QString &url) +{ + QHostInfo host = QHostInfo::fromName(url); + return host.addresses().at(0).toString(); +} + +bool QUIHelper::isWebOk() +{ + //能接通百度IP说明可以通外网 + return ipLive("115.239.211.112", 80); +} + +void QUIHelper::showMessageBoxInfo(const QString &info, int closeSec, bool exec) +{ +#ifdef Q_OS_ANDROID + QAndroid::Instance()->makeToast(info); +#else + if (exec) { + QUIMessageBox msg; + msg.setMessage(info, 0, closeSec); + msg.exec(); + } else { + QUIMessageBox::Instance()->setMessage(info, 0, closeSec); + QUIMessageBox::Instance()->show(); + } +#endif +} + +void QUIHelper::showMessageBoxError(const QString &info, int closeSec, bool exec) +{ +#ifdef Q_OS_ANDROID + QAndroid::Instance()->makeToast(info); +#else + if (exec) { + QUIMessageBox msg; + msg.setMessage(info, 2, closeSec); + msg.exec(); + } else { + QUIMessageBox::Instance()->setMessage(info, 2, closeSec); + QUIMessageBox::Instance()->show(); + } +#endif +} + +int QUIHelper::showMessageBoxQuestion(const QString &info) +{ + QUIMessageBox msg; + msg.setMessage(info, 1); + return msg.exec(); +} + +void QUIHelper::showTipBox(const QString &title, const QString &tip, bool fullScreen, bool center, int closeSec) +{ + QUITipBox::Instance()->setTip(title, tip, fullScreen, center, closeSec); + QUITipBox::Instance()->show(); +} + +void QUIHelper::hideTipBox() +{ + QUITipBox::Instance()->hide(); +} + +QString QUIHelper::showInputBox(const QString &title, int type, int closeSec, + const QString &placeholderText, bool pwd, + const QString &defaultValue) +{ + QUIInputBox input; + input.setParameter(title, type, closeSec, placeholderText, pwd, defaultValue); + input.exec(); + return input.getValue(); +} + +void QUIHelper::showDateSelect(QString &dateStart, QString &dateEnd, const QString &format) +{ + QUIDateSelect select; + select.setFormat(format); + select.exec(); + dateStart = select.getStartDateTime(); + dateEnd = select.getEndDateTime(); +} + +QString QUIHelper::setPushButtonQss(QPushButton *btn, int radius, int padding, + const QString &normalColor, + const QString &normalTextColor, + const QString &hoverColor, + const QString &hoverTextColor, + const QString &pressedColor, + const QString &pressedTextColor) +{ + QStringList list; + list.append(QString("QPushButton{border-style:none;padding:%1px;border-radius:%2px;color:%3;background:%4;}") + .arg(padding).arg(radius).arg(normalTextColor).arg(normalColor)); + list.append(QString("QPushButton:hover{color:%1;background:%2;}") + .arg(hoverTextColor).arg(hoverColor)); + list.append(QString("QPushButton:pressed{color:%1;background:%2;}") + .arg(pressedTextColor).arg(pressedColor)); + + QString qss = list.join(""); + btn->setStyleSheet(qss); + return qss; +} + +QString QUIHelper::setLineEditQss(QLineEdit *txt, int radius, int borderWidth, + const QString &normalColor, + const QString &focusColor) +{ + QStringList list; + list.append(QString("QLineEdit{border-style:none;padding:3px;border-radius:%1px;border:%2px solid %3;}") + .arg(radius).arg(borderWidth).arg(normalColor)); + list.append(QString("QLineEdit:focus{border:%1px solid %2;}") + .arg(borderWidth).arg(focusColor)); + + QString qss = list.join(""); + txt->setStyleSheet(qss); + return qss; +} + +QString QUIHelper::setProgressBarQss(QProgressBar *bar, int barHeight, + int barRadius, int fontSize, + const QString &normalColor, + const QString &chunkColor) +{ + + QStringList list; + list.append(QString("QProgressBar{font:%1pt;background:%2;max-height:%3px;border-radius:%4px;text-align:center;border:1px solid %2;}") + .arg(fontSize).arg(normalColor).arg(barHeight).arg(barRadius)); + list.append(QString("QProgressBar:chunk{border-radius:%2px;background-color:%1;}") + .arg(chunkColor).arg(barRadius)); + + QString qss = list.join(""); + bar->setStyleSheet(qss); + return qss; +} + +QString QUIHelper::setSliderQss(QSlider *slider, int sliderHeight, + const QString &normalColor, + const QString &grooveColor, + const QString &handleBorderColor, + const QString &handleColor, + const QString &textColor) +{ + int sliderRadius = sliderHeight / 2; + int handleSize = (sliderHeight * 3) / 2 + (sliderHeight / 5); + int handleRadius = handleSize / 2; + int handleOffset = handleRadius / 2; + + QStringList list; + int handleWidth = handleSize + sliderHeight / 5 - 1; + list.append(QString("QSlider::horizontal{min-height:%1px;color:%2;}").arg(sliderHeight * 2).arg(textColor)); + list.append(QString("QSlider::groove:horizontal{background:%1;height:%2px;border-radius:%3px;}") + .arg(normalColor).arg(sliderHeight).arg(sliderRadius)); + list.append(QString("QSlider::add-page:horizontal{background:%1;height:%2px;border-radius:%3px;}") + .arg(normalColor).arg(sliderHeight).arg(sliderRadius)); + list.append(QString("QSlider::sub-page:horizontal{background:%1;height:%2px;border-radius:%3px;}") + .arg(grooveColor).arg(sliderHeight).arg(sliderRadius)); + list.append(QString("QSlider::handle:horizontal{width:%3px;margin-top:-%4px;margin-bottom:-%4px;border-radius:%5px;" + "background:qradialgradient(spread:pad,cx:0.5,cy:0.5,radius:0.5,fx:0.5,fy:0.5,stop:0.6 %1,stop:0.8 %2);}") + .arg(handleColor).arg(handleBorderColor).arg(handleWidth).arg(handleOffset).arg(handleRadius)); + + //偏移一个像素 + handleWidth = handleSize + sliderHeight / 5; + list.append(QString("QSlider::vertical{min-width:%1px;color:%2;}").arg(sliderHeight * 2).arg(textColor)); + list.append(QString("QSlider::groove:vertical{background:%1;width:%2px;border-radius:%3px;}") + .arg(normalColor).arg(sliderHeight).arg(sliderRadius)); + list.append(QString("QSlider::add-page:vertical{background:%1;width:%2px;border-radius:%3px;}") + .arg(grooveColor).arg(sliderHeight).arg(sliderRadius)); + list.append(QString("QSlider::sub-page:vertical{background:%1;width:%2px;border-radius:%3px;}") + .arg(normalColor).arg(sliderHeight).arg(sliderRadius)); + list.append(QString("QSlider::handle:vertical{height:%3px;margin-left:-%4px;margin-right:-%4px;border-radius:%5px;" + "background:qradialgradient(spread:pad,cx:0.5,cy:0.5,radius:0.5,fx:0.5,fy:0.5,stop:0.6 %1,stop:0.8 %2);}") + .arg(handleColor).arg(handleBorderColor).arg(handleWidth).arg(handleOffset).arg(handleRadius)); + + QString qss = list.join(""); + slider->setStyleSheet(qss); + return qss; +} + +QString QUIHelper::setRadioButtonQss(QRadioButton *rbtn, int indicatorRadius, + const QString &normalColor, + const QString &checkColor) +{ + int indicatorWidth = indicatorRadius * 2; + + QStringList list; + list.append(QString("QRadioButton::indicator{border-radius:%1px;width:%2px;height:%2px;}") + .arg(indicatorRadius).arg(indicatorWidth)); + list.append(QString("QRadioButton::indicator::unchecked{background:qradialgradient(spread:pad,cx:0.5,cy:0.5,radius:0.5,fx:0.5,fy:0.5," + "stop:0.6 #FFFFFF,stop:0.7 %1);}").arg(normalColor)); + list.append(QString("QRadioButton::indicator::checked{background:qradialgradient(spread:pad,cx:0.5,cy:0.5,radius:0.5,fx:0.5,fy:0.5," + "stop:0 %1,stop:0.3 %1,stop:0.4 #FFFFFF,stop:0.6 #FFFFFF,stop:0.7 %1);}").arg(checkColor)); + + QString qss = list.join(""); + rbtn->setStyleSheet(qss); + return qss; +} + +QString QUIHelper::setScrollBarQss(QWidget *scroll, int radius, int min, int max, + const QString &bgColor, + const QString &handleNormalColor, + const QString &handleHoverColor, + const QString &handlePressedColor) +{ + //滚动条离背景间隔 + int padding = 0; + + QStringList list; + + //handle:指示器,滚动条拉动部分 add-page:滚动条拉动时增加的部分 sub-page:滚动条拉动时减少的部分 add-line:递增按钮 sub-line:递减按钮 + + //横向滚动条部分 + list.append(QString("QScrollBar:horizontal{background:%1;padding:%2px;border-radius:%3px;min-height:%4px;max-height:%4px;}") + .arg(bgColor).arg(padding).arg(radius).arg(max)); + list.append(QString("QScrollBar::handle:horizontal{background:%1;min-width:%2px;border-radius:%3px;}") + .arg(handleNormalColor).arg(min).arg(radius)); + list.append(QString("QScrollBar::handle:horizontal:hover{background:%1;}") + .arg(handleHoverColor)); + list.append(QString("QScrollBar::handle:horizontal:pressed{background:%1;}") + .arg(handlePressedColor)); + list.append(QString("QScrollBar::add-page:horizontal{background:none;}")); + list.append(QString("QScrollBar::sub-page:horizontal{background:none;}")); + list.append(QString("QScrollBar::add-line:horizontal{background:none;}")); + list.append(QString("QScrollBar::sub-line:horizontal{background:none;}")); + + //纵向滚动条部分 + list.append(QString("QScrollBar:vertical{background:%1;padding:%2px;border-radius:%3px;min-width:%4px;max-width:%4px;}") + .arg(bgColor).arg(padding).arg(radius).arg(max)); + list.append(QString("QScrollBar::handle:vertical{background:%1;min-height:%2px;border-radius:%3px;}") + .arg(handleNormalColor).arg(min).arg(radius)); + list.append(QString("QScrollBar::handle:vertical:hover{background:%1;}") + .arg(handleHoverColor)); + list.append(QString("QScrollBar::handle:vertical:pressed{background:%1;}") + .arg(handlePressedColor)); + list.append(QString("QScrollBar::add-page:vertical{background:none;}")); + list.append(QString("QScrollBar::sub-page:vertical{background:none;}")); + list.append(QString("QScrollBar::add-line:vertical{background:none;}")); + list.append(QString("QScrollBar::sub-line:vertical{background:none;}")); + + QString qss = list.join(""); + scroll->setStyleSheet(qss); + return qss; +} + + +QChar QUIConfig::IconMain = QChar(0xf072); +QChar QUIConfig::IconMenu = QChar(0xf0d7); +QChar QUIConfig::IconMin = QChar(0xf068); +QChar QUIConfig::IconMax = QChar(0xf2d2); +QChar QUIConfig::IconNormal = QChar(0xf2d0); +QChar QUIConfig::IconClose = QChar(0xf00d); + +#ifdef __arm__ +#ifdef Q_OS_ANDROID +QString QUIConfig::FontName = "Droid Sans Fallback"; +int QUIConfig::FontSize = 15; +#else +QString QUIConfig::FontName = "WenQuanYi Micro Hei"; +int QUIConfig::FontSize = 18; +#endif +#else +QString QUIConfig::FontName = "Microsoft Yahei"; +int QUIConfig::FontSize = 12; +#endif + +QString QUIConfig::TextColor = "#F0F0F0"; +QString QUIConfig::PanelColor = "#F0F0F0"; +QString QUIConfig::BorderColor = "#F0F0F0"; +QString QUIConfig::NormalColorStart = "#F0F0F0"; +QString QUIConfig::NormalColorEnd = "#F0F0F0"; +QString QUIConfig::DarkColorStart = "#F0F0F0"; +QString QUIConfig::DarkColorEnd = "#F0F0F0"; +QString QUIConfig::HighColor = "#F0F0F0"; diff --git a/nettool/api/quiwidget.h b/nettool/api/quiwidget.h new file mode 100644 index 0000000..a571365 --- /dev/null +++ b/nettool/api/quiwidget.h @@ -0,0 +1,871 @@ +#ifndef QUIWIDGET_H +#define QUIWIDGET_H + +#define TIMEMS qPrintable(QTime::currentTime().toString("HH:mm:ss zzz")) +#define TIME qPrintable(QTime::currentTime().toString("HH:mm:ss")) +#define QDATE qPrintable(QDate::currentDate().toString("yyyy-MM-dd")) +#define QTIME qPrintable(QTime::currentTime().toString("HH-mm-ss")) +#define DATETIME qPrintable(QDateTime::currentDateTime().toString("yyyy-MM-dd HH:mm:ss")) +#define STRDATETIME qPrintable(QDateTime::currentDateTime().toString("yyyy-MM-dd-HH-mm-ss")) +#define STRDATETIMEMS qPrintable(QDateTime::currentDateTime().toString("yyyy-MM-dd-HH-mm-ss-zzz")) + +#ifdef Q_OS_WIN +#define NEWLINE "\r\n" +#else +#define NEWLINE "\n" +#endif + +#ifdef __arm__ +#define TitleMinSize 40 +#else +#define TitleMinSize 30 +#endif + +/** + * QUI无边框窗体控件 作者:feiyangqingyun(QQ:517216493) + * 1:内置 N >= 17 套精美样式,可直接切换,也可自定义样式路径 + * 2:可设置部件(左上角图标/最小化按钮/最大化按钮/关闭按钮)的图标或者图片及是否可见 + * 3:可集成设计师插件,直接拖曳使用,所见即所得 + * 4:如果需要窗体可拖动大小,设置 setSizeGripEnabled(true); + * 5:可设置全局样式 setStyle + * 6:可弹出消息框,可选阻塞模式和不阻塞,默认不阻塞 showMessageBoxInfo + * 7:可弹出错误框,可选阻塞模式和不阻塞,默认不阻塞 showMessageBoxError + * 8:可弹出询问框 showMessageBoxError + * 9:可弹出右下角信息框 showTipBox + * 10:可弹出输入框 showInputBox + * 11:可弹出时间范围选择框 showDateSelect + * 12:消息框支持设置倒计时关闭 + * 13:集成图形字体设置方法及根据指定文字获取图片 + * 14:集成设置窗体居中显示/设置翻译文件/设置编码/设置延时/设置系统时间等静态方法 + * 15:集成获取应用程序文件名/文件路径 等方法 + */ + +#include "head.h" + +#ifdef quc +#if (QT_VERSION < QT_VERSION_CHECK(5,7,0)) +#include +#else +#include +#endif + +class QDESIGNER_WIDGET_EXPORT QUIWidget : public QDialog +#else +class QUIWidget : public QDialog +#endif + +{ + Q_OBJECT + Q_ENUMS(Style) + Q_PROPERTY(QString title READ getTitle WRITE setTitle) + Q_PROPERTY(Qt::Alignment alignment READ getAlignment WRITE setAlignment) + Q_PROPERTY(bool minHide READ getMinHide WRITE setMinHide) + Q_PROPERTY(bool exitAll READ getExitAll WRITE setExitAll) + +public: + //将部分对象作为枚举值暴露给外部 + enum Widget { + Lab_Ico = 0, //左上角图标 + BtnMenu = 1, //下拉菜单按钮 + BtnMenu_Min = 2, //最小化按钮 + BtnMenu_Max = 3, //最大化按钮 + BtnMenu_Normal = 4, //还原按钮 + BtnMenu_Close = 5 //关闭按钮 + }; + + //样式枚举 + enum Style { + Style_Silvery = 0, //银色样式 + Style_Blue = 1, //蓝色样式 + Style_LightBlue = 2, //淡蓝色样式 + Style_DarkBlue = 3, //深蓝色样式 + Style_Gray = 4, //灰色样式 + Style_LightGray = 5, //浅灰色样式 + Style_DarkGray = 6, //深灰色样式 + Style_Black = 7, //黑色样式 + Style_LightBlack = 8, //浅黑色样式 + Style_DarkBlack = 9, //深黑色样式 + Style_PSBlack = 10, //PS黑色样式 + Style_FlatBlack = 11, //黑色扁平样式 + Style_FlatWhite = 12, //白色扁平样式 + Style_FlatBlue = 13, //蓝色扁平样式 + Style_Purple = 14, //紫色样式 + Style_BlackBlue = 15, //黑蓝色样式 + Style_BlackVideo = 16 //视频监控黑色样式 + }; + +public: + explicit QUIWidget(QWidget *parent = 0); + ~QUIWidget(); + +protected: + bool eventFilter(QObject *watched, QEvent *event); + +private: + QVBoxLayout *verticalLayout1; + QWidget *widgetMain; + QVBoxLayout *verticalLayout2; + QWidget *widgetTitle; + QHBoxLayout *horizontalLayout4; + QLabel *labIco; + QLabel *labTitle; + QWidget *widgetMenu; + QHBoxLayout *horizontalLayout; + QToolButton *btnMenu; + QPushButton *btnMenu_Min; + QPushButton *btnMenu_Max; + QPushButton *btnMenu_Close; + QWidget *widget; + QVBoxLayout *verticalLayout3; + +private: + QString title; //标题 + Qt::Alignment alignment; //标题文本对齐 + bool minHide; //最小化隐藏 + bool exitAll; //退出整个程序 + QWidget *mainWidget; //主窗体对象 + +public: + QLabel *getLabIco() const; + QLabel *getLabTitle() const; + QToolButton *getBtnMenu() const; + QPushButton *getBtnMenuMin() const; + QPushButton *getBtnMenuMax() const; + QPushButton *getBtnMenuMClose() const; + + QString getTitle() const; + Qt::Alignment getAlignment() const; + bool getMinHide() const; + bool getExitAll() const; + + QSize sizeHint() const; + QSize minimumSizeHint() const; + +private slots: + void initControl(); //初始化控件 + void initForm(); //初始化窗体 + void changeStyle(); //更换样式 + +private slots: + void on_btnMenu_Min_clicked(); + void on_btnMenu_Max_clicked(); + void on_btnMenu_Close_clicked(); + +public Q_SLOTS: + //设置部件图标 + void setIcon(QUIWidget::Widget widget, const QChar &str, quint32 size = 12); + void setIconMain(const QChar &str, quint32 size = 12); + //设置部件图片 + void setPixmap(QUIWidget::Widget widget, const QString &file, const QSize &size = QSize(16, 16)); + //设置部件是否可见 + void setVisible(QUIWidget::Widget widget, bool visible = true); + //设置只有关闭按钮 + void setOnlyCloseBtn(); + + //设置标题栏高度 + void setTitleHeight(int height); + //设置按钮统一宽度 + void setBtnWidth(int width); + + //设置标题及文本样式 + void setTitle(const QString &title); + void setAlignment(Qt::Alignment alignment); + + //设置最小化隐藏 + void setMinHide(bool minHide); + + //设置退出时候直接退出整个应用程序 + void setExitAll(bool exitAll); + + //设置主窗体 + void setMainWidget(QWidget *mainWidget); + +Q_SIGNALS: + void changeStyle(const QString &qssFile); + void closing(); +}; + +//弹出信息框类 +class QUIMessageBox : public QDialog +{ + Q_OBJECT + +public: + static QUIMessageBox *Instance(); + explicit QUIMessageBox(QWidget *parent = 0); + ~QUIMessageBox(); + +protected: + void closeEvent(QCloseEvent *); + bool eventFilter(QObject *watched, QEvent *event); + +private: + static QScopedPointer self; + + QVBoxLayout *verticalLayout1; + QWidget *widgetTitle; + QHBoxLayout *horizontalLayout3; + QLabel *labIco; + QLabel *labTitle; + QLabel *labTime; + QWidget *widgetMenu; + QHBoxLayout *horizontalLayout4; + QPushButton *btnMenu_Close; + QWidget *widgetMain; + QVBoxLayout *verticalLayout2; + QFrame *frame; + QVBoxLayout *verticalLayout4; + QHBoxLayout *horizontalLayout1; + QLabel *labIcoMain; + QSpacerItem *horizontalSpacer1; + QLabel *labInfo; + QHBoxLayout *horizontalLayout2; + QSpacerItem *horizontalSpacer2; + QPushButton *btnOk; + QPushButton *btnCancel; + +private: + int closeSec; //总显示时间 + int currentSec; //当前已显示时间 + +private slots: + void initControl(); //初始化控件 + void initForm(); //初始化窗体 + void checkSec(); //校验倒计时 + +private slots: + void on_btnOk_clicked(); + void on_btnMenu_Close_clicked(); + +public Q_SLOTS: + void setIconMain(const QChar &str, quint32 size = 12); + void setMessage(const QString &msg, int type, int closeSec = 0); +}; + +//右下角弹出框类 +class QUITipBox : public QDialog +{ + Q_OBJECT + +public: + static QUITipBox *Instance(); + explicit QUITipBox(QWidget *parent = 0); + ~QUITipBox(); + +protected: + void closeEvent(QCloseEvent *); + bool eventFilter(QObject *watched, QEvent *event); + +private: + static QScopedPointer self; + + QVBoxLayout *verticalLayout; + QWidget *widgetTitle; + QHBoxLayout *horizontalLayout2; + QLabel *labIco; + QLabel *labTitle; + QLabel *labTime; + QWidget *widgetMenu; + QHBoxLayout *horizontalLayout; + QPushButton *btnMenu_Close; + QWidget *widgetMain; + QVBoxLayout *verticalLayout2; + QLabel *labInfo; + + QPropertyAnimation *animation; + bool fullScreen; + +private: + int closeSec; //总显示时间 + int currentSec; //当前已显示时间 + +private slots: + void initControl(); //初始化控件 + void initForm(); //初始化窗体 + void checkSec(); //校验倒计时 + +private slots: + void on_btnMenu_Close_clicked(); + +public Q_SLOTS: + void setIconMain(const QChar &str, quint32 size = 12); + void setTip(const QString &title, const QString &tip, bool fullScreen = false, bool center = true, int closeSec = 0); + void hide(); +}; + + +//弹出输入框类 +class QUIInputBox : public QDialog +{ + Q_OBJECT + +public: + static QUIInputBox *Instance(); + explicit QUIInputBox(QWidget *parent = 0); + ~QUIInputBox(); + +protected: + void showEvent(QShowEvent *); + void closeEvent(QCloseEvent *); + bool eventFilter(QObject *watched, QEvent *event); + +private: + static QScopedPointer self; + + QVBoxLayout *verticalLayout1; + QWidget *widgetTitle; + QHBoxLayout *horizontalLayout1; + QLabel *labIco; + QLabel *labTitle; + QLabel *labTime; + QWidget *widgetMenu; + QHBoxLayout *horizontalLayout2; + QPushButton *btnMenu_Close; + QWidget *widgetMain; + QVBoxLayout *verticalLayout2; + QFrame *frame; + QVBoxLayout *verticalLayout3; + QLabel *labInfo; + QLineEdit *txtValue; + QComboBox *cboxValue; + QHBoxLayout *lay; + QSpacerItem *horizontalSpacer; + QPushButton *btnOk; + QPushButton *btnCancel; + +private: + int closeSec; //总显示时间 + int currentSec; //当前已显示时间 + QString value; //当前值 + +private slots: + void initControl(); //初始化控件 + void initForm(); //初始化窗体 + void checkSec(); //校验倒计时 + +private slots: + void on_btnOk_clicked(); + void on_btnMenu_Close_clicked(); + +public: + QString getValue()const; + +public Q_SLOTS: + void setIconMain(const QChar &str, quint32 size = 12); + void setParameter(const QString &title, int type = 0, int closeSec = 0, + QString placeholderText = QString(), bool pwd = false, + const QString &defaultValue = QString()); + +}; + +//弹出日期选择对话框 +class QUIDateSelect : public QDialog +{ + Q_OBJECT + +public: + static QUIDateSelect *Instance(); + explicit QUIDateSelect(QWidget *parent = 0); + ~QUIDateSelect(); + +protected: + bool eventFilter(QObject *watched, QEvent *event); + +private: + static QScopedPointer self; + + QVBoxLayout *verticalLayout; + QWidget *widgetTitle; + QHBoxLayout *horizontalLayout1; + QLabel *labIco; + QLabel *labTitle; + QWidget *widgetMenu; + QHBoxLayout *horizontalLayout; + QPushButton *btnMenu_Close; + QWidget *widgetMain; + QVBoxLayout *verticalLayout1; + QFrame *frame; + QGridLayout *gridLayout; + QLabel *labStart; + QPushButton *btnOk; + QLabel *labEnd; + QPushButton *btnClose; + QDateTimeEdit *dateStart; + QDateTimeEdit *dateEnd; + +private: + QString startDateTime; //开始时间 + QString endDateTime; //结束时间 + QString format; //日期时间格式 + +private slots: + void initControl(); //初始化控件 + void initForm(); //初始化窗体 + +private slots: + void on_btnOk_clicked(); + void on_btnMenu_Close_clicked(); + +public: + //获取当前选择的开始时间和结束时间 + QString getStartDateTime() const; + QString getEndDateTime() const; + +public Q_SLOTS: + void setIconMain(const QChar &str, quint32 size = 12); + void setFormat(const QString &format); + +}; + +//图形字体处理类 +class IconHelper : public QObject +{ + Q_OBJECT + +public: + static IconHelper *Instance(); + explicit IconHelper(QObject *parent = 0); + + //获取图形字体 + QFont getIconFont(); + + //设置图形字体到标签 + void setIcon(QLabel *lab, const QChar &str, quint32 size = 12); + //设置图形字体到按钮 + void setIcon(QAbstractButton *btn, const QChar &str, quint32 size = 12); + + //获取指定图形字体,可以指定文字大小,图片宽高,文字对齐 + QPixmap getPixmap(const QColor &color, const QChar &str, quint32 size = 12, + quint32 pixWidth = 15, quint32 pixHeight = 15, + int flags = Qt::AlignCenter); + + //根据按钮获取该按钮对应的图标 + QPixmap getPixmap(QToolButton *btn, bool normal); + QPixmap getPixmap(QToolButton *btn, int type); + + //指定QFrame导航按钮样式,带图标 + void setStyle(QFrame *frame, QList btns, QList pixChar, + quint32 iconSize = 12, quint32 iconWidth = 15, quint32 iconHeight = 15, + const QString &normalBgColor = "#2FC5A2", + const QString &darkBgColor = "#3EA7E9", + const QString &normalTextColor = "#EEEEEE", + const QString &darkTextColor = "#FFFFFF"); + + //指定导航面板样式,不带图标 + static void setStyle(QWidget *widget, const QString &type = "left", int borderWidth = 3, + const QString &borderColor = "#029FEA", + const QString &normalBgColor = "#292F38", + const QString &darkBgColor = "#1D2025", + const QString &normalTextColor = "#54626F", + const QString &darkTextColor = "#FDFDFD"); + + //移除导航面板样式,防止重复 + void removeStyle(QList btns); + + //指定QWidget导航面板样式,带图标和效果切换 + void setStyle(QWidget *widget, QList btns, QList pixChar, + quint32 iconSize = 12, quint32 iconWidth = 15, quint32 iconHeight = 15, + const QString &type = "left", int borderWidth = 3, + const QString &borderColor = "#029FEA", + const QString &normalBgColor = "#292F38", + const QString &darkBgColor = "#1D2025", + const QString &normalTextColor = "#54626F", + const QString &darkTextColor = "#FDFDFD"); + + struct StyleColor { + quint32 iconSize; + quint32 iconWidth; + quint32 iconHeight; + quint32 borderWidth; + QString type; + QString borderColor; + QString normalBgColor; + QString normalTextColor; + QString hoverBgColor; + QString hoverTextColor; + QString pressedBgColor; + QString pressedTextColor; + QString checkedBgColor; + QString checkedTextColor; + + StyleColor() + { + iconSize = 12; + iconWidth = 15; + iconHeight = 15; + borderWidth = 3; + type = "left"; + borderColor = "#029FEA"; + normalBgColor = "#292F38"; + normalTextColor = "#54626F"; + hoverBgColor = "#40444D"; + hoverTextColor = "#FDFDFD"; + pressedBgColor = "#404244"; + pressedTextColor = "#FDFDFD"; + checkedBgColor = "#44494F"; + checkedTextColor = "#FDFDFD"; + } + }; + + //指定QWidget导航面板样式,带图标和效果切换+悬停颜色+按下颜色+选中颜色 + void setStyle(QWidget *widget, QList btns, QList pixChar, const StyleColor &styleColor); + +protected: + bool eventFilter(QObject *watched, QEvent *event); + +private: + static QScopedPointer self; + + QFont iconFont; //图形字体 + QList btns; //按钮队列 + QList pixNormal; //正常图片队列 + QList pixDark; //加深图片队列 + QList pixHover; //悬停图片队列 + QList pixPressed; //按下图片队列 + QList pixChecked; //选中图片队列 +}; + +//托盘图标类 +class TrayIcon : public QObject +{ + Q_OBJECT +public: + static TrayIcon *Instance(); + explicit TrayIcon(QObject *parent = 0); + +private: + static QScopedPointer self; + + QWidget *mainWidget; //对应所属主窗体 + QSystemTrayIcon *trayIcon; //托盘对象 + QMenu *menu; //右键菜单 + bool exitDirect; //是否直接退出 + +private slots: + void iconIsActived(QSystemTrayIcon::ActivationReason reason); + +public Q_SLOTS: + //设置是否直接退出,如果不是直接退出则发送信号给主界面 + void setExitDirect(bool exitDirect); + + //设置所属主窗体 + void setMainWidget(QWidget *mainWidget); + + //显示消息 + void showMessage(const QString &title, const QString &msg, + QSystemTrayIcon::MessageIcon icon = QSystemTrayIcon::Information, int msecs = 5000); + + //设置图标 + void setIcon(const QString &strIcon); + //设置提示信息 + void setToolTip(const QString &tip); + //设置是否可见 + void setVisible(bool visible); + //退出所有 + void closeAll(); + +Q_SIGNALS: + void trayIconExit(); +}; + + +//全局静态方法类 +class QUIHelper : public QObject +{ + Q_OBJECT +public: + //桌面宽度高度 + static int deskWidth(); + static int deskHeight(); + + //程序本身文件名称 + static QString appName(); + //程序当前所在路径 + static QString appPath(); + + //初始化随机数种子 + static void initRand(); + + //初始化数据库 + static void initDb(const QString &dbName); + //初始化文件,不存在则拷贝 + static void initFile(const QString &sourceName, const QString &targetName); + + //新建目录 + static void newDir(const QString &dirName); + + //写入消息到额外的的消息日志文件 + static void writeInfo(const QString &info, const QString &filePath = "log"); + static void writeError(const QString &info, const QString &filePath = "log"); + + //设置全局样式 + static void setStyle(QUIWidget::Style style); + static void setStyle(const QString &qssFile, QString &paletteColor, QString &textColor); + static void setStyle(const QString &qssFile, QString &textColor, + QString &panelColor, QString &borderColor, + QString &normalColorStart, QString &normalColorEnd, + QString &darkColorStart, QString &darkColorEnd, + QString &highColor); + + //根据QSS样式获取对应颜色值 + static void getQssColor(const QString &qss, QString &textColor, + QString &panelColor, QString &borderColor, + QString &normalColorStart, QString &normalColorEnd, + QString &darkColorStart, QString &darkColorEnd, + QString &highColor); + + //九宫格图片 horzSplit-宫格1/3/7/9宽度 vertSplit-宫格1/3/7/9高度 dstWidth-目标图片宽度 dstHeight-目标图片高度 + static QPixmap ninePatch(const QString &picName, int horzSplit, int vertSplit, int dstWidth, int dstHeight); + static QPixmap ninePatch(const QPixmap &pix, int horzSplit, int vertSplit, int dstWidth, int dstHeight); + + //设置标签颜色 + static void setLabStyle(QLabel *lab, quint8 type); + + //设置窗体居中显示 + static void setFormInCenter(QWidget *frm); + //设置翻译文件 + static void setTranslator(const QString &qmFile = ":/image/qt_zh_CN.qm"); + //设置编码 + static void setCode(); + //设置延时 + static void sleep(int msec); + //设置系统时间 + static void setSystemDateTime(const QString &year, const QString &month, const QString &day, + const QString &hour, const QString &min, const QString &sec); + //设置开机自启动 + static void runWithSystem(const QString &strName, const QString &strPath, bool autoRun = true); + + //判断是否是IP地址 + static bool isIP(const QString &ip); + + //判断是否是MAC地址 + static bool isMac(const QString &mac); + + //判断是否是合法的电话号码 + static bool isTel(const QString &tel); + + //判断是否是合法的邮箱地址 + static bool isEmail(const QString &email); + + + //16进制字符串转10进制 + static int strHexToDecimal(const QString &strHex); + + //10进制字符串转10进制 + static int strDecimalToDecimal(const QString &strDecimal); + + //2进制字符串转10进制 + static int strBinToDecimal(const QString &strBin); + + //16进制字符串转2进制字符串 + static QString strHexToStrBin(const QString &strHex); + + //10进制转2进制字符串一个字节 + static QString decimalToStrBin1(int decimal); + + //10进制转2进制字符串两个字节 + static QString decimalToStrBin2(int decimal); + + //10进制转16进制字符串,补零. + static QString decimalToStrHex(int decimal); + + + //int转字节数组 + static QByteArray intToByte(int i); + static QByteArray intToByteRec(int i); + + //字节数组转int + static int byteToInt(const QByteArray &data); + static int byteToIntRec(const QByteArray &data); + static quint32 byteToUInt(const QByteArray &data); + static quint32 byteToUIntRec(const QByteArray &data); + + //ushort转字节数组 + static QByteArray ushortToByte(ushort i); + static QByteArray ushortToByteRec(ushort i); + + //字节数组转ushort + static int byteToUShort(const QByteArray &data); + static int byteToUShortRec(const QByteArray &data); + + //异或加密算法 + static QString getXorEncryptDecrypt(const QString &str, char key); + + //异或校验 + static uchar getOrCode(const QByteArray &data); + + //计算校验码 + static uchar getCheckCode(const QByteArray &data); + + //字符串补全 + static QString getValue(quint8 value); + + //CRC校验 + static quint16 getRevCrc_16(quint8 *data, int len, quint16 init, const quint16 *table); + static quint16 getCrc_16(quint8 *data, int len, quint16 init, const quint16 *table); + static quint16 getModbus16(quint8 *data, int len); + static QByteArray getCRCCode(const QByteArray &data); + + + //字节数组转Ascii字符串 + static QString byteArrayToAsciiStr(const QByteArray &data); + + //16进制字符串转字节数组 + static QByteArray hexStrToByteArray(const QString &str); + static char convertHexChar(char ch); + + //Ascii字符串转字节数组 + static QByteArray asciiStrToByteArray(const QString &str); + + //字节数组转16进制字符串 + static QString byteArrayToHexStr(const QByteArray &data); + + //获取保存的文件 + static QString getSaveName(const QString &filter, QString defaultDir = QCoreApplication::applicationDirPath()); + + //获取选择的文件 + static QString getFileName(const QString &filter, QString defaultDir = QCoreApplication::applicationDirPath()); + + //获取选择的文件集合 + static QStringList getFileNames(const QString &filter, QString defaultDir = QCoreApplication::applicationDirPath()); + + //获取选择的目录 + static QString getFolderName(); + + //获取文件名,含拓展名 + static QString getFileNameWithExtension(const QString &strFilePath); + + //获取选择文件夹中的文件 + static QStringList getFolderFileNames(const QStringList &filter); + + //文件夹是否存在 + static bool folderIsExist(const QString &strFolder); + + //文件是否存在 + static bool fileIsExist(const QString &strFile); + + //复制文件 + static bool copyFile(const QString &sourceFile, const QString &targetFile); + + //删除文件夹下所有文件 + static void deleteDirectory(const QString &path); + + //判断IP地址及端口是否在线 + static bool ipLive(const QString &ip, int port, int timeout = 1000); + + //获取网页所有源代码 + static QString getHtml(const QString &url); + + //获取本机公网IP地址 + static QString getNetIP(const QString &webCode); + + //获取本机IP + static QString getLocalIP(); + + //Url地址转为IP地址 + static QString urlToIP(const QString &url); + + //判断是否通外网 + static bool isWebOk(); + + + //弹出消息框 + static void showMessageBoxInfo(const QString &info, int closeSec = 0, bool exec = false); + //弹出错误框 + static void showMessageBoxError(const QString &info, int closeSec = 0, bool exec = false); + //弹出询问框 + static int showMessageBoxQuestion(const QString &info); + + //弹出+隐藏右下角信息框 + static void showTipBox(const QString &title, const QString &tip, bool fullScreen = false, + bool center = true, int closeSec = 0); + static void hideTipBox(); + + //弹出输入框 + static QString showInputBox(const QString &title, int type = 0, int closeSec = 0, + const QString &placeholderText = QString(), bool pwd = false, + const QString &defaultValue = QString()); + + //弹出日期选择框 + static void showDateSelect(QString &dateStart, QString &dateEnd, const QString &format = "yyyy-MM-dd"); + + + //设置按钮样式 + static QString setPushButtonQss(QPushButton *btn, //按钮对象 + int radius = 5, //圆角半径 + int padding = 8, //间距 + const QString &normalColor = "#34495E", //正常颜色 + const QString &normalTextColor = "#FFFFFF", //文字颜色 + const QString &hoverColor = "#4E6D8C", //悬停颜色 + const QString &hoverTextColor = "#F0F0F0", //悬停文字颜色 + const QString &pressedColor = "#2D3E50", //按下颜色 + const QString &pressedTextColor = "#B8C6D1"); //按下文字颜色 + + //设置文本框样式 + static QString setLineEditQss(QLineEdit *txt, //文本框对象 + int radius = 3, //圆角半径 + int borderWidth = 2, //边框大小 + const QString &normalColor = "#DCE4EC", //正常颜色 + const QString &focusColor = "#34495E"); //选中颜色 + + //设置进度条样式 + static QString setProgressBarQss(QProgressBar *bar, + int barHeight = 8, //进度条高度 + int barRadius = 5, //进度条半径 + int fontSize = 9, //文字字号 + const QString &normalColor = "#E8EDF2", //正常颜色 + const QString &chunkColor = "#E74C3C"); //进度颜色 + + //设置滑块条样式 + static QString setSliderQss(QSlider *slider, //滑动条对象 + int sliderHeight = 8, //滑动条高度 + const QString &normalColor = "#E8EDF2", //正常颜色 + const QString &grooveColor = "#1ABC9C", //滑块颜色 + const QString &handleBorderColor = "#1ABC9C", //指示器边框颜色 + const QString &handleColor = "#FFFFFF", //指示器颜色 + const QString &textColor = "#000000"); //文字颜色 + + //设置单选框样式 + static QString setRadioButtonQss(QRadioButton *rbtn, //单选框对象 + int indicatorRadius = 8, //指示器圆角角度 + const QString &normalColor = "#D7DBDE", //正常颜色 + const QString &checkColor = "#34495E"); //选中颜色 + + //设置滚动条样式 + static QString setScrollBarQss(QWidget *scroll, //滚动条对象 + int radius = 6, //圆角角度 + int min = 120, //指示器最小长度 + int max = 12, //滚动条最大长度 + const QString &bgColor = "#606060", //背景色 + const QString &handleNormalColor = "#34495E", //指示器正常颜色 + const QString &handleHoverColor = "#1ABC9C", //指示器悬停颜色 + const QString &handlePressedColor = "#E74C3C"); //指示器按下颜色 +}; + +//全局变量控制 +class QUIConfig +{ +public: + //全局图标 + static QChar IconMain; //标题栏左上角图标 + static QChar IconMenu; //下拉菜单图标 + static QChar IconMin; //最小化图标 + static QChar IconMax; //最大化图标 + static QChar IconNormal; //还原图标 + static QChar IconClose; //关闭图标 + + static QString FontName; //全局字体名称 + static int FontSize; //全局字体大小 + + //样式表颜色值 + static QString TextColor; //文字颜色 + static QString PanelColor; //面板颜色 + static QString BorderColor; //边框颜色 + static QString NormalColorStart;//正常状态开始颜色 + static QString NormalColorEnd; //正常状态结束颜色 + static QString DarkColorStart; //加深状态开始颜色 + static QString DarkColorEnd; //加深状态结束颜色 + static QString HighColor; //高亮颜色 +}; + +#endif // QUIWIDGET_H diff --git a/nettool/api/tcpserver.cpp b/nettool/api/tcpserver.cpp new file mode 100644 index 0000000..9dd7490 --- /dev/null +++ b/nettool/api/tcpserver.cpp @@ -0,0 +1,163 @@ +#include "tcpserver.h" +#include "quiwidget.h" + +TcpClient::TcpClient(QObject *parent) : QTcpSocket(parent) +{ + ip = "127.0.0.1"; + port = 6000; + + connect(this, SIGNAL(error(QAbstractSocket::SocketError)), this, SLOT(deleteLater())); + connect(this, SIGNAL(disconnected()), this, SLOT(deleteLater())); + connect(this, SIGNAL(readyRead()), this, SLOT(readData())); +} + +void TcpClient::setIP(const QString &ip) +{ + this->ip = ip; +} + +QString TcpClient::getIP() const +{ + return this->ip; +} + +void TcpClient::setPort(int port) +{ + this->port = port; +} + +int TcpClient::getPort() const +{ + return this->port; +} + +void TcpClient::readData() +{ + QByteArray data = this->readAll(); + if (data.length() <= 0) { + return; + } + + QString buffer; + if (App::HexReceiveTcpServer) { + buffer = QUIHelper::byteArrayToHexStr(data); + } else if (App::AsciiTcpServer) { + buffer = QUIHelper::byteArrayToAsciiStr(data); + } else { + buffer = QString(data); + } + + emit receiveData(ip, port, buffer); + + //自动回复数据,可以回复的数据是以;隔开,每行可以带多个;所以这里不需要继续判断 + if (App::DebugTcpServer) { + int count = App::Keys.count(); + for (int i = 0; i < count; i++) { + if (App::Keys.at(i) == buffer) { + sendData(App::Values.at(i)); + break; + } + } + } +} + +void TcpClient::sendData(const QString &data) +{ + QByteArray buffer; + if (App::HexSendTcpServer) { + buffer = QUIHelper::hexStrToByteArray(data); + } else if (App::AsciiTcpServer) { + buffer = QUIHelper::asciiStrToByteArray(data); + } else { + buffer = data.toLatin1(); + } + + this->write(buffer); + emit sendData(ip, port, data); +} + +TcpServer::TcpServer(QObject *parent) : QTcpServer(parent) +{ +} + +void TcpServer::incomingConnection(int handle) +{ + TcpClient *client = new TcpClient(this); + client->setSocketDescriptor(handle); + connect(client, SIGNAL(disconnected()), this, SLOT(disconnected())); + connect(client, SIGNAL(sendData(QString, int, QString)), this, SIGNAL(sendData(QString, int, QString))); + connect(client, SIGNAL(receiveData(QString, int, QString)), this, SIGNAL(receiveData(QString, int, QString))); + + QString ip = client->peerAddress().toString(); + int port = client->peerPort(); + client->setIP(ip); + client->setPort(port); + emit clientConnected(ip, port); + emit sendData(ip, port, "客户端上线"); + + //连接后加入链表 + clients.append(client); +} + +void TcpServer::disconnected() +{ + TcpClient *client = (TcpClient *)sender(); + QString ip = client->getIP(); + int port = client->getPort(); + emit clientDisconnected(ip, port); + emit sendData(ip, port, "客户端下线"); + + //断开连接后从链表中移除 + clients.removeOne(client); +} + +bool TcpServer::start() +{ +#if (QT_VERSION > QT_VERSION_CHECK(5,0,0)) + bool ok = listen(QHostAddress::AnyIPv4, App::TcpListenPort); +#else + bool ok = listen(QHostAddress::Any, App::TcpListenPort); +#endif + + return ok; +} + +void TcpServer::stop() +{ + remove(); + this->close(); +} + +void TcpServer::writeData(const QString &ip, int port, const QString &data) +{ + foreach (TcpClient *client, clients) { + if (client->peerAddress().toString() == ip && client->peerPort() == port) { + client->sendData(data); + break; + } + } +} + +void TcpServer::writeData(const QString &data) +{ + foreach (TcpClient *client, clients) { + client->sendData(data); + } +} + +void TcpServer::remove(const QString &ip, int port) +{ + foreach (TcpClient *client, clients) { + if (client->peerAddress().toString() == ip && client->peerPort() == port) { + client->disconnectFromHost(); + break; + } + } +} + +void TcpServer::remove() +{ + foreach (TcpClient *client, clients) { + client->disconnectFromHost(); + } +} diff --git a/nettool/api/tcpserver.h b/nettool/api/tcpserver.h new file mode 100644 index 0000000..b650b6d --- /dev/null +++ b/nettool/api/tcpserver.h @@ -0,0 +1,75 @@ +#ifndef TCPSERVER_H +#define TCPSERVER_H + +#include + +class TcpClient : public QTcpSocket +{ + Q_OBJECT +public: + explicit TcpClient(QObject *parent = 0); + +private: + QString ip; + int port; + +public: + void setIP(const QString &ip); + QString getIP()const; + + void setPort(int port); + int getPort()const; + +private slots: + void readData(); + +signals: + void sendData(const QString &ip, int port, const QString &data); + void receiveData(const QString &ip, int port, const QString &data); + +public slots: + void sendData(const QString &data); + +}; + +class TcpServer : public QTcpServer +{ + Q_OBJECT +public: + explicit TcpServer(QObject *parent = 0); + +private: + QList clients; + +protected: + void incomingConnection(int handle); + +private slots: + void disconnected(); + +signals: + void sendData(const QString &ip, int port, const QString &data); + void receiveData(const QString &ip, int port, const QString &data); + + void clientConnected(const QString &ip, int port); + void clientDisconnected(const QString &ip, int port); + +public slots: + //启动服务 + bool start(); + //停止服务 + void stop(); + + //指定连接发送数据 + void writeData(const QString &ip, int port, const QString &data); + //对所有连接发送数据 + void writeData(const QString &data); + + //断开指定连接 + void remove(const QString &ip, int port); + //断开所有连接 + void remove(); + +}; + +#endif // TCPSERVER_H diff --git a/nettool/file/device.txt b/nettool/file/device.txt new file mode 100644 index 0000000..47b4650 --- /dev/null +++ b/nettool/file/device.txt @@ -0,0 +1,20 @@ +2015;\NUL2015 +666;667 +3001P;301PST1:hehe'2:P2'3:P3' +3002P;301PST +3003P;301PST +3004P;301PST +3005P;301PST +326;00110 +320;00101 +330010;00101 +331;332001 +568X;5691:0 +5700;5710:10:1;2;3 +330051;00101 +112P001000I1';113P001100I1'101I1'102B0'103B0'106B0'107I0'108I1'109I0'110R1.750000'111R6.300000'112R1.500000'113R3.100000'114R4.500000'115R1.050000'116R7.000000'117R9999.000000'118I0'119R3.500000'120R1.750000'121I1'122I0'123I0'124I70'130I1000'131I8000'132I1500'133I10000'134I10'135I5'136I20'137I40'140R0.000000'105B1'138I700'104I0'125I0'126I9999'141R0.200000'142R0.200000'143R0.000000'144R30.000000'150I1'151I10'152B0'153I0'160I0'200B0'210B0'211I1'212I1'213R1.050000'214R9999.000000'220B0'221I0'222I1'223I1'224R1.050000'225R7.000000'230B0'240I0'241B1'242B0'243B0'244B0'245R100.000000'246B0'260R0.000000'261I0'262I0'263I50'264I0'280B0'281R1.050000'282I9999'283I1'284R7.000000'285I1'286I1'290I0'291R9999.000000'292R9999.000000'293I10'294I150'295I0'402Shehe'406I1433082933'500R0.000000'501R9999.000000'502I4'503I10'504I1'505I30'506B0'510R0.000000'511R9999.000000'512R0.000000'513R9999.000000'514R0.000000'515R0.000000'507B0'520I0'521I9999'522I0'523I9999'524I0'525I0'508B0'560R0.000000'561R9999.000000'562R0.000000'563R9999.000000'564R0.000000'565R0.000000'530I0'531I9999'532I0'533I9999'534I0'535I0'540R0.000000'541R9999.000000'542R0.000000'543R9999.000000'544R0.000000'545R0.000000'550R0.000000'551R9999.000000'552R0.000000'553R9999.000000'554R0.000000'555R0.000000' +302P001;00101 +002;003\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL +112R000;113R001100R2.530000'101I1'102I23'103I1'104I0'105I0'106I3'107B1'108I0'109I2'110R0.000000'111I1'116R0.000000'117R0.000000'118I1'120I0'121I1'122R0.000000'123I1'300I186'301S2015-06-01'302S15:53:56'303S'305S359194'311I0'312I0'313I0'314I1'319I0'340I1'341I0'351SGUT'360S'361S'362S' +126;123G100I00186'101S2015-06-01'102S15:53:56'103S'104S0'105S359194'106I00000'107I00000'110I00000'111I00000'112I00000'113I00000'114I00001'115I00000'116I00000'200I00003'201R00001.50'202I00000'203I01060'204I1638400'205I00001'206R00002.50'210R00002.20'211R00002.80'212R00000.00'213R00000.00'214R00000.42'215R09999.00'216R00000.42'217R00002.80'218R00000.00'219R00000.00'230R00000.42'231R00002.80'232R00002.53';\ETX\xA6\EOT]\ENQI\ACK{\x08\ETX\x07\xB0\ENQ\xEA\NUL\xD8\xFF\x9F\xFF\x7F\xFF\xC3\xFF\xFC\xFF\x10\xFF\xC1\NUL\EOT\xFF\xFC\NUL\CR\SOH\CR\SOH\xB4\SOH\xC2\SOH\xC8\SOH\xC8\SOH\xA6\SOH\x94\SOH\xA8\SOH\xC6\SOH\xD8\SOH\xDC\SOH\xDA\SOH\xD8\SOH\xDA\SOH\xDA\SOH\xDC\SOH\xDC\SOH\xE4\SOH\xEC\SOH\xF4\STX\NUL\STX\LF\STX\x12\STX\x12\STX\x16\STX\x14\STX\x10\STX\x08\SOH\xE8\SOH\x98\SOH-\NUL\xE1\NUL\xA2\NUL\x86\NUL\x86\NUL\x96\NUL\xA8\NUL\xBF\NUL\xDD\NUL\xFF\SOH\x1D\SOH?\SOH_\SOHz\SOH\x98\SOH\xB4\SOH\xCC\SOH\xE4\SOH\xFA\STX\NUL\STX\ACK\STX\x08\STX\x0C\STX\ACK\STX\STX\SOH\xFE\SOH\xF6\SOH\xF4\SOH\xF6\SOH\xFA\STX\STX\STX\x0E\STX\x16\STX\x19\STX\x19\STX\ESC\STX\x1F\STX\x1F\STX\ESC\STX\x14\STX\x12\STX\x16\STX\ESC\STX%\STX3\STXA\STXC\STXG\STXM\STXO\STXO\STXO\STXO\STXO\STXU\STXU\STX]\STXe\STXq\STXw\STXy\STX\x7F\STX\x7F\STX\x81\STX\x85\STX\x83\STX\x83\STX\x87\STX\x8B\STX\x95\STX\xA7\STX\xBB\STX\xCE\STX\xD8\STX\xE6\STX\xF8\ETX\x10\ETX$\ETX:\ETXP\ETXn\ETX\x8F\ETX\xB3\ETX\xDD\EOT\x07\EOT+\EOTN\EOTh\EOT\x84\EOT\xA0\EOT\xBA\EOT\xD4\EOT\xE7\EOT\xF9\ENQ\x0F\ENQ)\ENQG\ENQi\ENQ\x95\ENQ\xB4\ENQ\xD0\ENQ\xEC\ACK\x0C\ACK(\ACKF\ACK[\ACKm\ACK}\ACK\x93\ACK\xA3\ACK\xBD\ACK\xDD\x07\STX\x07"\x07D\x07h\x07\x86\x07\x9E\x07\xB7\x07\xC7\x07\xD5\x07\xE5\x07\xFB\x08\ESC\x08C\x08p\x08\x8E\x08\xA6\x08\xB8\x08\xC2\x08\xCC\x08\xDA\x08\xE6\x08\xF4\x09\ACK\x09\x19\x09-\x09G\x09c\x09y\x09\x8B\x09\xA3\x09\xB9\x09\xC8\x09\xDA\x09\xE8\x09\xF8\LF\x10\LF(\LFB\LF^\LF\x81\LF\x9D\LF\xB3\LF\xCB\LF\xE5\LF\xFD\x0B\x13\x0B,\x0B>\x0BX\x0Br\x0B\x90\x0B\xAE\x0B\xCC\x0B\xED\x0C\x09\x0C%\x0CE\x0Ce\x0C}\x0C\x92\x0C\xA8\x0C\xBC\x0C\xD4\x0C\xEE\CR\x0C\CR,\CRO\CRk\CR\x87\CR\xA3\CR\xBD\CR\xD5\CR\xF0\x0E\ACK\x0E\x1C\x0E4\x0ER\x0En\x0E\x90\x0E\xB9\x0E\xDF\x0E\xFF\x0F\x1D\x0F?\x0F%\x0E\xB6\CR\xC3\x0C\x1F\LF:\x08e\ACK\xD3\ENQ\xA3\ENQ\x11\ENQE\ACK$\x07`\x08\x8F\x09}\LF\x12\LFV\LFb\LFH\LF\x16\x09\xDA\x09\x9D\x09k\x09C\x09\x16\x08\xF0\x08\xD8\x08\xC4\x08\xB4\x08\xAE\x08\xAE\x08\xB4\x08\xC0\x08\xC4\x08\xC2\x08\xB2\x08\xA4\x08\x94\x08x\x08Q\x08)\x07\xFB\x07\xD1\x07\xB3\x07\x98\x07\x82\x07h\x07N\x07B\x07B\x07D\x07@\x074\x07$\x07\x12\ACK\xF9\ACK\xDD\ACK\xBF\ACK\xA5\ACK\x93\ACK\x87\ACKy\ACKi\ACK[\ACKM\ACK:\ACK$\ACK\x08\ENQ\xE4\ENQ\xCC\ENQ\xB6\ENQ\xA0\ENQ\x83\ENQk\ENQY\ENQM\ENQM\ENQM\ENQK\ENQE\ENQA\ENQ?\ENQ5\ENQ%\ENQ\x11\ENQ\SOH\EOT\xF7\EOT\xEB\EOT\xE7\EOT\xE7\EOT\xED\EOT\xED\EOT\xEB\EOT\xE3\EOT\xD6\EOT\xCE\EOT\xCE\EOT\xC8\EOT\xBE\EOT\xB4\EOT\xAC\EOT\xA4\EOT\xAA\EOT\xA8\EOT\x9E\EOT\x94\EOT\x8C\EOT\x80\EOTn\EOTT\EOT8\EOT\x17\ETX\xFF\ETX\xE9\ETX\xD1\ETX\xC5\ETX\xB5\ETX\xA7\ETX\x8F\ETXx\ETX\\\ETX>\ETX$\ETX\x0E\STX\xE8\STX\xC5\STX\xA5\STX\x91\STX\x7F\STXm\STX]\STXG\STX-\STX\x1D\STX\x0C\SOH\xFA\SOH\xF0\SOH\xDE\SOH\xD0\SOH\xBE\SOH\xB2\SOH\xA4\SOH\x9A\SOH\x88\SOH~\SOHp\SOH]\SOHE\SOH3\SOH%\SOH\x17\SOH\ETX\NUL\xDF\NUL\xB0\NUL\x84\NULj\NULT\NUL>\NUL*\NUL\CAN\NUL\x0C\xFF\xFE\xFF\xF1\xFF\xE9\xFF\xE1\xFF\xE1\xFF\xE1\xFF\xE1\xFF\xE3\xFF\xEB\xFF\xEF\xFF\xF3\xFF\xF5\xFF\xF7\xFF\xF3\xFF\xF1\xFF\xEB\xFF\xE7\xFF\xE7\xFF\xE7\xFF\xE7\xFF\xE9\xFF\xEF\xFF\xF7\xFF\xF9\xFF\xFE\NUL\NUL\NUL\NUL\xFF\xFE\xFF\xF7\xFF\xF3\xFF\xED\xFF\xED\xFF\xED\xFF\xF3\xFF\xFC\NUL\EOT\NUL\x0C\NUL\x0E\NUL\x12\NUL\x12\NUL\x10\NUL\x08\NUL\STX\xFF\xFE\xFF\xF9\xFF\xF9\xFF\xF9\NUL\NUL\NUL\ACK\NUL\x0C\NUL\x12\NUL\x12\NUL\x10\NUL\LF\NUL\STX\xFF\xF9\xFF\xF3\xFF\xF3\xFF\xED\xFF\xED\xFF\xF1\xFF\xF7\xFF\xFE\NUL\EOT\NUL\ACK\NUL\ACK\NUL\EOT\xFF\xFA\xFF\xF3\xFF\xF3\xFF\xF3\xFF\xF3\xFF\xF3\xFF\xF3\xFF\xF9\xFF\xFC\xFF\xF9\xFF\xF9\xFF\xF9\xFF\xFE\xFF\xF9\xFF\xF5\xFF\xEF\xFF\xE9\xFF\xE5\xFF\xE1\xFF\xE1\xFF\xE9\xFF\xED\xFF\xF5\xFF\xF9\xFF\xF9\NUL\NUL\xFF\xFE\xFF\xF9\xFF\xF3\xFF\xF3\xFF\xF3\xFF\xEF\xFF\xF3\xFF\xF5\xFF\xFE\NUL\EOT\NUL\ACK\NUL\ACK\NUL\ACK\NUL\ACK\NUL\ACK\NUL\NUL\xFF\xF9\xFF\xF3 +127;125G100I00186'101S2015-06-01'102S15:53:56'103S'104S0'105S359194'106I00000'107I00000'110I00000'111I00000'112I00000'113I00000'114I00001'115I00000'116I00000'200I00003'201R00001.50'202I00000'203I36000'204I01979'205I08192'220I00002'221I09000'222I00000'223I09999'224I00771'225I00000'226I00001'227I00000'228I00001'229I00023'240I-9997'241I00001'242I00001'243I00001'244I00000'245I09998';\NUL\NUL\x08%\CR4\x111\NAK\xA6\CAN\ETX\x16\xD6\x14\CR\x0F\xBA\x0C\x12\x07\x85\EOT\xCB\ETX]\ETX\x80\EOT\x9E\ENQ\xE4\x07\x8B\x08\xCB\LFA\x0BM\x0Cq\CR:\x0E\x16\x0E\xAB\x0FM\x0F\xC1\x10>\x10\x93\x10\xF3\x115\x11}\x11\xAE\x11\xE3\x12\x08\x120\x12N\x12n\x12\x81\x12\x96\x12\xA4\x12\xB5\x12\xC1\x12\xCD\x12\xD4\x12\xD8\x12\xCA\x12\xA3\x12\x82\x12^\x12E\x12/\x12$\x12\x1A\x12\x13\x12\CR\x12\ACK\x11\xFF\x11\xF9\x11\xF0\x11\xE8\x11\xDE\x11\xDA\x11\xCF\x11\xC7\x11\xBC\x11\xB2\x11\xA8\x11\xA4\x11\x9E\x11\x9C\x11\x9C\x11\x9C\x11\x9D\x11\x9F\x11\x9F\x11\x9F\x11\xA0\x11\xA3\x11\xA7\x11\xA9\x11\xA9\x11\xAB\x11\xB2\x11\xBA\x11\xC3\x11\xCC\x11\xD7\x11\xE0\x11\xEB\x11\xF6\x12\ACK\x12\x11\x12"\x12/\x12@\x12M\x12b\x12r\x12\x86\x12\x9A\x12\xB3\x12\xC9\x12\xDD\x12\xF1\x13\x08\x13\x1C\x134\x13I\x13d\x13|\x13\x99\x13\xB3\x13\xD2\x13\xEC\x14\CR\x14%\x14F\x14_\x14\x7F\x14\x9A\x14\xBC\x14\xD9\x14\xFB\NAK\NAK\NAK7\NAKS\NAKw\NAK\x91\NAK\xB1\NAK\xC9\NAK\xE3\NAK\xF7\x16\x0F\x16"\x168\x16K\x16d\x16v\x16\x8D\x16\x9E\x16\xB2\x16\xC5\x16\xDE\x16\xF4\x17\x0E\x17"\x17>\x17T\x17u\x17\x91\x17\xB3\x17\xCF\x17\xEF\CAN\LF\CAN*\CAND\CANd\CAN\x7F\CAN\xA4\CAN\xC4\CAN\xEE\x19\x0F\x199\x19[\x19\x82\x19\xA3\x19\xC5\x19\xE1\x1A\ENQ\x1A#\x1AI\x1Al\x1A\x98\x1A\xBC\x1A\xE8\ESC\x0E\ESC>\ESCg\ESC\x9D\ESC\xCC\x1C\x08\x1C:\x1Cw\x1C\xAA\x1C\xE7\x1D\x17\x1DP\x1D~\x1D\xB8\x1D\xE8\x1E"\x1EO\x1E\x89\x1E\xBA\x1E\xF7\x1F(\x1Fj\x1F\xA1\x1F\xE2 \NAK Q \x82 \xBD \xEE!-!a!\xA5!\xDD"$"^"\xA7"\xDE###W#\x98#\xD0$\x1C$Y$\xA5$\xE4%4%v%\xC9&\x07&S&\x8F&\xD6'\x13'a'\x9F'\xEB(((y(\xBD)\x13)W)\xB0)\xF3*J*\x90*\xE4+-+\x81+\xAD+\xA5+}+\x1C*\xBF*:)\xD0)\\)!)\x11)\x1F)6)>)9)))\x0E(\xF7(\xD5(\xBE(\x9F(\x8B(t(c(P(?(,(\x1D(\x0B'\xFD'\xEC'\xDF'\xCE'\xC1'\xAE'\x9E'\x8B'|'j'Y'F'8'%'\x19'\LF&\xFF&\xEB&\xDC&\xCC&\xC1&\xB1&\xA5&\x94&\x88&w&j&Y&L&>&4&&&\x1C&\CR&\STX%\xF7%\xEE%\xDF%\xD1%\xC1%\xB7%\xAA%\x9E%\x89%{%j%]%O%C%6%+%\x1E%\x11%\NUL$\xF0$\xD8$\xC8$\xB2$\x9D$\x85$p$X$E$($\x0F#\xF1#\xDB#\xC0#\xA7#\x85#j#M#4#\x12"\xF6"\xD5"\xBA"\x9A"}"W":"\x12!\xF5!\xD0!\xB4!\x8F!r!Q!8!\x1A!\SOH \xE4 \xCC \xB3 \x9B } g L 6 \x1C \ENQ\x1F\xEA\x1F\xD3\x1F\xBA\x1F\xA5\x1F\x8B\x1Fv\x1F[\x1FF\x1F(\x1F\x13\x1E\xF4\x1E\xDB\x1E\xBF\x1E\xA9\x1E\x8F\x1Ew\x1E[\x1EB\x1E(\x1E\x12\x1D\xFB\x1D\xE5\x1D\xC4\x1D\xA5\x1Dz\x1DU\x1D(\x1D\x07\x1C\xDB\x1C\xBB\x1C\x95\x1Cx\x1CZ\x1CD\x1C*\x1C\x1C\x1C\LF\ESC\xFE\ESC\xF4\ESC\xEE\ESC\xEA\ESC\xE5\ESC\xE7\ESC\xE7\ESC\xE8\ESC\xEB\ESC\xF0\ESC\xF3\ESC\xF8\ESC\xFF\x1C\x08\x1C\x0B\x1C\x16\x1C\ESC\x1C#\x1C(\x1C/\x1C5\x1C<\x1C@\x1CH\x1CN\x1CT\x1CZ\x1Cb\x1Ce\x1Ck\x1Cp\x1Cv\x1Cy\x1C{\x1C{\x1Cx\x1Cv\x1Cr\x1Cq\x1Cp\x1Co\x1Co\x1Co\x1Co\x1Cp\x1Cq\x1Cq\x1Cq\x1Cq\x1Ct\x1Ct\x1Ct\x1Cv\x1Cs\x1Cu\x1Cv\x1Cv\x1Cv\x1Cv\x1Cv\x1Cv\x1Cv\x1Cv\x1Cv\x1Cv\x1Cv\x1Cv\x1Cv\x1Cv\x1Cv\x1Cv\x1Cv\x1Cv\x1Cw\x1Cx\x1Cz\x1Cz\x1C{\x1C{\x1C{\x1C{\x1C{\x1C}\x1C\x7F\x1C}\x1C~\x1C}\x1C}\x1C\x7F\x1C}\x1C}\x1C|\x1C{\x1C{\x1C{\x1C{\x1C{\x1C{\x1C{\x1C{\x1C{\x1C{\x1C{\x1C{\x1C{ diff --git a/nettool/file/send.txt b/nettool/file/send.txt new file mode 100644 index 0000000..51b3944 --- /dev/null +++ b/nettool/file/send.txt @@ -0,0 +1,17 @@ +16 FF 01 01 E0 E1 +16 FF 01 01 E1 E2 +16 01 02 DF BC 16 01 02 DF BC 16 01 02 DF BC 12 13 14 15 +16 00 00 04 D0 F0 F1 65 C4 +16 00 00 04 D0 05 AB 5A C4 +16 01 10 02 F0 03 06 16 01 11 02 F0 03 06 16 01 12 02 F0 03 06 16 01 13 02 F0 03 06 16 01 +14 02 F0 03 06 16 01 15 02 F0 03 06 16 01 16 02 F0 03 06 +16 11 01 03 E8 01 10 0E +16 11 01 03 E8 01 12 10 +16 11 01 03 E8 01 14 12 +16 11 01 03 E8 01 15 13 +DISARMEDALL +BURGLARY 012 +BYPASS 012 +DISARMED 012 +16 00 01 01 D1 D3 +16 01 11 11 \ No newline at end of file diff --git a/nettool/form/form.pri b/nettool/form/form.pri new file mode 100644 index 0000000..1dbadcf --- /dev/null +++ b/nettool/form/form.pri @@ -0,0 +1,17 @@ +FORMS += \ + $$PWD/frmmain.ui \ + $$PWD/frmtcpclient.ui \ + $$PWD/frmtcpserver.ui \ + $$PWD/frmudpserver.ui + +HEADERS += \ + $$PWD/frmmain.h \ + $$PWD/frmtcpclient.h \ + $$PWD/frmtcpserver.h \ + $$PWD/frmudpserver.h + +SOURCES += \ + $$PWD/frmmain.cpp \ + $$PWD/frmtcpclient.cpp \ + $$PWD/frmtcpserver.cpp \ + $$PWD/frmudpserver.cpp diff --git a/nettool/form/frmmain.cpp b/nettool/form/frmmain.cpp new file mode 100644 index 0000000..f1fc67d --- /dev/null +++ b/nettool/form/frmmain.cpp @@ -0,0 +1,20 @@ +#include "frmmain.h" +#include "ui_frmmain.h" +#include "quiwidget.h" + +frmMain::frmMain(QWidget *parent) : QWidget(parent), ui(new Ui::frmMain) +{ + ui->setupUi(this); + ui->tabWidget->setCurrentIndex(App::CurrentIndex); +} + +frmMain::~frmMain() +{ + delete ui; +} + +void frmMain::on_tabWidget_currentChanged(int index) +{ + App::CurrentIndex = index; + App::writeConfig(); +} diff --git a/nettool/form/frmmain.h b/nettool/form/frmmain.h new file mode 100644 index 0000000..ea5effd --- /dev/null +++ b/nettool/form/frmmain.h @@ -0,0 +1,25 @@ +#ifndef FRMMAIN_H +#define FRMMAIN_H + +#include + +namespace Ui { +class frmMain; +} + +class frmMain : public QWidget +{ + Q_OBJECT + +public: + explicit frmMain(QWidget *parent = 0); + ~frmMain(); + +private slots: + void on_tabWidget_currentChanged(int index); + +private: + Ui::frmMain *ui; +}; + +#endif // FRMMAIN_H diff --git a/nettool/form/frmmain.ui b/nettool/form/frmmain.ui new file mode 100644 index 0000000..3df2b09 --- /dev/null +++ b/nettool/form/frmmain.ui @@ -0,0 +1,81 @@ + + + frmMain + + + + 0 + 0 + 800 + 600 + + + + Form + + + + 0 + + + 0 + + + 0 + + + 0 + + + + + + + + QTabWidget::South + + + 2 + + + + TCP客户端 + + + + + TCP服务器 + + + + + UDP服务器 + + + + + + + + + frmTcpClient + QWidget +
    frmtcpclient.h
    + 1 +
    + + frmTcpServer + QWidget +
    frmtcpserver.h
    + 1 +
    + + frmUdpServer + QWidget +
    frmudpserver.h
    + 1 +
    +
    + + +
    diff --git a/nettool/form/frmtcpclient.cpp b/nettool/form/frmtcpclient.cpp new file mode 100644 index 0000000..b9c3d5c --- /dev/null +++ b/nettool/form/frmtcpclient.cpp @@ -0,0 +1,223 @@ +#include "frmtcpclient.h" +#include "ui_frmtcpclient.h" +#include "quiwidget.h" + +frmTcpClient::frmTcpClient(QWidget *parent) : QWidget(parent), ui(new Ui::frmTcpClient) +{ + ui->setupUi(this); + this->initForm(); + this->initConfig(); +} + +frmTcpClient::~frmTcpClient() +{ + delete ui; +} + +void frmTcpClient::initForm() +{ + isOk = false; + tcpSocket = new QTcpSocket(this); + connect(tcpSocket, SIGNAL(connected()), this, SLOT(connected())); + connect(tcpSocket, SIGNAL(error(QAbstractSocket::SocketError)), this, SLOT(disconnected())); + connect(tcpSocket, SIGNAL(disconnected()), this, SLOT(disconnected())); + connect(tcpSocket, SIGNAL(readyRead()), this, SLOT(readData())); + + timer = new QTimer(this); + connect(timer, SIGNAL(timeout()), this, SLOT(on_btnSend_clicked())); + + ui->cboxInterval->addItems(App::Intervals); + ui->cboxData->addItems(App::Datas); +} + +void frmTcpClient::initConfig() +{ + ui->ckHexSend->setChecked(App::HexSendTcpClient); + connect(ui->ckHexSend, SIGNAL(stateChanged(int)), this, SLOT(saveConfig())); + + ui->ckHexReceive->setChecked(App::HexReceiveTcpClient); + connect(ui->ckHexReceive, SIGNAL(stateChanged(int)), this, SLOT(saveConfig())); + + ui->ckAscii->setChecked(App::AsciiTcpClient); + connect(ui->ckAscii, SIGNAL(stateChanged(int)), this, SLOT(saveConfig())); + + ui->ckDebug->setChecked(App::DebugTcpClient); + connect(ui->ckDebug, SIGNAL(stateChanged(int)), this, SLOT(saveConfig())); + + ui->ckAutoSend->setChecked(App::AutoSendTcpClient); + connect(ui->ckAutoSend, SIGNAL(stateChanged(int)), this, SLOT(saveConfig())); + + ui->cboxInterval->setCurrentIndex(ui->cboxInterval->findText(QString::number(App::IntervalTcpClient))); + connect(ui->cboxInterval, SIGNAL(currentIndexChanged(int)), this, SLOT(saveConfig())); + + ui->txtServerIP->setText(App::TcpServerIP); + connect(ui->txtServerIP, SIGNAL(textChanged(QString)), this, SLOT(saveConfig())); + + ui->txtServerPort->setText(QString::number(App::TcpServerPort)); + connect(ui->txtServerPort, SIGNAL(textChanged(QString)), this, SLOT(saveConfig())); + + timer->setInterval(App::IntervalTcpClient); + App::AutoSendTcpClient ? timer->start() : timer->stop(); +} + +void frmTcpClient::saveConfig() +{ + App::HexSendTcpClient = ui->ckHexSend->isChecked(); + App::HexReceiveTcpClient = ui->ckHexReceive->isChecked(); + App::AsciiTcpClient = ui->ckAscii->isChecked(); + App::DebugTcpClient = ui->ckDebug->isChecked(); + App::AutoSendTcpClient = ui->ckAutoSend->isChecked(); + App::IntervalTcpClient = ui->cboxInterval->currentText().toInt(); + App::TcpServerIP = ui->txtServerIP->text().trimmed(); + App::TcpServerPort = ui->txtServerPort->text().trimmed().toInt(); + App::writeConfig(); + + timer->setInterval(App::IntervalTcpClient); + App::AutoSendTcpClient ? timer->start() : timer->stop(); +} + +void frmTcpClient::append(int type, const QString &data, bool clear) +{ + static int currentCount = 0; + static int maxCount = 100; + + if (clear) { + ui->txtMain->clear(); + currentCount = 0; + return; + } + + if (currentCount >= maxCount) { + ui->txtMain->clear(); + currentCount = 0; + } + + if (ui->ckShow->isChecked()) { + return; + } + + //过滤回车换行符 + QString strData = data; + strData = strData.replace("\r", ""); + strData = strData.replace("\n", ""); + + //不同类型不同颜色显示 + QString strType; + if (type == 0) { + strType = "发送"; + ui->txtMain->setTextColor(QColor("darkgreen")); + } else { + strType = "接收"; + ui->txtMain->setTextColor(QColor("red")); + } + + strData = QString("时间[%1] %2: %3").arg(TIMEMS).arg(strType).arg(strData); + ui->txtMain->append(strData); + currentCount++; +} + +void frmTcpClient::connected() +{ + isOk = true; + ui->btnConnect->setText("断开"); + append(0, "服务器连接"); +} + +void frmTcpClient::disconnected() +{ + isOk = false; + tcpSocket->abort(); + ui->btnConnect->setText("连接"); + append(1, "服务器断开"); +} + +void frmTcpClient::readData() +{ + QByteArray data = tcpSocket->readAll(); + if (data.length() <= 0) { + return; + } + + QString buffer; + if (App::HexReceiveTcpClient) { + buffer = QUIHelper::byteArrayToHexStr(data); + } else if (App::AsciiTcpClient) { + buffer = QUIHelper::byteArrayToAsciiStr(data); + } else { + buffer = QString(data); + } + + append(1, buffer); + + //自动回复数据,可以回复的数据是以;隔开,每行可以带多个;所以这里不需要继续判断 + if (App::DebugTcpClient) { + int count = App::Keys.count(); + for (int i = 0; i < count; i++) { + if (App::Keys.at(i) == buffer) { + sendData(App::Values.at(i)); + break; + } + } + } +} + +void frmTcpClient::sendData(const QString &data) +{ + QByteArray buffer; + if (App::HexSendTcpClient) { + buffer = QUIHelper::hexStrToByteArray(data); + } else if (App::AsciiTcpClient) { + buffer = QUIHelper::asciiStrToByteArray(data); + } else { + buffer = data.toLatin1(); + } + + tcpSocket->write(buffer); + append(0, data); +} + +void frmTcpClient::on_btnConnect_clicked() +{ + if (ui->btnConnect->text() == "连接") { + tcpSocket->abort(); + tcpSocket->connectToHost(App::TcpServerIP, App::TcpServerPort); + } else { + tcpSocket->abort(); + } +} + +void frmTcpClient::on_btnSave_clicked() +{ + QString data = ui->txtMain->toPlainText(); + if (data.length() <= 0) { + return; + } + + QString fileName = QString("%1/%2.txt").arg(QUIHelper::appPath()).arg(STRDATETIME); + QFile file(fileName); + if (file.open(QFile::WriteOnly | QFile::Text)) { + file.write(data.toUtf8()); + file.close(); + } + + on_btnClear_clicked(); +} + +void frmTcpClient::on_btnClear_clicked() +{ + append(0, "", true); +} + +void frmTcpClient::on_btnSend_clicked() +{ + if (!isOk) { + return; + } + + QString data = ui->cboxData->currentText(); + if (data.length() <= 0) { + return; + } + + sendData(data); +} diff --git a/nettool/form/frmtcpclient.h b/nettool/form/frmtcpclient.h new file mode 100644 index 0000000..fa66b2e --- /dev/null +++ b/nettool/form/frmtcpclient.h @@ -0,0 +1,44 @@ +#ifndef FRMTCPCLIENT_H +#define FRMTCPCLIENT_H + +#include +#include + +namespace Ui { +class frmTcpClient; +} + +class frmTcpClient : public QWidget +{ + Q_OBJECT + +public: + explicit frmTcpClient(QWidget *parent = 0); + ~frmTcpClient(); + +private: + Ui::frmTcpClient *ui; + + bool isOk; + QTcpSocket *tcpSocket; + QTimer *timer; + +private slots: + void initForm(); + void initConfig(); + void saveConfig(); + void append(int type, const QString &data, bool clear = false); + + void connected(); + void disconnected(); + void readData(); + void sendData(const QString &data); + +private slots: + void on_btnConnect_clicked(); + void on_btnSave_clicked(); + void on_btnClear_clicked(); + void on_btnSend_clicked(); +}; + +#endif // FRMTCPCLIENT_H diff --git a/nettool/form/frmtcpclient.ui b/nettool/form/frmtcpclient.ui new file mode 100644 index 0000000..13e2bfa --- /dev/null +++ b/nettool/form/frmtcpclient.ui @@ -0,0 +1,213 @@ + + + frmTcpClient + + + + 0 + 0 + 800 + 600 + + + + Form + + + + + + true + + + + + + + + 170 + 0 + + + + + 170 + 16777215 + + + + QFrame::Box + + + QFrame::Sunken + + + + 9 + + + 9 + + + 9 + + + 9 + + + + + 16进制接收 + + + + + + + 16进制发送 + + + + + + + Ascii控制字符 + + + + + + + 暂停显示 + + + + + + + 模拟设备 + + + + + + + 定时发送 + + + + + + + + + + 服务器IP地址 + + + + + + + + + + 服务器端口 + + + + + + + + + + 连接 + + + + + + + 保存 + + + + + + + 清空 + + + + + + + Qt::Vertical + + + + 20 + 40 + + + + + + + + + + + + 0 + + + 0 + + + 0 + + + 0 + + + + + + 0 + 0 + + + + true + + + + + + + + 80 + 0 + + + + + 80 + 16777215 + + + + 发送 + + + + + + + + + + + diff --git a/nettool/form/frmtcpserver.cpp b/nettool/form/frmtcpserver.cpp new file mode 100644 index 0000000..1d98426 --- /dev/null +++ b/nettool/form/frmtcpserver.cpp @@ -0,0 +1,232 @@ +#include "frmtcpserver.h" +#include "ui_frmtcpserver.h" +#include "quiwidget.h" + +frmTcpServer::frmTcpServer(QWidget *parent) : QWidget(parent), ui(new Ui::frmTcpServer) +{ + ui->setupUi(this); + this->initForm(); + this->initConfig(); +} + +frmTcpServer::~frmTcpServer() +{ + delete ui; +} + +void frmTcpServer::initForm() +{ + isOk = false; + tcpServer = new TcpServer(this); + connect(tcpServer, SIGNAL(clientConnected(QString, int)), this, SLOT(clientConnected(QString, int))); + connect(tcpServer, SIGNAL(clientDisconnected(QString, int)), this, SLOT(clientDisconnected(QString, int))); + connect(tcpServer, SIGNAL(sendData(QString, int, QString)), this, SLOT(sendData(QString, int, QString))); + connect(tcpServer, SIGNAL(receiveData(QString, int, QString)), this, SLOT(receiveData(QString, int, QString))); + + timer = new QTimer(this); + connect(timer, SIGNAL(timeout()), this, SLOT(on_btnSend_clicked())); + + ui->cboxInterval->addItems(App::Intervals); + ui->cboxData->addItems(App::Datas); + QUIHelper::setLabStyle(ui->labCount, 3); +} + +void frmTcpServer::initConfig() +{ + ui->ckHexSend->setChecked(App::HexSendTcpServer); + connect(ui->ckHexSend, SIGNAL(stateChanged(int)), this, SLOT(saveConfig())); + + ui->ckHexReceive->setChecked(App::HexReceiveTcpServer); + connect(ui->ckHexReceive, SIGNAL(stateChanged(int)), this, SLOT(saveConfig())); + + ui->ckAscii->setChecked(App::AsciiTcpServer); + connect(ui->ckAscii, SIGNAL(stateChanged(int)), this, SLOT(saveConfig())); + + ui->ckDebug->setChecked(App::DebugTcpServer); + connect(ui->ckDebug, SIGNAL(stateChanged(int)), this, SLOT(saveConfig())); + + ui->ckAutoSend->setChecked(App::AutoSendTcpServer); + connect(ui->ckAutoSend, SIGNAL(stateChanged(int)), this, SLOT(saveConfig())); + + ui->ckSelectAll->setChecked(App::SelectAllTcpServer); + connect(ui->ckSelectAll, SIGNAL(stateChanged(int)), this, SLOT(saveConfig())); + + ui->cboxInterval->setCurrentIndex(ui->cboxInterval->findText(QString::number(App::IntervalTcpServer))); + connect(ui->cboxInterval, SIGNAL(currentIndexChanged(int)), this, SLOT(saveConfig())); + + ui->txtListenPort->setText(QString::number(App::TcpListenPort)); + connect(ui->txtListenPort, SIGNAL(textChanged(QString)), this, SLOT(saveConfig())); + + timer->setInterval(App::IntervalTcpServer); + App::AutoSendTcpServer ? timer->start() : timer->stop(); +} + +void frmTcpServer::saveConfig() +{ + App::HexSendTcpServer = ui->ckHexSend->isChecked(); + App::HexReceiveTcpServer = ui->ckHexReceive->isChecked(); + App::AsciiTcpServer = ui->ckAscii->isChecked(); + App::DebugTcpServer = ui->ckDebug->isChecked(); + App::AutoSendTcpServer = ui->ckAutoSend->isChecked(); + App::SelectAllTcpServer = ui->ckSelectAll->isChecked(); + App::IntervalTcpServer = ui->cboxInterval->currentText().toInt(); + App::TcpListenPort = ui->txtListenPort->text().trimmed().toInt(); + App::writeConfig(); + + timer->setInterval(App::IntervalTcpServer); + App::AutoSendTcpServer ? timer->start() : timer->stop(); +} + +void frmTcpServer::append(int type, const QString &data, bool clear) +{ + static int currentCount = 0; + static int maxCount = 100; + + if (clear) { + ui->txtMain->clear(); + currentCount = 0; + return; + } + + if (currentCount >= maxCount) { + ui->txtMain->clear(); + currentCount = 0; + } + + if (ui->ckShow->isChecked()) { + return; + } + + //过滤回车换行符 + QString strData = data; + strData = strData.replace("\r", ""); + strData = strData.replace("\n", ""); + + //不同类型不同颜色显示 + QString strType; + if (type == 0) { + strType = "发送"; + ui->txtMain->setTextColor(QColor("darkgreen")); + } else { + strType = "接收"; + ui->txtMain->setTextColor(QColor("red")); + } + + strData = QString("时间[%1] %2: %3").arg(TIMEMS).arg(strType).arg(strData); + ui->txtMain->append(strData); + currentCount++; +} + +void frmTcpServer::sendData(const QString &data) +{ + if (ui->ckSelectAll->isChecked()) { + tcpServer->writeData(data); + } else { + int row = ui->listWidget->currentRow(); + if (row >= 0) { + QString str = ui->listWidget->item(row)->text(); + QStringList list = str.split(":"); + tcpServer->writeData(list.at(0), list.at(1).toInt(), data); + } + } +} + +void frmTcpServer::clientConnected(const QString &ip, int port) +{ + QString str = QString("%1:%2").arg(ip).arg(port); + ui->listWidget->addItem(str); + ui->labCount->setText(QString("共 %1 个连接").arg(ui->listWidget->count())); +} + +void frmTcpServer::clientDisconnected(const QString &ip, int port) +{ + int row = -1; + QString str = QString("%1:%2").arg(ip).arg(port); + for (int i = 0; i < ui->listWidget->count(); i++) { + if (ui->listWidget->item(i)->text() == str) { + row = i; + break; + } + } + + delete ui->listWidget->takeItem(row); + ui->labCount->setText(QString("共 %1 个连接").arg(ui->listWidget->count())); +} + +void frmTcpServer::sendData(const QString &ip, int port, const QString &data) +{ + QString str = QString("[%1:%2] %3").arg(ip).arg(port).arg(data); + bool error = (data.contains("下线") || data.contains("离线")); + append(error ? 1 : 0, str); +} + +void frmTcpServer::receiveData(const QString &ip, int port, const QString &data) +{ + QString str = QString("[%1:%2] %3").arg(ip).arg(port).arg(data); + append(1, str); +} + +void frmTcpServer::on_btnListen_clicked() +{ + if (ui->btnListen->text() == "监听") { + isOk = tcpServer->start(); + if (isOk) { + append(0, "监听成功"); + ui->btnListen->setText("关闭"); + } + } else { + isOk = false; + tcpServer->stop(); + ui->btnListen->setText("监听"); + } +} + +void frmTcpServer::on_btnSave_clicked() +{ + QString data = ui->txtMain->toPlainText(); + if (data.length() <= 0) { + return; + } + + QString fileName = QString("%1/%2.txt").arg(QUIHelper::appPath()).arg(STRDATETIME); + QFile file(fileName); + if (file.open(QFile::WriteOnly | QFile::Text)) { + file.write(data.toUtf8()); + file.close(); + } + + on_btnClear_clicked(); +} + +void frmTcpServer::on_btnClear_clicked() +{ + append(0, "", true); +} + +void frmTcpServer::on_btnSend_clicked() +{ + if (!isOk) { + return; + } + + QString data = ui->cboxData->currentText(); + if (data.length() <= 0) { + return; + } + + sendData(data); +} + +void frmTcpServer::on_btnClose_clicked() +{ + if (ui->ckSelectAll->isChecked()) { + tcpServer->remove(); + } else { + int row = ui->listWidget->currentRow(); + if (row >= 0) { + QString str = ui->listWidget->item(row)->text(); + QStringList list = str.split(":"); + tcpServer->remove(list.at(0), list.at(1).toInt()); + } + } +} diff --git a/nettool/form/frmtcpserver.h b/nettool/form/frmtcpserver.h new file mode 100644 index 0000000..7a12a53 --- /dev/null +++ b/nettool/form/frmtcpserver.h @@ -0,0 +1,48 @@ +#ifndef FRMTCPSERVER_H +#define FRMTCPSERVER_H + +#include +#include "tcpserver.h" + +namespace Ui { +class frmTcpServer; +} + +class frmTcpServer : public QWidget +{ + Q_OBJECT + +public: + explicit frmTcpServer(QWidget *parent = 0); + ~frmTcpServer(); + +private: + Ui::frmTcpServer *ui; + + bool isOk; + TcpServer *tcpServer; + QTimer *timer; + +private slots: + void initForm(); + void initConfig(); + void saveConfig(); + void append(int type, const QString &data, bool clear = false); + +private slots: + void sendData(const QString &data); + + void clientConnected(const QString &ip, int port); + void clientDisconnected(const QString &ip, int port); + void sendData(const QString &ip, int port, const QString &data); + void receiveData(const QString &ip, int port, const QString &data); + +private slots: + void on_btnListen_clicked(); + void on_btnSave_clicked(); + void on_btnClear_clicked(); + void on_btnSend_clicked(); + void on_btnClose_clicked(); +}; + +#endif // FRMTCPSERVER_H diff --git a/nettool/form/frmtcpserver.ui b/nettool/form/frmtcpserver.ui new file mode 100644 index 0000000..958e7a8 --- /dev/null +++ b/nettool/form/frmtcpserver.ui @@ -0,0 +1,229 @@ + + + frmTcpServer + + + + 0 + 0 + 800 + 600 + + + + Form + + + + + + true + + + + + + + + 170 + 0 + + + + + 170 + 16777215 + + + + QFrame::Box + + + QFrame::Sunken + + + + 9 + + + 9 + + + 9 + + + 9 + + + + + 16进制接收 + + + + + + + 16进制发送 + + + + + + + Ascii控制字符 + + + + + + + 暂停显示 + + + + + + + 模拟设备 + + + + + + + 定时发送 + + + + + + + + + + 监听端口 + + + + + + + + + + 监听 + + + + + + + 保存 + + + + + + + 清空 + + + + + + + 断开 + + + + + + + + 0 + 25 + + + + QFrame::Box + + + QFrame::Sunken + + + 共 0 个连接 + + + Qt::AlignCenter + + + + + + + + + + 对所有已连接客户端 + + + + + + + + + + + 0 + + + 0 + + + 0 + + + 0 + + + + + + 0 + 0 + + + + true + + + + + + + + 80 + 0 + + + + + 80 + 16777215 + + + + 发送 + + + + + + + + + + + diff --git a/nettool/form/frmudpserver.cpp b/nettool/form/frmudpserver.cpp new file mode 100644 index 0000000..3c9f30d --- /dev/null +++ b/nettool/form/frmudpserver.cpp @@ -0,0 +1,224 @@ +#include "frmudpserver.h" +#include "ui_frmudpserver.h" +#include "quiwidget.h" + +frmUdpServer::frmUdpServer(QWidget *parent) : QWidget(parent), ui(new Ui::frmUdpServer) +{ + ui->setupUi(this); + this->initForm(); + this->initConfig(); +} + +frmUdpServer::~frmUdpServer() +{ + delete ui; +} + +void frmUdpServer::initForm() +{ + udpSocket = new QUdpSocket(this); + connect(udpSocket, SIGNAL(readyRead()), this, SLOT(readData())); + + timer = new QTimer(this); + connect(timer, SIGNAL(timeout()), this, SLOT(on_btnSend_clicked())); + + ui->cboxInterval->addItems(App::Intervals); + ui->cboxData->addItems(App::Datas); +} + +void frmUdpServer::initConfig() +{ + ui->ckHexSend->setChecked(App::HexSendUdpServer); + connect(ui->ckHexSend, SIGNAL(stateChanged(int)), this, SLOT(saveConfig())); + + ui->ckHexReceive->setChecked(App::HexReceiveUdpServer); + connect(ui->ckHexReceive, SIGNAL(stateChanged(int)), this, SLOT(saveConfig())); + + ui->ckAscii->setChecked(App::AsciiUdpServer); + connect(ui->ckAscii, SIGNAL(stateChanged(int)), this, SLOT(saveConfig())); + + ui->ckDebug->setChecked(App::DebugUdpServer); + connect(ui->ckDebug, SIGNAL(stateChanged(int)), this, SLOT(saveConfig())); + + ui->ckAutoSend->setChecked(App::AutoSendUdpServer); + connect(ui->ckAutoSend, SIGNAL(stateChanged(int)), this, SLOT(saveConfig())); + + ui->cboxInterval->setCurrentIndex(ui->cboxInterval->findText(QString::number(App::IntervalUdpServer))); + connect(ui->cboxInterval, SIGNAL(currentIndexChanged(int)), this, SLOT(saveConfig())); + + ui->txtServerIP->setText(App::UdpServerIP); + connect(ui->txtServerIP, SIGNAL(textChanged(QString)), this, SLOT(saveConfig())); + + ui->txtServerPort->setText(QString::number(App::UdpServerPort)); + connect(ui->txtServerPort, SIGNAL(textChanged(QString)), this, SLOT(saveConfig())); + + ui->txtListenPort->setText(QString::number(App::UdpListenPort)); + connect(ui->txtListenPort, SIGNAL(textChanged(QString)), this, SLOT(saveConfig())); + + timer->setInterval(App::IntervalUdpServer); + App::AutoSendUdpServer ? timer->start() : timer->stop(); +} + +void frmUdpServer::saveConfig() +{ + App::HexSendUdpServer = ui->ckHexSend->isChecked(); + App::HexReceiveUdpServer = ui->ckHexReceive->isChecked(); + App::AsciiUdpServer = ui->ckAscii->isChecked(); + App::DebugUdpServer = ui->ckDebug->isChecked(); + App::AutoSendUdpServer = ui->ckAutoSend->isChecked(); + App::IntervalUdpServer = ui->cboxInterval->currentText().toInt(); + App::UdpServerIP = ui->txtServerIP->text().trimmed(); + App::UdpServerPort = ui->txtServerPort->text().trimmed().toInt(); + App::UdpListenPort = ui->txtListenPort->text().trimmed().toInt(); + App::writeConfig(); + + timer->setInterval(App::IntervalUdpServer); + App::AutoSendUdpServer ? timer->start() : timer->stop(); +} + +void frmUdpServer::append(int type, const QString &data, bool clear) +{ + static int currentCount = 0; + static int maxCount = 100; + + if (clear) { + ui->txtMain->clear(); + currentCount = 0; + return; + } + + if (currentCount >= maxCount) { + ui->txtMain->clear(); + currentCount = 0; + } + + if (ui->ckShow->isChecked()) { + return; + } + + //过滤回车换行符 + QString strData = data; + strData = strData.replace("\r", ""); + strData = strData.replace("\n", ""); + + //不同类型不同颜色显示 + QString strType; + if (type == 0) { + strType = "发送"; + ui->txtMain->setTextColor(QColor("darkgreen")); + } else { + strType = "接收"; + ui->txtMain->setTextColor(QColor("red")); + } + + strData = QString("时间[%1] %2: %3").arg(TIMEMS).arg(strType).arg(strData); + ui->txtMain->append(strData); + currentCount++; +} + +void frmUdpServer::readData() +{ + QHostAddress host; + quint16 port; + QByteArray data; + QString buffer; + + while (udpSocket->hasPendingDatagrams()) { + data.resize(udpSocket->pendingDatagramSize()); + udpSocket->readDatagram(data.data(), data.size(), &host, &port); + + if (App::HexReceiveUdpServer) { + buffer = QUIHelper::byteArrayToHexStr(data); + } else if (App::AsciiUdpServer) { + buffer = QUIHelper::byteArrayToAsciiStr(data); + } else { + buffer = QString(data); + } + + QString ip = host.toString(); + if (ip.isEmpty()) { + continue; + } + + QString str = QString("[%1:%2] %3").arg(ip).arg(port).arg(buffer); + append(1, str); + + if (App::DebugUdpServer) { + int count = App::Keys.count(); + for (int i = 0; i < count; i++) { + if (App::Keys.at(i) == buffer) { + sendData(ip, port, App::Values.at(i)); + break; + } + } + } + } +} + +void frmUdpServer::sendData(const QString &ip, int port, const QString &data) +{ + QByteArray buffer; + if (App::HexSendUdpServer) { + buffer = QUIHelper::hexStrToByteArray(data); + } else if (App::AsciiUdpServer) { + buffer = QUIHelper::asciiStrToByteArray(data); + } else { + buffer = data.toLatin1(); + } + + udpSocket->writeDatagram(buffer, QHostAddress(ip), port); + + QString str = QString("[%1:%2] %3").arg(ip).arg(port).arg(data); + append(0, str); + +} + +void frmUdpServer::on_btnListen_clicked() +{ + if (ui->btnListen->text() == "监听") { +#if (QT_VERSION > QT_VERSION_CHECK(5,0,0)) + bool ok = udpSocket->bind(QHostAddress::AnyIPv4, App::UdpListenPort); +#else + bool ok = udpSocket->bind(QHostAddress::Any, App::UdpListenPort); +#endif + if (ok) { + ui->btnListen->setText("关闭"); + append(0, "监听成功"); + } + } else { + udpSocket->abort(); + ui->btnListen->setText("监听"); + } +} + +void frmUdpServer::on_btnSave_clicked() +{ + QString data = ui->txtMain->toPlainText(); + if (data.length() <= 0) { + return; + } + + QString fileName = QString("%1/%2.txt").arg(QUIHelper::appPath()).arg(STRDATETIME); + QFile file(fileName); + if (file.open(QFile::WriteOnly | QFile::Text)) { + file.write(data.toUtf8()); + file.close(); + } + + on_btnClear_clicked(); +} + +void frmUdpServer::on_btnClear_clicked() +{ + append(0, "", true); +} + +void frmUdpServer::on_btnSend_clicked() +{ + QString data = ui->cboxData->currentText(); + if (data.length() <= 0) { + return; + } + + sendData(App::UdpServerIP, App::UdpServerPort, data); +} diff --git a/nettool/form/frmudpserver.h b/nettool/form/frmudpserver.h new file mode 100644 index 0000000..6704a85 --- /dev/null +++ b/nettool/form/frmudpserver.h @@ -0,0 +1,41 @@ +#ifndef FRMUDPSERVER_H +#define FRMUDPSERVER_H + +#include +#include + +namespace Ui { +class frmUdpServer; +} + +class frmUdpServer : public QWidget +{ + Q_OBJECT + +public: + explicit frmUdpServer(QWidget *parent = 0); + ~frmUdpServer(); + +private: + Ui::frmUdpServer *ui; + + QUdpSocket *udpSocket; + QTimer *timer; + +private slots: + void initForm(); + void initConfig(); + void saveConfig(); + void append(int type, const QString &data, bool clear = false); + + void readData(); + void sendData(const QString &ip, int port, const QString &data); + +private slots: + void on_btnListen_clicked(); + void on_btnSave_clicked(); + void on_btnClear_clicked(); + void on_btnSend_clicked(); +}; + +#endif // FRMUDPSERVER_H diff --git a/nettool/form/frmudpserver.ui b/nettool/form/frmudpserver.ui new file mode 100644 index 0000000..3e25117 --- /dev/null +++ b/nettool/form/frmudpserver.ui @@ -0,0 +1,211 @@ + + + frmUdpServer + + + + 0 + 0 + 800 + 600 + + + + Form + + + + + + true + + + + + + + + 170 + 0 + + + + + 170 + 16777215 + + + + QFrame::Box + + + QFrame::Sunken + + + + + + 16进制接收 + + + + + + + 16进制发送 + + + + + + + Ascii控制字符 + + + + + + + 暂停显示 + + + + + + + 模拟设备 + + + + + + + 定时发送 + + + + + + + + + + 远程IP地址 + + + + + + + + + + 远程端口 + + + + + + + + + + 监听端口 + + + + + + + + + + 监听 + + + + + + + 保存 + + + + + + + 清空 + + + + + + + Qt::Vertical + + + + 20 + 40 + + + + + + + + + + + + 0 + + + 0 + + + 0 + + + 0 + + + + + + 0 + 0 + + + + true + + + + + + + + 80 + 0 + + + + + 80 + 16777215 + + + + 发送 + + + + + + + + + + + diff --git a/nettool/head.h b/nettool/head.h new file mode 100644 index 0000000..634b2a2 --- /dev/null +++ b/nettool/head.h @@ -0,0 +1,11 @@ +#include +#include +#include + +#if (QT_VERSION > QT_VERSION_CHECK(5,0,0)) +#include +#endif + +#include "app.h" + +#pragma execution_character_set("utf-8") diff --git a/nettool/main.cpp b/nettool/main.cpp new file mode 100644 index 0000000..0f71fc7 --- /dev/null +++ b/nettool/main.cpp @@ -0,0 +1,31 @@ +#include "frmmain.h" +#include "quiwidget.h" + +int main(int argc, char *argv[]) +{ + QApplication a(argc, argv); + a.setWindowIcon(QIcon(":/main.ico")); + + QFont font; + font.setFamily(QUIConfig::FontName); + font.setPixelSize(QUIConfig::FontSize); + a.setFont(font); + + //设置编码以及加载中文翻译文件 + QUIHelper::setCode(); + QUIHelper::setTranslator(":/qt_zh_CN.qm"); + QUIHelper::setTranslator(":/widgets.qm"); + QUIHelper::initRand(); + + App::Intervals << "1" << "10" << "20" << "50" << "100" << "200" << "300" << "500" << "1000" << "1500" << "2000" << "3000" << "5000" << "10000"; + App::ConfigFile = QString("%1/%2.ini").arg(QUIHelper::appPath()).arg(QUIHelper::appName()); + App::readConfig(); + App::readSendData(); + App::readDeviceData(); + + frmMain w; + w.setWindowTitle(QString("网络调试助手V2019 本机IP: %1 QQ: 517216493").arg(QUIHelper::getLocalIP())); + w.show(); + + return a.exec(); +} diff --git a/nettool/nettool.pro b/nettool/nettool.pro new file mode 100644 index 0000000..b76209b --- /dev/null +++ b/nettool/nettool.pro @@ -0,0 +1,30 @@ +#------------------------------------------------- +# +# Project created by QtCreator 2016-09-19T13:33:20 +# +#------------------------------------------------- + +QT += core gui network + +greaterThan(QT_MAJOR_VERSION, 4): QT += widgets + +TARGET = nettool +TEMPLATE = app +MOC_DIR = temp/moc +RCC_DIR = temp/rcc +UI_DIR = temp/ui +OBJECTS_DIR = temp/obj +DESTDIR = bin +win32:RC_FILE = other/main.rc + +SOURCES += main.cpp +HEADERS += head.h +RESOURCES += other/main.qrc +CONFIG += warn_off + +include ($$PWD/api/api.pri) +include ($$PWD/form/form.pri) + +INCLUDEPATH += $$PWD +INCLUDEPATH += $$PWD/api +INCLUDEPATH += $$PWD/form diff --git a/nettool/other/main.ico b/nettool/other/main.ico new file mode 100644 index 0000000000000000000000000000000000000000..fa39937997e7149c30bd0ceee8edef762ada249c GIT binary patch literal 92854 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 + + main.ico + qt_zh_CN.qm + widgets.qm + + diff --git a/nettool/other/main.rc b/nettool/other/main.rc new file mode 100644 index 0000000..fc0d770 --- /dev/null +++ b/nettool/other/main.rc @@ -0,0 +1 @@ +IDI_ICON1 ICON DISCARDABLE "main.ico" \ No newline at end of file diff --git a/nettool/other/qt_zh_CN.qm b/nettool/other/qt_zh_CN.qm new file mode 100644 index 0000000000000000000000000000000000000000..d6f3648ff65c8ff7392494ac1069c138e9e1518e GIT binary patch literal 117340 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 -%Bg?v!hW$Si;g>q(CKsKv?{cF@qVQ}dKKp9 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 literal 0 HcmV?d00001 diff --git a/nettool/readme.txt b/nettool/readme.txt new file mode 100644 index 0000000..c7cb8b0 --- /dev/null +++ b/nettool/readme.txt @@ -0,0 +1,17 @@ +ʱֹ߽꣬ддĿ¼һƣһƣdzˣҲٸİˡĴҲٸİˡ + +ɰ汾http://www.qtcn.org/bbs/read-htm-tid-55540.html + +ܣ +116ݺASCIIշ +2ʱԶ͡ +3ԶļһεĽá +4ԶļݷݡԽʹõдsend.txtС +5豸ģظյijʱģ豸ԶظݡӦݸʽдdevice.txtС +6ɶԵӷݣҲɹѡȫз͡ +7ֶ֧ͻӲ +8õ̡߳ +9ģʽtcptcpͻˡudpudpͻˡ + +뽫ԴµfileĿ¼еļƵִļͬһĿ¼ +иõĽQ(517216493)лл \ No newline at end of file diff --git a/nettool/snap/QQ截图20180514145725.jpg b/nettool/snap/QQ截图20180514145725.jpg new file mode 100644 index 0000000000000000000000000000000000000000..6d7fa5e117533f9ef9f9921ee8fcacba750e3187 GIT binary patch literal 53985 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

    $L!{SV4Do4VN0!^5_qy%rJnzvXcmsGNH ziaaS&mLhoPZWN?aGpkEVZ%3)5x}j9)m|{18yy{h4EqBwiqzQ&q5tCG()o;FCVzWsH z{{pO)vhy%^v=jxqMwIujJ9jjkgyo5(b+J-wZHj9MJr9xHROq=EI)l)HQFFG$aM8QG z?a-vOPyG{kn+2rsOQ<%r7qkg3BUQyYK;@-lN>aGiZN06Y>*PIqGbj(SMZU>u(w^Z< zkeMP88h1z+n`Ze7dhlDesLu-kC}%=7W;09qq=T0!mq26WX=NpCE&WQGT$c`xBv z_jEtWl?BYqlLM;vQms;fD7D0HBXuJ|AcKTADptFzbw1Pae6IJ%yrIh^T=S0sX*eFe zzX0_r(t4!4;x9O6%C%{hcj|NnWMG#wMsLAuk?&oi$;jLq`U|EYtxBpzJ9Yc1)T_qe zN_xShBjrglD%A>i859`y+-kacKvzi}fEWIKpntwMvJ=&@GDI-i=J{5=kigycx!4om zO1aFkc_ch`*o4P~AV6^0Ni;t+zhn!P^*lU_l8=w9Ka9pF{%fEBX zHF!BsT*sGP9F}ROZu|>?nbw`CtD$%+QA0DFiiJb>{7dKZ81HnIT6*?>v}vyGi@=ey z{H6v3$iUfznDcqn%h^j?jv9OxlhVvYM;YA|9Z}MnBZCdQmg_r|0 zB8onO7*%?0NIuydV-eW*sC0y$E z;Yduk*A%(UH7-%#z_yo;^-<>u+}1}56ZLiQo`XCsn%RGywz4u6s~3*|5U9i}j>wlMyZxMSVt0#L z3ELF{aZPU$k+6wt?uQm9R3;T@`oZ5hhFx#wi!3aFd?u>MBH zl6-?L3b2T1aBKlsG_S9|-@c#7K!FBpMM!W%!vjJ4B$*NKEun08UM$aW#n>I)w)dtM znx|pHv|N=k?K_)t=f40~LQ2mowZyFlcOAJq7$g!p8EkEd329#h)8h9kIYleTD)7!IUhdR>Aqh*2EIiifyRwIeGH_j2#bd*pa$NRB>?vncPFG<5AUp}YR!an(= z+BO7BCDd>g+7888C`x99IOpJ=Dxp?kCsUZonXfvvKOY#m>d;azM4qA%VX9(@y&wj- zFq?=m($KI9fcl%f_I}cu;MjuQ3;mh{s2pcs1$+-eg`+dJ4JkUtNBS#}7cPjT@p(na zI+dK%OKkwa2fNh<0uYv^jc$1c8DUn#h2srrqz28|A^YMS1AJ0uou4!uF$8F6QWj<< z7lZDF=*1NEJ!jU?vczaLBDAC|?ef{JkdHO#>|rmEs73&S)#z{NF?=Uh$VxW2b<=Ab ziuqYo(KkI|k>KaCqD1g{oFNCNE;MQH8ApVO5GAb(J(Q%ZL*_k3Od=_(wYt|)mZn!I z1LFTkWZQ#diL^*YOVUUx4qWlXZr)3}nIdGEhpY{q&!#CivbH zo-UMXuSnO`1rvT|n@t95TRN$QH1WvnVM$wO$*32e==(77j!*~X>m+3+*U1jdS=Rv9m_FPb;?Z$9 zpip_Z^-%iz%vt#RP=P>a3jcM~c2&yHAiAQCB$|e`hI}`>6aZ_H%}o5&#HGT8@`b4P z<&zp?-MDtF>n_^%NhoVFcqTMjxt{GJF35yY%#uni>JsD;5&!zlXMrx1Y~ z#kAGj{M(neeC+!BqH4$78PNhK+P*E~cMsdBEWTZUPiqLx-Ouk=d*gW$e*ay79H7Zs P0v9&_IJltlYw`a8Ao2Wy literal 0 HcmV?d00001 diff --git a/styledemo/frmmain.cpp b/styledemo/frmmain.cpp new file mode 100644 index 0000000..15a4dc3 --- /dev/null +++ b/styledemo/frmmain.cpp @@ -0,0 +1,173 @@ +#include "frmmain.h" +#include "ui_frmmain.h" +#include "qfile.h" +#include "qtranslator.h" +#include "qdesktopwidget.h" + +frmMain::frmMain(QWidget *parent) : QMainWindow(parent), ui(new Ui::frmMain) +{ + ui->setupUi(this); + this->initForm(); +} + +frmMain::~frmMain() +{ + delete ui; +} + +void frmMain::initForm() +{ + this->initTableWidget(); + this->initTreeWidget(); + this->initListWidget(); + this->initOther(); + this->initStyle(); + this->initTranslator(); + ui->tabWidget->setCurrentIndex(0); +} + +void frmMain::initTableWidget() +{ + //设置列数和列宽 + int width = qApp->desktop()->availableGeometry().width() - 120; + ui->tableWidget->setColumnCount(5); + ui->tableWidget->setColumnWidth(0, width * 0.06); + ui->tableWidget->setColumnWidth(1, width * 0.10); + ui->tableWidget->setColumnWidth(2, width * 0.06); + ui->tableWidget->setColumnWidth(3, width * 0.10); + ui->tableWidget->setColumnWidth(4, width * 0.15); + ui->tableWidget->verticalHeader()->setDefaultSectionSize(25); + + QStringList headText; + headText << "设备编号" << "设备名称" << "设备地址" << "告警内容" << "告警时间"; + ui->tableWidget->setHorizontalHeaderLabels(headText); + ui->tableWidget->setSelectionBehavior(QAbstractItemView::SelectRows); + ui->tableWidget->setEditTriggers(QAbstractItemView::NoEditTriggers); + ui->tableWidget->setSelectionMode(QAbstractItemView::SingleSelection); + ui->tableWidget->setAlternatingRowColors(true); + ui->tableWidget->verticalHeader()->setVisible(false); + ui->tableWidget->horizontalHeader()->setStretchLastSection(true); + + //设置行高 + ui->tableWidget->setRowCount(300); + + for (int i = 0; i < 300; i++) { + ui->tableWidget->setRowHeight(i, 24); + + QTableWidgetItem *itemDeviceID = new QTableWidgetItem(QString::number(i + 1)); + QTableWidgetItem *itemDeviceName = new QTableWidgetItem(QString("测试设备%1").arg(i + 1)); + QTableWidgetItem *itemDeviceAddr = new QTableWidgetItem(QString::number(i + 1)); + QTableWidgetItem *itemContent = new QTableWidgetItem("防区告警"); + QTableWidgetItem *itemTime = new QTableWidgetItem(QDateTime::currentDateTime().toString("yyyy-MM-dd hh:mm:ss")); + + ui->tableWidget->setItem(i, 0, itemDeviceID); + ui->tableWidget->setItem(i, 1, itemDeviceName); + ui->tableWidget->setItem(i, 2, itemDeviceAddr); + ui->tableWidget->setItem(i, 3, itemContent); + ui->tableWidget->setItem(i, 4, itemTime); + } +} + +void frmMain::initTreeWidget() +{ + ui->treeWidget->clear(); + ui->treeWidget->setHeaderLabel(" 树状列表控件"); + + QTreeWidgetItem *group1 = new QTreeWidgetItem(ui->treeWidget); + group1->setText(0, "父元素1"); + group1->setFlags(Qt::ItemIsUserCheckable | Qt::ItemIsEnabled | Qt::ItemIsSelectable); + group1->setCheckState(0, Qt::PartiallyChecked); + + QTreeWidgetItem *subItem11 = new QTreeWidgetItem(group1); + subItem11->setFlags(Qt::ItemIsUserCheckable | Qt::ItemIsEnabled | Qt::ItemIsSelectable); + subItem11->setText(0, "子元素1"); + subItem11->setCheckState(0, Qt::Checked); + + QTreeWidgetItem *subItem12 = new QTreeWidgetItem(group1); + subItem12->setFlags(Qt::ItemIsUserCheckable | Qt::ItemIsEnabled | Qt::ItemIsSelectable); + subItem12->setText(0, "子元素2"); + subItem12->setCheckState(0, Qt::Unchecked); + + QTreeWidgetItem *subItem13 = new QTreeWidgetItem(group1); + subItem13->setFlags(Qt::ItemIsUserCheckable | Qt::ItemIsEnabled | Qt::ItemIsSelectable); + subItem13->setText(0, "子元素3"); + subItem13->setCheckState(0, Qt::Unchecked); + + QTreeWidgetItem *group2 = new QTreeWidgetItem(ui->treeWidget); + group2->setText(0, "父元素2"); + group2->setFlags(Qt::ItemIsUserCheckable | Qt::ItemIsEnabled | Qt::ItemIsSelectable); + group2->setCheckState(0, Qt::Unchecked); + + QTreeWidgetItem *subItem21 = new QTreeWidgetItem(group2); + subItem21->setFlags(Qt::ItemIsUserCheckable | Qt::ItemIsEnabled | Qt::ItemIsSelectable); + subItem21->setText(0, "子元素1"); + subItem21->setCheckState(0, Qt::Unchecked); + + QTreeWidgetItem *subItem211 = new QTreeWidgetItem(subItem21); + subItem211->setFlags(Qt::ItemIsUserCheckable | Qt::ItemIsEnabled | Qt::ItemIsSelectable); + subItem211->setText(0, "子子元素1"); + subItem211->setCheckState(0, Qt::Unchecked); + + ui->treeWidget->expandAll(); +} + +void frmMain::initListWidget() +{ + QStringList items; + for (int i = 1; i <= 30; i++) { + items << QString("元素%1").arg(i); + } + + ui->listWidget->addItems(items); + ui->cbox1->addItems(items); + ui->cbox2->addItems(items); +} + +void frmMain::initOther() +{ + ui->rbtn1->setChecked(true); + ui->ck2->setChecked(true); + ui->ck3->setCheckState(Qt::PartiallyChecked); + ui->horizontalSlider->setValue(88); + + ui->tab9->setStyleSheet("QPushButton{font:20pt;}"); + ui->widgetVideo->setStyleSheet("QLabel{font:20pt;}"); + + ui->widgetLeft->setProperty("nav", "left"); + ui->widgetBottom->setProperty("form", "bottom"); + ui->widgetTop->setProperty("nav", "top"); + ui->widgetVideo->setProperty("video", true); + + QList labChs = ui->widgetVideo->findChildren(); + foreach (QLabel *lab, labChs) { + lab->setFocusPolicy(Qt::StrongFocus); + } +} + +void frmMain::initStyle() +{ + //加载样式表 + //QFile file(":/qss/psblack.css"); + //QFile file(":/qss/flatwhite.css"); + QFile file(":/qss/lightblue.css"); + if (file.open(QFile::ReadOnly)) { + QString qss = QLatin1String(file.readAll()); + QString paletteColor = qss.mid(20, 7); + qApp->setPalette(QPalette(QColor(paletteColor))); + qApp->setStyleSheet(qss); + file.close(); + } +} + +void frmMain::initTranslator() +{ + //加载鼠标右键菜单翻译文件 + QTranslator *translator1 = new QTranslator(qApp); + translator1->load(":/image/qt_zh_CN.qm"); + qApp->installTranslator(translator1); + + //加载富文本框鼠标右键菜单翻译文件 + QTranslator *translator2 = new QTranslator(qApp); + translator2->load(":/image/widgets.qm"); + qApp->installTranslator(translator2); +} diff --git a/styledemo/frmmain.h b/styledemo/frmmain.h new file mode 100644 index 0000000..5ee1584 --- /dev/null +++ b/styledemo/frmmain.h @@ -0,0 +1,32 @@ +#ifndef FRMMAIN_H +#define FRMMAIN_H + +#include + +namespace Ui +{ +class frmMain; +} + +class frmMain : public QMainWindow +{ + Q_OBJECT + +public: + explicit frmMain(QWidget *parent = 0); + ~frmMain(); + +private: + Ui::frmMain *ui; + +private slots: + void initForm(); + void initTableWidget(); + void initTreeWidget(); + void initListWidget(); + void initOther(); + void initStyle(); + void initTranslator(); +}; + +#endif // FRMMAIN_H diff --git a/styledemo/frmmain.ui b/styledemo/frmmain.ui new file mode 100644 index 0000000..5c9846d --- /dev/null +++ b/styledemo/frmmain.ui @@ -0,0 +1,1220 @@ + + + frmMain + + + + 0 + 0 + 850 + 626 + + + + MainWindow + + + + + + + + + 新建 + + + + + + + 保存 + + + + + + + 打开 + + + + + + + 另存为 + + + + + + + + + + + + + 0 + 0 + + + + + 220 + 0 + + + + + 220 + 16777215 + + + + QFrame::StyledPanel + + + QFrame::Raised + + + + 6 + + + 6 + + + 6 + + + 6 + + + + + 字体颜色 + + + + + + + + + + + + + + + + + 面板背景 + + + + + + + + + + + + + + + + + 边框颜色 + + + + + + + + + + + + + + + + + 普通渐变开始 + + + + + + + + + + + + + + + + + 普通渐变结束 + + + + + + + + + + + + + + + + + 加深渐变开始 + + + + + + + + + + + + + + + + + 加深渐变结束 + + + + + + + + + + + + + + + + + 边缘高亮颜色 + + + + + + + + + + + + + + + + + + + + 0 + + + + 常用组件 + + + + + + + + + 分组框 + + + true + + + + + + 飞扬青云 + + + Qt::AlignCenter + + + + + + + 拿人钱财替人消灾,人生江湖如此,程序江湖亦如此. + + + + + + + 单选框1 + + + + + + + 单选框2 + + + + + + + 复选框1 + + + + + + + 复选框2 + + + false + + + + + + + 复选框3 + + + + + + + + 16777215 + 28 + + + + + + + + + 16777215 + 28 + + + + + + + + 信息框 + + + + + + + 提示框 + + + + + + + 错误框 + + + + + + + 标准输入框 + + + + + + + 密码输入框 + + + + + + + 下拉输入框 + + + + + + + 新窗体 + + + + + + + + + + + + + + + + true + + + + + + + true + + + + + + + 100 + + + Qt::Horizontal + + + + + + + + 16777215 + 18 + + + + + + + + 每个人心中都有一段鲜不为人知的故事, +如果不是某一天, +某个不经意的回头一瞥, +那段往事, +就只能永远埋在记忆的最深处, +那是回忆的尽头, +可就无法避免那一触, +无论你在上面用怎样淤厚的冷漠层层包裹, +却总在瞬间崩溃。 + + + + + + + + + + + 表格数据 + + + + + + + + + + 导航界面 + + + + + + + 80 + 0 + + + + + 0 + + + 0 + + + 0 + + + 0 + + + 0 + + + + + 菜单1 + + + false + + + + + + + 菜单2 + + + + + + + 菜单3 + + + + + + + Qt::Vertical + + + + 20 + 222 + + + + + + + + + + + 0 + + + + + + + + 0 + + + 0 + + + 0 + + + 0 + + + 0 + + + + + + 0 + 0 + + + + 主界面 + + + + + + + + 0 + 0 + + + + 警情查询 + + + + + + + + 0 + 0 + + + + 系统设置 + + + + + + + + + + + 0 + 0 + + + + + + + + + 16777215 + 30 + + + + + + + 欢迎使用软件 + + + + + + + + 1 + 16777215 + + + + Qt::Vertical + + + + + + + 当前用户【admin】 + + + + + + + + 1 + 16777215 + + + + Qt::Vertical + + + + + + + 已运行: 0天0时0分0秒 + + + + + + + + 1 + 16777215 + + + + Qt::Vertical + + + + + + + + 0 + 0 + + + + 当前时间: 2017年12月1日 12:00:00 + + + + + + + + + + + + + + + + Qt::Vertical + + + + + + + Qt::Vertical + + + + + + + + 树状列表 + + + + + + + 1 + + + + + + + + + + + + 日历效果 + + + + + + + + + true + + + + + + + + tab选项卡 + + + + + + QTabWidget::West + + + 2 + + + + 效果预览 + + + + + 效果预览 + + + + + 效果预览 + + + + + + + + QTabWidget::South + + + 0 + + + + 效果预览 + + + + + 效果预览 + + + + + 效果预览 + + + + + + + + QTabWidget::East + + + 2 + + + + 效果预览 + + + + + 效果预览 + + + + + 效果预览 + + + + + + + + + 设备面板 + + + + 3 + + + 3 + + + 3 + + + 3 + + + + + + + + + 图形字体 + + + + 3 + + + 3 + + + 3 + + + 3 + + + + + + + + + UI界面 + + + + + + + 0 + 0 + + + + 界面1 + + + + + + + + 0 + 0 + + + + 界面2 + + + + + + + + 0 + 0 + + + + 界面3 + + + + + + + + 0 + 0 + + + + 界面4 + + + + + + + + 0 + 0 + + + + 界面5 + + + + + + + + 0 + 0 + + + + 界面6 + + + + + + + + 0 + 0 + + + + 界面7 + + + + + + + + 0 + 0 + + + + 界面8 + + + + + + + + 视频监控 + + + + + + + 0 + + + 0 + + + 0 + + + 0 + + + + + 通道1 + + + Qt::AlignCenter + + + + + + + 通道2 + + + Qt::AlignCenter + + + + + + + 通道3 + + + Qt::AlignCenter + + + + + + + 通道4 + + + Qt::AlignCenter + + + + + + + 通道5 + + + Qt::AlignCenter + + + + + + + 通道6 + + + Qt::AlignCenter + + + + + + + 通道7 + + + Qt::AlignCenter + + + + + + + 通道8 + + + Qt::AlignCenter + + + + + + + 通道9 + + + Qt::AlignCenter + + + + + + + 通道10 + + + Qt::AlignCenter + + + + + + + + + + + + + + + + 0 + 0 + 850 + 23 + + + + + 文件(&F) + + + + + + + + + + 编辑(&E) + + + + + + + + 构建(&B) + + + + + + 帮助(&H) + + + + + + + + + + + + 新建文件(&N) + + + + + 打开文件(&O) + + + + + 保存文件(&S) + + + + + 关闭退出(&C) + + + + + 剪切(&X) + + + + + 复制(&C) + + + + + 粘贴(&V) + + + + + 构建项目(&B) + + + + + 帮助文档(&T) + + + + + 关于(&A) + + + + + + + horizontalSlider + valueChanged(int) + progressBar + setValue(int) + + + 207 + 445 + + + 399 + 445 + + + + + diff --git a/styledemo/head.h b/styledemo/head.h new file mode 100644 index 0000000..83996ba --- /dev/null +++ b/styledemo/head.h @@ -0,0 +1,8 @@ +#include +#include +#include +#if (QT_VERSION > QT_VERSION_CHECK(5,0,0)) +#include +#endif + +#pragma execution_character_set("utf-8") diff --git a/styledemo/main.cpp b/styledemo/main.cpp new file mode 100644 index 0000000..0e8c7c4 --- /dev/null +++ b/styledemo/main.cpp @@ -0,0 +1,14 @@ +#include "frmmain.h" +#include "qapplication.h" + +int main(int argc, char *argv[]) +{ + QApplication a(argc, argv); + a.setFont(QFont("Microsoft Yahei", 9)); + + frmMain w; + w.setWindowTitle("styledemo Author: feiyangqingyun@163.com QQ: 517216493"); + w.show(); + + return a.exec(); +} diff --git a/styledemo/other/image/Font Awesome Cheatsheet.png b/styledemo/other/image/Font Awesome Cheatsheet.png new file mode 100644 index 0000000000000000000000000000000000000000..c0bd6044812a036c9b73263c8d0637e6656a9cc3 GIT binary patch literal 991402 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 rX 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ƫ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

    Ro?`A<+q6mT_zUE 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

    5Suhn3pjK=z+vRL{KR%~m2| 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 z

    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 z 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

    &wdL-s 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

    b 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 YCV3Gx$9+?}2Ee_v)%9T|Y7Ybd2S=PW6#xJL literal 0 HcmV?d00001 diff --git a/styledemo/other/image/btn_close.png b/styledemo/other/image/btn_close.png new file mode 100644 index 0000000000000000000000000000000000000000..ef21a4087c2bfc00f014bda38f80b524e4005d5b GIT binary patch literal 2448 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 z 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 PN32rcQGnZCIPU)d`|s4O literal 0 HcmV?d00001 diff --git a/styledemo/other/image/widgets.qm b/styledemo/other/image/widgets.qm new file mode 100644 index 0000000000000000000000000000000000000000..244bf0d105b39689db84ca65c9d181a5d4bf60f7 GIT binary patch literal 593 zcmcE7ks@*G{hX<16=n7(EZlq7iGhK^1BkVNn1O+1`4t8RMn49vWtBjlJcD-kdLTW4 zLHh`ZKEbrDYblTpXIY~Iq#0Ye7vJFl(%X2gPwoTK44FXUJu^@R6N459kYZp1Vn!`? zAjuvWo|%%KTEYmD=85DDGGowSP-Adr(1a^wRddcSs01k%f+`M4ttfHM&nqd)&w=Qx znbB(k))#=Jk4-HgvA84^uf~L=NM5kUAS8{fYC)+f`FQoEESbsx))$JRFEkIoJ`s=y zr~FG^>hD{h2iEU{q+b~1PX#rf%)D#`pZw&+lFa-(ysik!3StMF5`tt3i*u=32|jHs qK?>7S;GxUrlA4o>Ka@Boa3;MB%$V>3u8Aucs42Nb!7(QXmrVfZnS|T` literal 0 HcmV?d00001 diff --git a/styledemo/other/main.qrc b/styledemo/other/main.qrc new file mode 100644 index 0000000..979bdfa --- /dev/null +++ b/styledemo/other/main.qrc @@ -0,0 +1,12 @@ + + + image/btn_close.png + image/btn_ok.png + image/fontawesome-webfont.ttf + image/msg_error.png + image/msg_info.png + image/msg_question.png + image/qt_zh_CN.qm + image/widgets.qm + + diff --git a/styledemo/other/qss.qrc b/styledemo/other/qss.qrc new file mode 100644 index 0000000..cb4b0e4 --- /dev/null +++ b/styledemo/other/qss.qrc @@ -0,0 +1,61 @@ + + + qss/psblack.css + qss/psblack/add_bottom.png + qss/psblack/add_left.png + qss/psblack/add_right.png + qss/psblack/add_top.png + qss/psblack/branch_close.png + qss/psblack/branch_open.png + qss/psblack/calendar_nextmonth.png + qss/psblack/calendar_prevmonth.png + qss/psblack/checkbox_checked.png + qss/psblack/checkbox_checked_disable.png + qss/psblack/checkbox_parcial.png + qss/psblack/checkbox_parcial_disable.png + qss/psblack/checkbox_unchecked.png + qss/psblack/checkbox_unchecked_disable.png + qss/psblack/radiobutton_checked.png + qss/psblack/radiobutton_checked_disable.png + qss/psblack/radiobutton_unchecked.png + qss/psblack/radiobutton_unchecked_disable.png + qss/flatwhite.css + qss/flatwhite/add_bottom.png + qss/flatwhite/add_left.png + qss/flatwhite/add_right.png + qss/flatwhite/add_top.png + qss/flatwhite/branch_close.png + qss/flatwhite/branch_open.png + qss/flatwhite/calendar_nextmonth.png + qss/flatwhite/calendar_prevmonth.png + qss/flatwhite/checkbox_checked.png + qss/flatwhite/checkbox_checked_disable.png + qss/flatwhite/checkbox_parcial.png + qss/flatwhite/checkbox_parcial_disable.png + qss/flatwhite/checkbox_unchecked.png + qss/flatwhite/checkbox_unchecked_disable.png + qss/flatwhite/radiobutton_checked.png + qss/flatwhite/radiobutton_checked_disable.png + qss/flatwhite/radiobutton_unchecked.png + qss/flatwhite/radiobutton_unchecked_disable.png + qss/lightblue.css + qss/lightblue/add_bottom.png + qss/lightblue/add_left.png + qss/lightblue/add_right.png + qss/lightblue/add_top.png + qss/lightblue/branch_close.png + qss/lightblue/branch_open.png + qss/lightblue/calendar_nextmonth.png + qss/lightblue/calendar_prevmonth.png + qss/lightblue/checkbox_checked.png + qss/lightblue/checkbox_checked_disable.png + qss/lightblue/checkbox_parcial.png + qss/lightblue/checkbox_parcial_disable.png + qss/lightblue/checkbox_unchecked.png + qss/lightblue/checkbox_unchecked_disable.png + qss/lightblue/radiobutton_checked.png + qss/lightblue/radiobutton_checked_disable.png + qss/lightblue/radiobutton_unchecked.png + qss/lightblue/radiobutton_unchecked_disable.png + + diff --git a/styledemo/other/qss/flatwhite.css b/styledemo/other/qss/flatwhite.css new file mode 100644 index 0000000..4953c4d --- /dev/null +++ b/styledemo/other/qss/flatwhite.css @@ -0,0 +1,648 @@ +QPalette{background:#FFFFFF;}*{outline:0px;color:#57595B;} + +QWidget[form="true"],QLabel[frameShape="1"]{ +border:1px solid #B6B6B6; +border-radius:0px; +} + +QWidget[form="bottom"]{ +background:#E4E4E4; +} + +QWidget[form="bottom"] .QFrame{ +border:1px solid #57595B; +} + +QWidget[form="bottom"] QLabel,QWidget[form="title"] QLabel{ +border-radius:0px; +color:#57595B; +background:none; +border-style:none; +} + +QWidget[form="title"],QWidget[nav="left"],QWidget[nav="top"] QAbstractButton{ +border-style:none; +border-radius:0px; +padding:5px; +color:#57595B; +background:qlineargradient(spread:pad,x1:0,y1:0,x2:0,y2:1,stop:0 #E4E4E4,stop:1 #E4E4E4); +} + +QWidget[nav="top"] QAbstractButton:hover,QWidget[nav="top"] QAbstractButton:pressed,QWidget[nav="top"] QAbstractButton:checked{ +border-style:solid; +border-width:0px 0px 2px 0px; +padding:4px 4px 2px 4px; +border-color:#00BB9E; +background:qlineargradient(spread:pad,x1:0,y1:0,x2:0,y2:1,stop:0 #F6F6F6,stop:1 #F6F6F6); +} + +QWidget[nav="left"] QAbstractButton{ +border-radius:0px; +color:#57595B; +background:none; +border-style:none; +} + +QWidget[nav="left"] QAbstractButton:hover{ +color:#FFFFFF; +background-color:#00BB9E; +} + +QWidget[nav="left"] QAbstractButton:checked,QWidget[nav="left"] QAbstractButton:pressed{ +color:#57595B; +border-style:solid; +border-width:0px 0px 0px 2px; +padding:4px 4px 4px 2px; +border-color:#00BB9E; +background-color:#FFFFFF; +} + +QWidget[video="true"] QLabel{ +color:#57595B; +border:1px solid #B6B6B6; +background:qlineargradient(spread:pad,x1:0,y1:0,x2:0,y2:1,stop:0 #E4E4E4,stop:1 #E4E4E4); +} + +QWidget[video="true"] QLabel:focus{ +border:1px solid #00BB9E; +background:qlineargradient(spread:pad,x1:0,y1:0,x2:0,y2:1,stop:0 #F6F6F6,stop:1 #F6F6F6); +} + +QLineEdit,QTextEdit,QPlainTextEdit,QSpinBox,QDoubleSpinBox,QComboBox,QDateEdit,QTimeEdit,QDateTimeEdit{ +border:1px solid #B6B6B6; +border-radius:3px; +padding:2px; +background:none; +selection-background-color:#00BB9E; +selection-color:#FFFFFF; +} + +QLineEdit:focus,QTextEdit:focus,QPlainTextEdit:focus,QSpinBox:focus,QDoubleSpinBox:focus,QComboBox:focus,QDateEdit:focus,QTimeEdit:focus,QDateTimeEdit:focus,QLineEdit:hover,QTextEdit:hover,QPlainTextEdit:hover,QSpinBox:hover,QDoubleSpinBox:hover,QComboBox:hover,QDateEdit:hover,QTimeEdit:hover,QDateTimeEdit:hover{ +border:1px solid #B6B6B6; +} + +QLineEdit[echoMode="2"]{ +lineedit-password-character:9679; +} + +.QFrame{ +border:1px solid #B6B6B6; +border-radius:3px; +} + +.QGroupBox{ +border:1px solid #B6B6B6; +border-radius:5px; +margin-top:3ex; +} + +.QGroupBox::title{ +subcontrol-origin:margin; +position:relative; +left:10px; +} + +.QPushButton,.QToolButton{ +border-style:none; +border:1px solid #B6B6B6; +color:#57595B; +padding:5px; +min-height:15px; +border-radius:5px; +background:qlineargradient(spread:pad,x1:0,y1:0,x2:0,y2:1,stop:0 #E4E4E4,stop:1 #E4E4E4); +} + +.QPushButton:hover,.QToolButton:hover{ +background:qlineargradient(spread:pad,x1:0,y1:0,x2:0,y2:1,stop:0 #F6F6F6,stop:1 #F6F6F6); +} + +.QPushButton:pressed,.QToolButton:pressed{ +background:qlineargradient(spread:pad,x1:0,y1:0,x2:0,y2:1,stop:0 #E4E4E4,stop:1 #E4E4E4); +} + +.QToolButton::menu-indicator{ +image:None; +} + +QToolButton#btnMenu,QPushButton#btnMenu_Min,QPushButton#btnMenu_Max,QPushButton#btnMenu_Close{ +border-radius:3px; +color:#57595B; +padding:3px; +margin:0px; +background:none; +border-style:none; +} + +QToolButton#btnMenu:hover,QPushButton#btnMenu_Min:hover,QPushButton#btnMenu_Max:hover{ +color:#FFFFFF; +margin:1px 1px 2px 1px; +background-color:rgba(51,127,209,230); +} + +QPushButton#btnMenu_Close:hover{ +color:#FFFFFF; +margin:1px 1px 2px 1px; +background-color:rgba(238,0,0,128); +} + +QRadioButton::indicator{ +width:15px; +height:15px; +} + +QRadioButton::indicator::unchecked{ +image:url(:/qss/flatwhite/radiobutton_unchecked.png); +} + +QRadioButton::indicator::unchecked:disabled{ +image:url(:/qss/flatwhite/radiobutton_unchecked_disable.png); +} + +QRadioButton::indicator::checked{ +image:url(:/qss/flatwhite/radiobutton_checked.png); +} + +QRadioButton::indicator::checked:disabled{ +image:url(:/qss/flatwhite/radiobutton_checked_disable.png); +} + +QGroupBox::indicator,QTreeWidget::indicator,QListWidget::indicator{ +padding:0px -3px 0px 0px; +} + +QCheckBox::indicator,QGroupBox::indicator,QTreeWidget::indicator,QListWidget::indicator{ +width:13px; +height:13px; +} + +QCheckBox::indicator:unchecked,QGroupBox::indicator:unchecked,QTreeWidget::indicator:unchecked,QListWidget::indicator:unchecked{ +image:url(:/qss/flatwhite/checkbox_unchecked.png); +} + +QCheckBox::indicator:unchecked:disabled,QGroupBox::indicator:unchecked:disabled,QTreeWidget::indicator:unchecked:disabled,QListWidget::indicator:disabled{ +image:url(:/qss/flatwhite/checkbox_unchecked_disable.png); +} + +QCheckBox::indicator:checked,QGroupBox::indicator:checked,QTreeWidget::indicator:checked,QListWidget::indicator:checked{ +image:url(:/qss/flatwhite/checkbox_checked.png); +} + +QCheckBox::indicator:checked:disabled,QGroupBox::indicator:checked:disabled,QTreeWidget::indicator:checked:disabled,QListWidget::indicator:checked:disabled{ +image:url(:/qss/flatwhite/checkbox_checked_disable.png); +} + +QCheckBox::indicator:indeterminate,QGroupBox::indicator:indeterminate,QTreeWidget::indicator:indeterminate,QListWidget::indicator:indeterminate{ +image:url(:/qss/flatwhite/checkbox_parcial.png); +} + +QCheckBox::indicator:indeterminate:disabled,QGroupBox::indicator:indeterminate:disabled,QTreeWidget::indicator:indeterminate:disabled,QListWidget::indicator:indeterminate:disabled{ +image:url(:/qss/flatwhite/checkbox_parcial_disable.png); +} + +QTimeEdit::up-button,QDateEdit::up-button,QDateTimeEdit::up-button,QDoubleSpinBox::up-button,QSpinBox::up-button{ +image:url(:/qss/flatwhite/add_top.png); +width:10px; +height:10px; +padding:2px 5px 0px 0px; +} + +QTimeEdit::down-button,QDateEdit::down-button,QDateTimeEdit::down-button,QDoubleSpinBox::down-button,QSpinBox::down-button{ +image:url(:/qss/flatwhite/add_bottom.png); +width:10px; +height:10px; +padding:0px 5px 2px 0px; +} + +QTimeEdit::up-button:pressed,QDateEdit::up-button:pressed,QDateTimeEdit::up-button:pressed,QDoubleSpinBox::up-button:pressed,QSpinBox::up-button:pressed{ +top:-2px; +} + +QTimeEdit::down-button:pressed,QDateEdit::down-button:pressed,QDateTimeEdit::down-button:pressed,QDoubleSpinBox::down-button:pressed,QSpinBox::down-button:pressed,QSpinBox::down-button:pressed{ +bottom:-2px; +} + +QComboBox::down-arrow,QDateEdit[calendarPopup="true"]::down-arrow,QTimeEdit[calendarPopup="true"]::down-arrow,QDateTimeEdit[calendarPopup="true"]::down-arrow{ +image:url(:/qss/flatwhite/add_bottom.png); +width:10px; +height:10px; +right:2px; +} + +QComboBox::drop-down,QDateEdit::drop-down,QTimeEdit::drop-down,QDateTimeEdit::drop-down{ +subcontrol-origin:padding; +subcontrol-position:top right; +width:15px; +border-left-width:0px; +border-left-style:solid; +border-top-right-radius:3px; +border-bottom-right-radius:3px; +border-left-color:#B6B6B6; +} + +QComboBox::drop-down:on{ +top:1px; +} + +QMenuBar::item{ +color:#57595B; +background-color:#E4E4E4; +margin:0px; +padding:3px 10px; +} + +QMenu,QMenuBar,QMenu:disabled,QMenuBar:disabled{ +color:#57595B; +background-color:#E4E4E4; +border:1px solid #B6B6B6; +margin:0px; +} + +QMenu::item{ +padding:3px 20px; +} + +QMenu::indicator{ +width:13px; +height:13px; +} + +QMenu::item:selected,QMenuBar::item:selected{ +color:#57595B; +border:0px solid #B6B6B6; +background:#F6F6F6; +} + +QMenu::separator{ +height:1px; +background:#B6B6B6; +} + +QProgressBar{ +min-height:10px; +background:#E4E4E4; +border-radius:5px; +text-align:center; +border:1px solid #E4E4E4; +} + +QProgressBar:chunk{ +border-radius:5px; +background-color:#B6B6B6; +} + +QSlider::groove:horizontal{ +background:#E4E4E4; +height:8px; +border-radius:4px; +} + +QSlider::add-page:horizontal{ +background:#E4E4E4; +height:8px; +border-radius:4px; +} + +QSlider::sub-page:horizontal{ +background:#B6B6B6; +height:8px; +border-radius:4px; +} + +QSlider::handle:horizontal{ +width:13px; +margin-top:-3px; +margin-bottom:-3px; +border-radius:6px; +background:qradialgradient(spread:pad,cx:0.5,cy:0.5,radius:0.5,fx:0.5,fy:0.5,stop:0.6 #FFFFFF,stop:0.8 #B6B6B6); +} + +QSlider::groove:vertical{ +width:8px; +border-radius:4px; +background:#E4E4E4; +} + +QSlider::add-page:vertical{ +width:8px; +border-radius:4px; +background:#E4E4E4; +} + +QSlider::sub-page:vertical{ +width:8px; +border-radius:4px; +background:#B6B6B6; +} + +QSlider::handle:vertical{ +height:14px; +margin-left:-3px; +margin-right:-3px; +border-radius:6px; +background:qradialgradient(spread:pad,cx:0.5,cy:0.5,radius:0.5,fx:0.5,fy:0.5,stop:0.6 #FFFFFF,stop:0.8 #B6B6B6); +} + +QScrollBar:horizontal{ +background:#E4E4E4; +padding:0px; +border-radius:6px; +max-height:12px; +} + +QScrollBar::handle:horizontal{ +background:#B6B6B6; +min-width:50px; +border-radius:6px; +} + +QScrollBar::handle:horizontal:hover{ +background:#00BB9E; +} + +QScrollBar::handle:horizontal:pressed{ +background:#00BB9E; +} + +QScrollBar::add-page:horizontal{ +background:none; +} + +QScrollBar::sub-page:horizontal{ +background:none; +} + +QScrollBar::add-line:horizontal{ +background:none; +} + +QScrollBar::sub-line:horizontal{ +background:none; +} + +QScrollBar:vertical{ +background:#E4E4E4; +padding:0px; +border-radius:6px; +max-width:12px; +} + +QScrollBar::handle:vertical{ +background:#B6B6B6; +min-height:50px; +border-radius:6px; +} + +QScrollBar::handle:vertical:hover{ +background:#00BB9E; +} + +QScrollBar::handle:vertical:pressed{ +background:#00BB9E; +} + +QScrollBar::add-page:vertical{ +background:none; +} + +QScrollBar::sub-page:vertical{ +background:none; +} + +QScrollBar::add-line:vertical{ +background:none; +} + +QScrollBar::sub-line:vertical{ +background:none; +} + +QScrollArea{ +border:0px; +} + +QTreeView,QListView,QTableView,QTabWidget::pane{ +border:1px solid #B6B6B6; +selection-background-color:#F6F6F6; +selection-color:#57595B; +alternate-background-color:#F6F6F6; +gridline-color:#B6B6B6; +} + +QTreeView::branch:closed:has-children{ +margin:4px; +border-image:url(:/qss/flatwhite/branch_open.png); +} + +QTreeView::branch:open:has-children{ +margin:4px; +border-image:url(:/qss/flatwhite/branch_close.png); +} + +QTreeView,QListView,QTableView,QSplitter::handle,QTreeView::branch{ +background:#FFFFFF; +} + +QTableView::item:selected,QListView::item:selected,QTreeView::item:selected{ +color:#57595B; +background:qlineargradient(spread:pad,x1:0,y1:0,x2:0,y2:1,stop:0 #E4E4E4,stop:1 #E4E4E4); +} + +QTableView::item:hover,QListView::item:hover,QTreeView::item:hover,QHeaderView{ +color:#57595B; +background:qlineargradient(spread:pad,x1:0,y1:0,x2:0,y2:1,stop:0 #F6F6F6,stop:1 #F6F6F6); +} + +QTableView::item,QListView::item,QTreeView::item{ +padding:1px; +margin:0px; +} + +QHeaderView::section,QTableCornerButton:section{ +padding:3px; +margin:0px; +color:#57595B; +border:1px solid #B6B6B6; +border-left-width:0px; +border-right-width:1px; +border-top-width:0px; +border-bottom-width:1px; +background:qlineargradient(spread:pad,x1:0,y1:0,x2:0,y2:1,stop:0 #F6F6F6,stop:1 #F6F6F6); +} + +QTabBar::tab{ +border:1px solid #B6B6B6; +color:#57595B; +margin:0px; +background:qlineargradient(spread:pad,x1:0,y1:0,x2:0,y2:1,stop:0 #F6F6F6,stop:1 #F6F6F6); +} + +QTabBar::tab:selected,QTabBar::tab:hover{ +border-style:solid; +border-color:#00BB9E; +background:#FFFFFF; +} + +QTabBar::tab:top,QTabBar::tab:bottom{ +padding:3px 8px 3px 8px; +} + +QTabBar::tab:left,QTabBar::tab:right{ +padding:8px 3px 8px 3px; +} + +QTabBar::tab:top:selected,QTabBar::tab:top:hover{ +border-width:2px 0px 0px 0px; +} + +QTabBar::tab:right:selected,QTabBar::tab:right:hover{ +border-width:0px 0px 0px 2px; +} + +QTabBar::tab:bottom:selected,QTabBar::tab:bottom:hover{ +border-width:0px 0px 2px 0px; +} + +QTabBar::tab:left:selected,QTabBar::tab:left:hover{ +border-width:0px 2px 0px 0px; +} + +QTabBar::tab:first:top:selected,QTabBar::tab:first:top:hover,QTabBar::tab:first:bottom:selected,QTabBar::tab:first:bottom:hover{ +border-left-width:1px; +border-left-color:#B6B6B6; +} + +QTabBar::tab:first:left:selected,QTabBar::tab:first:left:hover,QTabBar::tab:first:right:selected,QTabBar::tab:first:right:hover{ +border-top-width:1px; +border-top-color:#B6B6B6; +} + +QTabBar::tab:last:top:selected,QTabBar::tab:last:top:hover,QTabBar::tab:last:bottom:selected,QTabBar::tab:last:bottom:hover{ +border-right-width:1px; +border-right-color:#B6B6B6; +} + +QTabBar::tab:last:left:selected,QTabBar::tab:last:left:hover,QTabBar::tab:last:right:selected,QTabBar::tab:last:right:hover{ +border-bottom-width:1px; +border-bottom-color:#B6B6B6; +} + +QStatusBar::item{ +border:0px solid #E4E4E4; +border-radius:3px; +} + +QToolBox::tab,QGroupBox#gboxDevicePanel,QGroupBox#gboxDeviceTitle,QFrame#gboxDevicePanel,QFrame#gboxDeviceTitle{ +padding:3px; +border-radius:5px; +color:#57595B; +background:qlineargradient(spread:pad,x1:0,y1:0,x2:0,y2:1,stop:0 #E4E4E4,stop:1 #E4E4E4); +} + +QToolTip{ +border:0px solid #57595B; +padding:1px; +color:#57595B; +background:qlineargradient(spread:pad,x1:0,y1:0,x2:0,y2:1,stop:0 #E4E4E4,stop:1 #E4E4E4); +} + +QToolBox::tab:selected{ +background:qlineargradient(spread:pad,x1:0,y1:0,x2:0,y2:1,stop:0 #F6F6F6,stop:1 #F6F6F6); +} + +QPrintPreviewDialog QToolButton{ +border:0px solid #57595B; +border-radius:0px; +margin:0px; +padding:3px; +background:none; +} + +QColorDialog QPushButton,QFileDialog QPushButton{ +min-width:80px; +} + +QToolButton#qt_calendar_prevmonth{ +icon-size:0px; +min-width:20px; +image:url(:/qss/flatwhite/calendar_prevmonth.png); +} + +QToolButton#qt_calendar_nextmonth{ +icon-size:0px; +min-width:20px; +image:url(:/qss/flatwhite/calendar_nextmonth.png); +} + +QToolButton#qt_calendar_prevmonth,QToolButton#qt_calendar_nextmonth,QToolButton#qt_calendar_monthbutton,QToolButton#qt_calendar_yearbutton{ +border:0px solid #57595B; +border-radius:3px; +margin:3px 3px 3px 3px; +padding:3px; +background:none; +} + +QToolButton#qt_calendar_prevmonth:hover,QToolButton#qt_calendar_nextmonth:hover,QToolButton#qt_calendar_monthbutton:hover,QToolButton#qt_calendar_yearbutton:hover,QToolButton#qt_calendar_prevmonth:pressed,QToolButton#qt_calendar_nextmonth:pressed,QToolButton#qt_calendar_monthbutton:pressed,QToolButton#qt_calendar_yearbutton:pressed{ +border:1px solid #B6B6B6; +} + +QCalendarWidget QSpinBox#qt_calendar_yearedit{ +margin:2px; +} + +QCalendarWidget QToolButton::menu-indicator{ +image:None; +} + +QCalendarWidget QTableView{ +border-width:0px; +} + +QCalendarWidget QWidget#qt_calendar_navigationbar{ +border:1px solid #B6B6B6; +border-width:1px 1px 0px 1px; +background:qlineargradient(spread:pad,x1:0,y1:0,x2:0,y2:1,stop:0 #E4E4E4,stop:1 #E4E4E4); +} + +QComboBox QAbstractItemView::item{ +min-height:20px; +min-width:10px; +} + +QTableView[model="true"]::item{ +padding:0px; +margin:0px; +} + +QTableView QLineEdit,QTableView QComboBox,QTableView QSpinBox,QTableView QDoubleSpinBox,QTableView QDateEdit,QTableView QTimeEdit,QTableView QDateTimeEdit{ +border-width:0px; +border-radius:0px; +} + +QTableView QLineEdit:focus,QTableView QComboBox:focus,QTableView QSpinBox:focus,QTableView QDoubleSpinBox:focus,QTableView QDateEdit:focus,QTableView QTimeEdit:focus,QTableView QDateTimeEdit:focus{ +border-width:0px; +border-radius:0px; +} + +QLineEdit,QTextEdit,QPlainTextEdit,QSpinBox,QDoubleSpinBox,QComboBox,QDateEdit,QTimeEdit,QDateTimeEdit{ +background:#FFFFFF; +} + +QTabWidget::pane:top{top:-1px;} +QTabWidget::pane:bottom{bottom:-1px;} +QTabWidget::pane:left{right:-1px;} +QTabWidget::pane:right{left:-1px;} + +*:disabled{ +background:#FFFFFF; +border-color:#E4E4E4; +color:#B6B6B6; +} + +/*TextColor:#57595B*/ +/*PanelColor:#FFFFFF*/ +/*BorderColor:#B6B6B6*/ +/*NormalColorStart:#E4E4E4*/ +/*NormalColorEnd:#E4E4E4*/ +/*DarkColorStart:#F6F6F6*/ +/*DarkColorEnd:#F6F6F6*/ +/*HighColor:#00BB9E*/ \ No newline at end of file diff --git a/styledemo/other/qss/flatwhite/add_bottom.png b/styledemo/other/qss/flatwhite/add_bottom.png new file mode 100644 index 0000000000000000000000000000000000000000..c9c54377ed90deb57e5968e1fd15cf1a2a23d1e2 GIT binary patch literal 181 zcmeAS@N?(olHy`uVBq!ia0vp^A|TAc1|)ksWqE-VXMsm#F#`kN5fEmas?8@26ioMY zaSXBOO-_(tJuGivWME*hCTeR}Z+m;XH8XRw@XTj1$q5M?zI^)h>xhf#az{qx9>+%Q zhwGdTC-^uA@*Fmp;Non^b2v+3Vq20a&+zopr0Flczh5!Hn literal 0 HcmV?d00001 diff --git a/styledemo/other/qss/flatwhite/add_left.png b/styledemo/other/qss/flatwhite/add_left.png new file mode 100644 index 0000000000000000000000000000000000000000..82f383fb841486939e175bd05907d879de36d968 GIT binary patch literal 219 zcmeAS@N?(olHy`uVBq!ia0vp^A|TAc1|)ksWqE-VXMsm#F#`kN5fEmas?8@2lJj(N z46*1vd&!WmL4k+$!g>`ym34e^N3Qzv9Z=laFnjq&CMh*xp>SuG+m8;!d&dVwE%;_~ zhwXXH@~v@%(Y2XCJ;@%pn^YwNtL}2)HFMhb(`wvU7F6$3J$qbv2KI`PbcB zEEnXJ%#p|%cR(olkJf_#{(IH@dm1Hg6rH=Qxxve=dO=T=1LxMJv=Bz$6kmkPY3M3ph77rJZ5&k~pwg&P(&C<#)z9t+M`q*Uy;vt1)UV1iFdA)78&q Iol`;+0A3+Ut^fc4 literal 0 HcmV?d00001 diff --git a/styledemo/other/qss/flatwhite/add_top.png b/styledemo/other/qss/flatwhite/add_top.png new file mode 100644 index 0000000000000000000000000000000000000000..9ac7a28c1216f2070fc31af508778696a1ba5d2b GIT binary patch literal 178 zcmeAS@N?(olHy`uVBq!ia0vp^A|TAc1|)ksWqE-VXMsm#F#`kN5fEmas?8@26io4S zaSXBOO-_(tUEGjzz{BI_r85~iD&2NaIXq{9({&EXuFDQO zZ3h|RoHt5!95-lcOOo(tNvz;?HJre5xIl`_d;-tm4N|8(7A8ux8BNSQps_%afni;m VK6jap!Y!bE44$rjF6*2UngBI%HERF> literal 0 HcmV?d00001 diff --git a/styledemo/other/qss/flatwhite/branch_close.png b/styledemo/other/qss/flatwhite/branch_close.png new file mode 100644 index 0000000000000000000000000000000000000000..d7197128c5642205d339580cd112d43df7c37c62 GIT binary patch literal 167 zcmeAS@N?(olHy`uVBq!ia0vp^A|TAc1|)ksWqE-VXMsm#F#`kN5fEmas?8@26pZwA zaSXBOO-_(tUEGjz;KYFg2Lz;~P8~aOXxH3{jTbw8g3H#%Y`ZeI5ePbg_@TPKzO}OQ zVlLB|6E3{Y20SVM|NMOZ|NsB@6LL@0w`GSEU(}FbZ5Cu;cy^ob?kBIBHlQU8p00i_ I>zopr0MUdxzyJUM literal 0 HcmV?d00001 diff --git a/styledemo/other/qss/flatwhite/branch_open.png b/styledemo/other/qss/flatwhite/branch_open.png new file mode 100644 index 0000000000000000000000000000000000000000..d621407728096c328213114de9b8df62ded40d0c GIT binary patch literal 273 zcmeAS@N?(olHy`uVBq!ia0vp^A|TAc1|)ksWqE-VXMsm#F#`kN5fEmas?8@26g=$d z;uvDlo1Cz~DB+0u%jr{&oc{UvxoF#eo}z$-**ZQv)4Zqa{cZ8)7q(;Gx&Qwr2cw?G z#zx0y@9*#b^W)0{(+M&LOuQ*62?+@tyu7K&DT#N_ojCBqWtrygFumwk=MFHGKJ<@^ zD|2&m6WuiT>wHHwE2~-jc?zbC!puPM`}ukM|NsBjx90>)NX|PTWPNXrkfh|}U;PjN z>!~dC@A?1#)tZQnj|}6)gM@peI=J=~ZJL{qkW$g2@}*_w%%93zWetxoGVEqIlv{A< S$uXdJ7(8A5T-G@yGywnvC~DaN literal 0 HcmV?d00001 diff --git a/styledemo/other/qss/flatwhite/calendar_nextmonth.png b/styledemo/other/qss/flatwhite/calendar_nextmonth.png new file mode 100644 index 0000000000000000000000000000000000000000..d0e4795f85903a7960f36445e8dd7aaa7a4a4594 GIT binary patch literal 358 zcmV-s0h#`ZP)z)IU$cKp4mI?_tr&=<85gR#r`1*=qlY3xUDWH)2Q_ zNYF582&;?H!O_uywvNWdSKy*C^jN@u<$AqN{>DB}KfSx>Quyy#(=~X0*xz;R_aus5 zihx2@a9wv@Sk)VW*k81EC*#Wt9avEosv9TY7=S$Yf>x(ID0#|0)uYNS0|Y_qAVuD- zcul$e+@Zwr^x3iN4-$_5l$tf$*-ql<)(F&~ja8@s@PnhFgsu)(q&FE~oqnyb*=}!I zv)LK2RT6B}?D}gGPah#?%4Jiz9*y3FBy+e1>HVB|?zLG)eSLnPUm?&0(}Jd0E?5Qw zuvCRqu!GEeU;D>VUYqpuV<3_DCRm|(e%L<@!@Z*YbA#M-1u#8caR2}S07*qoM6N<$ Ef^&|b!~g&Q literal 0 HcmV?d00001 diff --git a/styledemo/other/qss/flatwhite/calendar_prevmonth.png b/styledemo/other/qss/flatwhite/calendar_prevmonth.png new file mode 100644 index 0000000000000000000000000000000000000000..2dbd90768e4133586a8e98d5141b379be291d60d GIT binary patch literal 341 zcmV-b0jmCqP)z)G`Ko2%cq;+M_7?UYXR>R^(B{4uYKb-5pA8S)46d;bzpAtru|2h^Sr?_wN^6ER&xUxEWAMCyS=VZgW z18xP=MP-`q&)wz|o~X>xWO03Q_6E+34!s1f9Su?mQUz?LN75WvV;c|Nf2`2)nR}z+ kmJ1i`>}vGZuHM6_dn9t9SJ3Bhp!XO&UHx3vIVCg!0Pxdo{r~^~ literal 0 HcmV?d00001 diff --git a/styledemo/other/qss/flatwhite/checkbox_checked_disable.png b/styledemo/other/qss/flatwhite/checkbox_checked_disable.png new file mode 100644 index 0000000000000000000000000000000000000000..bad88de04f859aba7912cd80d387946251c421a0 GIT binary patch literal 301 zcmeAS@N?(olHy`uVBq!ia0vp^A|TAc1|)ksWqE-VXMsm#F#`kN5fEmas?8@26uj^0 z;uvDlyY-48Uz33d+XMN-Y~76E=@JR%EfRVTRSXt$-3?nhpO!XsuGqZ#jGogfu}sgu z%grkPeu|rXO=*!Z&oQCviH z&Ptz3H?BNfSZAoeK=fMojVp@Dm9KZ5Q*bWbz{%3ENk>X@RrB6PtrtSySpPYN8fa=b vhi;4va49uNc&Pi@A^G3u+QM_e!4HI;9yHZO=1qA7^eTg=tDnm{r-UW|eF<~W literal 0 HcmV?d00001 diff --git a/styledemo/other/qss/flatwhite/checkbox_parcial.png b/styledemo/other/qss/flatwhite/checkbox_parcial.png new file mode 100644 index 0000000000000000000000000000000000000000..b4e5c908ce9825b29c7e0525c9aabebb5b869520 GIT binary patch literal 172 zcmeAS@N?(olHy`uVBq!ia0vp^A|TAc1|)ksWqE-VXMsm#F#`kN5fEmas?8@26pZt9 zaSXBOO}?`&_jWy-7Lyno5cvE1uaekS`@4)yZPknxmKAvl+-3(&v#$#-wN$a_*wC1L zZJqKhhnzOPe+Dw91y>x57~K30PMcf6xM-8y%C<$#ib8F-x92aP)yR;aB%H(TeiLLp NgQu&X%Q~loCIFf6GvWXM literal 0 HcmV?d00001 diff --git a/styledemo/other/qss/flatwhite/checkbox_parcial_disable.png b/styledemo/other/qss/flatwhite/checkbox_parcial_disable.png new file mode 100644 index 0000000000000000000000000000000000000000..37cfe0bbc9e6ea014227dc79b768d483bb5bd957 GIT binary patch literal 237 zcmeAS@N?(olHy`uVBq!ia0vp^A|TAc1|)ksWqE-VXMsm#F#`kN5fEmas?8@26rAtr z;uvDlo4lvw<)tJxEhaHGAc&2+qZ}Yigz#$oM*Fh|&>GyZ}De7*U7cc(n z+{E_oetkgQ`FXbAY;5kxf0X?8^K*Eenp#`)w{I)jl1df%`M`S_oOON}Lde0r*FAIN59b;~{_Dapd4C;LJ%r=NIIu!oL>(!`>l fpHicpA-k94iC?S eNz3jVIDbcezp)f(41=eupUXO@geCxO|0W~= literal 0 HcmV?d00001 diff --git a/styledemo/other/qss/flatwhite/radiobutton_checked.png b/styledemo/other/qss/flatwhite/radiobutton_checked.png new file mode 100644 index 0000000000000000000000000000000000000000..f98e6c374bbbe2387c42fc6dc5a7b0ee6e8917d0 GIT binary patch literal 726 zcmV;{0xA88P)Tls!+|P!xurdlW)o2#Y%qRh9)T5UEpDBxuV3g9B8e zs0D`d2jKU>ABfb_E_BI9B^VeeAL>*g82FH7Q#z0ZDv>Cldpi(Yri8-4yII%g@q7KA zbKsGs?m8$G3jHE7tF<0hN<9TI#vF^ts@6I`Ha52PAYi#%?$lZ@0u%R``6?oFuIv83 z6Id#ho&hCeOeU2|;W!SKWzpW=4#3651(iw#&-19&YAB^nfLtz@`*{mkE|)uvF+Yqk z8QZq$?d?TGnp)FZv$wa0@B1jFPLxv5L#K(@ON&6pwr#T6Y*g%d9*0Lq0Cact;5arS zLN=Sl7();Q8Dq=>Fc~>46bk)Hsm)X>#n8}D8Z%+ z+S(emS`88DcU^Z|07PUKz;T=#uwv;Or>CdX>vih&I;WKig<_GV&tGWN;W$nRp9PS{ z!!UqlSoBy|0L)BJF+P^#iDl8+nk1P_Vp$e%#>bg@ z|Bgl-p6Agpm511*6pO`WVB+7#_I;oIgF}>3^mKPc&H#3Hb_jw1V0m0h9XN)oQ_4Oel*tUHG5<1)6-6aTuaP;QGvj;7Qur;dH>W$?9{8CDdHeC*(8tZET zczY|6n_3o;`Twr3xEk~Q!5A|VU$9E46%on1uDgBD2Omd&0f{##RTl+jPyRuslRj$=0=wPoW$5~8a}Lzya}C`H=TKJ<|` zh>Dl&?;J1D5T5qPO9h(R08%SfrpR(=V2&-jH<+9FZV$8Dtb?f!oX305{oQl*efI-rL7>}XDywUd*R@21mK1puPLwB2sK>vW!<0{~;}{bVxvo^!swySw|k z+wEQ!03c1%rfHg0!!U;VGabiSJ3KskY}?=bOU=W>qYVJ)be^9Rku(fr7{_rnNs=aj zOZw+#s%x5NnWh;4z+m9&$H%A5FJS;++e?@I{+mah=am5<6V1x(1HhcrzS)#_>t0N2;o zMJeSC0R9OmrSyalK^TS>05HZrw%e_DzW?XSmoVQSuWW3z-!fL`01$?uC4>m1lpc`T zMp2YA&iRKZiq>nj+K`B3ZjFBb_>mAdDgYFVnt1y3hu=0gH~+{6p(u)0Ip?QIlAHl^ zKV@%k?}csKo0Uoh^Tzf(ubc}|t**xTWB@Q244R|S=r7;*f8E~R{%mXjNYnHn2!cwX zPKW@y~fvk{a?T)NpjZhc5e;Xd#}F%|I>*;Brh4a00000NkvXXu0mjfwR(oB literal 0 HcmV?d00001 diff --git a/styledemo/other/qss/flatwhite/radiobutton_unchecked.png b/styledemo/other/qss/flatwhite/radiobutton_unchecked.png new file mode 100644 index 0000000000000000000000000000000000000000..5369132f4640073cf38fb573a1a30134419bb44e GIT binary patch literal 523 zcmV+m0`&cfP)bl)ZA=P!NT`-AYi?m%5*Q2ygYSO)~MR;xD5%b#)1T~|QAXMURJsL^P!%c$R9O(|?% z0BrW`TopyZF2fJy6=1bmoelJ7MC7Fcn%Nj2&vVSIHq6Y(^PH`zaRuBy^yjiH$+E0A za5kG!mLbmfhJk6| literal 0 HcmV?d00001 diff --git a/styledemo/other/qss/flatwhite/radiobutton_unchecked_disable.png b/styledemo/other/qss/flatwhite/radiobutton_unchecked_disable.png new file mode 100644 index 0000000000000000000000000000000000000000..67c61f235d5c96b1c71c4fcff5ab4123c365764e GIT binary patch literal 593 zcmV-X0bl);PIKorKGGnkzi5*&kzxCCK~C-K~i_Xx#{{X6SL zTJ-Lv*NP{%3lfw?NhTyjXCw3IVNH-$MZtc@dBcx4?|btB+*yTlh4Fa&sFZ3FLY@G? zI2Tw(gLWn5Sx=ww~phy5<>9Qvk;MZp7-qgerdDW{M_&N-?C0gc8OBj;heW^+uk-BjhAyU z002S=HX4l=+qQR{^ERcllh*(~3}B44Ow+75j`MmB^tT+x`E8nJg)!C|3m>#ZpwhkVQJZ|fZcA#5b+%Vk{pPL%QQ_z7>4{-U>JrxO;dr0%N$54ohM217DZ7V z5w9KtB9bVI>W8m5&w;M%uBDW-IF19)^PaB-dY<l_FGpp=>jA*R0X zmllgf^HQgXNEVAl)AxN{2r*SkO|sfm;h^if1o$xEI2?i?_*Ezrew+-4Om~g1V_gbZ fDdjwy*?-p`E1M}VZVS8600000NkvXXu0mjf`*;N- literal 0 HcmV?d00001 diff --git a/styledemo/other/qss/lightblue.css b/styledemo/other/qss/lightblue.css new file mode 100644 index 0000000..4b900af --- /dev/null +++ b/styledemo/other/qss/lightblue.css @@ -0,0 +1,648 @@ +QPalette{background:#EAF7FF;}*{outline:0px;color:#386487;} + +QWidget[form="true"],QLabel[frameShape="1"]{ +border:1px solid #C0DCF2; +border-radius:0px; +} + +QWidget[form="bottom"]{ +background:#DEF0FE; +} + +QWidget[form="bottom"] .QFrame{ +border:1px solid #386487; +} + +QWidget[form="bottom"] QLabel,QWidget[form="title"] QLabel{ +border-radius:0px; +color:#386487; +background:none; +border-style:none; +} + +QWidget[form="title"],QWidget[nav="left"],QWidget[nav="top"] QAbstractButton{ +border-style:none; +border-radius:0px; +padding:5px; +color:#386487; +background:qlineargradient(spread:pad,x1:0,y1:0,x2:0,y2:1,stop:0 #DEF0FE,stop:1 #C0DEF6); +} + +QWidget[nav="top"] QAbstractButton:hover,QWidget[nav="top"] QAbstractButton:pressed,QWidget[nav="top"] QAbstractButton:checked{ +border-style:solid; +border-width:0px 0px 2px 0px; +padding:4px 4px 2px 4px; +border-color:#00BB9E; +background:qlineargradient(spread:pad,x1:0,y1:0,x2:0,y2:1,stop:0 #F2F9FF,stop:1 #DAEFFF); +} + +QWidget[nav="left"] QAbstractButton{ +border-radius:0px; +color:#386487; +background:none; +border-style:none; +} + +QWidget[nav="left"] QAbstractButton:hover{ +color:#FFFFFF; +background-color:#00BB9E; +} + +QWidget[nav="left"] QAbstractButton:checked,QWidget[nav="left"] QAbstractButton:pressed{ +color:#386487; +border-style:solid; +border-width:0px 0px 0px 2px; +padding:4px 4px 4px 2px; +border-color:#00BB9E; +background-color:#EAF7FF; +} + +QWidget[video="true"] QLabel{ +color:#386487; +border:1px solid #C0DCF2; +background:qlineargradient(spread:pad,x1:0,y1:0,x2:0,y2:1,stop:0 #DEF0FE,stop:1 #C0DEF6); +} + +QWidget[video="true"] QLabel:focus{ +border:1px solid #00BB9E; +background:qlineargradient(spread:pad,x1:0,y1:0,x2:0,y2:1,stop:0 #F2F9FF,stop:1 #DAEFFF); +} + +QLineEdit,QTextEdit,QPlainTextEdit,QSpinBox,QDoubleSpinBox,QComboBox,QDateEdit,QTimeEdit,QDateTimeEdit{ +border:1px solid #C0DCF2; +border-radius:3px; +padding:2px; +background:none; +selection-background-color:#00BB9E; +selection-color:#FFFFFF; +} + +QLineEdit:focus,QTextEdit:focus,QPlainTextEdit:focus,QSpinBox:focus,QDoubleSpinBox:focus,QComboBox:focus,QDateEdit:focus,QTimeEdit:focus,QDateTimeEdit:focus,QLineEdit:hover,QTextEdit:hover,QPlainTextEdit:hover,QSpinBox:hover,QDoubleSpinBox:hover,QComboBox:hover,QDateEdit:hover,QTimeEdit:hover,QDateTimeEdit:hover{ +border:1px solid #C0DCF2; +} + +QLineEdit[echoMode="2"]{ +lineedit-password-character:9679; +} + +.QFrame{ +border:1px solid #C0DCF2; +border-radius:3px; +} + +.QGroupBox{ +border:1px solid #C0DCF2; +border-radius:5px; +margin-top:3ex; +} + +.QGroupBox::title{ +subcontrol-origin:margin; +position:relative; +left:10px; +} + +.QPushButton,.QToolButton{ +border-style:none; +border:1px solid #C0DCF2; +color:#386487; +padding:5px; +min-height:15px; +border-radius:5px; +background:qlineargradient(spread:pad,x1:0,y1:0,x2:0,y2:1,stop:0 #DEF0FE,stop:1 #C0DEF6); +} + +.QPushButton:hover,.QToolButton:hover{ +background:qlineargradient(spread:pad,x1:0,y1:0,x2:0,y2:1,stop:0 #F2F9FF,stop:1 #DAEFFF); +} + +.QPushButton:pressed,.QToolButton:pressed{ +background:qlineargradient(spread:pad,x1:0,y1:0,x2:0,y2:1,stop:0 #DEF0FE,stop:1 #C0DEF6); +} + +.QToolButton::menu-indicator{ +image:None; +} + +QToolButton#btnMenu,QPushButton#btnMenu_Min,QPushButton#btnMenu_Max,QPushButton#btnMenu_Close{ +border-radius:3px; +color:#386487; +padding:3px; +margin:0px; +background:none; +border-style:none; +} + +QToolButton#btnMenu:hover,QPushButton#btnMenu_Min:hover,QPushButton#btnMenu_Max:hover{ +color:#FFFFFF; +margin:1px 1px 2px 1px; +background-color:rgba(51,127,209,230); +} + +QPushButton#btnMenu_Close:hover{ +color:#FFFFFF; +margin:1px 1px 2px 1px; +background-color:rgba(238,0,0,128); +} + +QRadioButton::indicator{ +width:15px; +height:15px; +} + +QRadioButton::indicator::unchecked{ +image:url(:/qss/lightblue/radiobutton_unchecked.png); +} + +QRadioButton::indicator::unchecked:disabled{ +image:url(:/qss/lightblue/radiobutton_unchecked_disable.png); +} + +QRadioButton::indicator::checked{ +image:url(:/qss/lightblue/radiobutton_checked.png); +} + +QRadioButton::indicator::checked:disabled{ +image:url(:/qss/lightblue/radiobutton_checked_disable.png); +} + +QGroupBox::indicator,QTreeWidget::indicator,QListWidget::indicator{ +padding:0px -3px 0px 0px; +} + +QCheckBox::indicator,QGroupBox::indicator,QTreeWidget::indicator,QListWidget::indicator{ +width:13px; +height:13px; +} + +QCheckBox::indicator:unchecked,QGroupBox::indicator:unchecked,QTreeWidget::indicator:unchecked,QListWidget::indicator:unchecked{ +image:url(:/qss/lightblue/checkbox_unchecked.png); +} + +QCheckBox::indicator:unchecked:disabled,QGroupBox::indicator:unchecked:disabled,QTreeWidget::indicator:unchecked:disabled,QListWidget::indicator:disabled{ +image:url(:/qss/lightblue/checkbox_unchecked_disable.png); +} + +QCheckBox::indicator:checked,QGroupBox::indicator:checked,QTreeWidget::indicator:checked,QListWidget::indicator:checked{ +image:url(:/qss/lightblue/checkbox_checked.png); +} + +QCheckBox::indicator:checked:disabled,QGroupBox::indicator:checked:disabled,QTreeWidget::indicator:checked:disabled,QListWidget::indicator:checked:disabled{ +image:url(:/qss/lightblue/checkbox_checked_disable.png); +} + +QCheckBox::indicator:indeterminate,QGroupBox::indicator:indeterminate,QTreeWidget::indicator:indeterminate,QListWidget::indicator:indeterminate{ +image:url(:/qss/lightblue/checkbox_parcial.png); +} + +QCheckBox::indicator:indeterminate:disabled,QGroupBox::indicator:indeterminate:disabled,QTreeWidget::indicator:indeterminate:disabled,QListWidget::indicator:indeterminate:disabled{ +image:url(:/qss/lightblue/checkbox_parcial_disable.png); +} + +QTimeEdit::up-button,QDateEdit::up-button,QDateTimeEdit::up-button,QDoubleSpinBox::up-button,QSpinBox::up-button{ +image:url(:/qss/lightblue/add_top.png); +width:10px; +height:10px; +padding:2px 5px 0px 0px; +} + +QTimeEdit::down-button,QDateEdit::down-button,QDateTimeEdit::down-button,QDoubleSpinBox::down-button,QSpinBox::down-button{ +image:url(:/qss/lightblue/add_bottom.png); +width:10px; +height:10px; +padding:0px 5px 2px 0px; +} + +QTimeEdit::up-button:pressed,QDateEdit::up-button:pressed,QDateTimeEdit::up-button:pressed,QDoubleSpinBox::up-button:pressed,QSpinBox::up-button:pressed{ +top:-2px; +} + +QTimeEdit::down-button:pressed,QDateEdit::down-button:pressed,QDateTimeEdit::down-button:pressed,QDoubleSpinBox::down-button:pressed,QSpinBox::down-button:pressed,QSpinBox::down-button:pressed{ +bottom:-2px; +} + +QComboBox::down-arrow,QDateEdit[calendarPopup="true"]::down-arrow,QTimeEdit[calendarPopup="true"]::down-arrow,QDateTimeEdit[calendarPopup="true"]::down-arrow{ +image:url(:/qss/lightblue/add_bottom.png); +width:10px; +height:10px; +right:2px; +} + +QComboBox::drop-down,QDateEdit::drop-down,QTimeEdit::drop-down,QDateTimeEdit::drop-down{ +subcontrol-origin:padding; +subcontrol-position:top right; +width:15px; +border-left-width:0px; +border-left-style:solid; +border-top-right-radius:3px; +border-bottom-right-radius:3px; +border-left-color:#C0DCF2; +} + +QComboBox::drop-down:on{ +top:1px; +} + +QMenuBar::item{ +color:#386487; +background-color:#DEF0FE; +margin:0px; +padding:3px 10px; +} + +QMenu,QMenuBar,QMenu:disabled,QMenuBar:disabled{ +color:#386487; +background-color:#DEF0FE; +border:1px solid #C0DCF2; +margin:0px; +} + +QMenu::item{ +padding:3px 20px; +} + +QMenu::indicator{ +width:13px; +height:13px; +} + +QMenu::item:selected,QMenuBar::item:selected{ +color:#386487; +border:0px solid #C0DCF2; +background:#F2F9FF; +} + +QMenu::separator{ +height:1px; +background:#C0DCF2; +} + +QProgressBar{ +min-height:10px; +background:#DEF0FE; +border-radius:5px; +text-align:center; +border:1px solid #DEF0FE; +} + +QProgressBar:chunk{ +border-radius:5px; +background-color:#C0DCF2; +} + +QSlider::groove:horizontal{ +background:#DEF0FE; +height:8px; +border-radius:4px; +} + +QSlider::add-page:horizontal{ +background:#DEF0FE; +height:8px; +border-radius:4px; +} + +QSlider::sub-page:horizontal{ +background:#C0DCF2; +height:8px; +border-radius:4px; +} + +QSlider::handle:horizontal{ +width:13px; +margin-top:-3px; +margin-bottom:-3px; +border-radius:6px; +background:qradialgradient(spread:pad,cx:0.5,cy:0.5,radius:0.5,fx:0.5,fy:0.5,stop:0.6 #EAF7FF,stop:0.8 #C0DCF2); +} + +QSlider::groove:vertical{ +width:8px; +border-radius:4px; +background:#DEF0FE; +} + +QSlider::add-page:vertical{ +width:8px; +border-radius:4px; +background:#DEF0FE; +} + +QSlider::sub-page:vertical{ +width:8px; +border-radius:4px; +background:#C0DCF2; +} + +QSlider::handle:vertical{ +height:14px; +margin-left:-3px; +margin-right:-3px; +border-radius:6px; +background:qradialgradient(spread:pad,cx:0.5,cy:0.5,radius:0.5,fx:0.5,fy:0.5,stop:0.6 #EAF7FF,stop:0.8 #C0DCF2); +} + +QScrollBar:horizontal{ +background:#DEF0FE; +padding:0px; +border-radius:6px; +max-height:12px; +} + +QScrollBar::handle:horizontal{ +background:#C0DCF2; +min-width:50px; +border-radius:6px; +} + +QScrollBar::handle:horizontal:hover{ +background:#00BB9E; +} + +QScrollBar::handle:horizontal:pressed{ +background:#00BB9E; +} + +QScrollBar::add-page:horizontal{ +background:none; +} + +QScrollBar::sub-page:horizontal{ +background:none; +} + +QScrollBar::add-line:horizontal{ +background:none; +} + +QScrollBar::sub-line:horizontal{ +background:none; +} + +QScrollBar:vertical{ +background:#DEF0FE; +padding:0px; +border-radius:6px; +max-width:12px; +} + +QScrollBar::handle:vertical{ +background:#C0DCF2; +min-height:50px; +border-radius:6px; +} + +QScrollBar::handle:vertical:hover{ +background:#00BB9E; +} + +QScrollBar::handle:vertical:pressed{ +background:#00BB9E; +} + +QScrollBar::add-page:vertical{ +background:none; +} + +QScrollBar::sub-page:vertical{ +background:none; +} + +QScrollBar::add-line:vertical{ +background:none; +} + +QScrollBar::sub-line:vertical{ +background:none; +} + +QScrollArea{ +border:0px; +} + +QTreeView,QListView,QTableView,QTabWidget::pane{ +border:1px solid #C0DCF2; +selection-background-color:#F2F9FF; +selection-color:#386487; +alternate-background-color:#DAEFFF; +gridline-color:#C0DCF2; +} + +QTreeView::branch:closed:has-children{ +margin:4px; +border-image:url(:/qss/lightblue/branch_open.png); +} + +QTreeView::branch:open:has-children{ +margin:4px; +border-image:url(:/qss/lightblue/branch_close.png); +} + +QTreeView,QListView,QTableView,QSplitter::handle,QTreeView::branch{ +background:#EAF7FF; +} + +QTableView::item:selected,QListView::item:selected,QTreeView::item:selected{ +color:#386487; +background:qlineargradient(spread:pad,x1:0,y1:0,x2:0,y2:1,stop:0 #DEF0FE,stop:1 #C0DEF6); +} + +QTableView::item:hover,QListView::item:hover,QTreeView::item:hover,QHeaderView{ +color:#386487; +background:qlineargradient(spread:pad,x1:0,y1:0,x2:0,y2:1,stop:0 #F2F9FF,stop:1 #DAEFFF); +} + +QTableView::item,QListView::item,QTreeView::item{ +padding:1px; +margin:0px; +} + +QHeaderView::section,QTableCornerButton:section{ +padding:3px; +margin:0px; +color:#386487; +border:1px solid #C0DCF2; +border-left-width:0px; +border-right-width:1px; +border-top-width:0px; +border-bottom-width:1px; +background:qlineargradient(spread:pad,x1:0,y1:0,x2:0,y2:1,stop:0 #F2F9FF,stop:1 #DAEFFF); +} + +QTabBar::tab{ +border:1px solid #C0DCF2; +color:#386487; +margin:0px; +background:qlineargradient(spread:pad,x1:0,y1:0,x2:0,y2:1,stop:0 #F2F9FF,stop:1 #DAEFFF); +} + +QTabBar::tab:selected,QTabBar::tab:hover{ +border-style:solid; +border-color:#00BB9E; +background:#EAF7FF; +} + +QTabBar::tab:top,QTabBar::tab:bottom{ +padding:3px 8px 3px 8px; +} + +QTabBar::tab:left,QTabBar::tab:right{ +padding:8px 3px 8px 3px; +} + +QTabBar::tab:top:selected,QTabBar::tab:top:hover{ +border-width:2px 0px 0px 0px; +} + +QTabBar::tab:right:selected,QTabBar::tab:right:hover{ +border-width:0px 0px 0px 2px; +} + +QTabBar::tab:bottom:selected,QTabBar::tab:bottom:hover{ +border-width:0px 0px 2px 0px; +} + +QTabBar::tab:left:selected,QTabBar::tab:left:hover{ +border-width:0px 2px 0px 0px; +} + +QTabBar::tab:first:top:selected,QTabBar::tab:first:top:hover,QTabBar::tab:first:bottom:selected,QTabBar::tab:first:bottom:hover{ +border-left-width:1px; +border-left-color:#C0DCF2; +} + +QTabBar::tab:first:left:selected,QTabBar::tab:first:left:hover,QTabBar::tab:first:right:selected,QTabBar::tab:first:right:hover{ +border-top-width:1px; +border-top-color:#C0DCF2; +} + +QTabBar::tab:last:top:selected,QTabBar::tab:last:top:hover,QTabBar::tab:last:bottom:selected,QTabBar::tab:last:bottom:hover{ +border-right-width:1px; +border-right-color:#C0DCF2; +} + +QTabBar::tab:last:left:selected,QTabBar::tab:last:left:hover,QTabBar::tab:last:right:selected,QTabBar::tab:last:right:hover{ +border-bottom-width:1px; +border-bottom-color:#C0DCF2; +} + +QStatusBar::item{ +border:0px solid #DEF0FE; +border-radius:3px; +} + +QToolBox::tab,QGroupBox#gboxDevicePanel,QGroupBox#gboxDeviceTitle,QFrame#gboxDevicePanel,QFrame#gboxDeviceTitle{ +padding:3px; +border-radius:5px; +color:#386487; +background:qlineargradient(spread:pad,x1:0,y1:0,x2:0,y2:1,stop:0 #DEF0FE,stop:1 #C0DEF6); +} + +QToolTip{ +border:0px solid #386487; +padding:1px; +color:#386487; +background:qlineargradient(spread:pad,x1:0,y1:0,x2:0,y2:1,stop:0 #DEF0FE,stop:1 #C0DEF6); +} + +QToolBox::tab:selected{ +background:qlineargradient(spread:pad,x1:0,y1:0,x2:0,y2:1,stop:0 #F2F9FF,stop:1 #DAEFFF); +} + +QPrintPreviewDialog QToolButton{ +border:0px solid #386487; +border-radius:0px; +margin:0px; +padding:3px; +background:none; +} + +QColorDialog QPushButton,QFileDialog QPushButton{ +min-width:80px; +} + +QToolButton#qt_calendar_prevmonth{ +icon-size:0px; +min-width:20px; +image:url(:/qss/lightblue/calendar_prevmonth.png); +} + +QToolButton#qt_calendar_nextmonth{ +icon-size:0px; +min-width:20px; +image:url(:/qss/lightblue/calendar_nextmonth.png); +} + +QToolButton#qt_calendar_prevmonth,QToolButton#qt_calendar_nextmonth,QToolButton#qt_calendar_monthbutton,QToolButton#qt_calendar_yearbutton{ +border:0px solid #386487; +border-radius:3px; +margin:3px 3px 3px 3px; +padding:3px; +background:none; +} + +QToolButton#qt_calendar_prevmonth:hover,QToolButton#qt_calendar_nextmonth:hover,QToolButton#qt_calendar_monthbutton:hover,QToolButton#qt_calendar_yearbutton:hover,QToolButton#qt_calendar_prevmonth:pressed,QToolButton#qt_calendar_nextmonth:pressed,QToolButton#qt_calendar_monthbutton:pressed,QToolButton#qt_calendar_yearbutton:pressed{ +border:1px solid #C0DCF2; +} + +QCalendarWidget QSpinBox#qt_calendar_yearedit{ +margin:2px; +} + +QCalendarWidget QToolButton::menu-indicator{ +image:None; +} + +QCalendarWidget QTableView{ +border-width:0px; +} + +QCalendarWidget QWidget#qt_calendar_navigationbar{ +border:1px solid #C0DCF2; +border-width:1px 1px 0px 1px; +background:qlineargradient(spread:pad,x1:0,y1:0,x2:0,y2:1,stop:0 #DEF0FE,stop:1 #C0DEF6); +} + +QComboBox QAbstractItemView::item{ +min-height:20px; +min-width:10px; +} + +QTableView[model="true"]::item{ +padding:0px; +margin:0px; +} + +QTableView QLineEdit,QTableView QComboBox,QTableView QSpinBox,QTableView QDoubleSpinBox,QTableView QDateEdit,QTableView QTimeEdit,QTableView QDateTimeEdit{ +border-width:0px; +border-radius:0px; +} + +QTableView QLineEdit:focus,QTableView QComboBox:focus,QTableView QSpinBox:focus,QTableView QDoubleSpinBox:focus,QTableView QDateEdit:focus,QTableView QTimeEdit:focus,QTableView QDateTimeEdit:focus{ +border-width:0px; +border-radius:0px; +} + +QLineEdit,QTextEdit,QPlainTextEdit,QSpinBox,QDoubleSpinBox,QComboBox,QDateEdit,QTimeEdit,QDateTimeEdit{ +background:#EAF7FF; +} + +QTabWidget::pane:top{top:-1px;} +QTabWidget::pane:bottom{bottom:-1px;} +QTabWidget::pane:left{right:-1px;} +QTabWidget::pane:right{left:-1px;} + +*:disabled{ +background:#EAF7FF; +border-color:#DEF0FE; +color:#C0DCF2; +} + +/*TextColor:#386487*/ +/*PanelColor:#EAF7FF*/ +/*BorderColor:#C0DCF2*/ +/*NormalColorStart:#DEF0FE*/ +/*NormalColorEnd:#C0DEF6*/ +/*DarkColorStart:#F2F9FF*/ +/*DarkColorEnd:#DAEFFF*/ +/*HighColor:#00BB9E*/ \ No newline at end of file diff --git a/styledemo/other/qss/lightblue/add_bottom.png b/styledemo/other/qss/lightblue/add_bottom.png new file mode 100644 index 0000000000000000000000000000000000000000..11c409a69f48d3649638eddf4d666196e465604c GIT binary patch literal 182 zcmeAS@N?(olHy`uVBq!ia0vp^A|TAc1|)ksWqE-VXMsm#F#`kN5fEmas?8@26wL5+ zaSXBOO-_(tJuGivWME(rv-j8hx2C_JzvbcK@k^Oi-23={zBhO1Lw}zu#nLPWha^OH z2)(lsVLoXha@2r_+0#Viu)!KOp-hdi!v#_v2Lk4_Jv0?)Us%DboS`slp->BtG;1@^ ZE%U|vx&Qz8IvHpugQu&X%Q~loCIG_UHYWf8 literal 0 HcmV?d00001 diff --git a/styledemo/other/qss/lightblue/add_left.png b/styledemo/other/qss/lightblue/add_left.png new file mode 100644 index 0000000000000000000000000000000000000000..62f8532fc77a8957014e12186a6360c5383a699f GIT binary patch literal 222 zcmeAS@N?(olHy`uVBq!ia0vp^A|TAc1|)ksWqE-VXMsm#F#`kN5fEmas?8@26rAAc z;uvDlo17r=reR_TZ}|Fu>D6cdRa!GMH?ti7e}9_TszdW9Je_&Mq zQj2(9jCs@*PB|p;DxY!);!(~}SlRZ_bb`#`0x6Gmi59#|SQ1PFqGx}c{=z@bpN*}p zHpFm(kn_i?nKI6tZHg<~ghVx$NO+a#2xn_}o@6_FLH*7D{q-uY{~s_gIL!A|c#>;j Q33MBSr>mdKI;Vst0K?5n4gdfE literal 0 HcmV?d00001 diff --git a/styledemo/other/qss/lightblue/add_right.png b/styledemo/other/qss/lightblue/add_right.png new file mode 100644 index 0000000000000000000000000000000000000000..fa043d440dbcb1d6d6b38b9cfbc15547f9e20c3f GIT binary patch literal 221 zcmeAS@N?(olHy`uVBq!ia0vp^A|TAc1|)ksWqE-VXMsm#F#`kN5fEmas?8@26zunO zaSXBOy?V)zugO5-=*Mu5X`L+(9x$eSWGO1@V-R1#eb1q{Q%At*)x8Pds!I?4|Iv2; zOT*sfcMeKaSG?HBT5#&^rI^>R4mWgK@4393?TX}q)S$@g{Ocd7U+8pmR_OI|;F{W$ zG={iqEq1SocbBvl+69BnAcacsg+1W;y-Ug87?V^I!M)rW8MgEhPdc Qflg!aboFyt=akR{0G~rqJ^%m! literal 0 HcmV?d00001 diff --git a/styledemo/other/qss/lightblue/add_top.png b/styledemo/other/qss/lightblue/add_top.png new file mode 100644 index 0000000000000000000000000000000000000000..2636e2aed1fa5504f575c7c8a5dacb6439f3de82 GIT binary patch literal 178 zcmeAS@N?(olHy`uVBq!ia0vp^A|TAc1|)ksWqE-VXMsm#F#`kN5fEmas?8@26io4S zaSXBOO-_(tUEGjzz{BI<)z$xR#%->@ckaLeg@YgeZ(rKF>Vx_wUKgV?oLVKl6Bb(V z9!Zkmd0;BCy0L;sIYXnZ(M6)|dVmPCrvcCMg$2wf4R}^B>=BV_OVkja$=1Up#l&Ed W<fs&G+U$EKjXuQJW!vh5JcJ=>Ho;Xm@9^)(_DKYPWkoCPeN%JnfJaytj zzWAhb{`LR=T(z{_|I9E>JV>}ls)H-ypW&Q@goKI~l`kzXug~wlQg%duouSdxK<-N3 S`YS;HFnGH9xvXzl)p{_K@i5jIgMJV(4SABjndpERubV2EN$Snu(Sd@ z8*|Vo35AIszJ@`OPQx`vXGti$-b4#3$HGXEyS-hm@+)U&fAcp3{C6$s9E9}R_HJSkztjSGIiX>Rni~rl%udWvJ2%G0w4cnLfC~;J_>u?IXfV# zjT;b49Xv@4Y6X7%beiFQrMbZtUjoQw0TLj#_70=B;Zq1`dYDDl^Ih!&OkKTevKZ8w zop|cn{7SVx^ZhddE&|g67low)v%mmgS(zU3HaJF;L8qR2ag=NG`98TOpg#*UIbT`{ g>9w88#eu2+H{MQiL%~kj+5i9m07*qoM6N<$g5lepkN^Mx literal 0 HcmV?d00001 diff --git a/styledemo/other/qss/lightblue/calendar_prevmonth.png b/styledemo/other/qss/lightblue/calendar_prevmonth.png new file mode 100644 index 0000000000000000000000000000000000000000..e4bfa5a6dc2a49a05c078e9e5b934e6e93aa3d83 GIT binary patch literal 355 zcmV-p0i6DcP)z)S*rTK@fo9f3_tkD83Q}K^4&w^z{wEVaUAzst82w zIUe8=R8^kC%0q!6eSs5@!rd;SrsdeBy*t6E-ObLI+010&zlSVy>F_kzNL4oE zYqQn86U@nC0d$%zZ)-9hU9SXIf#$%n zsI|*c*t<2TZZ1L0uB$@l*yK@FhQH zNZOnbm6qNrID@zD=id8!D)Y;FvuBBC^sqj-VXGT4X|KUnkDx8hVb9O~IHKgkAaTZa z+h)59rB0m86?4AlBw00asTFm;lRY5CQ+?>1EYl~xrH@{oO1I5w{F$8dAkuGzNc^D% zcRYiAjbP0l+XkK7kG9g literal 0 HcmV?d00001 diff --git a/styledemo/other/qss/lightblue/checkbox_checked_disable.png b/styledemo/other/qss/lightblue/checkbox_checked_disable.png new file mode 100644 index 0000000000000000000000000000000000000000..47e6e3f8bfad80dfc525d7d875495f7d900c9ae0 GIT binary patch literal 316 zcmeAS@N?(olHy`uVBq!ia0vp^A|TAc1|)ksWqE-VXMsm#F#`kN5fEmas?8@26ny9D z;uvDlyY z!tPx&giLQOJ5ulU;K}1T4ndrYQg}N985cya&r3}RoO4b@Qb79Uf~ao^8~A5S*QYZz zSiYDmcI`)mREi;k!o!{UCRyLZmh0MmvUV%p5yR{7fp34}u4Ss)$CVh2jiPPl_nkCbm-jd@N zJs5XDDMRiX<3FeFgqR8KVn_Ei>1Z`ETINTxEc$u=yXeuEK4L!@4w^K@B{xcR0e#Nk M>FVdQ&MBb@0Q0eYnE(I) literal 0 HcmV?d00001 diff --git a/styledemo/other/qss/lightblue/checkbox_parcial.png b/styledemo/other/qss/lightblue/checkbox_parcial.png new file mode 100644 index 0000000000000000000000000000000000000000..0f15672a9cfccd1b8e03e95371e72cf782dc3786 GIT binary patch literal 187 zcmeAS@N?(olHy`uVBq!ia0vp^A|TAc1|)ksWqE-VXMsm#F#`kN5fEmas?8@26wLK> zaSXBOO|~g`ez~4ai%E!R!Nk-eVNXtwrWNT%ZfY&ZnJ|=Z}$rZA0Vf z?ed8c`+6;yCI1;4xKu5avifnj;L3qO=93H(ma0G{jg2Rmcx|UAmc)I$ztaD0e0svN-I*kAT literal 0 HcmV?d00001 diff --git a/styledemo/other/qss/lightblue/checkbox_parcial_disable.png b/styledemo/other/qss/lightblue/checkbox_parcial_disable.png new file mode 100644 index 0000000000000000000000000000000000000000..4207b3c5718752b9ebc9a6a53fc32577fc2ec787 GIT binary patch literal 219 zcmeAS@N?(olHy`uVBq!ia0vp^A|TAc1|)ksWqE-VXMsm#F#`kN5fEmas?8@2lJj(N z46*11 zvAwgZ^Q`-QvH07bm^tzvCBOZ=U0%n=*4F%@EvZydU;MdyBICUBBRhm-dH#7wnidF1 zb(qRJ3G2o+c=NV3UYJrpLE^f=)UO4aDq=hnJu1I_+^xHnhlN4%j(QOP47U|PhcS4% L`njxgN@xNA$gE3r literal 0 HcmV?d00001 diff --git a/styledemo/other/qss/lightblue/checkbox_unchecked.png b/styledemo/other/qss/lightblue/checkbox_unchecked.png new file mode 100644 index 0000000000000000000000000000000000000000..162a9a755934822af18cef1582251e473bec3c5e GIT binary patch literal 135 zcmeAS@N?(olHy`uVBq!ia0vp^A|TAc1|)ksWqE-VXMsm#F#`kN5fEmas?8@26twho zaSXBOO|~g`ez~4ai%E!R!Nk-eVNXtwrWNTiyNf9-iL1 a3=E97IMbIf&T9u6!r}=5`XB7Lyno5NOt&JAB39&CTQQxA|N#;E?Q*vdDU{qH!@>pA-k94iC?S eNz3E|xLP~gR2zWCFnGH9xvX literal 0 HcmV?d00001 diff --git a/styledemo/other/qss/lightblue/radiobutton_checked.png b/styledemo/other/qss/lightblue/radiobutton_checked.png new file mode 100644 index 0000000000000000000000000000000000000000..c2a4b8345971b87a81c7621d2664ebc42ce0acfd GIT binary patch literal 680 zcmV;Z0$2TsP)Tlub_)Q51%sb7%O_PHd4xY(rwxXcMAw1?h^W5jGl4 zkTv)N>*dGAu!VNS{6A}dy5*HG%F$MW3Bo#(lwPj|mi=mSu6inpZ&V8SG@44q3 zxMWGY54klvB?gn?$p}I}0Gds$^qh9dK1hZ?{u8iJszp7=eF={3Ro!BqS|qnG{kyB z9o!6eBW((zHI(h&?AMNbsA&u~lbX##$JdPYggS^ux&w3ZTbbfU8Gz)iD2e_)Lz2UI?-DW1Y$m@4`zh2^d0JNtj0eqk*BLG&H z8C-LIc?HLDPu0(HTnbAol(zP0^=Pd}17Neyny*>hCvZ9!(R2y6m`7hmUjl$Ar?89Fm5Vo$88M@2F%@Ulklzm@~ArIdPf=5lCF z>iM(z^z3|rrj=<-ox8qTm0Pn@hEfw+>(SN)DJ_gOoC(qZ O0000Tl<#ZXMjXbUyVFUEWHZZk6=QFqBvD%u0$WljtYL3j zmeH|S`#bllWRTLmD1?qemUSC}WOftCW|IhGr`S@ZJKf!0q-xX58D;c&c|RVW<&O2cP=y{Zd|Z)Z4LaTu$6oc6hGja*7I0LZjQ=7Q z@U>Kb*c_W*e)h@mUxttReXpAN-+SD;TXC(l=Glh~(9@o!0D6{+`AJrIsVtt4-QYtK>ytPa6mTh(ht+>7WV#E~Oa^oU*I*s!RV@6excH@=R+N0GeTaY+FoT zb;-7Y(4AJyI!8vs&2 z-Da6TOF-@#ZK9y!ykvl$3+u^TSbu9$CL2xig+!>COsVIopKh0XQ{mt;w&L>thC?RR z@U;-XJ1+ZiDjZ6^hcAmY&r5p&UxgXv#RuZ+qRs&;BN%!Ku(~H9Ivb14set|H`UmVX VfBVHkgUbK_002ovPDHLkV1i`TirWAH literal 0 HcmV?d00001 diff --git a/styledemo/other/qss/lightblue/radiobutton_unchecked.png b/styledemo/other/qss/lightblue/radiobutton_unchecked.png new file mode 100644 index 0000000000000000000000000000000000000000..433ab0f979d47b3953f9176db4e982640f7a9713 GIT binary patch literal 520 zcmV+j0{8uiP)bl)X+HK@^3*J2N(xywZZ)*j5Tekup^jIv0T^si2Qv z0G#s4?>(Q++?l!Xk0rAT7njMl zSlZ%c2jL9>%8eR5*No1`xAC{7fZgk1!>8FXu(u%0sd4t8wOQ@W1a_|m@6`LR3QcE) zT2v-lbChh}HqMm6W6Is&i8NCLZpD~St*z+i3t;zp*w8flq0ro@mZ--SWX3>Lp`VPn zAC7aVv+qMv6PkRQ9S2xreKrh01RCoVHmW5Qnm)~rLd`&a0l=QKLOrf57~NF$xPr^a zvERK)J`_N)v;k^Sd2X`TlGdU!0P0P93iPrA5Usi8X%hvHs_quR@Xo?*uA;&-VVHT% zf1(_y+(7=$R#oAdFbseiJqH*(rYi%3M?}u1z>E&S-QWpbA*5>V0TAOm1#t4wPt#24 zC!?i-{bWR%ANi!U6@M>)0LIw^f!q7xnBK!^Zcbl(B0YF%-r>NvAtmm(ZL8!Ps<3<0*J96z?8Nr~aLt zLJQeVp=(VhyIG146M`=#KKV{MNgdL2($scsXutJ6{rKLK^a1}^WK-dCa(}|%yYQ~# zsgD7GIFf_VsR0=e&JJ&O0$!x4l)3D4O3tH@wHPG{JfdISrFA|lwVfH~uT-pt@7is( z5%~H0kES+w+u*DhG1iovraTNXL1_U1g>%B_DpAI@OKay#V@Dy!$2Tuu%>Mvhq^UeC z;`fpVuMb3^j%0Yv0Jm-|3(z~IPZvccm8rhmi~K|Fl-5l$m;DB3y#o=bV;N31!2o~( z?pTJCIAlw~SWo7%U)SjB0w_6;7;7HM@Ol&IxsrqEo8YX;DLKEK%uZH74&RMJ){>m2 z+nlX)DmhJ~fVDWn?&HYbbr>ZH4})x1SS=m~84E}PPdh81r#^;9RNv-45|kG3i0ZdW z|8`(sQK0?-C=2JrzJS6x0fLe^l0P~mbZVW?jINS>fksz}t$YUJrYoQU8JF75lyPml z#~Lg^m2vH|vNHocUI7PZhd0LgtJ2!}ozkbf0<%T=sxWqLoWB~JwQg2G08p_SE{z>6 zib~!t%I-F&7NEC_vYTt$D6Ac+SPkpi+Heqz^#tD@4u!GvrPf~~!9J}Ghg!eISHM~i zkM>D?RX!`L9pme%9s<^M;pwx0byEX9u6Op|^%I|N9VgB7g((04002ovPDHLkV1ioP B5`q8# literal 0 HcmV?d00001 diff --git a/styledemo/other/qss/psblack.css b/styledemo/other/qss/psblack.css new file mode 100644 index 0000000..b61436d --- /dev/null +++ b/styledemo/other/qss/psblack.css @@ -0,0 +1,648 @@ +QPalette{background:#444444;}*{outline:0px;color:#DCDCDC;} + +QWidget[form="true"],QLabel[frameShape="1"]{ +border:1px solid #242424; +border-radius:0px; +} + +QWidget[form="bottom"]{ +background:#484848; +} + +QWidget[form="bottom"] .QFrame{ +border:1px solid #DCDCDC; +} + +QWidget[form="bottom"] QLabel,QWidget[form="title"] QLabel{ +border-radius:0px; +color:#DCDCDC; +background:none; +border-style:none; +} + +QWidget[form="title"],QWidget[nav="left"],QWidget[nav="top"] QAbstractButton{ +border-style:none; +border-radius:0px; +padding:5px; +color:#DCDCDC; +background:qlineargradient(spread:pad,x1:0,y1:0,x2:0,y2:1,stop:0 #484848,stop:1 #383838); +} + +QWidget[nav="top"] QAbstractButton:hover,QWidget[nav="top"] QAbstractButton:pressed,QWidget[nav="top"] QAbstractButton:checked{ +border-style:solid; +border-width:0px 0px 2px 0px; +padding:4px 4px 2px 4px; +border-color:#00BB9E; +background:qlineargradient(spread:pad,x1:0,y1:0,x2:0,y2:1,stop:0 #646464,stop:1 #525252); +} + +QWidget[nav="left"] QAbstractButton{ +border-radius:0px; +color:#DCDCDC; +background:none; +border-style:none; +} + +QWidget[nav="left"] QAbstractButton:hover{ +color:#FFFFFF; +background-color:#00BB9E; +} + +QWidget[nav="left"] QAbstractButton:checked,QWidget[nav="left"] QAbstractButton:pressed{ +color:#DCDCDC; +border-style:solid; +border-width:0px 0px 0px 2px; +padding:4px 4px 4px 2px; +border-color:#00BB9E; +background-color:#444444; +} + +QWidget[video="true"] QLabel{ +color:#DCDCDC; +border:1px solid #242424; +background:qlineargradient(spread:pad,x1:0,y1:0,x2:0,y2:1,stop:0 #484848,stop:1 #383838); +} + +QWidget[video="true"] QLabel:focus{ +border:1px solid #00BB9E; +background:qlineargradient(spread:pad,x1:0,y1:0,x2:0,y2:1,stop:0 #646464,stop:1 #525252); +} + +QLineEdit,QTextEdit,QPlainTextEdit,QSpinBox,QDoubleSpinBox,QComboBox,QDateEdit,QTimeEdit,QDateTimeEdit{ +border:1px solid #242424; +border-radius:3px; +padding:2px; +background:none; +selection-background-color:#484848; +selection-color:#DCDCDC; +} + +QLineEdit:focus,QTextEdit:focus,QPlainTextEdit:focus,QSpinBox:focus,QDoubleSpinBox:focus,QComboBox:focus,QDateEdit:focus,QTimeEdit:focus,QDateTimeEdit:focus,QLineEdit:hover,QTextEdit:hover,QPlainTextEdit:hover,QSpinBox:hover,QDoubleSpinBox:hover,QComboBox:hover,QDateEdit:hover,QTimeEdit:hover,QDateTimeEdit:hover{ +border:1px solid #242424; +} + +QLineEdit[echoMode="2"]{ +lineedit-password-character:9679; +} + +.QFrame{ +border:1px solid #242424; +border-radius:3px; +} + +.QGroupBox{ +border:1px solid #242424; +border-radius:5px; +margin-top:3ex; +} + +.QGroupBox::title{ +subcontrol-origin:margin; +position:relative; +left:10px; +} + +.QPushButton,.QToolButton{ +border-style:none; +border:1px solid #242424; +color:#DCDCDC; +padding:5px; +min-height:15px; +border-radius:5px; +background:qlineargradient(spread:pad,x1:0,y1:0,x2:0,y2:1,stop:0 #484848,stop:1 #383838); +} + +.QPushButton:hover,.QToolButton:hover{ +background:qlineargradient(spread:pad,x1:0,y1:0,x2:0,y2:1,stop:0 #646464,stop:1 #525252); +} + +.QPushButton:pressed,.QToolButton:pressed{ +background:qlineargradient(spread:pad,x1:0,y1:0,x2:0,y2:1,stop:0 #484848,stop:1 #383838); +} + +.QToolButton::menu-indicator{ +image:None; +} + +QToolButton#btnMenu,QPushButton#btnMenu_Min,QPushButton#btnMenu_Max,QPushButton#btnMenu_Close{ +border-radius:3px; +color:#DCDCDC; +padding:3px; +margin:0px; +background:none; +border-style:none; +} + +QToolButton#btnMenu:hover,QPushButton#btnMenu_Min:hover,QPushButton#btnMenu_Max:hover{ +color:#FFFFFF; +margin:1px 1px 2px 1px; +background-color:rgba(51,127,209,230); +} + +QPushButton#btnMenu_Close:hover{ +color:#FFFFFF; +margin:1px 1px 2px 1px; +background-color:rgba(238,0,0,128); +} + +QRadioButton::indicator{ +width:15px; +height:15px; +} + +QRadioButton::indicator::unchecked{ +image:url(:/qss/psblack/radiobutton_unchecked.png); +} + +QRadioButton::indicator::unchecked:disabled{ +image:url(:/qss/psblack/radiobutton_unchecked_disable.png); +} + +QRadioButton::indicator::checked{ +image:url(:/qss/psblack/radiobutton_checked.png); +} + +QRadioButton::indicator::checked:disabled{ +image:url(:/qss/psblack/radiobutton_checked_disable.png); +} + +QGroupBox::indicator,QTreeWidget::indicator,QListWidget::indicator{ +padding:0px -3px 0px 0px; +} + +QCheckBox::indicator,QGroupBox::indicator,QTreeWidget::indicator,QListWidget::indicator{ +width:13px; +height:13px; +} + +QCheckBox::indicator:unchecked,QGroupBox::indicator:unchecked,QTreeWidget::indicator:unchecked,QListWidget::indicator:unchecked{ +image:url(:/qss/psblack/checkbox_unchecked.png); +} + +QCheckBox::indicator:unchecked:disabled,QGroupBox::indicator:unchecked:disabled,QTreeWidget::indicator:unchecked:disabled,QListWidget::indicator:disabled{ +image:url(:/qss/psblack/checkbox_unchecked_disable.png); +} + +QCheckBox::indicator:checked,QGroupBox::indicator:checked,QTreeWidget::indicator:checked,QListWidget::indicator:checked{ +image:url(:/qss/psblack/checkbox_checked.png); +} + +QCheckBox::indicator:checked:disabled,QGroupBox::indicator:checked:disabled,QTreeWidget::indicator:checked:disabled,QListWidget::indicator:checked:disabled{ +image:url(:/qss/psblack/checkbox_checked_disable.png); +} + +QCheckBox::indicator:indeterminate,QGroupBox::indicator:indeterminate,QTreeWidget::indicator:indeterminate,QListWidget::indicator:indeterminate{ +image:url(:/qss/psblack/checkbox_parcial.png); +} + +QCheckBox::indicator:indeterminate:disabled,QGroupBox::indicator:indeterminate:disabled,QTreeWidget::indicator:indeterminate:disabled,QListWidget::indicator:indeterminate:disabled{ +image:url(:/qss/psblack/checkbox_parcial_disable.png); +} + +QTimeEdit::up-button,QDateEdit::up-button,QDateTimeEdit::up-button,QDoubleSpinBox::up-button,QSpinBox::up-button{ +image:url(:/qss/psblack/add_top.png); +width:10px; +height:10px; +padding:2px 5px 0px 0px; +} + +QTimeEdit::down-button,QDateEdit::down-button,QDateTimeEdit::down-button,QDoubleSpinBox::down-button,QSpinBox::down-button{ +image:url(:/qss/psblack/add_bottom.png); +width:10px; +height:10px; +padding:0px 5px 2px 0px; +} + +QTimeEdit::up-button:pressed,QDateEdit::up-button:pressed,QDateTimeEdit::up-button:pressed,QDoubleSpinBox::up-button:pressed,QSpinBox::up-button:pressed{ +top:-2px; +} + +QTimeEdit::down-button:pressed,QDateEdit::down-button:pressed,QDateTimeEdit::down-button:pressed,QDoubleSpinBox::down-button:pressed,QSpinBox::down-button:pressed,QSpinBox::down-button:pressed{ +bottom:-2px; +} + +QComboBox::down-arrow,QDateEdit[calendarPopup="true"]::down-arrow,QTimeEdit[calendarPopup="true"]::down-arrow,QDateTimeEdit[calendarPopup="true"]::down-arrow{ +image:url(:/qss/psblack/add_bottom.png); +width:10px; +height:10px; +right:2px; +} + +QComboBox::drop-down,QDateEdit::drop-down,QTimeEdit::drop-down,QDateTimeEdit::drop-down{ +subcontrol-origin:padding; +subcontrol-position:top right; +width:15px; +border-left-width:0px; +border-left-style:solid; +border-top-right-radius:3px; +border-bottom-right-radius:3px; +border-left-color:#242424; +} + +QComboBox::drop-down:on{ +top:1px; +} + +QMenuBar::item{ +color:#DCDCDC; +background-color:#484848; +margin:0px; +padding:3px 10px; +} + +QMenu,QMenuBar,QMenu:disabled,QMenuBar:disabled{ +color:#DCDCDC; +background-color:#484848; +border:1px solid #242424; +margin:0px; +} + +QMenu::item{ +padding:3px 20px; +} + +QMenu::indicator{ +width:13px; +height:13px; +} + +QMenu::item:selected,QMenuBar::item:selected{ +color:#DCDCDC; +border:0px solid #242424; +background:#646464; +} + +QMenu::separator{ +height:1px; +background:#242424; +} + +QProgressBar{ +min-height:10px; +background:#484848; +border-radius:5px; +text-align:center; +border:1px solid #484848; +} + +QProgressBar:chunk{ +border-radius:5px; +background-color:#242424; +} + +QSlider::groove:horizontal{ +background:#484848; +height:8px; +border-radius:4px; +} + +QSlider::add-page:horizontal{ +background:#484848; +height:8px; +border-radius:4px; +} + +QSlider::sub-page:horizontal{ +background:#242424; +height:8px; +border-radius:4px; +} + +QSlider::handle:horizontal{ +width:13px; +margin-top:-3px; +margin-bottom:-3px; +border-radius:6px; +background:qradialgradient(spread:pad,cx:0.5,cy:0.5,radius:0.5,fx:0.5,fy:0.5,stop:0.6 #444444,stop:0.8 #242424); +} + +QSlider::groove:vertical{ +width:8px; +border-radius:4px; +background:#484848; +} + +QSlider::add-page:vertical{ +width:8px; +border-radius:4px; +background:#484848; +} + +QSlider::sub-page:vertical{ +width:8px; +border-radius:4px; +background:#242424; +} + +QSlider::handle:vertical{ +height:14px; +margin-left:-3px; +margin-right:-3px; +border-radius:6px; +background:qradialgradient(spread:pad,cx:0.5,cy:0.5,radius:0.5,fx:0.5,fy:0.5,stop:0.6 #444444,stop:0.8 #242424); +} + +QScrollBar:horizontal{ +background:#484848; +padding:0px; +border-radius:6px; +max-height:12px; +} + +QScrollBar::handle:horizontal{ +background:#242424; +min-width:50px; +border-radius:6px; +} + +QScrollBar::handle:horizontal:hover{ +background:#00BB9E; +} + +QScrollBar::handle:horizontal:pressed{ +background:#00BB9E; +} + +QScrollBar::add-page:horizontal{ +background:none; +} + +QScrollBar::sub-page:horizontal{ +background:none; +} + +QScrollBar::add-line:horizontal{ +background:none; +} + +QScrollBar::sub-line:horizontal{ +background:none; +} + +QScrollBar:vertical{ +background:#484848; +padding:0px; +border-radius:6px; +max-width:12px; +} + +QScrollBar::handle:vertical{ +background:#242424; +min-height:50px; +border-radius:6px; +} + +QScrollBar::handle:vertical:hover{ +background:#00BB9E; +} + +QScrollBar::handle:vertical:pressed{ +background:#00BB9E; +} + +QScrollBar::add-page:vertical{ +background:none; +} + +QScrollBar::sub-page:vertical{ +background:none; +} + +QScrollBar::add-line:vertical{ +background:none; +} + +QScrollBar::sub-line:vertical{ +background:none; +} + +QScrollArea{ +border:0px; +} + +QTreeView,QListView,QTableView,QTabWidget::pane{ +border:1px solid #242424; +selection-background-color:#646464; +selection-color:#DCDCDC; +alternate-background-color:#525252; +gridline-color:#242424; +} + +QTreeView::branch:closed:has-children{ +margin:4px; +border-image:url(:/qss/psblack/branch_open.png); +} + +QTreeView::branch:open:has-children{ +margin:4px; +border-image:url(:/qss/psblack/branch_close.png); +} + +QTreeView,QListView,QTableView,QSplitter::handle,QTreeView::branch{ +background:#444444; +} + +QTableView::item:selected,QListView::item:selected,QTreeView::item:selected{ +color:#DCDCDC; +background:qlineargradient(spread:pad,x1:0,y1:0,x2:0,y2:1,stop:0 #484848,stop:1 #383838); +} + +QTableView::item:hover,QListView::item:hover,QTreeView::item:hover,QHeaderView{ +color:#DCDCDC; +background:qlineargradient(spread:pad,x1:0,y1:0,x2:0,y2:1,stop:0 #646464,stop:1 #525252); +} + +QTableView::item,QListView::item,QTreeView::item{ +padding:1px; +margin:0px; +} + +QHeaderView::section,QTableCornerButton:section{ +padding:3px; +margin:0px; +color:#DCDCDC; +border:1px solid #242424; +border-left-width:0px; +border-right-width:1px; +border-top-width:0px; +border-bottom-width:1px; +background:qlineargradient(spread:pad,x1:0,y1:0,x2:0,y2:1,stop:0 #646464,stop:1 #525252); +} + +QTabBar::tab{ +border:1px solid #242424; +color:#DCDCDC; +margin:0px; +background:qlineargradient(spread:pad,x1:0,y1:0,x2:0,y2:1,stop:0 #646464,stop:1 #525252); +} + +QTabBar::tab:selected,QTabBar::tab:hover{ +border-style:solid; +border-color:#00BB9E; +background:#444444; +} + +QTabBar::tab:top,QTabBar::tab:bottom{ +padding:3px 8px 3px 8px; +} + +QTabBar::tab:left,QTabBar::tab:right{ +padding:8px 3px 8px 3px; +} + +QTabBar::tab:top:selected,QTabBar::tab:top:hover{ +border-width:2px 0px 0px 0px; +} + +QTabBar::tab:right:selected,QTabBar::tab:right:hover{ +border-width:0px 0px 0px 2px; +} + +QTabBar::tab:bottom:selected,QTabBar::tab:bottom:hover{ +border-width:0px 0px 2px 0px; +} + +QTabBar::tab:left:selected,QTabBar::tab:left:hover{ +border-width:0px 2px 0px 0px; +} + +QTabBar::tab:first:top:selected,QTabBar::tab:first:top:hover,QTabBar::tab:first:bottom:selected,QTabBar::tab:first:bottom:hover{ +border-left-width:1px; +border-left-color:#242424; +} + +QTabBar::tab:first:left:selected,QTabBar::tab:first:left:hover,QTabBar::tab:first:right:selected,QTabBar::tab:first:right:hover{ +border-top-width:1px; +border-top-color:#242424; +} + +QTabBar::tab:last:top:selected,QTabBar::tab:last:top:hover,QTabBar::tab:last:bottom:selected,QTabBar::tab:last:bottom:hover{ +border-right-width:1px; +border-right-color:#242424; +} + +QTabBar::tab:last:left:selected,QTabBar::tab:last:left:hover,QTabBar::tab:last:right:selected,QTabBar::tab:last:right:hover{ +border-bottom-width:1px; +border-bottom-color:#242424; +} + +QStatusBar::item{ +border:0px solid #484848; +border-radius:3px; +} + +QToolBox::tab,QGroupBox#gboxDevicePanel,QGroupBox#gboxDeviceTitle,QFrame#gboxDevicePanel,QFrame#gboxDeviceTitle{ +padding:3px; +border-radius:5px; +color:#DCDCDC; +background:qlineargradient(spread:pad,x1:0,y1:0,x2:0,y2:1,stop:0 #484848,stop:1 #383838); +} + +QToolTip{ +border:0px solid #DCDCDC; +padding:1px; +color:#DCDCDC; +background:qlineargradient(spread:pad,x1:0,y1:0,x2:0,y2:1,stop:0 #484848,stop:1 #383838); +} + +QToolBox::tab:selected{ +background:qlineargradient(spread:pad,x1:0,y1:0,x2:0,y2:1,stop:0 #646464,stop:1 #525252); +} + +QPrintPreviewDialog QToolButton{ +border:0px solid #DCDCDC; +border-radius:0px; +margin:0px; +padding:3px; +background:none; +} + +QColorDialog QPushButton,QFileDialog QPushButton{ +min-width:80px; +} + +QToolButton#qt_calendar_prevmonth{ +icon-size:0px; +min-width:20px; +image:url(:/qss/psblack/calendar_prevmonth.png); +} + +QToolButton#qt_calendar_nextmonth{ +icon-size:0px; +min-width:20px; +image:url(:/qss/psblack/calendar_nextmonth.png); +} + +QToolButton#qt_calendar_prevmonth,QToolButton#qt_calendar_nextmonth,QToolButton#qt_calendar_monthbutton,QToolButton#qt_calendar_yearbutton{ +border:0px solid #DCDCDC; +border-radius:3px; +margin:3px 3px 3px 3px; +padding:3px; +background:none; +} + +QToolButton#qt_calendar_prevmonth:hover,QToolButton#qt_calendar_nextmonth:hover,QToolButton#qt_calendar_monthbutton:hover,QToolButton#qt_calendar_yearbutton:hover,QToolButton#qt_calendar_prevmonth:pressed,QToolButton#qt_calendar_nextmonth:pressed,QToolButton#qt_calendar_monthbutton:pressed,QToolButton#qt_calendar_yearbutton:pressed{ +border:1px solid #242424; +} + +QCalendarWidget QSpinBox#qt_calendar_yearedit{ +margin:2px; +} + +QCalendarWidget QToolButton::menu-indicator{ +image:None; +} + +QCalendarWidget QTableView{ +border-width:0px; +} + +QCalendarWidget QWidget#qt_calendar_navigationbar{ +border:1px solid #242424; +border-width:1px 1px 0px 1px; +background:qlineargradient(spread:pad,x1:0,y1:0,x2:0,y2:1,stop:0 #484848,stop:1 #383838); +} + +QComboBox QAbstractItemView::item{ +min-height:20px; +min-width:10px; +} + +QTableView[model="true"]::item{ +padding:0px; +margin:0px; +} + +QTableView QLineEdit,QTableView QComboBox,QTableView QSpinBox,QTableView QDoubleSpinBox,QTableView QDateEdit,QTableView QTimeEdit,QTableView QDateTimeEdit{ +border-width:0px; +border-radius:0px; +} + +QTableView QLineEdit:focus,QTableView QComboBox:focus,QTableView QSpinBox:focus,QTableView QDoubleSpinBox:focus,QTableView QDateEdit:focus,QTableView QTimeEdit:focus,QTableView QDateTimeEdit:focus{ +border-width:0px; +border-radius:0px; +} + +QLineEdit,QTextEdit,QPlainTextEdit,QSpinBox,QDoubleSpinBox,QComboBox,QDateEdit,QTimeEdit,QDateTimeEdit{ +background:#444444; +} + +QTabWidget::pane:top{top:-1px;} +QTabWidget::pane:bottom{bottom:-1px;} +QTabWidget::pane:left{right:-1px;} +QTabWidget::pane:right{left:-1px;} + +*:disabled{ +background:#444444; +border-color:#484848; +color:#242424; +} + +/*TextColor:#DCDCDC*/ +/*PanelColor:#444444*/ +/*BorderColor:#242424*/ +/*NormalColorStart:#484848*/ +/*NormalColorEnd:#383838*/ +/*DarkColorStart:#646464*/ +/*DarkColorEnd:#525252*/ +/*HighColor:#00BB9E*/ \ No newline at end of file diff --git a/styledemo/other/qss/psblack/add_bottom.png b/styledemo/other/qss/psblack/add_bottom.png new file mode 100644 index 0000000000000000000000000000000000000000..2f8c0f2c250a2be650b4dd848847797269ce4a6c GIT binary patch literal 201 zcmeAS@N?(olHy`uVBq!ia0vp^A|TAc1|)ksWqE-VORx%@(9)nl1b!G9|CCO{rnBgG-~! zKL&sKj9NX$1_7u1G~GQOPOMm!{r#2PH|GWajP_YKn7)wQ-QXX1OU?@!X5Kw%U*}j-&vHtw37vvcRPgg&ebxsLQ0F}~IuK)l5 literal 0 HcmV?d00001 diff --git a/styledemo/other/qss/psblack/add_right.png b/styledemo/other/qss/psblack/add_right.png new file mode 100644 index 0000000000000000000000000000000000000000..d01c2f7b4d3f1ffc6d62dbb0ecd76c7b97abf1fb GIT binary patch literal 235 zcmeAS@N?(olHy`uVBq!ia0vp^A|TAc1|)ksWqE-VOR9?ZSI9wjSu;T&J-#CMvsplDTno_F8>bo3G8g;~7(owN>OTpFhOi}LN+L_NMa~>*FNRa?Yr71bD!1z aO_UD{NH^z`yQd3u7=x#)pUXO@geCx{qfrR} literal 0 HcmV?d00001 diff --git a/styledemo/other/qss/psblack/add_top.png b/styledemo/other/qss/psblack/add_top.png new file mode 100644 index 0000000000000000000000000000000000000000..a5ceb4fa2c453a1c87fe476ae75af1694478a736 GIT binary patch literal 197 zcmeAS@N?(olHy`uVBq!ia0vp^A|TAc1|)ksWqE-VORw^ZITOXiaWs3eStZm>+VA9 mA0nRvs+yl(SjU!8yN1^;I-c7vvG**{N(N6?KbLh*2~7Y9gg-I> literal 0 HcmV?d00001 diff --git a/styledemo/other/qss/psblack/branch_close.png b/styledemo/other/qss/psblack/branch_close.png new file mode 100644 index 0000000000000000000000000000000000000000..94511e5af266f3d996a5a71e205a4efa595cb0aa GIT binary patch literal 177 zcmeAS@N?(olHy`uVBq!ia0vp^A|TAc1|)ksWqE-VORr;B5VMep0mhFpgn1YG~CByJDV7g$pkT*;8j`tgL5-vdT5=7YH= z;s$fMPu_5e)1n4J%s_^L9PE{uq~{`HS)k0%pD?De~h zbJQzlJ>SS~e>7@$^0Q0bQE73RYu6uaGyKVYzwn&w%%6{3d5!NUP5)6O7ZGnLC#m>R Q3+Mp`Pgg&ebxsLQ06c#LCZbQRv+75#=%f1Bk#$lJNKM) zdBoz&twCAe*rbxLF0=6%PB6YR_klP*7Z4ZXL}pT%=hjK{m$#@i?Qd;h0t z-aj-aA$X0@mxBxoQnfogzB`}$`8Z;}Z{##>K}*wvS+1A)zj4K$>bIEb@#PKBuMD29 KelF{r5}E)e<91pA literal 0 HcmV?d00001 diff --git a/styledemo/other/qss/psblack/calendar_prevmonth.png b/styledemo/other/qss/psblack/calendar_prevmonth.png new file mode 100644 index 0000000000000000000000000000000000000000..421799e41fad0c0b216cd2b74d0efdf5b55c2d78 GIT binary patch literal 314 zcmeAS@N?(olHy`uVBq!ia0vp^A|TAc1|)ksWqE-VORC}_;rKI5OmZoDfTwKo0f37rX*MVc|)*JR-t1{>KaxiOw z{x`O5iMHBXudQ38u}Y%C?Qm4JOebT5(jwIhg0l^eG6)@;AK}}gcSrf+j*|>iA{+JIG_)vfbbhgk zNmYBv88#6UA4e$%v4aOA&b`)|Zy#B{iCOb$%W)S5Cl39H``=sQRCMnhJn?ghR>mim zhK;LN-eN4+yReP%NTlb&0v7WdlTGHcrfwH!%AY2J|3mdKI;Vst0EhQ= Aj>wrJQwfiCNy(@lX2GV`F|6dEd)5iiu?m2PA&`H40uVoXqrTvdo>m z)`1)cmrP+|XiMBt5?fv?{l$=B#p_=NzL$GD9!1Yf)=Q0i*LcFVrd2XI=k_+K4^iK` zfA6~IA_JsnYR%~pY?qe=auyZ-$>Q!miOcwn1G*JX=7`_RyhI;ZXa_Rsk| zr+8j_(zRQM9|r*SB=^h}Z%xwkU%sbpUE=-&`!5LO2*x-$Z=AlM|5(C-Q?Y%GG5?61)h?H|VHJk<7#Ng@b=d#Wzp$PzssyqMy literal 0 HcmV?d00001 diff --git a/styledemo/other/qss/psblack/checkbox_parcial_disable.png b/styledemo/other/qss/psblack/checkbox_parcial_disable.png new file mode 100644 index 0000000000000000000000000000000000000000..eca2c617adbd2a24f3740ec74b01533044d9c690 GIT binary patch literal 251 zcmeAS@N?(olHy`uVBq!ia0vp^A|TAc1|)ksWqE-VORGWy z*|#AYM?GySJQmiAd~;Udbmj=pn8C+zpt?T0apkLuEXLYpmN%w$ow2!6BQ`NrJms0< zu?oY@ds+np`#XZYUhccSaOTrFpOd*=j-;=w`?K)RLFT5Twk7B0UjOz+R_WDh2f;{z t!gVj7{q_p8*0Ei4wx7o}^my0c7hCqihc)I$ztaD0e0svmrUHJe2 literal 0 HcmV?d00001 diff --git a/styledemo/other/qss/psblack/checkbox_unchecked.png b/styledemo/other/qss/psblack/checkbox_unchecked.png new file mode 100644 index 0000000000000000000000000000000000000000..b06fd70c822bcfc1e27cba7e35165fed73cd66b1 GIT binary patch literal 150 zcmeAS@N?(olHy`uVBq!ia0vp^A|TAc1|)ksWqE-VOR>U-D%b!3 literal 0 HcmV?d00001 diff --git a/styledemo/other/qss/psblack/checkbox_unchecked_disable.png b/styledemo/other/qss/psblack/checkbox_unchecked_disable.png new file mode 100644 index 0000000000000000000000000000000000000000..db00b2a168a24800f11bb204d78dc49e325c0f79 GIT binary patch literal 152 zcmeAS@N?(olHy`uVBq!ia0vp^A|TAc1|)ksWqE-VORy%Tld(?QP!xv06DKIPWJ8=x zC?pmRJ49kD>C&QB-I=LWb?h_rIZy{)0EP~zqDyI;$!gV384M92WI+)oX7GUV?LchO z0;QGs$E$n4^Pm5o0}m{@>%7ruw3JfozzR?spC19AbGh86@B3c>buZ9yoVuoI??mLu z-<&9=c7az12M7H-fv)Q|fn5iWrSX#Bq#LYM9IAp8CH3 z;|6f-?3;*`Ez6=*Dj{-vB1$QOARr7wlu|>WnL5p<;BlK}%d)U-J9}KK)u`9&03043 z((m^X5p3H=DaHBuc?H-2o@WjljmBf(Q=w2`c6K&%wzjrLv)RP5EC9kV#PdA1wze{- zgTa6}j!BYarQ7X()c{JR(pwQ(oSB)SSS)6+R;z_!7>EcWLa|uHaU67Ar_TJQtHM`GYLF`t2u+K-wea>PS|KPqSxyI5XUh9BGQ`#eugYu z`u#qh=Vg~C6~{52=W%>|%;Xzj4?qK`R4M`R^5WtG(=-tgI-L%>u2U|TnVOnHDaF~@ z8SQqP?d|QX?cs1pk|ZQa@+Js^e!2?cy6y)NS^aactJNxw=4`o8}&W!$jfy6&8aYyi)0wRf!@5qX_DyAzmdet!Ouh^&i9D;?VL mXzV3Pvf1r++xHZF82thxBoSPC?dBQ)0000bl+SM>Hx$R;^9(ivGnD2B z8 z?I!2E%or;oqF4bVW6WGBHPTxD>bmZ$)6>)7NnoSV*dn6ug%GVwCQ}qb3_0gB+qNYD zfYw?_DL0f-&*M0rODVgSW&POe_5Ms5*1EGKNq%q~=S#^RO>j^jjyLg6jq-{z~;s=L3xzfmri zT>wDe_Z1?N5MpMG$rDj&xm=prZ1x)ffSo45w(VvnlPP+h_e=W7@$vEJ&1SP<+qM7z zP)f;OuXo;Vw=VzyT-WW#ar{y#^`cg*bq0gM*aiULoHsbdckMAQI)F|EN2}Fp zR4SD`0Dur;#uzIaV|D-l7ytkwx`-&!Y;J9B<$(aNYnElzv)Swz5vkwr-#Lz>tJUiB zTrO8|94DX2Wb96-b9QoaatQ!njA20#G@~fG(psO)=kwsP_3HKdcez~d+gvV}6bgm6 z>3*eB$)^dJPN$31834e;!^3CG)fp$JU!nCUL1$`aOoO(|t0rR-Ri_0wQ5xKBCnjjzMQ!+a0~Ut5;-Vr_h7SJe<2WA2qwqa;aszVE-D zOeRl{uXWXGwH?lR!x*!Z7A+Ai7-J)?_4(D+)q7p^zvwUja;Bj2UL_d-0000;p literal 0 HcmV?d00001 diff --git a/styledemo/other/qss/psblack/radiobutton_unchecked.png b/styledemo/other/qss/psblack/radiobutton_unchecked.png new file mode 100644 index 0000000000000000000000000000000000000000..3d1e440250428fffc3571c48a63589ef66df5098 GIT binary patch literal 564 zcmV-40?Yl0P)bl(A~tP!xv0Bgumd5=hS4 z#K`hqGN+!>lE?56@=&FNpCW@hC81-Xoi8>trAx3Qq(zIYlfk;eA+cja`cL9q^yxq6 z{zvf6l5O=gO-HIa20j7DP5mCYbsT46jJX5!O<=#@KXG06n~0q6a-ynJ;Bq#b{oM*2 z3Ed%&!-~#@SC1>4jlP6h(-< zJ`q(V%QA|hKvfsOsdegDaMNZl3`62L-U^o+U|gCL&`I8QIV_(YUGWdSYkx-}MBdh`lB-A{HG00000T)WL4kKoADton3o2R_(^E zP)Mq(K}AZd9D0HyoH%meT@f$PUO7M|st`~@i`vu&lqPXv?|MDMr49uYNTvSQl|IeR z?5q$E99VU*x3||q#11nz0U#7Y2xd+J;M!W-zqq&eyz3c`o14)tuGOA?0KFMLI~%aHpXmQYj=vG zxG~0@DW%@_dc7Z&q3%{zmgSou2%ZH&kjHU+rnR0ar5pe-0I*WZX{~3qTJ4&d>q3Yp zMNve%ySrbKBq@FaqbPb61i|wl2=dL%%>ls5_6h)Ct@W6QHki4wSS)Bf9)A@=2w4rl z^SlG!_v0vvhAX8%5{BV7-}kqaQitt!ySW4rv4e;$t@R}U@VcOsk`VC<5nG7ZS%S>m zlv2isI9?a4qO~4NDPtn~RUrU`0HCXB-Y1^tXVc)k~73Xfzt%i=v2_`LVTjzbs1tfD!;oW`?3Dg2iIdn9t`2#+cj~ z^Fb-~?)?0GQaOJu?9tKD#(X}1p_Dqj^L^EX5Q3RABAQrhM`c;|(lk9ul4SMwbvNyH xyNQS$B5GETmYHW#%8_%fKO7E||MmDm@)P`_OqF>5SC{|*002ovPDHLkV1gZzKyLs5 literal 0 HcmV?d00001 diff --git a/styledemo/readme.txt b/styledemo/readme.txt new file mode 100644 index 0000000..ee25995 --- /dev/null +++ b/styledemo/readme.txt @@ -0,0 +1,134 @@ +PS:本样式demo完全开源。 + +V20170219首版开发计划 +1:所有其他窗体都是其布居中的widget。 +2:左上角图标、标题、标题居中、右上角最小化最大化关闭都可设置,包括设置样式+图标+图形字体(默认图形字体)。 +3:左上角图标及右上角三个按钮可视化控制。同时提供外部访问权限。 +4:无边框窗体可拉伸控制。 +5:提供换肤接口,内置8套样式选择,也可自定义样式路径。 +6:做成设计师插件,可以直接拖曳使用,所见即所得。 +7:后期增加内置信息框、颜色框等弹出窗体的支持。 + +8:重新设计QSS样式,去掉单选框图片、滚动条图片,增加主菜单样式。 +样式表格式 +(1):第一行为特殊自定义部分,可以通过读取文本文件识别到特殊的颜色值。用于特殊处理。 +(2):第二行为全局样式设置,例如无虚线,全局字体大小,文字颜色,禁用控件颜色。 +(3):其他部分 +(3):标签控件 +(4):按钮控件 + +用Qt写项目写多了,为了满足不同客户的需求,需要定制不同样式的界面,QUI皮肤生成器应运而生。思考这个工具的架构花了一年时间,如何从复杂的配色方案中提取出共性,然后将共性转为具体的QSS文件。思考架构花了一年时间,编写大概花了一天时间完成。 +demo演示版:http://pan.baidu.com/s/1jIkbVKU + +QUI皮肤生成器介绍: +1:极简设计,傻瓜式操作步骤:,只需简单几步即可设计出漂亮的皮肤。 +2:所见即所得,想要什么好的皮肤,分分钟搞定。 +3:自动生成样式中所需要的对应颜色的图片资源文件,比如单选框、复选框指示器图片。 +4:集成自定义无边框标题栏样式、左边导航切换样式、顶部导航切换样式、设备面板样式。 + + + + +银色风格 +字体颜色:#000000 +面板背景:#F5F5F5 +边框颜色:#B2B6B9 +普通渐变:#E1E4E6 #CCD3D9 +加深渐变:#F2F3F4 #E7E9EB +高亮颜色:#00BB9E + +蓝色风格 +字体颜色:#324C6C +面板背景:#CFDDEE +边框颜色:#7F9AB8 +普通渐变:#C0D3EB #BCCFE7 +加深渐变:#D2E3F5 #CADDF3 +高亮颜色:#00BB9E + +淡蓝色风格 +字体颜色:#386487 +面板背景:#EAF7FF +边框颜色:#C0DCF2 +普通渐变:#DEF0FE #C0DEF6 +加深渐变:#F2F9FF #DAEFFF +高亮颜色:#00BB9E + +深蓝色风格 +字体颜色:#7AAFE3 +面板背景:#0E1A32 +边框颜色:#132743 +普通渐变:#133050 #133050 +加深渐变:#033967 #033967 +高亮颜色:#00BB9E + +灰色风格 +字体颜色:#000000 +面板背景:#F0F0F0 +边框颜色:#A9A9A9 +普通渐变:#E4E4E4 #A2A2A2 +加深渐变:#DBDBDB #C1C1C1 +高亮颜色:#00BB9E + +浅灰色风格: +字体颜色:#6F6F6F +面板背景:#F0F0F0 +边框颜色:#D4D0C8 +普通渐变:#EEEEEE #E5E5E5 +加深渐变:#FCFCFC #F7F7F7 +高亮颜色:#00BB9E + +深灰色风格 +字体颜色:#5D5C6C +面板背景:#EBECF0 +边框颜色:#A9ACB5 +普通渐变:#D8D9DE #C8C8D0 +加深渐变:#EFF0F4 #DDE0E7 +高亮颜色:#00BB9E + +黑色风格 +字体颜色:#F0F0F0 +面板背景:#464646 +边框颜色:#353535 +普通渐变:#4D4D4D #292929 +加深渐变:#636363 #575757 +高亮颜色:#00BB9E + +浅黑色风格 +字体颜色:#E7ECF0 +面板背景:#616F76 +边框颜色:#738393 +普通渐变:#667481 #566373 +加深渐变:#778899 #708090 +高亮颜色:#00BB9E + +深黑色风格 +字体颜色:#D7E2E9 +面板背景:#1F2026 +边框颜色:#111214 +普通渐变:#242629 #141518 +加深渐变:#007DC4 #0074BF +高亮颜色:#00BB9E + +PS黑色风格 +字体颜色:#DCDCDC +面板背景:#444444 +边框颜色:#242424 +普通渐变:#484848 #383838 +加深渐变:#646464 #525252 +高亮颜色:#00BB9E + +黑色扁平 +字体颜色:#BEC0C2 +面板背景:#2E2F30 +边框颜色:#67696B +普通渐变:#404244 #404244 +加深渐变:#262829 #262829 +高亮颜色:#00BB9E + +白色扁平 +字体颜色:#57595B +面板背景:#FFFFFF +边框颜色:#B6B6B6 +普通渐变:#E4E4E4 #E4E4E4 +加深渐变:#F6F6F6 #F6F6F6 +高亮颜色:#00BB9E \ No newline at end of file diff --git a/styledemo/snap_flatwhite.png b/styledemo/snap_flatwhite.png new file mode 100644 index 0000000000000000000000000000000000000000..ff9f670b3509e67708190ccb7a270700b58ca756 GIT binary patch literal 60744 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

    Xs;5)+r&qYdOBcFz@L?M$C%M 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 literal 0 HcmV?d00001 diff --git a/styledemo/snap_psblack.png b/styledemo/snap_psblack.png new file mode 100644 index 0000000000000000000000000000000000000000..90cd9e5d40a0f0e97259a8fba25ec43610a55aa4 GIT binary patch literal 79402 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%0DiWAR5* z0l|kAyi?J^hred}HccM3)eYU4y0Xh5he^~vRhh|VcH2G2CGKb9c+NdIX#^^LdAz** zr-H^?ZoVOByx94di8v_Sb=gGR!)@Pdy04t{MYytQIx6I^Due)(6GvoLDM?kI&ys(< zNw&%S-D|gkQLKcJeAC3N*~jlC>M6dp484vY0&R*bz>-UUFTmpsIlUQ!=Ns~j^kzo4eY-2S5^qv>s4qxT zt*1P<9e1Q&mfcr;eD0RlbGv#!rz7sP?o@v-KPjR9CV&!Sq1$Mg?5pT|unO$PFS`nnXxB+KjC;3M6K_)I}!^f?u2N6b}$;}?jz>b?)Gv|RkBN5Nl9)yo=SDvMy;s^4MTN<(bByQ>vrjg@gvhI@VugBV_xrg zW`Z*^)Y~C*shjkm=acc7Y6}};*ww9Mb~ArcSDRBp6^y|NnkJ|{7vh4t=s&Gb9D1ez zJ%u`ZNlTEGKQLr++&H;m59F!wA={-SG$gmgK4IhLZxv^4ZoBekY9R*F!lt1Jo%NgW z7;pX=4{563K1K`soTN1uXXf>8PvzqXYHR&UY#s0PWh$Z!ci-7`dpiue`(u>Kn=R_N zPiS*JN>2Wtdkj!~qSwYR_<(!fcAP3v`3l*LAxr{Tbf zp#{8fw1gVSA3wjHLiwHD?_DZTHmEvC+k%2 zhHcZOZArM}yo6bse%8@Y$yJnIi#zM_a8evRc+FjV;QH672awH{0@w*D3{E}w;{#@F z3R$6U!-f%JKAj;u&mU}kTrD&xA+3&W^aX<+3^nrfN5L9LmyYhe0CX0ISoqmq))4%5 z-*3O~A?}cPzi%$R57xT-DHp&i`E|!-+kIP2TYVKc zINFr2nwePbB+c#a^FEoU4~19>KM#{A1_o?xV%kC;gWkk*~$!xl|wOg)8 zLPVNS?7XL-X!wB6t8;TPPH7YX-mirz;Ivw1Iu-?XFOpJC4DusFv;3j&%xuB}l9J6& z28AD^#o|LfBet243HHd90T@{qrkZb+u=fM}{* zu6NZQHhMmHnE1olFk-XhND@@TXbCa;T-|<>IcWj3Z7Z;{R7r(S*o-zfb76WEo%eym z2JwnIt_`EimPp+xSM#YTqSDgWq6Gr>N%qWRjG_TY8Fi=lfOxGBnL`CLjh}Kfp{RYh z65}kp6{J6~fvv$M4?9m(ZUvreE$4JP?2nlV%C`_{9)f=}O^j~#k#Q_HnBQPt^;xwl zGm80`NP#cHqdI|fZZNMaWOJNPI@%p$^D8(zrPFP=Hy2rM5W|L@d8QKp(cM#e`1&eS zMMmZ&r1OD8<((!!I{;sXMS~Zn%H0)R-q>Ly2�?*rfl~=?ExOBx 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%0Dp&s@|S3I zr;;5<`~O0sxlGEu<@DizStCi3cXlfijRf=6o{>I~O4V5p-kV%N5UdSow?7X{k?rn@ z8+mu%Prxont*=M!>>J1<*_(W{qSbS!EAM*#v_b`7<&Ktph)`0fpwgcA$w(hWx!~wp z_x&5hGd_+4r`}5x3BhSduju9I1qq*TI<MS>NjN z=WWvWCd9V35c=rv8?M2RyM*CXqik^0lk@Ea5AaarijK>9=4~{ApFly(^k)>}S_hy# zv;Nt|RGwqm+=T8io7DycMg)|FH*g!E0{HqB+Ffc^7w}#VmpW8p@(~c z6G)OGyZKq@PoM$EBIn~^Dx>OI+Pnp6|11vJeZ|)$ZNd~yOQhhUn_umpEN!>qJ7_A1#=h(V|a>K>XY4ApSc5ao;22 zJ~yJ3xeO8AGYQ8mpwg`_f;gi6FyS0FNd5OAJrGIK8~6t_Azt14U><}cue(t$^l%yZ zFAEgGc4QV_1P(%f1#kq4A-#yg1X&Bg*O_HX;(O!JF2_|=o}-VEMCHvzVU5F4Aaw{5 z_;})XC!C?5iDG~d_-?$T0!cCs36-JaQ9j(Xz?D6nYQgdgbtyVVJqpcj6N+IS24ThB ziUjLyo(3)T>1s=H8pWp>81wXhGBhv>?p z0Zr*Jc3~LMO^9r zjOSLSevd$_#S2+8(yFyw^#l!+AK0>sA`86w_#nt&YjZRotX!MVEI?0o&*jgN#>(Sb4!5=Ji4eB zti?#0dr|BR6o|u&Mv-LS*)D3IeDtr1eUGphhURB4j0P0Pdj^>xP+Y9Lr&~Sx0pCS| z$HVI6_3$SS#t{1WYAVm~k(bttIM37W{#|I%T}b88|6jM+wU*=LY`ea>OceH89o*=9tqYHl!F(n34}@S&dG=vZ=v9B12W%dBhn07#c^ya z{oFfb?|*JVg6iKjd8T-v+?){uHDQ+5ZVyi8*+h?0=)# z&ov-xb$<<=<-zgxX;c!*ij7M&$XS}qo5C*>wx9lp`qABg6Z8Sn4X(}sXaRWdwinsL z<--P>sTQs#-+=@%kI(ubZ#x=` zzJ%azFPGL;>)&RML&t54B5SYF$4Z{1I-vIu;q~>Rn1LoC-Dt0|rV#{dGZL(setupUi(this); + this->initForm(); + this->initMenu(); + this->show_video_all(); + QTimer::singleShot(1000, this, SLOT(play_video_all())); +} + +frmMain::~frmMain() +{ + delete ui; +} + +bool frmMain::eventFilter(QObject *watched, QEvent *event) +{ + if (event->type() == QEvent::MouseButtonDblClick) { + QLabel *widget = (QLabel *) watched; + if (!videoMax) { + videoMax = true; + hide_video_all(); + ui->gridLayout->addWidget(widget, 0, 0); + widget->setVisible(true); + } else { + videoMax = false; + show_video_all(); + } + + widget->setFocus(); + } else if (event->type() == QEvent::MouseButtonPress) { + if (qApp->mouseButtons() == Qt::RightButton) { + videoMenu->exec(QCursor::pos()); + } + } + + return QWidget::eventFilter(watched, event); +} + +void frmMain::initForm() +{ + //设置样式表 + QStringList qss; + qss.append("QFrame{border:2px solid #000000;}"); + qss.append("QLabel{font:75 25px;color:#F0F0F0;border:2px solid #AAAAAA;background:#000000;}"); + qss.append("QLabel:focus{border:2px solid #00BB9E;background:#555555;}"); + ui->frame->setStyleSheet(qss.join("")); + + videoMax = false; + videoCount = 16; + videoType = "1_16"; + + for (int i = 0; i < videoCount; i++) { + QLabel *widget = new QLabel; + widget->setObjectName(QString("video%1").arg(i + 1)); + widget->installEventFilter(this); + widget->setFocusPolicy(Qt::StrongFocus); + widget->setAlignment(Qt::AlignCenter); + + //二选一可以选择显示文字,也可以选择显示背景图片 + //widget->setText(QString("通道 %1").arg(i + 1)); + widget->setPixmap(QPixmap(":/bg_novideo.png")); + widgets.append(widget); + } +} + +void frmMain::initMenu() +{ + videoMenu = new QMenu(this); + videoMenu->addAction("截图当前视频", this, SLOT(snapshot_video_one())); + videoMenu->addAction("截图所有视频", this, SLOT(snapshot_video_all())); + videoMenu->addSeparator(); + + QMenu *menu4 = videoMenu->addMenu("切换到4画面"); + menu4->addAction("通道1-通道4", this, SLOT(show_video_4())); + menu4->addAction("通道5-通道8", this, SLOT(show_video_4())); + menu4->addAction("通道9-通道12", this, SLOT(show_video_4())); + menu4->addAction("通道13-通道16", this, SLOT(show_video_4())); + + QMenu *menu6 = videoMenu->addMenu("切换到6画面"); + menu6->addAction("通道1-通道6", this, SLOT(show_video_6())); + menu6->addAction("通道6-通道11", this, SLOT(show_video_6())); + menu6->addAction("通道11-通道16", this, SLOT(show_video_6())); + + QMenu *menu8 = videoMenu->addMenu("切换到8画面"); + menu8->addAction("通道1-通道8", this, SLOT(show_video_8())); + menu8->addAction("通道9-通道16", this, SLOT(show_video_8())); + + QMenu *menu9 = videoMenu->addMenu("切换到9画面"); + menu9->addAction("通道1-通道9", this, SLOT(show_video_9())); + menu9->addAction("通道8-通道16", this, SLOT(show_video_9())); + + videoMenu->addAction("切换到16画面", this, SLOT(show_video_16())); +} + +void frmMain::play_video_all() +{ + +} + +void frmMain::snapshot_video_one() +{ + +} + +void frmMain::snapshot_video_all() +{ + +} + +void frmMain::show_video_all() +{ + if (videoType == "1_4") { + change_video_4(0); + } else if (videoType == "5_8") { + change_video_4(4); + } else if (videoType == "9_12") { + change_video_4(8); + } else if (videoType == "13_16") { + change_video_4(12); + } else if (videoType == "1_6") { + change_video_6(0); + } else if (videoType == "6_11") { + change_video_6(5); + } else if (videoType == "11_16") { + change_video_6(10); + } else if (videoType == "1_8") { + change_video_8(0); + } else if (videoType == "9_16") { + change_video_8(8); + } else if (videoType == "1_9") { + change_video_9(0); + } else if (videoType == "8_16") { + change_video_9(7); + } else if (videoType == "1_16") { + change_video_16(0); + } +} + +void frmMain::show_video_4() +{ + videoMax = false; + QString videoType; + int index = 0; + + QAction *action = (QAction *)sender(); + QString name = action->text(); + + if (name == "通道1-通道4") { + index = 0; + videoType = "1_4"; + } else if (name == "通道5-通道8") { + index = 4; + videoType = "5_8"; + } else if (name == "通道9-通道12") { + index = 8; + videoType = "9_12"; + } else if (name == "通道13-通道16") { + index = 12; + videoType = "13_16"; + } + + if (this->videoType != videoType) { + this->videoType = videoType; + change_video_4(index); + } +} + +void frmMain::show_video_6() +{ + videoMax = false; + QString videoType; + int index = 0; + + QAction *action = (QAction *)sender(); + QString name = action->text(); + + if (name == "通道1-通道6") { + index = 0; + videoType = "1_6"; + } else if (name == "通道6-通道11") { + index = 5; + videoType = "6_11"; + } else if (name == "通道11-通道16") { + index = 10; + videoType = "11_16"; + } + + if (this->videoType != videoType) { + this->videoType = videoType; + change_video_6(index); + } +} + +void frmMain::show_video_8() +{ + videoMax = false; + QString videoType; + int index = 0; + + QAction *action = (QAction *)sender(); + QString name = action->text(); + + if (name == "通道1-通道8") { + index = 0; + videoType = "1_8"; + } else if (name == "通道9-通道16") { + index = 8; + videoType = "9_16"; + } + + if (this->videoType != videoType) { + this->videoType = videoType; + change_video_8(index); + } +} + +void frmMain::show_video_9() +{ + videoMax = false; + QString videoType; + int index = 0; + + QAction *action = (QAction *)sender(); + QString name = action->text(); + + if (name == "通道1-通道9") { + index = 0; + videoType = "1_9"; + } else if (name == "通道8-通道16") { + index = 7; + videoType = "8_16"; + } + + if (this->videoType != videoType) { + this->videoType = videoType; + change_video_9(index); + } +} + +void frmMain::show_video_16() +{ + videoMax = false; + QString videoType; + int index = 0; + videoType = "1_16"; + + if (this->videoType != videoType) { + this->videoType = videoType; + change_video_16(index); + } +} + +void frmMain::hide_video_all() +{ + for (int i = 0; i < videoCount; i++) { + ui->gridLayout->removeWidget(widgets.at(i)); + widgets.at(i)->setVisible(false); + } +} + +void frmMain::change_video(int index, int flag) +{ + int count = 0; + int row = 0; + int column = 0; + + for (int i = 0; i < videoCount; i++) { + if (i >= index) { + ui->gridLayout->addWidget(widgets.at(i), row, column); + widgets.at(i)->setVisible(true); + + count++; + column++; + if (column == flag) { + row++; + column = 0; + } + } + + if (count == (flag * flag)) { + break; + } + } +} + +void frmMain::change_video_4(int index) +{ + hide_video_all(); + change_video(index, 2); +} + +void frmMain::change_video_6(int index) +{ + hide_video_all(); + if (index == 0) { + ui->gridLayout->addWidget(widgets.at(0), 0, 0, 2, 2); + ui->gridLayout->addWidget(widgets.at(1), 0, 2, 1, 1); + ui->gridLayout->addWidget(widgets.at(2), 1, 2, 1, 1); + ui->gridLayout->addWidget(widgets.at(3), 2, 2, 1, 1); + ui->gridLayout->addWidget(widgets.at(4), 2, 1, 1, 1); + ui->gridLayout->addWidget(widgets.at(5), 2, 0, 1, 1); + + for (int i = 0; i < 6; i++) { + widgets.at(i)->setVisible(true); + } + } else if (index == 5) { + ui->gridLayout->addWidget(widgets.at(5), 0, 0, 2, 2); + ui->gridLayout->addWidget(widgets.at(6), 0, 2, 1, 1); + ui->gridLayout->addWidget(widgets.at(7), 1, 2, 1, 1); + ui->gridLayout->addWidget(widgets.at(8), 2, 2, 1, 1); + ui->gridLayout->addWidget(widgets.at(9), 2, 1, 1, 1); + ui->gridLayout->addWidget(widgets.at(10), 2, 0, 1, 1); + + for (int i = 5; i < 11; i++) { + widgets.at(i)->setVisible(true); + } + } else if (index == 10) { + ui->gridLayout->addWidget(widgets.at(10), 0, 0, 2, 2); + ui->gridLayout->addWidget(widgets.at(11), 0, 2, 1, 1); + ui->gridLayout->addWidget(widgets.at(12), 1, 2, 1, 1); + ui->gridLayout->addWidget(widgets.at(13), 2, 2, 1, 1); + ui->gridLayout->addWidget(widgets.at(14), 2, 1, 1, 1); + ui->gridLayout->addWidget(widgets.at(15), 2, 0, 1, 1); + + for (int i = 10; i < 16; i++) { + widgets.at(i)->setVisible(true); + } + } +} + +void frmMain::change_video_8(int index) +{ + hide_video_all(); + if (index == 0) { + ui->gridLayout->addWidget(widgets.at(0), 0, 0, 3, 3); + ui->gridLayout->addWidget(widgets.at(1), 0, 3, 1, 1); + ui->gridLayout->addWidget(widgets.at(2), 1, 3, 1, 1); + ui->gridLayout->addWidget(widgets.at(3), 2, 3, 1, 1); + ui->gridLayout->addWidget(widgets.at(4), 3, 3, 1, 1); + ui->gridLayout->addWidget(widgets.at(5), 3, 2, 1, 1); + ui->gridLayout->addWidget(widgets.at(6), 3, 1, 1, 1); + ui->gridLayout->addWidget(widgets.at(7), 3, 0, 1, 1); + + for (int i = 0; i < 8; i++) { + widgets.at(i)->setVisible(true); + } + } else if (index == 8) { + ui->gridLayout->addWidget(widgets.at(8), 0, 0, 3, 3); + ui->gridLayout->addWidget(widgets.at(9), 0, 3, 1, 1); + ui->gridLayout->addWidget(widgets.at(10), 1, 3, 1, 1); + ui->gridLayout->addWidget(widgets.at(11), 2, 3, 1, 1); + ui->gridLayout->addWidget(widgets.at(12), 3, 3, 1, 1); + ui->gridLayout->addWidget(widgets.at(13), 3, 2, 1, 1); + ui->gridLayout->addWidget(widgets.at(14), 3, 1, 1, 1); + ui->gridLayout->addWidget(widgets.at(15), 3, 0, 1, 1); + + for (int i = 8; i < 16; i++) { + widgets.at(i)->setVisible(true); + } + } +} + +void frmMain::change_video_9(int index) +{ + hide_video_all(); + change_video(index, 3); +} + +void frmMain::change_video_16(int index) +{ + hide_video_all(); + change_video(index, 4); +} diff --git a/video_splite/frmmain.h b/video_splite/frmmain.h new file mode 100644 index 0000000..949adc7 --- /dev/null +++ b/video_splite/frmmain.h @@ -0,0 +1,59 @@ +#ifndef FRMMAIN_H +#define FRMMAIN_H + +#include +#if (QT_VERSION > QT_VERSION_CHECK(5,0,0)) +#include +#endif + +namespace Ui +{ +class frmMain; +} + +class frmMain : public QWidget +{ + Q_OBJECT + +public: + explicit frmMain(QWidget *parent = 0); + ~frmMain(); + +protected: + bool eventFilter(QObject *watched, QEvent *event); + +private: + Ui::frmMain *ui; + + bool videoMax; + int videoCount; + QString videoType; + QMenu *videoMenu; + QList widgets; + +private slots: + void initForm(); + void initMenu(); + +private slots: + void play_video_all(); + void snapshot_video_one(); + void snapshot_video_all(); + + void show_video_all(); + void show_video_4(); + void show_video_6(); + void show_video_8(); + void show_video_9(); + void show_video_16(); + + void hide_video_all(); + void change_video(int index, int flag); + void change_video_4(int index); + void change_video_6(int index); + void change_video_8(int index); + void change_video_9(int index); + void change_video_16(int index); +}; + +#endif // FRMMAIN_H diff --git a/video_splite/frmmain.ui b/video_splite/frmmain.ui new file mode 100644 index 0000000..feac423 --- /dev/null +++ b/video_splite/frmmain.ui @@ -0,0 +1,64 @@ + + + frmMain + + + + 0 + 0 + 1000 + 750 + + + + Form + + + + 0 + + + 0 + + + 0 + + + 0 + + + + + QFrame::StyledPanel + + + QFrame::Raised + + + + 1 + + + 1 + + + 1 + + + 1 + + + + + 1 + + + + + + + + + + + diff --git a/video_splite/main.cpp b/video_splite/main.cpp new file mode 100644 index 0000000..7bb71e4 --- /dev/null +++ b/video_splite/main.cpp @@ -0,0 +1,31 @@ +#include "frmmain.h" +#include "qcoreapplication.h" + +int main(int argc, char *argv[]) +{ + QApplication a(argc, argv); + + QFont font; + font.setFamily("MicroSoft Yahei"); + font.setPixelSize(12); + a.setFont(font); + +#if (QT_VERSION <= QT_VERSION_CHECK(5,0,0)) +#if _MSC_VER + QTextCodec *codec = QTextCodec::codecForName("gbk"); +#else + QTextCodec *codec = QTextCodec::codecForName("utf-8"); +#endif + QTextCodec::setCodecForLocale(codec); + QTextCodec::setCodecForCStrings(codec); + QTextCodec::setCodecForTr(codec); +#else + QTextCodec *codec = QTextCodec::codecForName("utf-8"); + QTextCodec::setCodecForLocale(codec); +#endif + + frmMain w; + w.showMaximized(); + + return a.exec(); +} diff --git a/video_splite/main.qrc b/video_splite/main.qrc new file mode 100644 index 0000000..fdc0fea --- /dev/null +++ b/video_splite/main.qrc @@ -0,0 +1,5 @@ + + + bg_novideo.png + + diff --git a/video_splite/snap/QQ截图20180430191412.png b/video_splite/snap/QQ截图20180430191412.png new file mode 100644 index 0000000000000000000000000000000000000000..380d63864478f9f475a7b3c485d7d8361a181b23 GIT binary patch literal 54226 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 literal 0 HcmV?d00001 diff --git a/video_splite/snap/QQ截图20180430191527.png b/video_splite/snap/QQ截图20180430191527.png new file mode 100644 index 0000000000000000000000000000000000000000..3cb551bdeb0cef4fd8fc72adeb8cfc0beefb29a4 GIT binary patch literal 29113 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 EZ@8VI&;S4c literal 0 HcmV?d00001 diff --git a/video_splite/video_splite.pro b/video_splite/video_splite.pro new file mode 100644 index 0000000..80866e1 --- /dev/null +++ b/video_splite/video_splite.pro @@ -0,0 +1,24 @@ +#------------------------------------------------- +# +# Project created by QtCreator 2016-09-29T09:37:26 +# +#------------------------------------------------- + +QT += core gui + +greaterThan(QT_MAJOR_VERSION, 4): QT += widgets + +TARGET = video_splite +TEMPLATE = app +MOC_DIR = temp/moc +RCC_DIR = temp/rcc +UI_DIR = temp/ui +OBJECTS_DIR = temp/obj +DESTDIR = bin + +SOURCES += main.cpp +SOURCES += frmmain.cpp +HEADERS += frmmain.h +FORMS += frmmain.ui +RESOURCES += main.qrc +CONFIG += warn_off

    N(vk9C$Ga@XC)OB<}1kr6t_?_GD$#6i`X^lZA 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 HuT%d6J-W`v literal 0 HcmV?d00001 diff --git a/nettool/snap/QQ截图20180514145729.jpg b/nettool/snap/QQ截图20180514145729.jpg new file mode 100644 index 0000000000000000000000000000000000000000..4a408febcb18aeb96dcd0e58f9c8223c1b273d93 GIT binary patch literal 64690 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 K7=ndumIXn>oS z5pXdNPypayVPRuk!NJDH#>K_KBOoUvz{e+`Atk#?evOuq;TkPHJrf%r2NMeqD?L4@ zD2Rt2EF>hv$N`ZO6OiN+6cYH>2^uagE&)CPH6bCj05d(az`q?XIsqg&==U)AG0<25 z=p<+uBxo0106G8~03G9!+CKsYCK~z`EbPmN)R)8fHjEvO0i-_yU^zj73yvnEV@=`pU&K3Rn(p@}u&adR; z`1EGKd6JgOcm4$OE)nvmL?z?R7H)PGiC0SD* zPevWt%f!7K#_?I`$qFZOW4en2={N`2Q~6SBIs4L*I-AK?)o~4V*h&74IMEXw1;_a{ zdPuTOy6TG_E#4pTUK4eXof|%`HyQRpExz{ah*9MY(oTV0WTf7Nh%^-eM)vd$^VW6w;8a?V@qJrxfH}?+( z#4vAU&7w*0-B(LqZ^R9t^|X0-_7-(*6XH3$Ef`l007N=KE9WZRH@;wF+*#i}6hAUC zuC^CnQ6HTr8=l|X){Skd&ur|Py!P(Bt=e6ko(>V~;eppG*zF>7ITDnsX$=Oe%}DE_ zhmsj>S-lK=o6Dy=^UWhCJP91uP}?=5w#E^L?!EMEDji;RF7ijUCT(#xdaJ=iqmC6sswG2W(L6R#{% zZ;DZ`HQo?;2Tjysta)H@k1!!6ek`o~>BqDHXbn&z@(DOV=qX>P>Bz{5YkJ6RrakG1 z>QiWI`Pz$l`ptmVNb5Txzf%JEL5gQ-x>W?No1WiJo76pR=IJ;pVI^T(x0_+j?-+o3rU-*;01n5vy61k1u3?W=H|`zUcm|=IR`1 z0M8SP1Ui$abmOk%A2xfZ@{GO=&$ori3 zXB=+kJX7_#hu5%W4Dt2`#pS3JocohEs~a+5kao}UtO-Nu0L`Y)UxWhowK_yu7H?;V zs^2ox&(ocZTt70~JU@RVSg*Ub(bo}+|9lq;M%4p*#V5{Ftv8){Xm7-zPRH-=WByJP zz`3c|O94ER{I)>-31sx77vF8>J59fHY9xSBYCL7(8Hc<0*pM^i4F{Fi2))F3jR`EW z&;*4wJ69C>HJomPL)8B$Q=x5W%dx+iyslelUr(@3;Yt-sS30s*y>?{N>G07@n`NJ= zBBZ^9z66~eQ^KxYmRVe$YRO`V?C-?zag4dNk`z_Az zGy$evRo5e}=vUbCzgH0t;R>7T!#;l~I9hAD04*8ATQ^GsP%n9^_=*o zFsH2cC|uu1Ekq|GgV`k;fphR$dH>t#{Ce4wDf6n0$*y2}=&Mzq6GxK`bFMe*$A!fw z#npDzY*0#Jo}H+K$kCy8^x)r#5T4hC6lAQyo^5r%{iH^EN2T7IAZLH`E(phvYjT&w^EAqsLv9#>`CY$2hnw(7f-lfyDrN1^wWP7>a5mnsN@U?0jrk{*t{ zn+*xW30CQM{;-QbL`L626qcze@eZ$TSo*%J#q&$Le@CN#pmVOHU1QF>r`{zS@#`z5 zEn6GeWab)rGtF5NlTUWMR@(EV&NDYk2Dgsyj0CE#uFa$kCMg-_JiO8@0uq0+-hEBo zOmnfy^Hysl&p{vw{nIuIYd71d<`ScXD&Z4x|Iok8vtAMP&ifLhtoO_AS~xY=(0>j7 z=d5~ix@!NRtl$w@{u`a%v6ZT#M#Q5&)7-ghVJc>B(3BoMD>5H%)80&LonL_2p0TZ9Z%#1(t2$Zd zvfpFgT(rYEDKD<)q59n<-by$=*(LjiPruB%MXOXk#4!4E02+D4O{52X1fuVf#UyHK zl)r1pkCf1NBEi8FiY^LvTM&i$6dC&Ccets%pwK=H> z2{PP!U;y&VHRdxrEIc+_8{0GO9=&YDoJH!?RGEGDUSXrvGrPHKZ{r)zOMD~l@52uW z?D7j^8@BEA(Q&lcBGvglmL@BIL&0C?xBuVw^sV;Cv?$Sfl$?-D(u*vIv`hZOxd7AG z{w*hE|7mwWmWdAkZcl}|b|4sJO-wP^?J0d;TDBk^tvJgB5(<8ncvtO0vUk#Cn2fM)EEU#qc zd}|i(at!|jKb{8v)A9Y7_5NQziGk!M=v&;A^^{VHe~)R`j{gph{$+PMk!l{#PCnE( zeK(lG396{??##c*D%$l@b+y8=@`g%YuGoKMbR1j$4z*YR=?H&={qWSsCi;}AN>v6g zo_Fxwmzg*a2RZ6Br7D%^*g2iz{$~gzc4mOh5&kLS9?*yX>`6w?4>w$TlDCuoDS1Df z!5F$}lsK9=nsn{eYxcF^?h|hwwoUwRHIkE6|0&gANw^kG@;y?lvdOiufWJj&RlEO` zK)p_@3p_N;;8b8829wFX%BxDfPtwT;zE{~lbok~V{@YXP2S@(18v7eR|K2wJOA!3+ z?Y{v%qeu1in8Y&rxQ2&27H_%d@jGDT%^yGYcODPL?uO6ArbN`Kul8j#d@{Gf2Fyc2d|B=YU9x*e zTdThrlX11P#7kC!I062?e=~vjZ70AhA)4iD;zg->`LSewSvkRRyz3}_S~^`S{6i&4 z(}s2W!36V^Bs*#7owUcG-7{l zfpF;IpwK*PZsUO(QGN@YhV38B{w0I)8#cRR3->npC4aJyW|&=8Y4Stt<*^0+4=cDa zQZ|lUZhc%Q2B2MTgkW6WSAJ}Ppnt0%Ate(arx0Rh6}-YPdy|Ej4J@oJ&n|blBZ70e zPl9#@J%)KY+!<$zq>9x@`Ek4@ZKv@6n~HE{+Ma?^3B~LxCIDAB z1FJC_ohD|2PQ1GdP8Z`HzY`K6drl1eS^{J@DQ!7!>thd4uqH%ai7kYfKA!;I!v#fW z0%2m7#gQjt%K3Je#m^AfSTo1TYYPeXD2DnC3B5{j)uF4OP<-x5;7|yzD! zkGe@+h)ZDR2wIZ51&%pMQ9CdG>WU#Dr(fHNm9Am^rGj#KOk+|yrMvqb@o>;Q(k71G zBjvq@z#MRq#n!fFSIM{rS zUVX_VzrOon~o&aX%+?&!sSi*mfW-y%nums{MlvU8D;P(rui78JJh6=nK%+|QX3;vG7Mugc5R z@IO5Xss6%!ht{1Cd+-9Vyk6td$ldpd<$slUihPYn8GIC4q`jIsF-eHG z{nF7uf~owr-#U#2q(_(L2%LAAGef2qi{dFFu+?K}4ia0NX`QLVOG`4T%^9D<<0`Nr z%?bAj=A8_p-Y!V$*yx}U`^uIB_tbwzC>j~I?qiJBfBJRpEfV1Cm|-hO%|<%)Uhe<_ zb^$4aC^Q6A6L8Jca*j%US<)f4&2=w7FT1ezy$=~6_g==Xv1Ifzy&-eAgI8@Z&|AVzr{p zR+I(N?#F_OLE;tdY$dI%g>0Go!G+~fMkQ$cNj5M+i9HvS*4zaj?IpGsq+A&I4r%??(2D#DDneHECX{)}?OxR{JnQ<- zr7NQ0ms~Qz)bicVEuJK+)nKz_vt**E*4tf8&{(tndS0j-58J2C7}7e_9EI{b#b9MG z+>hkIEOgLbb#EFZka=8-k!GI41X67W66c35uT!rPW( z>-};9`*3Y`8_-HBv%7Ss;B)T^2V)m9#!ap5%iZgtVe8(yJy(%7M`1i~5n#bm;OzxU z1xa1$=hmn?2)c+rzhj@jJ4_JwDIhv^|!WBWa8zqVa)n$v)qjCsPyLC4mUT~ zPHY|jri2}%lP0Kz>;1{`GxV#OllFXh{JFgxi5m%W_R;&yzIf?(5CbIr*!YGM8YG~` zaO`(lT3>BwSZ@rJI23GK-3eY4DadnxGPXd}DL>7n(O@`0iOU3VvnOME$!mZDmQ|{1 z$vHX8cF1OyKY4slLU#wBGL0z4kbZKiIRF=9gB zp4%~9(e=8PE)YnkmSxbc9dLi<2ittE2ZyZ(ZG~Gi4`?!>;Wp3W^oUGrj_kFbK9%LIuQ-PWwt9!T>e=jT))j-?`5_|tRbrxn~Y%CV~gg&<;T}gK_Ibt2rr1dx<0l&6qollqYb)RC~Qi7e|Og6JMV(TV% z7oRzC5RNq}ChdF(b!D!u@Y8BrW$3+RIo~1%#&4RD8F%B19I4xI)G_`>bvy$~fsdgi z_nvCp5&{A#WB*LvM3NHs_6KpJ+$;iBCLGifIt)iBE9{0ALjYPyGE=G~lRDNg=c3SY zp?WD{0M=V{f{DTXb|E(-5qB-J`WJMiks{_i(6{kJ1z1Tp<8;PFlIbHV3LTzfVrx4q zVBRbWXVJou%t9*>3sv!BWxFYW@%$<^KH#hM0WxtJ+AYfd%}P2*+v_K*UCnu~ZKwIF zMF`O+uLA?h>k2DKhDg@9$m{y}Na)pQVYUJCS#BpA7v`{Y#M!3bqIB61Re@)Ow^6To zftqP_I+b!fRoV10kK7Q*5gwg>FGY4_60hxUgSJ=7n9oz#C8oPZI3}2J^3UVoLldgOIrsN|A{Gu0 z-_em=U|Jrf&W4M?pv069ZmaWqe?3jSr+Q=;PIDYM8iLUdqC4)bt{?=w9nw(J)O)8= z-PA5Mtw9|}0IH~3(_n*X@VKfGjKL|BoukGcchkF4Z(hRz&5-kNX=$qCwt>&1rvckg{_P^PKTdl4|KG7`=IE0IUzf_2ou0H%>zqd=h zqM9`hbLAExY{L-fqIm2Rb!J$TY??w6j*Vz}dCH1^f=*lsIE#!`1d#2!sm> zAd9F#y>@I&D+HOaSWW^@V>AopL}3^LVlfIK(FmOuzSx;b;HZ_IgRQu3jIPwZqi*)| zptoS+Cocsd@HQm;{J5FM60yuvOY22lm}unib#`u-n7G_p4Eg*Wj67Enfl$3g0bNYft97xVme>^S(Vx`<4=r~lG z49BK1-)4uP#T3egLN!HWR1iJ}h)RYb9l^fgu2!T2FlogRn8E;6)hc((1JN%+4sTbu zeoK-93XYsT3m))jUwY^=Q2B#tNy2A5B)^mU!{p{+x z42@W+y=PriL=P>1awl4!(@##2)LC(BJ1{XXmUdKFjIjmi+;<8 z5k?7P{6=cE;z(6p9$}w!p6p%vfV>1r^aQcQ{Ky04S4yYFfAF=!-r+&zwGx9(j<#NI zwSz%{CqtP8vug003f$y%st08ic5$U$D@d#DY4~oVnVWjWHBa?w`j6zvJGV1vsaGAz zJsTc1zjg}oa?1BU(dbl)dQTN@u{>!picE@-&5BV@VaPY?F#y@5ql-sgVT-4?l_n8= zc<(QGqMZ`qes>8;9H{XU^yDQ|TJyGrC=+jlp#9`9o253;NlqXub0+1ni#g|xd26s|N~e;f+i`LCn9AMnR=Hj>Jkb_rsOj-VZsF}Yaxn7g@fG`rQyR>;G=Jt4 zM*_v<_%7E>cTYZ4MaZ)tg&^ye7j4vFzh766LqC)q2cg%=SpvBAztQ~*B7LT-=k6Ko zM5Cg`!*ihiYFrlu1MAYqBuL%5`!l9A;Nvn7gClSi~{c>&XmGC-v|fHnRVKHb6|- zpO(!FBgkzJnG<^yAm5q<1z!N}!teI_1_bkkCw>yU!5MUkdA$d0f2dYr8vmVajvN|$ z%;@M`u;8=JI+|s~DFy=!(MM7XrEVLbqc^DqEyrg$#E1ZI%kD>!2NNB2c6nmDyc_J4 zx9S>>ktLlWvSuPfjH74=Z;_HQ6jI4rvJwQlb#=|7B?9}_5`+$W`l4h_jQV7RzX9%g zBi;nJcD4LJNw7Noe}dimbS-Ml6=d&GFH?QjN8+|C>d#cyqSi1X9&YE2Armk)$lw=% zOf1#u!z~lefQ$!BqVeVSS)?lOG`*eyl_wSt zC;yba0NDJQGs`i7WD`py2FurPXb6Z-Fo~&^Kfky8$I>%s?9!XmmxHIu5n#h4Jyay? zX@(`xxw6Xpv)`fqaFM?M-H#ZL8Co{z)Qeb@;1T^fSp6!9z@f>Y95g zL4g;5pM2FHa#LhxBIhT!r57OUB^&THwEgS#H>~@4G5vi+dfo6guB0&U;*!cVh*c$| z!oC#e?WelGP{XLn6}|N}=asTh9FzBTc7@S^YiyB>zP~64_dgT(cU7=z{kGC+eo?wV zdS~QZ;c_jLm+!c|9Y0^=iCum2>CO3H92<;^7+$BzJw1%9tqIr>HJ-7+Yj zZ^8ThR!OeIU{+4XyPEHz;OsBTM$9sbFUt#PK>zy$hn0Hb7lI6rAYk@r9;lT%sZnxQ z8e8q33v_9yKTz(+JSh!?{=gSxZpNT->tzQVO!DRpyIx29d)Zo z&>$X37T>hi*6Y<4HPk(i%LyX=Lz?2}AwjO%!*Kn$`*Lig?Mm8dVYkQ0c1uD(6mZv@ zN#~=h)qPRYcyP3q=%PpNIW8C!5-4(MtV}$%BE_(bIlc;cK@v3UytRD)yb8VmJbkl* zVc#_ctQC%~f>}9}8D%|RSZzyitM|#STCm#@HEtc6`kMk7B1rkS<=@aJj30ZN3A@Is zbqHIQex;OH5T!0pv9W5-+Q@IYe>@;2&%XD{=5Qu8+US4lmDJc#@@*klAu|v^PZh37 z6_ZitP?+SITAVWCR+ps_`VMpP1kpKSOyDk_D3AxFw653HMZFKAO5B>_5^?vr{N|mk z&Yd%^4w%rROiEk#)F(e0-cuGF6y!L&04RK4)S2yOG22XN$I@$fc!Tq!L$t6yw&Fat z?6Ns@X{^s4Q#^FE!#?-6$%@aw${TAQFSLuH3};-0%Z|0ZB6^m>Umjd)ckWLRar{;= zs4QByd8|8HX5{?ZH>%4h*(-(rBeC4w+CccHOX#K57ou-wdZh=X04Bd13_v}BgL!BHqng@KSoubY;YmfT^?kR3nb z$X}dwiT>3Xg6AN``Hk{BX+Kd!jkxnMcr8x1cJ+zQ0d)l{&kA3BpHs&dN~P{ZHd=?* zy|>?g&fY&3fQf(Dv_au=DQooKXpuxDTcfaPS<^u5@9St-l5doMT3J8zR_V-58CJ7r z)i_Vtjn7H(lqk$-Bej8_M+;;Q<-|Th1f?PirAhpb3$@4+DfSp&tWI7H+W$-&R7)er zCPj zj(>oA4K#}+P2~J|&+m&;v^WEv)|(Fa(wQ_3Syz#=hB!qgxJOE+LQ))V{olo_l| zEGvg`i7h&o``x+zP7_0PF5jk%*Qbo9y>@xi@%lA5yefR<&|tz#8LRY{j65%1;zRl;^mKZ6ImZgk z_y)F;m;4$oQDVSCKq)O&>G&~w=Yi^EN{n)hyeX&pN46Lx_wK^a#bPPq-G6UwL{wT=xd&TK@80ut{FkxdQaBhiv)n(E-&YArfrB#Y!ZQll zYk^{QYVTi%@KMFs!bRZHYE@!6cSb-8{9a4MGCQne2X$2te+H`ODSR^3MWX4^n9 zyT&9PNV}m2h%-8hXs~%qFM@j^FzIqk^}a5%hc0H(bt0xBF0*Hb5q8~uRlYxZSo*Th z-nl=|dx_i@y;gzb#Y!E?vzIvDLfJJ_1)IsHv&sI^36gi#w(iuX>%#>gC=@|ur<7)l zEbJPv3M8Y?wN!+c^PV5d1a7}o@e-i6zkXHweO*%_5sx#%w7DIh@l=QpU%^VK8H zohvQ}r5n+^d70RvoALEyJ~2z*GzwWok^(*iGb;Ft75!0W$ zqMqabcLTY@rS?KEkNluxpyT4BW1(T7U%|xq{;yHr)R&lyML{RJ%5uI6g)(~2{V1C)22GhosHYyoF=Guc~4Mso+ZHup%LcQ#{ zY1KHmUV^mkvX(zxyD3XExQ*^u(4*8Nr%l)%)mXYXa&E1-CY*Nx(2DrukH+xBPX>Ws zq{&|-DEA)MF9(SPvb=?&fQu!i(H8*s&dhjPa{pZ4ZIXjRyFkIw6x0^OM`w}I;i1vP9ei=DdtxB z1%OjAKk_(T&5$T5#QF8?%bX4S%J{3>kXM*pvySyeAN9KLtJ~`>W5u#%z<6Cr$r6k= zg98Q3W*MtiHgie2uN`O0){S2Pc$9gsSGuw{kld7hnDQ*WpFN&Db73@p%Lv3$`gnp2 zBO98EdP%7PF$I}~Vc;8?S_;%kE219DHY$3V*jN(dkYP>6MQu>oB$l#QE7tbh3}F_= zW923)&9sWvSRHmg@_bFLbzl`U$LPZf{6tQLpbZ{-o%Gheo8V@&0iQ8%uDPa;Y3!Xf zSbSdbn=<0nuc3v?JW)5!9YDiPWi+j>tTB=Mb79v6(C=~i^LXL18012eFz8t{Xh^th zbVi0DJ6lbhk#s57B+ffZ$X}5`hEp+N7;@e!nVIOWx(-px=2A3UjgSj~DJYXXEa=8* z#s_eMaBS|aeVDa+EcM|oDqu$+x(W}R=L)$01)Te=o8|_4@fzKO3qY!Whmm~H%HLy;+|L@ms#!bnK;{Avzcp)eP8M5wmV*i?qwM0#t!Gv!zdT8Lno4C;&T#?g zS;SlOY%!}br?|ZC^T0((ZKoV%1B#|Fc9xy85`Hu>{3yEQc;oGxaC);1wXK0!C7ESIj!&?qPifLG%pUBCMq+FFqIsmN zZMdfnzv0e(W+-u|#`nx@@33Wl&8xZp|LSVLre0?$Bi3CC)YoypoA>%YyvSNu`~Tqe zhC(=N;r*6fbKtpg_2Snw=i416{~Z<1rl7A?BqHsRIG?U~1~n{FGuBD%+d-x@`VD|} z8EHE_w@wWdE&!AJVdhskpTr?0kk5(8kE1yn>-(m1FgZ}A`o@Rhg1CEZnzMH*D5bM2 zCn`$Da+&8!V;6318Ye=8GoA3#YKOO2b$y|Zj)<({XVm>H)A^w-S)9p-xW_AQu&FzZX zz1m`3(=Vm>6{@0c3N`erJbERuHT3S*t=Mxt&oP`Hr(L|#moe%t&UVK3PBu&3ca&T0 zZVviV+?af@b^a7y$Jvmn>ClgZKx;a@oej+Rq{Peoymnj)slB+#Qfan=tOm?@aHTbC z=tGW6M`y9by}UF~yI=K0(psO|x}gLpy)OV0c<+hC2&ePhPqPTBr5NX~4EblKsp^T) zElZz?7+hVGY$dBoDaOr;+Gbg$QKz)iiB{NfjVSg$KIMqhFw{m9aPJrEyB;nF7!2k3 z%x&^{6zZ&AtoacA!P^h_>3@~HEppr%3cDH8sihE#Zjh@lGUD0%wElz z%1oQlaVSUJlhec7-m%0B)%e77pcy$08)~=J`bY+2pStF$XKDzCDre5v*s+zc`ZM5= zPUB{p@X6xDX9_&MNpw94C~tL=q7@>b>vNYTQdJMuj_yojpjaj>vi-~oIw4-^o?JNB znx)n~nd;LQyi?u4vXzN{s8-R1Hl`gb8RipHAhQakvW1V!!6|}xnTfCYG(~e|*il@W zI^|GsE?r*?_Fi{GLgfn;yN+PF?Rd>}BvH#Iug&q8waWTb3YN=-=(7er3v;iWA~^X7(4M@`Bvp}xe`ffr zvf?v$`N|D(3MmpXiKFKD46HFcT$_Q}jYHt)gH+Ord^)j2M81xJI8>Y=qpzn{9R|N7 zb&D_w)7xyQB~rXt?l;x+ZcPd|CFWPN3rk5*KXS~)QWdWDUKl0-LLVeV8Id_*qt%eHpyj!AR97(_H!R%$}B)51?GJ;PHjPbG&4qr1jn z5E&6NRaHI`n!J-z87(1T!_!DPWfq_omb4UYXQ1^tD+=T{zyT`e9If!t@?+{BGI@o% z=PHsu)+Rl7(_)B#6-S!^3r%TOLj?*l_hFA?g`@9z{~0C986BVU z%h&|IMSJfI-QpBAHd~qLgyWWap~_8V)@X=r1DHs_0cF(vkrfpJ-1Gq$saN*Ow{t5q zqmM!Ddk#CG{Pz6Tt?Wr4H`itbJ&g1Ln06U!poFUNZNm*V+sc=rF8nX;AC>?%8jBYM zD!|5uN^0(2CgS~>0@t`opNM&f+sLJE3XeDd-@>+I=8e{eCloBklnzBfEu%T89j55F zH3eE4lQ5=)q{ONFwr6TCw{C57Mz$BnuDZb;v1_rYnu;oYEA2Q&>lUX*ic5#~`iGiM z;87UGg$E=hg-0?Y6pQq?yqeX}=L1Y`C5M(=1A)8xRilLOd#?Dgw6M; z{5)QeInUfoe5`l%H?X%CvvDGu%06CNe-bTPYZq$s<}@}jp?IM@$B>gg@4mP{uj4g5 z&i?x;^BQrJ{LA|Ac$Y6yPC`ywgyfB5IjvfsH{}Uku=35IQ+c%O8VyF`cG{SA&E`6= z$mz$cA-wLJ$u?53f!ocWw{@OvbOvV8T;)66KGvVxcX~3SvyCH=_GD7u&fo+zZC*MH zmAlSMR0rQPs$7b*cJ&ZPGH<(?ws&mkx~PchsAmg~3lq_`q@;(HbB5DrB%*d|JrP9Q zG*xhys!gr)2ii}e$-|6?j&XLGk33k7+WF<1G882V&DA89h>c^>txM=_g`6wbP|wN< z9s6%hT4f40pca?~L3OA!EfYbewsNR^N^zf!;`W}FGyOP6Hnvmj)h`>0n1lhymu9H6 zSZs~{P>(pj&Y^Bq;K$9)MYW7Fv39pZ+59?t`{NHgbm z^_BhkT&j2Q*yV9;IQ1jD$*_(O)a{m0&|%Bnx|4o1QtIbIHFw_C&H4?AiAndz*KY=$ zk&okXH%hbTV{Oxq6?O3uxtrxof5fT`<8p@#t$}f{_4+7*r%r-D!OHL2y_Cyy^|pSA z?uSl7@o3zH`x@EVa`of;@#2H;vq)VaVYZ>&L+1}ZaCw4qN*-R}ZEN1I@LA|Mu4{Xl zfY0z=5jQZdjku@Ndd&xxb(7yRY4CM6!aIlFo!8${8b8l>naV@cm6T|>xc_c>GHQ4q ziug)G{S-Nvrxh_EE_%7pO1=K#(p0gy1`?2boz<59;g3D%;_s15wGOq}$usNmMkqmtH#2IC*t1`uGY-~89w~5mHgHy;L;%Dvw%yA2V0(F zAs1j?HP>4fng;=uWgI8gZ!|vH#0|j8goOr-M0_hbiDHzsKAxO#x^~x9ZHQ;vkkOu- z6QvthI?w_r{bxYrE}$nfM}kcIBUfm;7&mD(SbqXebtOc-AuUwyV`H? zrADLusqz|WsvL?a43EYt1k-hrS4X>oJrKElF(z|nrb%oRMj7&+{Zl(WGjRn1G@G^q z$niVMw0%=~S2|f!93H%DVj>jpMjcKK=QUzl&60`tzAl^^1>cImI6mbm5Jd9pXbxt2HMH_tgjK?(^f2O^2%NJ zI)SV55x0&ji}C@xP8d;5mcC!9;dw>lU1i~Uc?YrDlFk+GB!6r5h#rG7TPiA=%!kI( zWi%07E}NP4^#wPmhHm#i281zS%JNlVuyJ6~q<@Tn;8vOwhHH8<(=?c{xyWJ(q4}h< za`Jaw0J^c$L<&4o`<{Xu^SrAS8{@A`_gTaN<4n!(06or}aiTOmwTBLu4S850DUA-u1Hd zOt->XK}D7^m;0&MTaoM$vExz`_bsU_1lmL~E5Oi#RyVO1B9RSG&Uy5P0#?Ut=SurJ zwuyL4^~M*!rizuWt@BUGoU+E|+iXTXID(WlNh*tnT^_f3v;XO30#3HYOU%2WEi!ZN z1XpJnJ_qnURGiretkJ1fwGc9icyi8;dG#qLhrC-=J_Tw*ZVCCM8;mKpkjK!$A zp=%@6lgz?^$9&(k+@%6cSat?08R;Pa3SbItG}IQJ!+g*ovTexr3w_|De} ze*Bj?P7u2_a*a%BRA!l@1^zohm(S>aK-obP^H;vQW%LTK&z|6#^L3}pX*orHw%!0s zxHlSYtPsWlcC=rbokwR5h%ytEVU0^7+3~rilW_5PAjz~YnRzAsyx#KTH#sUG?;Hyf z32P6Jr!r~FNH>xccT+18Na)p)na7E#pu*hYX zZ9hzLiWgbA-mG7qWg(uom5RSDwqm4SJ(Vj;1${>*RmowR z5=YZfZ+ZKaw`jS6f}6P$)hcJR+ytfy)#(U=VKtcw-?f+?dnnEh z!8B&-?jTRc5&{)Uo^8oLrYWOT>bqNWrD>!Qu$dqOt3t6iYZWyrMw8Y;(6l)Hb?`Ir z&FJoyTHWPhJ>a)&>HX5K@bd2@2t386Fb<4Q#wf6hDd8#+$WVBfvwl5`&lN5@v|0rA z$9`eRQ!}xy&OTjvSQ<1~Wv6dyd+E;#$Xo5f>t7fSryxtW(#3B>ZKa0E@=BB%Udwdr z!ykTuH$n^Lk7qmx^%hu6DhF~(#QPuRf@Nl9BOeqQM8X~<(dXY%H)Og-PNP@`xhtU`X9RF zn?quYmx(ig2KID;0s4F`l(Yj{XQ`?=t(UIUH%s&R(LZeZ_g#aKPpogS$FI|{tqv>* zZj0uE7279veB!ZWWo{UOs;>G7w;oAzNkiU7`l##1#$nFQ3gMSV#cT#cdgA8p!JieY z##`GdMtsFBsU>)=STN8HN${T6c%E#>*Xlo^cCX@5#I+;uFc->mpc*KX2}{*$rNNd2u)~Btp%On^3*tlOT$pr)`6i6O4&a#6UtlPncCV+I%A1uDV4>7>>at1-GVJZCPtj zzjOq|tE}-$xMQMTd$0*S-nx=3E5*hsnt|ZS!23YTBdm5Ws;j5_;oj`Mha^5a*P3P- z@F=wMgp2!)D<)eD85CCw6|W*KpNM2yHL#Jd1&uK3ko0A@8FKR#xB`MY&I#aq1q{N|AM^R*h#aJ@cY z!T|`|i+hLor-xdXPMfGVTI891P`uh+gKkC^2bS}$=aE}`C(t1Dnrx1Kw@tmV>SjD? zP;Y0?%8ggt>@SQ-c4xKMyd^@xiiV*+#`}d-1EBH8MS9kbIdg39$(dJd=(2$a#-nBD zwRVqaQ!0V8bKx9Mn{E`{h=SddW|vjZ-mgWn^{e^yg-oqEH|v(Vq06F4lvHar4|{Q( zaO8NKwY~cYuQ(K_XpPBP&{(G_r(iK#?@uDi&!gR5Jb-D5cLW#Hn@$nifzN=hA{rpv zT$@}6xy<65BOXae`ytKqMDM}F;@C>>=uEdl15w(q(Z+nZHPwT>Ujz)g?iOmcfvom0 zDk!O65uD8KhdJ@3)t`-Bx+NHMeyLZRXUes%V{jQX-hY&Pn2k?8&gs_JFk+|>6A6u6 zA5IgV82$ox%yPC?vY8i{TH)la*DI0PGp44Y8}!^W34gC$uwo^`n(HDNxK77sMDD%4_>OespHWQ zLsZlC*-kZs@GCrHna;78+V0Jo1obJUaHCkH`F2QO{u5lau?K`N>d>vA4Kwq04t(jM z)rpbzAUt0P%v7k016$$=JeJ>_LoEu=HY)QmPj?T#o`A8s^I6k-@b-Tv!-f+N05YJY{0h@z3ZiNY<^B4mp$)Qx2)*6 zK(pyZ0P6x|FltGMYA$O-+SM_GREOvqPk&opOL#1WIlRRd?HLX&MsCqU!S38*bLpqVkbDyBYx?G)Ijr&EZM`Ryh zzTh+`p6T&`9D?KX2yll!LaV)@#tSm+WPn)gx| z|16iqS@4`GGl&y;j-UrUhT0@uHOjK~h_7UDEK&1f8%&uIHs`h-Ee>BKWYIviHHty@ zya#t(5Ci9K!jvfL)FwqWy~{bCX#G;%KF}_40=<@F_08;PIaYRY&Px)c53PY@Oh(On9_18+a_TVcXo=r>@X?hNX30?qRXLZuT6iInn6tARc z`=p$$HWsTQ1McuMuV&iMFR?2sgA21_!`>ak^R3n~w;RPtY>GJ`iYA?n=+Zng)(0+HmtWav^NLa6&k!Yzs7Ert>S;Uza{T- zZaZ-wruWgip`oQ|@qr!_{nRAai61C3ogp}rJQ%-`DlmUHJ4n5hQi6QW$MyoC=7C`n z5I1g5B)9C+bPRQ66N`pPu-uxH^(xK9snaFPd9PtjO>Zu-z$P0>$Xjt{=*wfRWC(@4 z3&*9+TD_{Zp?1kcg6O9QptS5SF{^uyw1X9FuLCB?;yrSXZU_i}t$(55qKd#Ah~-K- z>e#4U9d>28iLh-Z8_T}{l!jVLPV)P{|0-$kKFJ_x z#01vkK@xwR==}B%np;k?X)k%)94amPx=K>ia(4Wfh8-d1vFwk}^W5F7Fe4%HL;WW$ z$^uMOvtVA;C(kW!i_)-+5=Zt?-q)C83#7QQ1v4ey+RqXsq|BL^adF7mt8ty4$wm;= zn>ver1U~J*T)di)VDYq0^?TOh+-!m&+?}oq!8SO(uTZDS4{UjVLC$fOtcvAY;@IWD z&CG}zXowrIMA8t|N_XVajAfmHYsqL*c51{d*KWo2=-+=uTOumfI;2jeAwF0s@N81S zgmy8QjH_%*1cqprp{8+;tuvRgImPpE_fg!z`E5*`Zrv}V=p@t2w5hpm`I<#*t+IKI zQTwx4`1n;wb9+pT=a}9!U%zeK1f%vkjxT3V$uOl4Fs(IR)T}k?gWSs$={s93i)ja0 z#3&E?mFk5`ga~R<#B8|Rj6n^0ajY8Vt+MU6UBmL7239x8WURJ<9zzK3I2FT z(birU$5HV4^yrz`tks}D`j~Pt2ks$IcJ?s1WW-})f@P6#Y$`sYn1&c$Ob-%hfND=c z7TBD0ktGmpCw7hd!VMF+Q)JPR`=*YRW@YaCWL5yr8rq2g^?;Zjt3r6?&Rx9$bqNFK z@NQVfFkU`RlR>4UcL>5aA6|eOcUOfuSm&6(Vs~b|SuwU=xvFIaW+YrTc?ACs*oWFxcd97HoTx3w=I;2mv&C$atj)sb{Ph=w ziW8p%Qf`Z1Q<}mW(M220jddMknJ|y>VQ(1jmZcP1^92b<2E-c>jb;PsaQYtt&11k= z)-)C7B&!{!*BK}|bmz=nWgEPGEW&DS9Jz>fz@c%v_!JlPIvEVa#ARR z%PS?K6?P&XRV@cz_F1yG5th#>=f$p*KM3!QqVA!?FLoo5+ms5Em^hk%F+aO-1|aEji`^B1(WbQ$gFXJc|2YU((8R(A?D^T%-YZgwt1k@ zxviGw0=>Nn%+da*nlB{CFmjy-v!~((ANLJH)sznw&1RBhON$3P@{hrg`VA2Th z-r;Et?jrwdu`qxXhgsnJI$HTEIb4gzi3)In)nfNC}M z+m>Vjr9ajVg?vz7GGBjLX=o|eR}*6luXodoEMrIO)1Jb&()feGpvoq_jq}W>_q962`h~N zf@q*kEevhcY+ZdDpc1h|{Z1Xvv*bxM;Z91CCv?D!zfXUsp<3 zl9nZy)>CL%u!*nP>``%pL!SIU?7at6Q%lz{d{PJjLI{KsFkt9KN~qF=Kmvp+ND&Z} zCS9c20Ivx|2-Q%fDZL{iqJoN2r8g-mHb6kYhKP!a_(i?}hX~0xjT&I4Q+NS%nfN(viqO1a@3a2pG`7UXazE znQk_D@DAQw3v;mLOjbPN+FPo+95 z*{|-ZmU!OFXc*t)6tX0TB*seSIO(tYI{`|uqj7frf=}?QkRku`%s{JhzxaMKKsE)rbZn!?0aTxdo{v% zVpPYbb5!;XcO5S9s!ilx4x?3L=UPpv4unR;RcmCVv*nmvI$vhEUHN_t(c9Gl zF>&OtRm8Zwiw=T5syufoCGZ7F{e{Fn@zA_8Yy)Q-;Ah#FdDjN*Zo`-0pM4MS%P8+= zMHbTorpPyp=QS9SDEHr>;ZS%H_|Yuz(SzFi2kkW}+Ga}JLe5I68?TurCP@BMea$!Y z$@3?&=OZ_|w>@6a+WQ4i?tA|sW%td2(3VZl%vW!)|2B0F2rG3ClseAARB^>$dX6`_ zyDj~5`AX~O)K@WD9pct!8y{D2sdt*TB&wmMz5tCbQHP{nkY<|+b8A{-y#dVSim{z; z`IMJ;RUA)set^%?Gnok7QVyRh3ZttBcc&yb?Wv`nJs3A?)Y8a zWo_P1tj+l3AlKxHx$k0C+7pqN_3Ge<@jUJ!-dzg=YlFntm-{8Bm)S*GrNmbwp1YJ1 z6K)0Y-ruH;-mDl`;_3rgo_{<@``4b4jRG9;$fgmdk82 z?{=i+e{JejvKf zD1OztN}7Vt((Y;4J+v&K`AzynjfkP86nm|D1$V!#_TybM|Fb5Zl^AavlDBUv5ulo0 zcap$7H}!22bj)>)4>>R<)>Z1g;%t17?G83Pp(W9(a8$Y*WKB(#XQ`ufH#9^`i} z*$_GU8{EBnvju!FDg?Cij`wsVB9zxAJS#k+(1^=f13U*e{_fFm^LZLm1H#&X@l(w1 zQ?Z^IW8bao$$4`igDv(_QeT+CohsHOmzk@9!eY*2Gikj>l{c$yEs0}hX{N9~uXw9* zk5MlEJyypGxVnA@^ycoL3OkUIRGV5HU7Z2y^&hSVJO`t=ONfme`~nEl9&HMMQZ4wMMd3^K;L{FjE0h-V51nOuI+R-t)U_CYIkueE+kq^Ec-C1z@^M zBlR8Zbf3T-A1)5Z!~str-1nJHxkh|isrez@=6o}d-dB^c8V$J&n_et%(aj( zv(H$H35gN;W|33t6C5`#Zl2ik6TFBKdP>;AXHakzU+hr;@0TE!k8Tu?5b`=|11Z3R z0>06}BWmg-uzU<9GmGYY%q1X#_>2Be3&Usr*JmK}jX}|$BAMNO6)!0-US%Y9d&~4S zDJhFI_I~>A;=Sh2weNyX1nkHw znEHPhk>B0dD|qtnYRu1ROuImvK)~H!SRfhKmcIa>edgXt0ndo05))iWV_T*1o_=F3 zW1C#l`ulG@`&myY-l_irbbCm?R6O?7Rk0JX`_4ASw5<;1arOZRq&E-!0(rORC6hq? z#ai|qH#OxhAGZ=^3O)Fm#|wOs8|_SC$NtqD_Lfa|rUWGS{=>~uV87Vad>V0Kg%JlJXB3U z{j4^q>v<*!x{ z?YhQ1&*T?})Vwx7!R!2gyXnR#Hz${YRBV|HdW$ z#V-DPe@1^S6GjQXcz2soP8tvExC@F zUJ%-8^OH71Fe~?Rkd2TE)v9xfdi2g?=_b3-xAwazTNTi<)Nfg4ynuHp%lfLQvkAV# z8Fity2A?T5G;0c~x|lJ!O}=TL6k2KCBc`G5YVW)9xQXp9LhUcvx0uf@=A08_9%OO( zVK>LYJ{7ixfVriqSmiaLsy-E?ku%n?-7{MbFj4SF7_u%~_EI8g5`Df(Pv#3?a~k1M ziR8b3;$77h!F27&-O?XN1CjZr+iR*#8}b&zTp}zI=2Ly+Ws0-d5rb#oW<}}p<&0+i zvB(fqPt??LZ95wagSXh{<=kE$$30wyi-rPY+z0C}mYeai3)_kdG>_lgcIXQr2dUsI zWVIZ*xBG%io|J0o%4~?$Ro8;G_bL?{5mR1QIWLa?H1*dv@d9aV%Nr`& zaDbxoZYC4l#$9*A1^cJsa)8vbw0@n2K3+(W$pA8A*L6n`J1Y z?pUv>W$C32(d}K=%3pm#?JyIFjD@im_YQ{ONJn-lyR2v05kR-WCPiMJi5Kds!^+RH zrAOZxnn}3hU7X#ac_2q@vfk?WmBV7h3+V@v<3#FpeEg5aB^3H-HaTtB`tvRfwd=35 zZ#{US4TjND42WMdiWWV12aye4_Ac%S4~TIQ>#+du4=VkoCAia6Ls2E6!Kyy*G=HsI z)dY!grFhO2(XGmZ@I^qPoU`xTichM(qv`Q<`LPkAQ#pH7L3~NN>kFVM+_2*d;PI>S zsEsS&?(|`+UqW$eeY-M^i5H77hkN3s?hCbZUU0EZZZ_VJ@yd!BNi>SIy#%Ps2*1QY z<};wtN~HsjrBPhIRsr5}xvAl1L7At+MY#mg{90#Rg|}fmc1)5XvMh4N%TEi|`8b)r zDdRiNds3P9{m7s&Yp?`i`B`0WT0Zuv))4M=-T086AchO zD1VFo*|Z#>3E1jj4!yLzqk7AQtcDyfP7}ywlbg@Uzb@`nC_8G5AG4Gkj2^wx=6ip- z@xY3+#=63mDE{Od9REH6JZdU5#h>{o(d?B`*^y%AnGt@ji;Z<_&buQNwzYguAen|p ztZjCls{bl>PXB2&_TOW#zpv{4sT{pF>$~nZ4!9jG9_@72Of=#4omIdZmCzeQ_*2CG z?~RgSbZ(Dc=sm&Qn!4@lY4l(yE5JOB;rrHV5Wp>}ykcPE{u&iRO=a#!CAeL{&sgJr zJBeOj)cba802V+d%&*n$Gy9(yki|OV(Nm6%*z%O<_v}HetP<0xLdFW7nkx#zd(`$0 z#X^#~bNerO68(l+7}p!s=nI~G1>88+widvqzM2R0khiFef}>zB^187ldEuO1dmWFC z3vq2VjGvxPv44r0X7FgS7lx8pAwmYo#OkNIa4qH2Mi0E$O$rGFbhNS&MPA1`Qho@? z4zs+7lsS~a+3k0^f<&lh^SN6r8W(SL_cS;a8x14%pdczntZF2UW5)DLV%&4k%IV|W z`MO!9=4$t+w}_{?4>;jUQS-v6Ub-lxr#RM7493GVfVew-F_fVNjopF9Nn8#c2@}nd zp}YogN5}o`y?qEhY&b>pOLC{QtmQwkpl>^uY1Z~s#q)8Q7!?w986nvb$%bCN=~5Os zD*xt|Z>21rs&{i87tP+;I@ygJf`XuIP(hY`7=$AQs?AHiT;Q;O5DiW6b3^w;&C~`H z@`;kCj_vAT>lw#`SZckZ-*dr4*y<<~;=EPh9Z&cPW9J&Qw6#?br08KsH`!de&k=L( zye)U2lg^>!i@b2pT+}WN$Nfd^9+?D94p$Z=D8<5%6NT<4Y7`gD5oEkY_P-WSmZ-xAH75 z`lSI{T;Rj6)&+dPX8*nN^%^fDWk4G#PV-eW=WOROv^j2HAA0Iwvb_*#4W)INT zr4UWifv6t*2!aSI0>H|w!eNHl`)y^qfKTw*U=5+7F>y(%1?EYbs4zuH1H*=Pl5yRd z#8(N}=C^R>C~X7MB;0AQ5bJo1i%N0obZ`e$(yS zSqnTuH4H7w&Rpf0j(4nTEN6A4lXu_KYsWpYGT=_a--AgZ=y=32>E}tj+Q?S=F83_b zc5!_LZPnoLUB{XT?_+6+u7+-MTc7S`hZNSFbdj6c&E90+UdI>wA3gA{pn<9sx z9vj{DUw!*Osl-;2EC5xxzv=LJ_3{@W<4KxWAnG>%w};Ft8|9U38mNGsn;=%?)3j-@ zaL%-~wEFqaS#O!)G&H%E8sg=A=g|Lu{X-8}8I$o?P1Tu*UYF37>kBjzB=f4C z!szRuQ;FeGdrD>>ZslKGzhct$e?(+%+O4?P+?3F1z}&9kVehr{BT_FdALKP}4-K08 z@uRUV2IZL5AD1|@w_!K-x{_9zu%WnWc`3HXTC<$yJt!oEpUYM*3jW23kKkL6NzB@b zmJi@NXe@zSH5P|!BXzEepILu{??}bn!AZrUCpK`V7d@~T`!{X6hmB0qMBps7ak|Y< zO-S&uV5bkwBB(st!eo=M?ZItX5Dn>SJ|6^eI3cCS^t#a$MiZo}fdWifby*9MiI?5x zsGxgss4@Z@6tzy!&mxp92HX3OQ}x29+u~~LYs8CRgP8lc4QAyIcf9tyj}%cl8PU7< z>lkJnf+OnTjuNw}dwUx~H34&ieAiYrl_OMIXJq<$n(6$#!oohDG`Df2LCosC@oMHy z_&75nrPQ>&S;|UCCmAyR=AqeLnOy_dvZYxJxG`9U+$))DL`a3SfY)>a9c(ZxC~Q}( zIVcFV9|#@vCB_Zl#A zsjw3Ua!OlU3pnjELjdwo^`Xj}4pPNkC_uRvSR5NTpy_YUD+LZoh+#}``vMewZCs3| z5JA$=WThmwtpXh8b+VboT+2_5&yobZY*GYit8FO;R=H0lO>#@8`ohu00BjT_&t9k_ zQ*9xKa-FBf_-q&jxr@qx#Ix=00>miDRiN!|9HaZn`q*Wx?mqVUwC4GlV}mlw+^wJx z3T!`3I=^^G+g_hKz$v4%m{(S*tGJCWhTD#*+^M6RcIFWo*PrafNHl~}MYL$FIMAbZ zUrrE+ZUuqLdyHT|vA}szPy&pWYA^^*RcR~9gD=P3B%!FwRD;_}Yq`h=9)~^|?X2FI zr~tDwC_E#cgZ%EI{c7IMXY4GrHQO1>T4Hi;mLN4a!Y~*k7wsUZ(4%;tpcZM89`C1@B zZJ0pJ09lK6FRUk=sh^&R9z$94OVU`7_zYt=&1g9);7eh+7c!cQqN$@eTv4p2-BTzBK|(-Go2j(1<34lCRAMkn`>(^$@_iWi zx1>%1O|^0JGB>&gsA{~6F0No~=QU9tCDAriv_gxxO6?hIjFm}~<{(=KPodC7Uy8Di`7gt%aa)Uy!)57rk1>qOc8c#|W(v4tt>yp;53R z-TCuiM;LT6TTHaWNhQFL=Fa?-_BE)r3XFFQ8@y}LQ{DYhWFes^SXYtpc@%e4=-@Q; ztph6~3lwL}7DJ1ZV@seBrPzi9D-m4~PH}qv>;Mf4M6Q>YdinIewCGgz=z%%MHoyya zvd{%JlPJcuv1Bh$itDLw!?)plxPwXI92*>>zEil;SfHaAZ9$^;hj(q%?l~mf#4TSi;cCF8OHQdx0iHYYGvpW99{;{<*cJYBRPi`f_3UDt$mgf zbira0W97a9hk70|)ba~(D@Ua6;6Wel{NSJuQm)PU$VH&hY0Ah0swEDH7AM1J&=6WH zCwoy*s|X1mFM&fW79K4IAIrqvV{R3IGa%U@zcVX&xp0M%6m}2_mk#4+yYL7emq~-Z zk-FfTe+DIkj$sWalyVYJlP$E4)h|Qe#9dLd-cp5OG3FENsICn8a6_yjP?Jo`ZrpO4 z)!EnmGnPzEjTu+j(SFFSIZ=pDO7`K3P_=hHez_tX9M730Wbxo3H$vbLTfz-iib%(ye_p&OLA`jSEg)%)PG#tWup@p(Rzj> zWyXH$s&7`k?K)?PxbV%I4~)&!R)`4rz3Q}Nb-jO*+K64xJVqwjJ4)v8lE>IbYpE8D zhYn|`+(nsUNDj7jV8z;)0=Zix--Oc2neZ*C5HZk>OC1z8S+BI_s04T3(?zt>)N(Ac z?4`HneI?nHtx&?A*h6w7c9Z~ikxGn__fed#HEWiI*PaY57HPJAU2Z1H1TK#I@S-eQ zGjvcXU`bj2^6 zjnqPk6F2ADdbKGApH9qwC2up1w7IN6qg4x?EtGH#h@CtzZSk_QkWJ)4I;G}~uY@q4 zgun{x?jl~YQr+~2cFPcB#HTZ154tPccFFrFg%WT8p%4zZJ%^ZvJ^mHG;9l47@WDB6 z-GZJLEUd02U=(AF&qsT|1Z#nf2;+rKG9g4bm5hUA4^@tYiL1P=e9rCG8IzG)N<6f) z-!O*9G!S}>;AR~q?ixCQ&3_`RMv1^ z1_lqKdxS|HaX;%0xr^#2GBBzP8mzN3t~oZf^{7cqt8MV`XNx>?wwt+EQbdUzcB$o| z=K6q-P1Qjer&1Gh3FNGGdL66jz*%>j>kx1eu-a~8 zWqMjzl)XB|d^Qo|CsT+FvgsXCaY>P+M%cQI6eW(Z$ek^ev~5pnZK|%a<{M37-7Ed! z+f>%)XO7V9`ffz#QzeceKNIT$DG2!}!AJ`%0qW6#$}-3XL5Bzz9$6LFxj3Y8gA)aU zpe>dpkp!|%^{_BS$AD4+Bl_Sh$^bX-4Lurc%tuX_uw78*;^|6=LtAtP`4!yvTVRtK7 zB@0XZF)u!wTWMSpI9|gYsD&WUR9o5J@4Ut;2sf^^Ou?H3r-i{-?SNDx6SXEz78D`X zr&l-!b;w{9fgMrP;m6>nX+=Y!$6D*Vn#;Lt1xMA0Vqv=^@1m5Awa zNmY&p7t93}O7<0)Wr>6fj zK?V}>hkc|)DnYewj%=$ky1ASd^-d(3#$Vrgu>w@;WL?swj~XVrQ{h_ z3hyN^dgWQCZW#5@u05@}<{Mq4YTmr@nA`U9)WfPWcou?8f{Z+Poe=WMe<{U7>f}+1QVeZYr7ACTts3=g0I>|0Jw8s z0Pg2dtV6#FG_$4+Z47O2rq`rxtCYP*KJVKJ8R)W z*7{kROPEm2fbx(<__q&gRufdYlYHNMObezfsrpJyF%k*A zoWx<7YxV@y@;xb?r`~)QsGdoNd>5$1Qsm2CE+=E%p*nWg$0V%o;B&=MqGMBp=WDd0 zXZR|wQ=KVpp6+H?TQa{_VVJglI6z1R>d~hqRt(|57y^G9M_5QTmcJkdcS9PQSld+s zf!eB%eDjT=2n~Y=U~K!IxNN*2B0UtQE~HsMr#->%mceGuTOFaomRPuNGvkaz@2$6O zT1!u06>zUa(V(R&Hb9|;&_ zsiX06eF>(NB%e&RsMlR0`nzV5Dej+*w%V97WCzr+M+kzSq1|uwp0ZVPckS;yovla@ z?h*)IOcoaZ_zYSuN)I4#_kdWvd8M|>2NS4+Vo6ROmO4u*K6snB5ag|A*u@FsPBXuN zSmGmx?#pDNQ0OM`4ZX1<68t2XnE|mIicN|ZF13A%*3Xb7h0XF_yy0Kuar7{u?MxS| zhi@B@9gSb>$r1D}@8U?WRNZred#DvHp2PjOVZdGBSG_l|RRWqPMzw?wI%S;9Gee(X zTgEhW@+YBpiKqbX)mk`K%s%mFay)oc8$C=Up8mEIY2m~RN&`h$xNc~`?Z7uAdc`7T z)J#K!aB7+nd+&g`A2Yy+i0Sa<+)}TW3WT~=_1Z{1SrB;WPw88{?%QeLUzr%}?It)E zs&8-8`WD=!*3AxgBcqgGCi?1zo6bq;PH+x`A=|;_;l5{=q;QOJZ>S@QCkY2$FIa8M z0*G{jOF$N4N2D~|GAA61HF7M3CBean)mIf6bH&rWq!jgPy>c8Q&aVcNK9Eta?C^j}*h zT4_yxK=fB7G~FT_jNhgUP4F&Yp*XNnWW}6p1|GS8*gClb^#%AgPpF!t+%y?CWjgn| z-HSLbf%X=!I<2F7!_2g4pZM^=-o36obDADAVz)glZ6zQys3SMvF5fS{0{pmscXpysY+9lA#&4X+)N_&UIQ>TdBkn~4KA!ve@z;b zWMPh1>itytl+cMhXu6sYh#Cuu7MJme7A3{)zda?2^5s1TTBoep2S5F+kz0>)BSe_43aGTv}h22{=h)*&<$1x{xvA6$|E2rk&Qz*zPG*B)+>8fr6dAc#X9?2PwfKdU)I`KA+{L zr}Ch|5;y93=T_6$Rt8#ge>_5{E6(RTDWYmZ>9_=pyc=|rPshEZYvsJtwv@dB`L|Pw ztYXfPE`vET)?+y6je(4EsU){s#*oj(-0!FNpv^=NgTWShZ0P{P*08KJJNR|aa&`i@ zsdpVeYEK1X#+S3sx0>W;5MPqX#jBJPhZ0QU z2s3scLma!Xr}#P!7xqwHz`7MuNAlcm%MZ6g0`1g@8p9rL#ID z(F&%e(V?6;%`QH25?omwCE&CRwrJBX@8iMaHdj;*WF66etH~HxxtB(GS9I7-;k)<( z0Wd5Xh)~P@BTlWR6ex09RlB32O_GP=0UAgU^puGfk#eI~0xCyBQlNe`e+w$k9O7$# zv~O2Ndgp8@)}1BB#uD^+@R(cSHvb&KET*IUUqwxM=iX+4P@Q9>i$}AS`AcsIiG~3^ z6uKaQUemjqpi3bTe9{bJJfbmD?Y?v9w6N%GHNl+X=8P@U*64P~(efjWS>Dbi8HFo{ zl4H_dti>4us@-BTED)5z8@G4p<9@U@K}O}E>9FW$zme|ZQ zzh=3{S4;-nx_Jua@NguA+4=8dOJ>$>ho; z!G!Nt1}8iL@fBY!bYbvb1G1^4Lp;tlAHtyE)L@fAMGu^Rt^o*|DP(=>i88BbD`)x9 z-`Yeo1!^T5Xfhy2&;8nu++WSTzZ+3lhvP z9O*c2ck=|RPGDm({^ry09X;_2uJgCqGkF11iD+<&uON>!x?i#|b~wG_?$d&yBX!kv z4qzdk&{lwt)SAo2JazQ11LZDMe_7a!scJ$DW>0_zbG0OkmT(&lvPo!GN*K>PW5LZ& z*fW?$*G=v7NU+krs>we0CLmk_*ESN1w%FIsMFC9RL|ii{L7|REL{akPU}>#QZAch* zJbt)CG?BymK!iA}s+>|x7EbXl#sG)Cz?J6v0s(hv4g3`BJ3^837;Z{V!2oRbO&oUIfcZiFml`Ujq0zhF&8_W?#1$c@R+-=UXHeg+G zP5k2B;jneK^b6J8Nhl2JY!50wtXskc<*WIe;+~uzlE@|5hg4q7*p*aT=pht3X)9~x zb|JcFuoXg?r97d(jF|>_99d6$4P7S-TIL8AKPSplgDwu8B83y00QLSXmy~dUXp?XY znCKT^dnc3F&wf`VzfEiUuE9h_3R6?1+x4WL*oOnA6a~%dI=LJ?q|=rC(rW<$Sag|m z44k=G@JxOXU!5ZzCjv66;t5tw>!H24MO`_z!!CE)&0JMUP`cxchg0zppQ=Xe<+Z}^!7UD#$sckkx#)5@+ zEed%dn)tIrs%oOQj=JwARGZ@33U?N=FYSFu7gn%~IFEaICqC>8InUa;^-edgLticJhN0g{C(@f&w7EQFD*%>WS z8|{5QfivbF{`p-MYYA#sI(MRruzsrr~Gb{d`X;;|`Q%<`i~im_yiCW9Skjgiqi^q_c%r@Q7{f)i#%vw?U778vYH3MR{w ze5EY{;EzN2*LJ?&So+mm^3CMMG?z>RO|1}>cJz>qkFZ=p>jEr8c+K+mxQGB>CpT(K zlAZLKv!+(BBvAWr)%F+_feELu?GOg=%3Tdcp>#@vqBC3#ydt2e{?2q@z&R#&E6_Ud ze}U5fcn`uv!NEA+MYyf{q>}mV6D_QUQU}J1dY&4>2^?)F)`mh2X+>wx7C!p|xIqgA zafpZFVB>mp_=jiiuanh$G@N*(LbOkxK0Ln}{%4WsWbE8wisClW4`xai!f=)>+5!TE zIAz5iQesaq372?~JWwNT2Sca6M5-DFcUHn`JFeN-gW-Y+XP7>V;Lsv5;R#Ty_dub0 zX$U&sDK-B>2Cb8zJO(5M#w#Pk?%HzO%A}=LCc;Vz{wM1Be^>GRH}w2sRerQ^+-vEi zC;>Ye)wM1W5I2wCn40?4xu6~)tDTIaI_Uw~z-Ku%8nBVB_+W@N9B`I@A$9?bO{Jhl zjcLK(jS1Ex(_CUuQW^>tZmnwr((OwL`~s{&$)EwCacJFg5X!%3!UE7yrZF7QyRV?c zzIO1jbjP|OD>^S*Tg+A5E?7~2sTB75-9zAG9rtr(ILDK~CG4s06Ly;4mqrp4Mm-8J zq%77B`wzVPj{;wsLAwieaM1Rf{qJ97oBKk%orZSdm6OCyUZ5-69tLL~Va|&&zhxw_ z654Kaaaa)E$S-9TQ55rtJXNomRp&Rp+>Su(hY}1Z5*P|h3e3|_h2)&E4xa0mdf8nr zV=VY_?ht+xwM8|j)Mjx-a*3n=1PZ5dRRL&LN}1^5@v(1%q0&wipD+}J#;cob&+3sL zU>U$Hkra8txQGoHLJt)5Dp4x7-~)0sndY11!8S*^Y2baq{nJqk_7M!j1g?Fv3b@)%*7(3o8%H1UT2p>&##@zn zmzvDbI{Uun-E!alp09Fz$7z|!V*eNYKrmMq3j4+?*Hf1$#o;$)!R5I1S8YCsl0h+C zJKY=Aa(MbaSqNOK;-->cA~CuRUQai(LtQKEDSma5kbky!OQ zf6)KkyMGSo)V=Yop}mXte_mFUteyIia_O`9SFR6vB(W30k=Ct>(-s#wEX5L6AGdPL z55ve%yIMeBm-npr==APDDslmS^u)5iTVqvrEAW)W-RCVy=QLS9R^2C%;lTE0Gvm*M z@ziZyBc>`#OAD;n3Z)M2D?X5q<@VMBV$dK4WUMMit%h*&wjscOQLsx@CbB6FAyrZY zZ@kOC5G7%At2QNbi0<731OlyM{)x)ZJ_IEoGk3Ol%|{x9}+zDaUn5i+5*i3-=4tI&2LD zlg^^W@amvk&^s_DZGuJ)dIimF*7&`G$|Vj~a; z%n|`zJ|e?-2A7ie8dYv$VU=zLYjS9))6dZ6dtsj9^3c;k5&9q9=6*PcSWLoJj_kuO z9SsY@r}595!-iaD}D0U)xdh=4>2g$^gM*a zVY24Gcva$a5ajAV8wyO8M7|nS_3E{*F+4m(A0&8CpQ|ZD5p&Y%nR-{*dYJiPH*1Z}N0YC!lZAqyqkP1w7uQ3*S4yI{mHPwdi!* zO|x`C9_GM*b4&Wu5KS9A!0wWy4tSr-y{~>bAaL^Dxr=+eFApC0>*F;E3V4WPX7q=6 z-)gmc+&R(4U%{x7PF1qxJ_;C7k4Jm$TcBS9OxZl3Jp(5eO*&*`IFkg7DlhRDf6FWu z=JM=^ZG#-#d;$< z>$^3lr<#xdXF(d5b*gj~lZpIMPxveCm%t$5f`scax%Vfo)EsnpbgpGj#O1dKmjC)V zE=%ABV0*=XJUbF14_QuZw|i*Iym8iN>#%2xkAXG0bqEAK-X2kf({sX|+jZ0HCqgnQ z85+Ldvi+KSOX3;79}e3rNU|*RqC!q!zxN)Mdszb~C8CkhG!JVkQLr5zv@7wAkA#UY z=(p6%`!6as!ry=QJo%SI`YSEbJ!8VQM>Ozc1Aos?ZXPGI1%Ej19SCte2ok669qHh6 z>5l=y%v(q{!p!OHh{0Z3o4M-L#T_+&48o8pVmflim^|x`&VIiF#Ip4_=|mK7C59x6 zYjXBvIgLCI3G!Qp>ILslgk!3N*^l|UJMA+53}60Dim9^;QatpNX-_h&S3V{77r7&z zxG&5;c+`{2)H`l!a!8*m ze@69^1vVz1{M9e(*V$3=4(``!C0S_Px}+{x&(qVHtp&B{f)>7D6O$Npv9Mty1~Wt^ zj&oPr0xH`3j19GeHSIZvM8TzKs6U@q3w@4(^6BFrABw$!5VE4nVC# z4=9XJ_{7?Y3!CK(IhVTB-qIyK&E4^O;i4agJFbz`9RaGXo zoo7Yo`o)Kk_-J~I--qpft)?@p;e`C_$`HI-$X2-M+aQde}1BJ$)R}Mpt*C1Hn0xmO(S1$ho)OZ z7NPKld^5YjhUYeLWJ^fBg^1y}Gku9E3I1iKh-wYwFIa_1Yo+J+4tYIQ3CsE49nk|% zlOOeUK$&W$7OdAc^fNz42=l$Z4S-_VdRfR&_ac^{FM#=xk9%(3ez=+SYVFF2vTL6e z9xwgdSOz~^em)et&U9bq8QqVdRfq1fz=*#E zrHeQyH)Cnji`@y2Fdgu{eDVPM6kp>uUx$%%MSBeYH$JLn2Ro&^_n-XQw2uBt8qPx|Yc8I$2{y^-z>kg)t6%ht*SO)4%BmVK3hGdPnHm5~8<16o-DXomjw z(>n`K8*7~j)NZb(_5dD)`5yTeb?Quy#YL8t3=2FVn_uPg^Jv_utzaa-Iyr8w;=}A! zc2ic~sFRD3lO|ze&eH-D1HlKLW( z6#(`L(0tnO6f7owb!CXlHW9;llw94rWgXob8a1uO7DO|^uTSKpYst7puSwREptH{- zBM9eJNcs#r2K2V|s}~w#t!-c=$!d%=!aQ~vtN}LRK~g;@fF21_jH18wQ!yl+pXnSs zY&Vl#xE)GcND z2*YOrhS!X~j$G>=XpiuLOP43_?>X@E8_CT?lliUC#DEWb_VrC|I^0>kd^7XX#<}zJ z2TpAJ7Kuj#huuDKo*;cSvf8)Su>^0Uy0B001~>8jfAV2(gK?gmXgw(R%2xZPkLS84 zg7j)a-tIY7{ouI6ljZ+$k;UT-p2xeH8y67}5C8@s%-u|=J%gVf>+6ht0oI>b1wR?y z@q|-v`ZW?1p1$+y%lV$H8HKgxVdV{9ig9?R^qzm@QN{uK(2$V5#}CSce9AzPE<#<$de z22AaH31j~Z*ua)=sIB(TfW5KY{=Kw+1}yzs=fBzc&wy>?`rc9h3|QZ{{ffZ9>9Ma+ z?c88u_df&ny)4MT0Spd6p|t=I_RoNI;yaL<9f+^k|GiIs7``6XU1avgzXR;IcmKJ^ ze#4M|2JAQVdu_e(6H*4ncffzEQP)oIB1L_~{KRjC|MvQuTdHGP|BB>8{!04(OfowV z%EP*=|9Yj1XuEgg3lO9>CaL@Q3vm4>@8GG{>xS~Grf`7TA%E=U_fh#lXs`Q|2K)&K z73Q9IId0~jcjl&d7?Ue}|9#u@Zs2aS5<X6>aRA=!Vji#2IJb;5 zY~5kApNF}h%nkYyjA$rMaJ?TK1DB6M7$OvV2Ou_TVsuT#`dTeW#dy9Rm!=rZ}e>t?y=d{u|k<3lG5Cj{3m;6ls=Ev;Ng>&1xMltz9 zj=VlpSn6`(E|xP(-SYuS!3Q57GV+S4MVt91fs!s7=i*xHP4=aw7+Uh#z_fLqR}tPl zLiswJI$tV9<*cc;Js2y}6F+p(;-($kQI$Np9Z(>(m3&-Ykt>^+9VqWPkw1g56k!j$g+NGiJ+)*ihOP*!x~vFW*b$VBgBFGsM~ zzI)Xhj|IXXaNN57^lY@)yNnPIL+9F&TS;%LeWBT~y1IqT=R($u2RCZN$0LmGO11+6 zxY28RLNiJGU0q+8CaXjjqPpwZCe@4pjlFjy7CGPgqLO{9`x|YsBkW^Zy{c#zF^Pdv z^@EsF+lL5qh#i;v=V1wDPF{>3uhi74F&p=W(hYw{&WBqI4nJDxv0bfcEeVa{7~T_! z1GJ8Oa2-DK!9MKx8?Vi?y-!{~hGWD}d9Lo@jj4GYxkh4>LGNmFxpUC(F)y6^)Xf4f z!y%nV^c3hw0Z!Cruk+cgfNClJ>YRK} zNdx@n8U$}Ti^EfcB~RvdP>c9T<*R_UgZo-+$ZlFdc^`X|_HCVqT+pm;(-uzA&O*!} zPyG@$_VnZspK|LZ~c)ha$o6ZoS9Funqy6G#@+wM6?+eiar=I zLSC)_uM><3rvaN}7~`^@#_*O(^LOlcU9HSkvlN!5$fB@E zR04$DUW%{!*dWY$w0?ZjgM)pP*DTq9ehxR}d+I5*g8!VD%(id`UF}oc426(E^~n?a zj@w1CB~9s#Y(b~Is?UA!e!ujN)#rIdD03j|=$;Kvue0&Xv!wbjz1!)2M9fuhO$$GiI!MRsh8q89QVhXbfLY}26gD{Ty<69gIe z^s)U`SO}1%v?QeaI?#!+-EX%)%Lf}FXfG(6pZ8eZWtnS!z^;>TGmw%~mA8Y}g_;r^ zF5XK`x)>Kc^j1}XYAfWrc(MNNFHVQw;=8gh-iSHBMZd9vfCDAyYcHX>^7zRyTi8N4 z3C4|uxg~QbwdUi{#;|djSpol++$qf`@t|^3Uf!dW6?1)igAd-*ehLG`yyg8pZ4DQf z_B%bAYS{i*>G@L|zxule$GR!U?;-Id23^DZ;*YLqX(&xD-vTr2a_ zeifBUyNU>9=jwlTznEp_{k}58+E<07tJ`-7ZlRPMJ)Crn-F3tsS zOx|%K)_`#>@&hsQF)swR@oBka+9}QPnhj4s5M&(g2? zfmhiSV)w_f8aJP{^H+5^`Z5|Guc{z;=Hdlw?fM(X?o7%k8ovfJje$=d#%2<3al|wz zIZt7ePsX5d6v`m-mBSF9jI7F-yu|Dthv?X&BF@G_np#izqPI2yZKbH^A_lx+OI)I? zjxiyP7iQhN8ua}y~8ocuU1(%@C;q_ zzRjtKTe4Mgo~bHR>hxS>xOG|wj^wQrS+ z|DpDE6peZnX9)2d*^q7ud9*o7r!AZTyFcFg%fk_AuB)FTidhk_j>u42?~f&D$=k$Z zxq(mbN%EggWs|77kylJfZBPUQVdyKp?wVM{Yl!0f@P5Li^$mfnF`}nap(**aNISBm zb^ro#3UGMG!kv`^YDydTnUm+xmL|l=dF|wSw|HLampy?Wyvk25a(QxQD;nG}Ayi&6 zP8mP1y^|YP8qGqq-&E{QDntNI9itVGCwa+2S~vbzcW(g|*Yfm>4z2@(%OHchJA^Q} z1PJaBB*EPwB)Hq)65QS0f@^ROBxrD#1Pgf_`JeOM|M}Lt-+Ncqx|hw`HPd_Vp5850 zzpk#Xs$g<|+ds-BK7!rt_eFf0!fzxzhpLAF0TKP7QH9BZMp(;}Foth_oqWW+6V9GH z+m-MKjY8i-avPbopf~T7&0}tmr;VCiHdF>30P%p^@AXu4lyw>Q+@6^){iex8AIfT> zVM_2Z2n}i=wtrd{>xWQV7Jzsn1_D5Pq^@b@=JIf85^mxFGAMB#^RgowQ=YC?W9?Tm zxgTYpMts@vZxTuMeWYy3g&h81a{Jx2>Uljxr_G^%#22K~qH&>o=bBY6rkPzfId5@Lf3160 z@l)&l|DptqPsrMTU?=$B90omMr@z3{@BV^JRBL;tK`Kshxf`5Nf5;!$3H~?iln*V= zC8KqWYlz$c(>mrG$KcDN&J^aqUZ%d0lqTgfUgnqEkQu471CN9`c>ZbYIlAJ32d4~gd@IO7Zh+EsE#=N$Dtyy@&?UKzy z+97k6u_fq+%S9757aUSC0dH-rSdYucsGO@HRXG%Yc#iey96zl%zAIRM!VC|e!Dn(W zfp_;+x>y)^rAqswi9+a5F(d9*PnVaER|LfCwAHCY?`*T>wt#{IE47tKZtD|&w7(b%3MiQ!QB=+y51PhH#_QF)@~=-1Pwez| zCr!FKvaDN9Qo^C}sPgUM_L#iAGz_|`db{(jQt2L=RnESq8ex-&OFMVOXVO=TpltUU z&Aj;-xzVY$dT+No&w}?jec@df5AQtIFTlZu$usbPz=0CaSn)Z$8yFouT|dQ1oZ|GG z%xk%?zX0zZ2bsLDj%dyIOeOL9Ww9hD2kq&VUHGo?W=)>E_#zjrEFPY& znTYdd!Nl3JdGCCpU*EXLzS9|Ei8Z_Hdyze@$-`5Tj0&m52px;o((c;EwH z;cYEV4VoWhx{?n1N*lUx?6L4v*-HuBRZo@J@a-dM3pv!{ALbHhh0Y$ympRPWz*(cyhM&b6RD8^`xO;rM{ppjoS&VJ(8&(`#+NBj>lbFrmA#Q-a1q8 z`1%WJb3LFSMFbxSf`@Z9=2!(%j^*qXgMh|ekUL;xaT zS%T7G9tI7VV%pR}A+1K#DIR@Xp_- z?0EQY@RL5h8&F6~jZmL8fnLVS5!-92Shj9lsFCOH?|+w5AG5y;`}77;6djBACy6Re z!SMbK$9t;Wm(~3d5?&hZ;j8FOzH8N|sw(@hepVUr8vhNgGT@HJcD4+hArqps??Y(kaLIIkkwgvz^D8r#2fYP`>2h>C2O+x;I*)z!GtGQ&P7rY z!~TpaA3t$WciuwfS|!zo3S34yL2rHDW2_~jb@dg8Bs{&W3ibUBv&`~nKwfOm+Y7&P zQ)}suz|&6yr=y4#mpLW796X0N)$dgZtoAP$aw$W8e1lW#H}}T<1puCoBKvp{9437u z5sUb-WBTKp$p`ZxWZfqxq}m^Oh(5BSPbrDb|DID{O^Frd!Eg8c^}op=7E%dBYb;(A zK}}$%^flU?b&bXwBNa1RYxuM+HvaaK>+LzPH#6GU9<|_xdG}0N1paQ9sY0p0SM%)^TrFiD~ zKb!1-pjCoG#d9veJJIp-I-3%Uca9Do>i*wIER;V!lTI{Nsnjyq3*2Kd-6uYsg)=~c zszv(vOI-Zyj((RIg|jG&ZGdgdqF_!VXDd+UjL5gnsuUkpcwip&o()Yh_ef`qj159( zf`ks+p18DSTw}%(+1g@aDy(7J*;~+t<_v3e0Nfmt8PzGE1X7SinKRkyr}*W(_6i>c zh!cI0bSjv1(LH+B8A>R~mNQ*mO2wR&8U#^F&$W+gR9%*+F3+)qf!fc6{KagX(bkb; zF=e>cNL_x^8-GWzsRC|3>JXvV=%77i(PxUGx{hdf0u;?)T>C*`3^sIhAbbRWV2^L? zB;`hPkxtqp6w*pQP z@QUzw6FWo&k>#ucO~`o{b;IP*GqH3kmRtEvC|9^27byh{%&x+8&k-2y1LeNEsJO^> zlwf#Z3Dk4^*Z*+O1d$Nb!XJ26oqv#Z4$<7%(8-@64De-b#pU~PKBJcKPJMIz0c46l zBi5x?U|fQ_Zq;`_7X|lNFSCSND!$AjIei=f7Xahu)GdA=qmN8p+9omw?)XM1y+#)t z^I^p9`qpOWwI@!Z<;sFD;VHV_ut+3IIPFx-OWMY%D@QW9OfMGHDG3w>qKcDiP)t&X z2ipRG;9@avZhUl4-D^B>7)80q52<|G=>Q66r^g3;-_z2=o>-zQ3`7zosl6I6_tO8w zCP^T4a%v)UOS|u{182o_Pph2oPy24JzeOXXMp&1k?#qxk{6S!3uZbslPrAO8*0ngK zNFp%kDk+=!VHL2P&BO%}^)jL@A2^dq3YgTmN_1ao`AP8MA+-7$`yG2?>Ngj&e7MUJ z(q-32jT1FfbOrc(Oh*nN8Gf50hde^K;LqFS+h4uJ)2E&HM|8DvP+m`c^Bk&qu!%_@ z&@3)CL#R&{7Ahg|+gPcDQPsg1r(EX*1&W{8_3uhVTATc&6hNOzrpRuMV;n7OVws$D zXyEpno|i(Qsqbok0a!d~C8k#o`}kKcnhXISUJa_2#V=4H^2VxO^}n;$lC+tMZ`1Y> zsJc5WAVXXzNbr|GcNN%6libxwW=7bL=(oM)LT8xf>Hi-&xE!_Q+p*N`W%qdQgEuBY z|9g(Hvm$2VOsn1x!VgGeDV{Dt$>{(f^Z6MOyW!wVbUio}&POh-svm~F9_O3=R}D<@ z+bect>Qk0gj2U=>zjQvyI4zpF$$U7)$)20mF1aF)`vAQ^M%RAsxrvQA~^?uG1%zJ*IIlr7OIeag#89 zMgiAPHcLjYO{ak=CQcmdUv|~Bsi-)Jn?s^(m29yJKmJ|^n>r8xTsNEPM|z=A>opR} zv+EuJcM^Un}2?Sd3+#7PGc1B5NpUc(AD-<2+sZWhzMg^$>Jhs+5=5$Bs=| zkQ3Gpu_pbT94hsSpJ$)S^@6R^i!Y23=tI{5`AUpOC&rKgkBrEHV#3tX1nUMN)0(2~ zL&FYtGEpJh4S+!ru%EM2Sz zV@teGQQ^sXXeBf;>Nis%sAS<3YN?acc(p?>Ry%bSk&GUwl7es>mXNH1gg_M7Za7yS zzW}8+DB}lx_2-Tq@4?(-nu-0iDTb8vwC!PP!1D2AYjRE$eGI<}PPgh)tZc^vaiJ## zW>$Q7DUF4%I^1 zILewytF(L=rD`hc9Aenu*pVB8T({3f6X>ziWE{iP!TlW1L5M-jFDZ>Ie3jTAqvmL! zc;BC>%^&1IL>%3m8wCBmJtg8$mzsT#INr1$4lx&(lUAOrIqGBLxS@2bzb#lC#;~}i2!d7 zMmM8E;PBs|9~WgXO6}psp%+cle>bfT(qIM<#=)XA* z!p=${xs>+^*;PW`3=I1^L0ASyoxW-F&97lU<|vl#Sv0vik|pXJd|EMfCtCABLx_4% zvs6PrZv=NFgFK$Q_r`SLcUrUpv)LjfL9ZZ2gx77r4*3Kqkr>6jl+Y%Z=z!70QQh~O1;DH4sDK!-9=PM5>n|e>Lgxo z1fh+C{IE^8A4y-Zko1x1$^oHHXUg7X312nTBQ|;4~p-hn29@qE6p2gy_ZR!wz8%0~44B3?0Rqfhfb#SA?@2 zJ!*f#sTj0}`G|M>K(RnwHln01>eM{v;{$Eq-s<|}X=idMm(d#|*IxkQwE{Whd2bRO zRbWwS`p5%svKCK>V95kGA+&MLmPuR7#2hdpOS#5W#F6 zl5;KFS1;zwd=4M81NWOq6#O+VzZOQZ1Okr15DAPf<=js5Z}Sq3!3uAohq|+4MNvoI4F*9#$g%c_jzP7 z0WHXI6ik+Ls~wuLbtc;cn+Udt3BpF2K&Bi`XvCpE?~GEWjULi$J|y2xLSo3&RV44* z-0OiL#(A8oxUh0+ZLjjawEOjdP1y@gmOur!wCY>da2%@o(&7YVI6mYTv)T`s@bfEH ze8oSxP%O@$CZ==BTL9Er>uD^+ts)KPmqEEMHT1D*eunF&(9mZN27BXgixi6u#pR1tPF;>UKU1n= zmOI8}B^m^C+*Tie+=SpgCdt{@hvagUZ7bE6%3`;^zxQEFM5h<{s`|{=<2T)qvd`EU zRh(=piG4@MU#;wt-``&`l>L}Do%j0z-vkIsGLWEA7En0_MY!c6%=^Dltf0v5a&VZix~?J!IumZZUF z=Ajl-JZ@%+R)C;TP(Hcg)XUyKOLL7FsUV|Is)NDjP1`J1z1E}St=UvX0#shs<(soH z9V)cpf=Vvvk;I6sTw2BQ!z=?is1cK581!r=zUpW3i8q1Cp5<{=bSy58KaO0RQ4zVE zc*%*1^a}B@?Wj3nUo8&53Vx6YTM+t0tik4GC2qCGWA6!#w3&^&X-Yif!^z=@dzmx5 zTD`QMaZzs$B7!&Yd9z^HJP9HyhsvjCOn}@jLxeVIfR0@M_jxqarA|p4e`d^x4DoA% z?i{3}L{SwwFCunFT6n()SI9}{nSmneKw0gYkJ&IT6f4Y{Mgh1Nz{TPSD^7$uiVw)Y zZD%ZP;AbCAl`n}&6p^gjA+HsO7ps92%Wxk33Wd-zf{9|txG$vPjRLM&+MCH`2sEbi zuno5)6&gv3F6)~>mRZbF(;=bMxgo-8xVxjr?+kDc+VA1Pa77(Ee^p1OIgzb{*Dru= zF`M$Tx167!tJ9#`UaC}Ue)&X(;O%qBW^6hRuS=Fg{U3ZSomH=Y8xMVQsQ0P0Cd6$r z*_EyqiHn&*GO7er-Dc9>Dp+`|%2DD0lOn$uq=nWj zs1u7Ks0I%q_nS^%rIs*La(c2;MAp-k`us(CH|qp#AX@woenWE<<{+iA^02L>_KJ6A z&47eiy~c&{6DN*Hv#f*3kS(1U#;yOXAD|Td#_`3WKho0%z=`NT5FIOObJJBfDnQs| z7e^|rKuQP;gm$DsD&=-R5;bR;D6IwuUx3fKY8Dt=pxY8HTN*!bG@ze1ZJ7|>@hCDc zL6-4MNQ;&P*I%|9arkR6q2`y8l7moG|Fx%BaQB2YX$$YP|Cl>s^&+3h5&wkrS!2ay z;MdT2?JMon^jf1r}qUbKFD zir`-Ovzb>0X-2d$F==XVQR|Pd-XZ1U;@MYn`5*Ffez933B*P)9|0hA-Pao{{nvPwADZk)DltgWp8D{ z(H@W~n8>PJ$aRc2%NynBdJr82I)dcP46#f%2}k9I!M$23svD$2Yst0JR8W&M785|H z1Hk31acB<4-w|6@O;sDU@P10QhP0u{WZCs!>S)DJDKL#(4%j^Q7)@IER5F#A}KsrdriCyMe+LLnc zoX?sVvSc*8bJ|angpXN2AKRb$z?JKx!bgD6=smj8RGYK{YG7^M{7f&)6YJ797A&cP zlp?@c#ga{kKNK>EXa^~O z9?s@V->iztb9shgED;jTJ=Of2MMDALq1Sj__6jP)(KdLQxfsKj*7=8vwe4tGrKWpX zS-T^`Ls!MJJ?w%1TCeVYIe$h_grvZ)*Sb~r;Wg^O3%hwpN!S$_92kLwBaVbHxaXGY(tV924D6sejOlL60};IXqWQ=f z(#nPxTFzLwuv5p$xn{{ojnr*ngac+?^fIWa+Ze86tcTg=`B7DErp-1de=Z}Ny5g~* z>iM*8HNNGAvoTo&-`Nc#C;2p{h|mHILbd5k7LuE`B&$l};telU@e}6Pm}SacfWh8P zm)lwCLP9EYUcn{mX*r>|rSZt4n5!PVdCy&F34%A0?oxKK+(oW5(d$)D{w{(D5m(v^ z0uK)a`mw=THXQ72t_N5N;K*ZLpF|Xq7f(7{4=N?1tfU6;91QIrVb%D-{r>&wtyE=o8=*?wirXWP}VbiDpl3 zk}4@$Du9xDTQLX?Drw_& z5`90aGF*Uj=$1RrR>y|MT$sLdyhYdnD9{S@nekp%A@-u)T%c}Wo4=0cc>Gr3`SsM_ z^J&76%GaVBC!JeGrn(=T>Xi{Lk1DFscfgSDlHTAYU^A?G0IAt2_w;H|_*V8Lx4%d2T%&h)D~z8>rj z2vUy=`~fE{;w06Hr*LFgqT--s=MF&2=%o{9>98V#nlK-I8!|}WSMTQofRtt=SSW)Y8$DeFFT{L304z6K?HJRAP;hw zUJhB!M|#N0=3vz{X;1-8jJZfWgz+-TE_lMCi|T2y3<8(C^X1T=fE*Py6nwjiO>g*u zsa_M>yGotzQUkr_RnZU(!Eg(biv?)pfOlZ4Tm#0IGt~r!9j4Pc$X!wl7eY^Ao=cSx zrBo3n7_7Gl%W{aeQOpqbC9xo@8JRU8M7dZ40rH@M?L$XG7}hmD9JNeIyYC<$+6%=K zpe0;{NVBwwrKSj+;mTor)JPI_n0=^XB8VrTZU3^dX&g%zNkV~vYL?vx1speHcG1;} z91k$dEv-)Zvm*?CiV}Z`f*(Y()x0(aZ^ieSoH-tv9vx2MiMybRZAS|qgd2nl-wbQF zx|lbAs}UFMw2f@GL*;ESpBvR}DIS95u8-n6U5b8mQCiyvu^osLD2o~T1#n(?=J2P6 z*s3+)0yPZ0t7x6qr&blDkWgtY$&U^M0g?w2B?Y;}X^~R^b7r4Bw=m(5+<41$y+Y96 z`V%WZ4)497V3%vkX$co4KuU>`bn7!`b#u)yBtPE`P)Vf*B)MDhwwc<60sRrSfgUa@ z10>xF0fxuNfz#*)P{02CKCCKzu1_sryRTHSir|U)5J6`3JAG6Sri?gDJnjd0vcTH!db%I+l8dC^vYP`1hMv?{X}<jI}fXuPSRUHCz4=2}i(3d-4jT?$zyi1PjkK1F+aK{UiS}x`;mqzPLr9m?YMnc4j zv4TR;hSUpIMpf149!{SW-J808&N-R~^@1(MqcP30sbMP3FFFz`pH8ospmmwao*U`aNVXJ-sEa`gS zjVV~tDhwfWY>{vwfIb6&EW}WZ*!vj~m0R>hJ$(zO5Ttz@6bjASedDIS>yD2S*q;{g8%L=nN<{1Vy{qe_Ha zASTmdLm@qiDN#ksga@~L0EB7Lm({7olE@oy>fPk}xfS}k%+9Xrh$3N;OiIbA1Pnp{ zy7z@+th)fLUZ~_a;?~}~gD$TT=UgUwg)ygy2k}P;usblnj(Ig2c7lJ2dq7k4|q^>R)woC(K?|IAYp%w>>PN&mxPf%2M$n@2{%iCacO7 zWqPS?K#HiwscPeld@o{`X#&_nEEIG$xq&%C15RBmif~?}#e2y6FAe12K-_(@*!dEhx01{2TNX|tt*02C|YC!uIvIn z6SK7_*DNGmNsZA8DA*xrc=ppa!UNI$TB%1LHUluVDLJI4GuD8G3HYGIC_81l&l5=2 zVwEg+ne|4AUfF}nmxOHJ%}tdkl?@8dppt2&|h_>-CV~^b%V(v+a85PmZ^2eqadj#iBwn;AT4RFJNRK6 zZWJg7BjgbI__C_2OygMdwfTLGOo?G*_mHTw$!{d*bI%{iwP2lk{&p-q8i4FaBKtn| z8KR548jYSGM8!A^o;DEb`ee{__>QkWR94&}8nOmOBAE!0#jG@8QF zFUpzLeQtui(f@G)P1U$19*oRRh*@zAQePmb;07-tqT$u+rOmHC+U6>m z1|hgI0e4?82{xah~Y@Om1jjC>56~X+biH=49 ziZB~Sqo=OJ-F#AKB;~~uba5%7mh9@JBxX39M;sc zUPJ9vSD~klZ*_{j1Cus06e9bLTQ?WqtQ%nrY`%9#b#@gNzQ5CH-mTVDidLsF@lBP34>L z2AW-Cj(&;IXTe+54nL0Sf6l=8OhzP{7B<#)#)(d}rc~e~Fdh`20$+;AQ%%oyc+TYN zAR-rSx9B!e;cV*FCd627eBgzlD*5xbX4NB#NTTN~*Q%lJJ9Cx6MiV-sg?(Bo(kd`t zq#D32d*rCXUU~_WrlxoH;cS6piVcl74)z1^UJsD9!DBO6p7N2jAiTAFgC;F#5YaUy z+Atum#<6{kcP!hjn3fD z37!qZol0XXR1i5{q)I_hTB!fzPi18K3YtdhKV^qt*EU-G6A>;in{~g+Y0z!bNd&8g z%`6{fU}I=F=h1+0Nxoir9^X{(9ea~)U2SP4wh|dB=PoUc5L^kiY>|~u_uL7`kMMaE z#-2V2k96-XpnfVDxg*`juW(a7WxZa+;{3L&e^(5)5S&O^ncX6j(4{3(Oq#lh6rxzhZKQLw}^s6454W-G%^C%@19abk(zdMmn;FosAX zCX^3-eS7nj{O-k-;D4h@A%-;oAo&R9%OOV(Ao*q&SGO3R8~)S_)QphOF00IoFKT{F zjcEXN6U;VGUz^~Da}=jH8$av5Ai<$$TAYTw(VJsYoEJ*~knoBDkVvg$EnMJ`Svt0j z*aRC!zEsJQ)#_N+;h#pVUMxBGh+6V~cNPaB-QpEjgGIK`*<}F3C_xTY^xqSyLs~Zz zb{{r<>kW!x3=E~0Y`@ZcmfsO+&??Y>-M~|x>ke0wR}^&JQ^g;3LWPz2wB-Jwa@YV0 z_*`N&)XS{AS;B&lEGg&`Xq+KGUI1(c%NZG40=URCXkbYEpt0i6@2yCY{WeHBhQAs0 z$rNx^#ur(Vg~TmnZ1YE11K_>XNKXS_Bq2%Km_MV>+$a?RJh!L8M@iH{RBJ;sdNQv9 zg7tC4To|;&qX9*lN<<{VmXDCMLr% zuDXo#Y}lLyc}xqkr_FPYR%&H%uCMVd)`wFIr&xl}j|I6?OH{bK6Sf6N4_;@)Qf5A$ zK0Lg@t=vCU3=0xpgx{J+L)Aox3rIU!oeGZBlb0;pu&}ZvWQIu$*ljNmRTMaWF*^uT z6ZDiQatNfYt43rK6oHBev-0`(9I)g#8%f8}x_Y6|M!w=>0z#eKl!~!`j_I6tuEC%E zZ&@FYWMtCwQ$(#i2%uLeyF{Fxa+V)z32FH3w8W{Y=j|>A$HFay*TMx)WU?Ijau%M$ z4Ic89oeS(BNg;lr$8P`SnfBVi%$ryNiGZeb3a{?k#MBbl^mPEZSw}P{=m6oEb z!ZVH%tSAYpgip~?6DZ{=9SyufEztmQ(%*coaBS1dZi0KYG_F-uA|*vk-88m>N-0Xu zvlD*`oJa=_px|_7uxY?c^Yt%|!CB3cFHz)s z@ZS(B$I~BO_vODhlEaf5Dpo{yyhK$&9&rVGCeSxrtX2lTHX?)Qkn(mvmN?jJAVP)_ z3Vf@dH1-~k?=5Tp#$YaPa_?0=;#|NY5d9(9%K%1&j1p6IqbNtcFvOiOC`zrfFOV)N zY9ofV0KlSvHvQo%y2o6jw4IvLPI=PQm-P*+151Ir^1cVtJz@!LbZ1Pb14Po!;HT(~ zl?dDHw}PjU*nUhL$cvtm7=_1fU&)E8IEO`skq{d3A}0jJGE)tMWn6a!XTw~PebF8s zv2AcPUl)~TwX7UGe-1Ica9Sh8(5PQ#YsJbTuI8>5_Kk9wp+&In#H?TpnN?JJ{pZTP zh6M=*MDMf-Kc^JAX&#t85?Qh@`5K}4rD)x|EmUXp(#Kj-K-nHYcAtNg zlC#NYQd(Y?PCM*15JuYz_xuSpgcvY{T-fV47N7>m$IX*#gsXJ}Sbnl)t2INx^$u878==6O^_ke&R}caTmpc3tEY-%1hT}fP6aE;l zR;ZA~tWo+WQHLAq0ZB6zFF2hg*KYl0M)zc9WTAvJot#x%d0UGBrF>(F%B;S-V1i0I zC9-w<-17~V6Ge$?s2)1VZn>6iXumKy4mj`@*f@wiJokeDI)y}SvxZ&6H`sGQdsn+B zABvX_GYV;4$LPS61MNm1Mv*?-Hth|z6xhZ<9dTpC=SCa#cb&#$IUnE0w_2&UeES}| zXz2|zlKP}~GG`SgLW8Y8D*LT)$n}R5P4oo$%D2GhnSx6^sI7)>Sc~1(zgrmnvn6ohYIx(VWVZOTaxz_WM zP?&ZYu)a!h-%EqH$X^qlr3!IYp5Lv~l1Mo!Ai5C^gFJldBr-)cfe@6hA=4&9T@h}$ zQ;lVD8h{Z_IigVoWLhx)xLrpp6*5tjr6h>WmXZ+pb_C`>LNjyIj~Krf$O3UGN+(W+AGw=Kc=%fcmwkLO5>Sj5)1#-j}QO2;Vd~q74BVBsx zZ>kBp+GgvgGUq8_Daw&Qx9{uTEk8fXc7NH<@Fn47I79UUQkH4|=$D^Izh}UkMb2v&h+sr5M$Nv(+?&`0l%?dxGs+(WE z~#0ZB_gZ9lv-#p{Q_V7$zR)+7z(Vo0NEu zdVfR)2h#Ke(4}!(B8sZg*eTO{ztnwt$l>RnO0GmOIzHoX1kF-D4UM##sJK^eDEj1v z=r^OoJDMkht4ry~zZkrjlXK43V2W|nzAzgRcpP1HGq>2gC`#y4+=1yK;-#t5NMkaZ{K~Hc zfP?c=`hwyKgH*X*?*V;+djo2DojnOdc#J)h#9BE9=2R!)N9f;`ekJ>x(n$wVWfbR8 z@|Nkp4Z+T6sG#?;_kr#&?Q(XW*zXlOz&EvyUou@4a3uJ4!J3hqT-$(mZfZDoa1aoz zBAkMDr7;>SVT<2Je;zPkSs>FCz?rAA#et)JE`mrcU&kReGXPyuBPZzWtA2EdUcGto z@0FS* zK=i=m;3B4Z)BYgM3ZYR|RAoNbJrCb2AN$>ZZ^Uy}15C{|jQj0hfXW|FzTxyw6CRt_ z7=Ai*y}VoV$-eHo6+3));k)o(yrEZu6N={ard;=>{kNWX z&ITzIU*^R?niG-ODjs){Q6u*Y&+Va=U)(Wuvh>cCxVKa7VVs_(=0bi7y9!mY#!9o- zheL?CM)fXvFZXZl{hKxIzj*GSJq)v28`Ex&=RyXPnA5l?5cyvu7B|D%<7x5upRZS| zc9Rpt0|Jv{CCZiZS;dLtj8?X_WHYv;*BZvgcG`6Wb0&Ofk*Zl3_yzcK-k$x>9O@0U z4NY7{$zDltAxNV-pRchq!Hx12Y6u>^p)2b=#*=g~s(!pkEM!tpdphC!$4sXE2VwC? z!KeS$kWNlh{$b04#2k+KPQ$2@s>S$gV%1`fMgwtsSZWDUoh3iMlSrfD<~#|}t^#`A zg_PzY=n*x}1nhURBmVaK zZ?U%vMiS^1)BYN9xo%9>zW^Bjc*7SEe8uks-T>wync%>pli?^DYZa`B_7}V=K?Mp|9FFr3U0q)+;Gw*8yb_TTDU?K8Z%_YOSF0neox|f zR4X*14sjMmj>pOWY$!(hN3?JF{(m19|JlI0k&{7%d$#q@0?K1(6t%^{Emj#E>}m_Q z&QDaixs+%A+m|y@i8%aPqWSHA@{2NgWh2RFAzqjlB-=d0W{u)HDL4FE8WZT!_EkZA z8eF`~$h>g1$ApPWAY}plWFOJmUW25oLPr}6-6;%dzxW4<( zD#WOoq$G=%x2?>t5yZO5_18@1kVbFoL&uG^Qq$lyIWnx-e?wDUAfN^(*!VJCNuIm^w+meN3B^Pm&;MCr=265Im8)f)&Bc%CzeCJS=@GgfQqmlcj{%u^MB9$A zUx4*L@F(pusuDysegEx$QnXd0*+r(mp~}m4_FN#FtJ#Feep7;V*+Hd!@|rTYVZZJU zF2Yj?FCMPC!*a*+9OQq)I16|i|Lg^(XZ!>@oFZ)QH@^c7qzE)(o!z)Ev6xKk^A?6v-TVC6r|dHxhq_%(N-d*Q#c-v8REV4b9@EBmivI2(V{A=z0oxOAxUYF>P{a+qazJ;{H! z`{A9-cvtKH5f}RCm2vVTL%kS(raYTG%(A$C>Yux5KV3dOw(j^ET#8kBWiO&|oSole z|0PkS5r*ctj)Nj{fduYJu*TH4g?fRhez|HI?3Wb)KR1c?C6u?9xkyVtHikCFjZRtkS zZ0PhE&;~7tutTG%6zt_AP}Kkwi(aZL#>wRsxF&)Zg`a|!rv}EB3_}QH8Oa~J-!H#g zn|S4M8Mw5bWtv>%&oRap=BI&$9>f@{#z;L)7;hhH;RQ!%&!C45x+Ik5Q{pvFS_12PT{_-KP}mY7dPdgrb<~=cv|{_2 z3E5;=vyh z`P~LMt3^6-VZ^8P8H_n9Ik`Ky-KTy}9$j#8ehyju z0toiq8?^FEh}HK}r`~8qbzrh0c?ep!Y+tOP$`F5j;_h%+#Q;}h;H#BHf+^5Mm;-uw zgV`kRPcA8@jM03x3z8zZJnk%`Vy;5|Tg(e$K*PiAzeYvUyei3s{oCaqlW(8jo?5Jl z9^LPDX8Zi8Kh667?(*wo*Z+Z+=5RE#`CJ_O48VnGvgACgmp`8UoD_4J{OiL@NkecU z3ktcT+`J0DdZM5h^YKcv{g-z4zsVcJBoO{a2PM*z8PZ*vr~cDw*16HAY~3&;rM0K! zEq0&V%iYQB=dT}KKP$e>{yV`GX`@#^#|!)6(}iIffz|RI+Fx_7Kc`;*RU*YR`AKIF z1)+Fj>+MH^P5(s@6dIA#HB!H0Is|>@#l)}t3y^^7TSRAi>#pcDsM#2VM3o}~Xh1E8 znbO}a(Z{2PPo&C*_Jmpa9W>G`_Zg`$3D>N_j+C?FG!%vCUQN8)@2Tq3^f5)D>s_s&(Tj|g3s%sd)_49{h6 z8ZuLco|NK5>jlzKlKle-Q8GnTZ~SH}VHbwwoyJjwyc82H8i%$C_b%GD){Mk~$BR0<^R z`DuO5j?^9lK#-@G)6R>@W;|sai!19!$pPHH?wcAXZ^XJ{3{vz^FX_@`yk2kb3t?;Z z=YnSZWbHcLBF&d+(_jGmMj|prs+VB*2mbj(!BFw8WM!z>WJ07wv9MN+z{@jVDL z8E*ttg_e|X8pNfiDRdIYG_xbVa;2ah8SK*bBvRY;ZN7L7DZcDZ>JH`%RdpZd#S2~L>#7ibZMVAAZ@on3K#lL< z8Ups2xG2{GgsP!}`i1C23@WUV>ZyJo2anB;eJ~Vb&1-i}@$$6D>&NV~`~9qUSCh~0 zEVAG6Om?OH_b<@!NS{f4ruDu2z;C-;Z$AEkZzdNGF&yi3DoddK?A5OB{}qSM?uRBD jQRex?qc@YLV@q}4Svw;+{xAIi;lmovBdQnswfz48^eq~q literal 0 HcmV?d00001 diff --git a/nettool/snap/QQ截图20180514145909.jpg b/nettool/snap/QQ截图20180514145909.jpg new file mode 100644 index 0000000000000000000000000000000000000000..39d0cbe8f5906fae94783f9f2c68e5eaef63d8c0 GIT binary patch literal 31178 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