我们从表头开始,先给弄它弄个背景色,另外字体加粗以示区别。
Qt使用setStyleSheet函数来设置部件的样式表。这里QHeaderView表示表头,section表示表头上层的可选中的区域,由于设置了最后一行拉伸,所以是看不到section下一层的界面。
现在看来表头是凸起的,而且也不够高,接着在设置。
这一步加了三个属性及对应的值,第一个border:none去掉了section的边框。第二个height:35px,设置高度为35像素。顺便设置了第三个color:white设置文字的颜色为白色。 这样看上去舒服多了。接下来给表格也设置一些颜色:
这一步给表格设置了三个属性及对应的值,第一个是gridline-color:#2aaee4,设置网格线的颜色,#2aaee4是用十六进制表示颜色的方法。第二个是color:#888,设置文字的颜色,#888相当于#888888。最后一个是border:none去掉了表格边框,这样看起来更清爽一点了。
如果表格中的行数非常多的话,经常会看走眼了。所以我们要设置间隔行颜色不同以示区分。对于表格需要先开启间隔行背景色的功能,默认间隔行背景色是灰色的,我们可以在样式表中控制这个颜色。
在样式表中使用alternate-background-color属性来控制间隔行的颜色。设置的是偶数行的颜色。如果想设置奇数行的颜色可以通过设置表格的背景颜色来实现。
1.qt样式不生效,一个是看全部样式代码是否都在最顶端控件,其二看相关UI文件,找到new出的新类的位置,看新类被new出的位置,看是否有被新的setstylesheet覆盖掉。(如果在提升控件外设置样式,则提升控件的内部同类样式不生效)2.提升控件,自带一个UI界面的,要在该控件类中补充样式生效代码,详见:
void AddBookingVisitor::paintEvent(QPaintEvent *event)
实现步骤:1、设置setStyleSheet的样式
Btn->setStyleSheet("QToolButton{border:Opx}")
2、设置按钮的尺寸自适应图片大小
Btn->setIconSize(QSize(Btn->width(),Btn->height()))
3、新建QPixmap类,并加载按钮的图片背景图片
QPixmap pixmap(path_image)
Btn->setIcon(QIcon(pixmap))
程序:
widget.cpp
#include "widget.h"
#include "ui_widget.h"
#include "QImage"
Widget::Widget(QWidget *parent) :
QWidget(parent),
ui(new Ui::Widget)
{
ui->setupUi(this)
QImage image
image.load(":/image/6631506470840007614.jpg")
QPalette palette
palette.setBrush(this->backgroundRole(),QBrush(image))
this->setPalette(palette)
setBtnIcon(ui->open, ":/image/open.png")
setBtnIcon(ui->large, ":/image/big.png")
setBtnIcon(ui->litte, ":/image/litte.png")
setBtnIcon(ui->next, ":/image/next.png")
setBtnIcon(ui->previous, ":/image/previous.png")
setBtnIcon(ui->normal, ":/image/normal.png")
setBtnIcon(ui->recovery, ":/image/recover.png")
setBtnIcon(ui->start, ":/image/start.png")
setBtnIcon(ui->stop, ":/image/stop.png")
setBtnIcon(ui->rotate, ":/image/zhuan.png")
setBtnIcon(ui->open, ":/image/open.png")
}
Widget::~Widget()
{
delete ui
}
void Widget::setBtnIcon(QToolButton *Btn, const QString &path_image)
{
Btn->setStyleSheet("QToolButton{border:Opx}")
Btn->setIconSize(QSize(Btn->width(),Btn->height()))
QPixmap pixmap(path_image)
Btn->setIcon(QIcon(pixmap))
}
2、widget.h
#ifndef WIDGET_H
#define WIDGET_H
#include <QWidget>
#include "QToolButton"
#include "QLabel"
#include "QTimer"
#include "QString"
#include "QPixmap"
#include "QPalette"
#include "QMatrix"
namespace Ui {
class Widget
}
class Widget : public QWidget
{
Q_OBJECT
public:
explicit Widget(QWidget *parent = 0)
~Widget()
private:
void setBtnIcon(QToolButton *Btn, const QString &path_image)
private:
Ui::Widget *ui
}
#endif // WIDGET_H
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)