qt的widget设置border-image后,图片透明部分显示白色
时间: 2023-02-14 13:35:06 浏览: 445
Qt的Widget是可以设置边框图像的,但是你必须使用QFrame作为容器并为其设置边框图像。在这种情况下,如果图像的透明部分显示为白色,这可能是由于图像格式不正确导致的。Qt只支持PNG图像作为边框图像,并且必须使用32位PNG图像才能正确呈现透明度。所以你应该确保你使用的图像是32位PNG格式的。
相关问题
QT Widget设置背景
QT Widget设置背景的方法有多种。一种方法是通过设置Widget的样式表,使用border-image属性来设置背景图片。例如,可以使用以下代码将背景图片设置为MainButton1.png:
ui->widget->setStyleSheet("border-image:url(://MainButton1.png)");
另一种方法是使用QLabel控件来显示背景图片。可以创建一个QLabel控件,并设置其显示的图片为背景图片。例如,可以使用以下代码将背景图片设置为bg.jpg:
Widget::Widget(QWidget *parent) : QWidget(parent) {
m_lblBg = new QLabel(this);
m_lblBg->setPixmap(QPixmap(":/bg.jpg"));
m_lblBg->setScaledContents(true);
}
void Widget::resizeEvent(QResizeEvent * ev) {
m_lblBg->resize(this->size());
}
在以上两种方法中,都可以通过调整背景图片的大小来适应Widget的大小。
写一段QTWidget美化的qss代码
QWidget {
background-color: #f0f0f0; /*背景颜色*/
border: none; /*去掉边框*/
font-family: Arial; /*字体*/
}
QLineEdit {
background-color: #ffffff; /*输入框的背景颜色*/
border: none; /*去掉边框*/
padding: 5px; /*内边距*/
}
QPushButton {
background-color: #007aff; /*按钮的背景颜色*/
border: none; /*去掉边框*/
color: #ffffff; /*字体颜色*/
padding: 7px 15px; /*内边距*/
border-radius: 5px; /*圆角*/
}
QPushButton:hover {
background-color: #0062cc; /*鼠标移过去后的颜色*/
}
QCheckBox {
padding-left: 20px; /*复选框的距左边的距离*/
}
QCheckBox::indicator {
width: 15px;
height: 15px;
border: none;
border-radius: 3px; /*圆角*/
background-color: #d8d8d8;
}
QCheckBox::indicator:checked {
background-color: #007aff;
}
QComboBox {
background-color: #ffffff;
border: none;
padding: 5px;
border-radius: 5px;
}
QComboBox::drop-down {
border: none;
}
QComboBox::down-arrow {
image: url(arrow_down.png);
}
QComboBox QAbstractItemView {
border: none;
background-color: #ffffff;
}
QComboBox QAbstractItemView::item {
padding: 5px;
}
QLabel {
color: #333333;
font-size: 14px;
}
阅读全文