first commit
BIN
bat/Bat_To_Exe_Converter_x64.exe
Normal file
BIN
bat/settings
Normal file
BIN
book/Linux多线程服务端编程_muduo.pdf
Normal file
BIN
gif/load.gif
Normal file
After Width: | Height: | Size: 299 KiB |
BIN
gif/loading.gif
Normal file
After Width: | Height: | Size: 762 KiB |
BIN
pack/SetupImgBurn_2.5.8.0.exe
Normal file
BIN
pack/chinese_prc.lng
Normal file
BIN
pack/enigmavb.exe
Normal file
1
pack/enigmavb.txt
Normal file
@ -0,0 +1 @@
|
||||
可以将exe和其依赖的dll打包成一个单独的exe
|
BIN
pack/nsis-3.08-setup.exe
Normal file
3
qt-theme/README.md
Normal file
@ -0,0 +1,3 @@
|
||||
# 说明
|
||||
|
||||
收藏的一些 qt 主题。
|
28
qt-theme/flatgray/flatgray.qrc
Normal file
@ -0,0 +1,28 @@
|
||||
<RCC>
|
||||
<qresource prefix="/">
|
||||
<file>qss/flatgray/add_bottom.png</file>
|
||||
<file>qss/flatgray/add_left.png</file>
|
||||
<file>qss/flatgray/add_right.png</file>
|
||||
<file>qss/flatgray/add_top.png</file>
|
||||
<file>qss/flatgray/arrow_bottom.png</file>
|
||||
<file>qss/flatgray/arrow_left.png</file>
|
||||
<file>qss/flatgray/arrow_right.png</file>
|
||||
<file>qss/flatgray/arrow_top.png</file>
|
||||
<file>qss/flatgray/branch_close.png</file>
|
||||
<file>qss/flatgray/branch_open.png</file>
|
||||
<file>qss/flatgray/calendar_nextmonth.png</file>
|
||||
<file>qss/flatgray/calendar_prevmonth.png</file>
|
||||
<file>qss/flatgray/checkbox_checked.png</file>
|
||||
<file>qss/flatgray/checkbox_checked_disable.png</file>
|
||||
<file>qss/flatgray/checkbox_parcial.png</file>
|
||||
<file>qss/flatgray/checkbox_parcial_disable.png</file>
|
||||
<file>qss/flatgray/checkbox_unchecked.png</file>
|
||||
<file>qss/flatgray/checkbox_unchecked_disable.png</file>
|
||||
<file>qss/flatgray/menu_checked.png</file>
|
||||
<file>qss/flatgray/radiobutton_checked.png</file>
|
||||
<file>qss/flatgray/radiobutton_checked_disable.png</file>
|
||||
<file>qss/flatgray/radiobutton_unchecked.png</file>
|
||||
<file>qss/flatgray/radiobutton_unchecked_disable.png</file>
|
||||
<file>qss/flatgray.css</file>
|
||||
</qresource>
|
||||
</RCC>
|
694
qt-theme/flatgray/qss/flatgray.css
Normal file
@ -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*/
|
BIN
qt-theme/flatgray/qss/flatgray/add_bottom.png
Normal file
After Width: | Height: | Size: 336 B |
BIN
qt-theme/flatgray/qss/flatgray/add_left.png
Normal file
After Width: | Height: | Size: 370 B |
BIN
qt-theme/flatgray/qss/flatgray/add_right.png
Normal file
After Width: | Height: | Size: 358 B |
BIN
qt-theme/flatgray/qss/flatgray/add_top.png
Normal file
After Width: | Height: | Size: 332 B |
BIN
qt-theme/flatgray/qss/flatgray/arrow_bottom.png
Normal file
After Width: | Height: | Size: 337 B |
BIN
qt-theme/flatgray/qss/flatgray/arrow_left.png
Normal file
After Width: | Height: | Size: 376 B |
BIN
qt-theme/flatgray/qss/flatgray/arrow_right.png
Normal file
After Width: | Height: | Size: 360 B |
BIN
qt-theme/flatgray/qss/flatgray/arrow_top.png
Normal file
After Width: | Height: | Size: 361 B |
BIN
qt-theme/flatgray/qss/flatgray/branch_close.png
Normal file
After Width: | Height: | Size: 263 B |
BIN
qt-theme/flatgray/qss/flatgray/branch_open.png
Normal file
After Width: | Height: | Size: 444 B |
BIN
qt-theme/flatgray/qss/flatgray/calendar_nextmonth.png
Normal file
After Width: | Height: | Size: 655 B |
BIN
qt-theme/flatgray/qss/flatgray/calendar_prevmonth.png
Normal file
After Width: | Height: | Size: 740 B |
BIN
qt-theme/flatgray/qss/flatgray/checkbox_checked.png
Normal file
After Width: | Height: | Size: 616 B |
BIN
qt-theme/flatgray/qss/flatgray/checkbox_checked_disable.png
Normal file
After Width: | Height: | Size: 639 B |
BIN
qt-theme/flatgray/qss/flatgray/checkbox_parcial.png
Normal file
After Width: | Height: | Size: 341 B |
BIN
qt-theme/flatgray/qss/flatgray/checkbox_parcial_disable.png
Normal file
After Width: | Height: | Size: 331 B |
BIN
qt-theme/flatgray/qss/flatgray/checkbox_unchecked.png
Normal file
After Width: | Height: | Size: 612 B |
BIN
qt-theme/flatgray/qss/flatgray/checkbox_unchecked_disable.png
Normal file
After Width: | Height: | Size: 646 B |
BIN
qt-theme/flatgray/qss/flatgray/menu_checked.png
Normal file
After Width: | Height: | Size: 542 B |
BIN
qt-theme/flatgray/qss/flatgray/radiobutton_checked.png
Normal file
After Width: | Height: | Size: 1.5 KiB |
BIN
qt-theme/flatgray/qss/flatgray/radiobutton_checked_disable.png
Normal file
After Width: | Height: | Size: 1.6 KiB |
BIN
qt-theme/flatgray/qss/flatgray/radiobutton_unchecked.png
Normal file
After Width: | Height: | Size: 1.3 KiB |
BIN
qt-theme/flatgray/qss/flatgray/radiobutton_unchecked_disable.png
Normal file
After Width: | Height: | Size: 1.3 KiB |
7
qt-theme/load_theme.cpp
Normal file
@ -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());
|
||||
}
|
||||
}
|
133
qt-theme/wait_form/wait_dialog.cpp
Normal file
@ -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<void()> 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_();
|
||||
}
|
||||
}
|
52
qt-theme/wait_form/wait_dialog.h
Normal file
@ -0,0 +1,52 @@
|
||||
#ifndef WAIT_DIALOG_H
|
||||
#define WAIT_DIALOG_H
|
||||
|
||||
#include <QDialog>
|
||||
#include <QGraphicsDropShadowEffect>
|
||||
#include <QLabel>
|
||||
#include <QMovie>
|
||||
#include <QPainter>
|
||||
#include <QPushButton>
|
||||
#include <functional>
|
||||
|
||||
|
||||
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<void()> 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<void()> stopCall_{};
|
||||
};
|
||||
#endif // LOADINGDIALOG_H
|