commit e903dd0e48b868053dfcc9ad5f808786a8be3fa9 Author: taynpg Date: Fri Mar 8 15:29:40 2024 +0800 first commit diff --git a/README.md b/README.md new file mode 100644 index 0000000..ff32844 --- /dev/null +++ b/README.md @@ -0,0 +1,3 @@ +# 说明 + +一些小的 resource 资源收藏。 diff --git a/bat/Bat_To_Exe_Converter_x64.exe b/bat/Bat_To_Exe_Converter_x64.exe new file mode 100644 index 0000000..718fb1c Binary files /dev/null and b/bat/Bat_To_Exe_Converter_x64.exe differ diff --git a/bat/settings b/bat/settings new file mode 100644 index 0000000..d943d07 Binary files /dev/null and b/bat/settings differ diff --git a/book/Linux多线程服务端编程_muduo.pdf b/book/Linux多线程服务端编程_muduo.pdf new file mode 100644 index 0000000..f91b66d Binary files /dev/null and b/book/Linux多线程服务端编程_muduo.pdf differ diff --git a/gif/load.gif b/gif/load.gif new file mode 100644 index 0000000..6706983 Binary files /dev/null and b/gif/load.gif differ diff --git a/gif/loading.gif b/gif/loading.gif new file mode 100644 index 0000000..84bc67b Binary files /dev/null and b/gif/loading.gif differ diff --git a/pack/SetupImgBurn_2.5.8.0.exe b/pack/SetupImgBurn_2.5.8.0.exe new file mode 100644 index 0000000..3c92292 Binary files /dev/null and b/pack/SetupImgBurn_2.5.8.0.exe differ diff --git a/pack/chinese_prc.lng b/pack/chinese_prc.lng new file mode 100644 index 0000000..4e0c636 Binary files /dev/null and b/pack/chinese_prc.lng differ diff --git a/pack/enigmavb.exe b/pack/enigmavb.exe new file mode 100644 index 0000000..e6606e9 Binary files /dev/null and b/pack/enigmavb.exe differ diff --git a/pack/enigmavb.txt b/pack/enigmavb.txt new file mode 100644 index 0000000..3d96c3a --- /dev/null +++ b/pack/enigmavb.txt @@ -0,0 +1 @@ +可以将exe和其依赖的dll打包成一个单独的exe \ No newline at end of file diff --git a/pack/nsis-3.08-setup.exe b/pack/nsis-3.08-setup.exe new file mode 100644 index 0000000..0a28454 Binary files /dev/null and b/pack/nsis-3.08-setup.exe differ diff --git a/qt-theme/README.md b/qt-theme/README.md new file mode 100644 index 0000000..7f6ea26 --- /dev/null +++ b/qt-theme/README.md @@ -0,0 +1,3 @@ +# 说明 + +收藏的一些 qt 主题。 diff --git a/qt-theme/flatgray/flatgray.qrc b/qt-theme/flatgray/flatgray.qrc new file mode 100644 index 0000000..35a2567 --- /dev/null +++ b/qt-theme/flatgray/flatgray.qrc @@ -0,0 +1,28 @@ + + + qss/flatgray/add_bottom.png + qss/flatgray/add_left.png + qss/flatgray/add_right.png + qss/flatgray/add_top.png + qss/flatgray/arrow_bottom.png + qss/flatgray/arrow_left.png + qss/flatgray/arrow_right.png + qss/flatgray/arrow_top.png + qss/flatgray/branch_close.png + qss/flatgray/branch_open.png + qss/flatgray/calendar_nextmonth.png + qss/flatgray/calendar_prevmonth.png + qss/flatgray/checkbox_checked.png + qss/flatgray/checkbox_checked_disable.png + qss/flatgray/checkbox_parcial.png + qss/flatgray/checkbox_parcial_disable.png + qss/flatgray/checkbox_unchecked.png + qss/flatgray/checkbox_unchecked_disable.png + qss/flatgray/menu_checked.png + qss/flatgray/radiobutton_checked.png + qss/flatgray/radiobutton_checked_disable.png + qss/flatgray/radiobutton_unchecked.png + qss/flatgray/radiobutton_unchecked_disable.png + qss/flatgray.css + + diff --git a/qt-theme/flatgray/qss/flatgray.css b/qt-theme/flatgray/qss/flatgray.css new file mode 100644 index 0000000..fe82b5b --- /dev/null +++ b/qt-theme/flatgray/qss/flatgray.css @@ -0,0 +1,694 @@ +QPalette{background:#FFFFFF;}*{outline:0px;color:#57595B;} + +QGraphicsView{ +border:1px solid #B6B6B6; +qproperty-backgroundBrush:#FFFFFF; +} + +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:#575959; +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:#575959; +} + +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:#575959; +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 #575959; +background:qlineargradient(spread:pad,x1:0,y1:0,x2:0,y2:1,stop:0 #F6F6F6,stop:1 #F6F6F6); +} + +QLineEdit:read-only{ +background-color:#E4E4E4; +} + +QLineEdit,QTextEdit,QPlainTextEdit,QSpinBox,QDoubleSpinBox,QComboBox,QDateEdit,QTimeEdit,QDateTimeEdit{ +border:1px solid #B6B6B6; +border-radius:3px; +padding:2px; +background:none; +selection-background-color:#575959; +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:9px; +} + +.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/flatgray/radiobutton_unchecked.png); +} + +QRadioButton::indicator::unchecked:disabled{ +image:url(:/qss/flatgray/radiobutton_unchecked_disable.png); +} + +QRadioButton::indicator::checked{ +image:url(:/qss/flatgray/radiobutton_checked.png); +} + +QRadioButton::indicator::checked:disabled{ +image:url(:/qss/flatgray/radiobutton_checked_disable.png); +} + +QGroupBox::indicator,QTreeView::indicator,QListView::indicator,QTableView::indicator{ +padding:0px 0px 0px 0px; +} + +QCheckBox::indicator,QGroupBox::indicator,QTreeView::indicator,QListView::indicator,QTableView::indicator{ +width:13px; +height:13px; +} + +QCheckBox::indicator:unchecked,QGroupBox::indicator:unchecked,QTreeView::indicator:unchecked,QListView::indicator:unchecked,QTableView::indicator:unchecked{ +image:url(:/qss/flatgray/checkbox_unchecked.png); +} + +QCheckBox::indicator:unchecked:disabled,QGroupBox::indicator:unchecked:disabled,QTreeView::indicator:unchecked:disabled,QListView::indicator:unchecked:disabled,QTableView::indicator:unchecked:disabled{ +image:url(:/qss/flatgray/checkbox_unchecked_disable.png); +} + +QCheckBox::indicator:checked,QGroupBox::indicator:checked,QTreeView::indicator:checked,QListView::indicator:checked,QTableView::indicator:checked{ +image:url(:/qss/flatgray/checkbox_checked.png); +} + +QCheckBox::indicator:checked:disabled,QGroupBox::indicator:checked:disabled,QTreeView::indicator:checked:disabled,QListView::indicator:checked:disabled,QTableView::indicator:checked:disabled{ +image:url(:/qss/flatgray/checkbox_checked_disable.png); +} + +QCheckBox::indicator:indeterminate,QGroupBox::indicator:indeterminate,QTreeView::indicator:indeterminate,QListView::indicator:indeterminate,QTableView::indicator:indeterminate{ +image:url(:/qss/flatgray/checkbox_parcial.png); +} + +QCheckBox::indicator:indeterminate:disabled,QGroupBox::indicator:indeterminate:disabled,QTreeView::indicator:indeterminate:disabled,QListView::indicator:indeterminate:disabled,QTableView::indicator:indeterminate:disabled{ +image:url(:/qss/flatgray/checkbox_parcial_disable.png); +} + +QTimeEdit::up-button,QDateEdit::up-button,QDateTimeEdit::up-button,QDoubleSpinBox::up-button,QSpinBox::up-button{ +image:url(:/qss/flatgray/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/flatgray/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/flatgray/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:20px; +height:13px; +} + +QMenu::indicator::checked{ +image:url(:/qss/flatgray/menu_checked.png); +} + +QMenu::right-arrow{ +image:url(:/qss/flatgray/arrow_right.png); +width:13px; +height:13px; +padding:0px 3px 0px 0px; +} + +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{ +height:8px; +border-radius:4px; +background:#E4E4E4; +} + +QSlider::add-page:horizontal{ +height:8px; +border-radius:4px; +background:#E4E4E4; +} + +QSlider::sub-page:horizontal{ +height:8px; +border-radius:4px; +background:#B6B6B6; +} + +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:#B6B6B6; +} + +QSlider::sub-page:vertical{ +width:8px; +border-radius:4px; +background:#E4E4E4; +} + +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:#575959; +} + +QScrollBar::handle:horizontal:pressed{ +background:#575959; +} + +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:#575959; +} + +QScrollBar::handle:vertical:pressed{ +background:#575959; +} + +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/flatgray/branch_open.png); +} + +QTreeView::branch:open:has-children{ +margin:4px; +border-image:url(:/qss/flatgray/branch_close.png); +} + +QTreeView,QListView,QTableView,QSplitter::handle,QTreeView::branch{ +background:#FFFFFF; +} + +QTableView::item:selected,QListView::item:selected,QTreeView::item:selected{ +color:#57595B; +background:#E4E4E4; +} + +QTableView::item:hover,QListView::item:hover,QTreeView::item:hover,QHeaderView,QHeaderView::section,QTableCornerButton:section{ +color:#57595B; +background:#F6F6F6; +} + +QTableView::item,QListView::item,QTreeView::item{ +padding:1px; +margin:0px; +border:0px; +} + +QHeaderView::section,QTableCornerButton:section{ +padding:3px; +margin:0px; +border:1px solid #B6B6B6; +border-left-width:0px; +border-right-width:1px; +border-top-width:0px; +border-bottom-width:1px; +} + +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{ +border-style:solid; +border-color:#575959; +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{ +border-width:2px 0px 0px 0px; +} + +QTabBar::tab:right:selected{ +border-width:0px 0px 0px 2px; +} + +QTabBar::tab:bottom:selected{ +border-width:0px 0px 2px 0px; +} + +QTabBar::tab:left:selected{ +border-width:0px 2px 0px 0px; +} + +QTabBar::tab:first:top:selected,QTabBar::tab:first:bottom:selected{ +border-left-width:1px; +border-left-color:#B6B6B6; +} + +QTabBar::tab:first:left:selected,QTabBar::tab:first:right:selected{ +border-top-width:1px; +border-top-color:#B6B6B6; +} + +QTabBar::tab:last:top:selected,QTabBar::tab:last:bottom:selected{ +border-right-width:1px; +border-right-color:#B6B6B6; +} + +QTabBar::tab:last:left:selected,QTabBar::tab:last:right:selected{ +border-bottom-width:1px; +border-bottom-color:#B6B6B6; +} + +QStatusBar::item{ +border:0px solid #E4E4E4; +border-radius:3px; +} + +QToolBox::tab,QWidget[form="panel"]{ +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); +} + +QWidget[flag="paneltitle"]{ +border-bottom-left-radius:0px; +border-bottom-right-radius:0px; +} + +QWidget[flag="panelcontrol"]{ +border-top-width:0px; +border-top-left-radius:0px; +border-top-right-radius:0px; +} + +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/flatgray/calendar_prevmonth.png); +} + +QToolButton#qt_calendar_nextmonth{ +icon-size:0px; +min-width:20px; +image:url(:/qss/flatgray/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); +} + +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;} + +QDialog,QDial,#QUIWidgetMain{ +background-color:#FFFFFF; +color:#57595B; +} + +QDialogButtonBox>QPushButton{ +min-width:50px; +} + +QListView[noborder="true"],QTreeView[noborder="true"],QTabWidget[noborder="true"]::pane{ +border-width:0px; +} + +QToolBar>*,QStatusBar>*{ +margin:2px; +} + +*:disabled,QMenu::item:disabled,QTabBar:tab:disabled,QHeaderView::section:disabled{ +background:#FFFFFF; +border-color:#E4E4E4; +color:#B6B6B6; +} + +QLabel:disabled{ +background:none; +} + +/*TextColor:#57595B*/ +/*PanelColor:#FFFFFF*/ +/*BorderColor:#B6B6B6*/ +/*NormalColorStart:#E4E4E4*/ +/*NormalColorEnd:#E4E4E4*/ +/*DarkColorStart:#F6F6F6*/ +/*DarkColorEnd:#F6F6F6*/ +/*HighColor:#575959*/ \ No newline at end of file diff --git a/qt-theme/flatgray/qss/flatgray/add_bottom.png b/qt-theme/flatgray/qss/flatgray/add_bottom.png new file mode 100644 index 0000000..868e687 Binary files /dev/null and b/qt-theme/flatgray/qss/flatgray/add_bottom.png differ diff --git a/qt-theme/flatgray/qss/flatgray/add_left.png b/qt-theme/flatgray/qss/flatgray/add_left.png new file mode 100644 index 0000000..d9d5127 Binary files /dev/null and b/qt-theme/flatgray/qss/flatgray/add_left.png differ diff --git a/qt-theme/flatgray/qss/flatgray/add_right.png b/qt-theme/flatgray/qss/flatgray/add_right.png new file mode 100644 index 0000000..be8dd1a Binary files /dev/null and b/qt-theme/flatgray/qss/flatgray/add_right.png differ diff --git a/qt-theme/flatgray/qss/flatgray/add_top.png b/qt-theme/flatgray/qss/flatgray/add_top.png new file mode 100644 index 0000000..ef55ce1 Binary files /dev/null and b/qt-theme/flatgray/qss/flatgray/add_top.png differ diff --git a/qt-theme/flatgray/qss/flatgray/arrow_bottom.png b/qt-theme/flatgray/qss/flatgray/arrow_bottom.png new file mode 100644 index 0000000..37307b7 Binary files /dev/null and b/qt-theme/flatgray/qss/flatgray/arrow_bottom.png differ diff --git a/qt-theme/flatgray/qss/flatgray/arrow_left.png b/qt-theme/flatgray/qss/flatgray/arrow_left.png new file mode 100644 index 0000000..aa4312b Binary files /dev/null and b/qt-theme/flatgray/qss/flatgray/arrow_left.png differ diff --git a/qt-theme/flatgray/qss/flatgray/arrow_right.png b/qt-theme/flatgray/qss/flatgray/arrow_right.png new file mode 100644 index 0000000..4db5efa Binary files /dev/null and b/qt-theme/flatgray/qss/flatgray/arrow_right.png differ diff --git a/qt-theme/flatgray/qss/flatgray/arrow_top.png b/qt-theme/flatgray/qss/flatgray/arrow_top.png new file mode 100644 index 0000000..0da1cad Binary files /dev/null and b/qt-theme/flatgray/qss/flatgray/arrow_top.png differ diff --git a/qt-theme/flatgray/qss/flatgray/branch_close.png b/qt-theme/flatgray/qss/flatgray/branch_close.png new file mode 100644 index 0000000..f5b6d34 Binary files /dev/null and b/qt-theme/flatgray/qss/flatgray/branch_close.png differ diff --git a/qt-theme/flatgray/qss/flatgray/branch_open.png b/qt-theme/flatgray/qss/flatgray/branch_open.png new file mode 100644 index 0000000..6392c13 Binary files /dev/null and b/qt-theme/flatgray/qss/flatgray/branch_open.png differ diff --git a/qt-theme/flatgray/qss/flatgray/calendar_nextmonth.png b/qt-theme/flatgray/qss/flatgray/calendar_nextmonth.png new file mode 100644 index 0000000..6cb40d7 Binary files /dev/null and b/qt-theme/flatgray/qss/flatgray/calendar_nextmonth.png differ diff --git a/qt-theme/flatgray/qss/flatgray/calendar_prevmonth.png b/qt-theme/flatgray/qss/flatgray/calendar_prevmonth.png new file mode 100644 index 0000000..8a17d0f Binary files /dev/null and b/qt-theme/flatgray/qss/flatgray/calendar_prevmonth.png differ diff --git a/qt-theme/flatgray/qss/flatgray/checkbox_checked.png b/qt-theme/flatgray/qss/flatgray/checkbox_checked.png new file mode 100644 index 0000000..8808382 Binary files /dev/null and b/qt-theme/flatgray/qss/flatgray/checkbox_checked.png differ diff --git a/qt-theme/flatgray/qss/flatgray/checkbox_checked_disable.png b/qt-theme/flatgray/qss/flatgray/checkbox_checked_disable.png new file mode 100644 index 0000000..9aa0a10 Binary files /dev/null and b/qt-theme/flatgray/qss/flatgray/checkbox_checked_disable.png differ diff --git a/qt-theme/flatgray/qss/flatgray/checkbox_parcial.png b/qt-theme/flatgray/qss/flatgray/checkbox_parcial.png new file mode 100644 index 0000000..97376f3 Binary files /dev/null and b/qt-theme/flatgray/qss/flatgray/checkbox_parcial.png differ diff --git a/qt-theme/flatgray/qss/flatgray/checkbox_parcial_disable.png b/qt-theme/flatgray/qss/flatgray/checkbox_parcial_disable.png new file mode 100644 index 0000000..b9b286f Binary files /dev/null and b/qt-theme/flatgray/qss/flatgray/checkbox_parcial_disable.png differ diff --git a/qt-theme/flatgray/qss/flatgray/checkbox_unchecked.png b/qt-theme/flatgray/qss/flatgray/checkbox_unchecked.png new file mode 100644 index 0000000..50c25e2 Binary files /dev/null and b/qt-theme/flatgray/qss/flatgray/checkbox_unchecked.png differ diff --git a/qt-theme/flatgray/qss/flatgray/checkbox_unchecked_disable.png b/qt-theme/flatgray/qss/flatgray/checkbox_unchecked_disable.png new file mode 100644 index 0000000..7c4c7db Binary files /dev/null and b/qt-theme/flatgray/qss/flatgray/checkbox_unchecked_disable.png differ diff --git a/qt-theme/flatgray/qss/flatgray/menu_checked.png b/qt-theme/flatgray/qss/flatgray/menu_checked.png new file mode 100644 index 0000000..6a1c729 Binary files /dev/null and b/qt-theme/flatgray/qss/flatgray/menu_checked.png differ diff --git a/qt-theme/flatgray/qss/flatgray/radiobutton_checked.png b/qt-theme/flatgray/qss/flatgray/radiobutton_checked.png new file mode 100644 index 0000000..513a41e Binary files /dev/null and b/qt-theme/flatgray/qss/flatgray/radiobutton_checked.png differ diff --git a/qt-theme/flatgray/qss/flatgray/radiobutton_checked_disable.png b/qt-theme/flatgray/qss/flatgray/radiobutton_checked_disable.png new file mode 100644 index 0000000..8d16af5 Binary files /dev/null and b/qt-theme/flatgray/qss/flatgray/radiobutton_checked_disable.png differ diff --git a/qt-theme/flatgray/qss/flatgray/radiobutton_unchecked.png b/qt-theme/flatgray/qss/flatgray/radiobutton_unchecked.png new file mode 100644 index 0000000..8ef34fb Binary files /dev/null and b/qt-theme/flatgray/qss/flatgray/radiobutton_unchecked.png differ diff --git a/qt-theme/flatgray/qss/flatgray/radiobutton_unchecked_disable.png b/qt-theme/flatgray/qss/flatgray/radiobutton_unchecked_disable.png new file mode 100644 index 0000000..f70c364 Binary files /dev/null and b/qt-theme/flatgray/qss/flatgray/radiobutton_unchecked_disable.png differ diff --git a/qt-theme/load_theme.cpp b/qt-theme/load_theme.cpp new file mode 100644 index 0000000..9be47ca --- /dev/null +++ b/qt-theme/load_theme.cpp @@ -0,0 +1,7 @@ +void MainWidget::loadStyle(const QString & qssFile) +{ + QFile qss_file(qssFile); + if (qss_file.open(QFile::ReadOnly)) { + qApp->setStyleSheet(qss_file.readAll()); + } +} \ No newline at end of file diff --git a/qt-theme/wait_form/wait_dialog.cpp b/qt-theme/wait_form/wait_dialog.cpp new file mode 100644 index 0000000..a4a6915 --- /dev/null +++ b/qt-theme/wait_form/wait_dialog.cpp @@ -0,0 +1,133 @@ +#include "wait_dialog.h" + +CWaitDialog::CWaitDialog(QWidget *parent) + : QDialog(parent), + frame_center_(nullptr), + movie_lable_(nullptr), + load_movie_(nullptr), + tip_lable_(nullptr), + cancel_btn_(nullptr) { + setWindowFlags(Qt::FramelessWindowHint | + Qt::Tool /* | Qt::WindowStaysOnTopHint*/); + setAttribute(Qt::WA_TranslucentBackground, true); + + frame_center_ = new QFrame(this); + movie_lable_ = new QLabel(frame_center_); + tip_lable_ = new QLabel(frame_center_); +} + +CWaitDialog::~CWaitDialog() { + delete load_movie_; + delete movie_lable_; + delete tip_lable_; + delete cancel_btn_; + delete frame_center_; +} + +void CWaitDialog::Init(const QString &gif, int size) { + base_size = size; + int extend_unit_size = 20; + load_movie_ = new QMovie(gif); + movie_lable_->setMovie(load_movie_); + + base_heigh_ = base_size + extend_unit_size * 3.2; + int dia_width = base_size + margin_; + int dia_heigh = base_heigh_ + margin_; + setFixedSize(dia_width, dia_heigh); + + frame_center_->setGeometry(margin_, margin_, dia_width - margin_ * 2, + dia_heigh - margin_); + movie_lable_->setGeometry(margin_, margin_, dia_width - margin_ * 4, + base_size); + movie_lable_->setScaledContents(true); + load_movie_->start(); + + tip_lable_->setGeometry(margin_, base_size + margin_ * 2, dia_width, + extend_unit_size); + tip_lable_->setAlignment(Qt::AlignCenter | Qt::AlignHCenter); + tip_lable_->setObjectName("tips"); + tip_lable_->setText(u8"处理中......"); + tip_lable_->setStyleSheet( + "QLabel#tips{font-family:\"Microsoft " + "YaHei\";font-size: 15px;color: #333333;}"); + + cancel_btn_ = new QPushButton(frame_center_); + cancel_btn_->setObjectName("cancelBtn"); + cancel_btn_->setText(u8"取消"); + cancel_btn_->setGeometry( + margin_, base_size + margin_ * 3 + extend_unit_size * 1.2, + base_size - margin_ * 3, extend_unit_size + margin_); + cancel_btn_->setStyleSheet( + "QPushButton#cancelBtn{" + "background-color: #edeef6;" + "border-radius: 4px;" + "font-family: \"Microsoft YaHei\";" + "font-size: 15px;" + "color: #333333;" + "}" + "QPushButton#cancelBtn::hover{" + "background:#dcdeea" + "}"); + + connect(cancel_btn_, &QPushButton::clicked, this, &CWaitDialog::StopWait); + + // 实例阴影shadow + QGraphicsDropShadowEffect *shadow = new QGraphicsDropShadowEffect(this); + shadow->setOffset(0, 0); + shadow->setColor(QColor(32, 101, 165)); + shadow->setBlurRadius(10); + this->setGraphicsEffect(shadow); +} + +void CWaitDialog::setTipsText(QString strTipsText) { + tip_lable_->setText(strTipsText); +} + +void CWaitDialog::setCanCancel(bool show) { + cancel_btn_->setEnabled(show); + if (!show) { + cancel_btn_->setText(u8"取消已禁用"); + } else { + cancel_btn_->setText(u8"取消"); + } +} + +void CWaitDialog::moveToCenter(QWidget *pParent) { + if (pParent != nullptr && pParent != nullptr) { + int nParentWidth = pParent->width(); + int nParentHeigth = pParent->height(); + int nWidth = this->width(); + + int nHeight = this->height(); + int nParentX = pParent->x(); + int nParentY = pParent->y(); + + int x = (nParentX + (nParentWidth - nWidth) / 2); + int y = (nParentY + (nParentHeigth - nHeight) / 2); + this->move(x, y); + } +} + +void CWaitDialog::registerFunc(std::function call) { stopCall_ = call; } + +void CWaitDialog::paintEvent(QPaintEvent *event) { + QPainter painter(this); + painter.setRenderHint(QPainter::Antialiasing); + painter.setBrush(QBrush(Qt::white)); + painter.setPen(Qt::transparent); + QRect rect = this->rect(); + rect.setLeft(margin_); + rect.setTop(margin_); + rect.setWidth(rect.width() - margin_); + rect.setHeight(rect.height() - margin_); + painter.drawRoundedRect(rect, margin_, margin_); + QWidget::paintEvent(event); +} + +void CWaitDialog::StopWait() { + this->close(); + + if (stopCall_) { + stopCall_(); + } +} diff --git a/qt-theme/wait_form/wait_dialog.h b/qt-theme/wait_form/wait_dialog.h new file mode 100644 index 0000000..319c481 --- /dev/null +++ b/qt-theme/wait_form/wait_dialog.h @@ -0,0 +1,52 @@ +#ifndef WAIT_DIALOG_H +#define WAIT_DIALOG_H + +#include +#include +#include +#include +#include +#include +#include + + +class CWaitDialog : public QDialog { + Q_OBJECT +public: + explicit CWaitDialog(QWidget *parent = nullptr); + ~CWaitDialog(); + +public: + // 给定 gif 图和对话框的大小 + void Init(const QString &gif, int size = 120); + // 设定提示信息(建议简短一些) + void setTipsText(QString strTipsText); + // 是否显示取消按钮 + void setCanCancel(bool show); + // 移动对话框到指定窗口中间 + void moveToCenter(QWidget *pParent); + // 注册用户点击取消后的回调函数 + void registerFunc(std::function call); + +protected: + void paintEvent(QPaintEvent *event) override; +Q_SIGNALS: + void cancelWaiting(); + +public: + void StopWait(); + +private: + QFrame *frame_center_; + QLabel *movie_lable_; + QMovie *load_movie_; + QLabel *tip_lable_; + QPushButton *cancel_btn_; + int margin_{3}; + int base_size{120}; + int base_heigh_{}; + +private: + std::function stopCall_{}; +}; +#endif // LOADINGDIALOG_H diff --git a/tool/PXBinaryViewerSetup.exe b/tool/PXBinaryViewerSetup.exe new file mode 100644 index 0000000..a8763a9 Binary files /dev/null and b/tool/PXBinaryViewerSetup.exe differ