提要
qt设置不规则按钮的样式,并要求不规则按钮能够适应不同的分辨率,分为同比例的分辨率,如16:9,也可以为不同比例的的分辨率,如之前为16:9,同时适应16:5的分辨率。在设置不规则按钮时背景图片的缩放模式就会有不同。
实现
简单实现不规则的按钮
QPixmap pixmap;
pixmap.load(":/new/prefix1/淳中切图2/切图1/复位.png");
pixmap = pixmap.scaled(QSize(90,24),Qt::IgnoreAspectRatio);//使图片放大和控件一样大小,控件已经按照长宽比自适应分辨率2021-4-14
ui->resetBtn->setFixedSize(pixmap.size());
bit = pixmap.mask();
ui->resetBtn->setMask(bit);
//加载按钮的背景图片
ui->resetBtn->setStyleSheet("QPushButton{border-image: url(:/new/prefix1/淳中切图2/切图1/复位.png);"
"border:none;font-size: 18px;font-family: Microsoft YaHei;"
"font-weight: 400;color: #FFFFFF;line-height: 30px;}"
"QPushButton:pressed{border-image: url(:/new/prefix1/淳中切图2/切图1/复位-选中.png);"
"font-size: 38px;font-family: Microsoft YaHei;"
"font-weight: 400;color:rgba(255, 255, 255, 0.8);line-height: 30px;}");
要是都是16:9的分辨率,在设置图片的缩放比时可以将缩放模式设置为Qt::KeepAspectRatio。这样就会保留图片原有的长宽比。
但是对于分辨率不是同一比值的,采用的将图片放大到指定的大小,忽略原来的尺寸比。这里缩放的模式采用Qt::IgnoreAspectRatio忽略原有的尺寸比。