图1 QTabWidget样式

二、QTableWidget以及QScrollBar

QTableWidget

{

color:black;    /*前景色:文字颜色*/

/*gridline-color:red;  */    /*表格中的网格线条颜色*/

background:white;

/*设置交替颜色,需要在函数属性中设置:tableWidget->setAlternatingRowColors(true)*/

alternate-background-color:rgb(211, 211, 211);

/*border:1px solid gray;*/  /*边框线的宽度、颜色*/

border:none;    /*去除边界线*/

}

/*设置表头属性*/

QHeaderView::section {

background-color: rgb(4, 116, 191);  /*蓝色*/

color: white;

padding-left: 4px;

border:none;    /*去除边界线*/

}

/******************************************************/

另外代码里设置好QTableWidget的其他属性:

void EventRecordDlg::initTableWdgt(QTableWidget* tableWidget,int hWidth1,int hWidth2,int hWidth3,int hWidth4)

{

/*!

* 设置编辑框的垂直滑动条的样式

* (注意,此处QSS设置效果在设计器里手动设置代码运行时无效果)

*/

QString str = "QScrollBar:vertical{max-width: 18px;background-color: transparent;padding-top: 19px;padding-bottom: 19px;}"

"QScrollBar::handle:vertical {width: 18px;min-height: 40px;background-color: rgb(4, 116, 191); /*深蓝色*/}"

"QScrollBar::handle:vertical:hover {background-color: rgb(238, 159, 0); /*橘黄色*/}"

"QScrollBar::sub-line:vertical {height: 18px;width: 18px;background-color: rgb(0, 136, 204);subcontrol-position: top;}"

"QScrollBar::add-line:vertical {height: 18px;width: 18px;background-color: rgb(0, 136, 204);subcontrol-position: bottom;}"

"QScrollBar::sub-line:vertical:hover {background-color: rgb(238, 159, 0); /*橘黄色*/}"

"QScrollBar::add-line:vertical:hover {background-color: rgb(238, 159, 0); /*橘黄色*/}"

"QScrollBar::add-page:vertical,QScrollBar::sub-page:vertical {background: rgb(220, 220, 220);}";

tableWidget->setColumnCount(5);

tableWidget->horizontalHeader()->setVisible(true);

tableWidget->verticalHeader()->setVisible(false);

tableWidget->setColumnWidth(0,hWidth1);

tableWidget->setColumnWidth(1,hWidth2);

tableWidget->setColumnWidth(2,hWidth3);

tableWidget->setColumnWidth(3,hWidth4);

tableWidget->setEditTriggers(QAbstractItemView::NoEditTriggers); //设置表格无法编辑

tableWidget->setSelectionMode(QAbstractItemView::NoSelection); //设置表格无法选择

tableWidget->setAlternatingRowColors(true); //设置表格允许行交替颜色

tableWidget->horizontalHeader()->setHighlightSections(false); //解决表头塌陷问题:点击表格时不对表格行光亮(获取焦点)

//tableWidget->setItemDelegate(new NoFocusDelegate(this->parent())); //解决鼠标点击的选项会出现虚框问题,此处NoFocusDelegate是自定义的类

tableWidget->horizontalHeader()->setStyleSheet("QHeaderView::section {background-color: rgb(4, 116, 191);"

"color: white;padding-left: 4px;border: none;}");

tableWidget->verticalScrollBar()->setStyleSheet(str);

tableWidget->verticalScrollBar()->scroll(40, 20);

tableWidget->horizontalHeader()->setDisabled(true);

tableWidget->horizontalHeader()->setSectionsMovable(false);

tableWidget->horizontalHeader()->setSectionsClickable(false);

tableWidget->hideColumn(4); //隐藏第五行,事件码event id

}

运行效果如下:

图2 QTableWidget样式

三、QComboBox

QComboBox {

border: 1px solid gray;

/*border-radius: 3px;*/

padding: 1px 2px 1px 2px;  /*针对于组合框中的文本内容*/

/*min-width: 9em;*/  /*组合框的最小宽度*/

}

QComboBox::drop-down {

subcontrol-origin: padding;

subcontrol-position: top right;

/*width: 20px;*/

border-left-width: 1px;

border-left-color: darkgray;

border-left-style: solid;

/*border-top-right-radius: 3px;

border-bottom-right-radius: 3px;*/

background-color: rgb(234, 234, 234);

}

QComboBox::down-arrow {

border-image: url(:/HTP_Images/images/img_arrow1.png);

}

运行效果如下:


图5 QComboBox倒三角图标

四、QPushButton

QPushButton

{

color: rgb(255, 255, 255);

border-image: url(:/HTP_Images/images/im_btnNoSelect.png);

border:none;

padding: 5px;

outline: none;

}

QPushButton:pressed

{

border-image: url(:/HTP_Images/images/im_btnSelect.png);

padding-top: -15px;

padding-bottom: -17px;

}

运行效果如下: