QWidget背景设置
来源:互联网 发布:vpn mac版本 编辑:程序博客网 时间:2024/06/05 09:11
上图:
方法1. setStylSheet{"QDialog{background-image:url()"}} //使用styleSheet 这种方法的好处是继承它的dialog都会自动设置背景,例如更换皮肤就是一个不错的选择
方法2. QPalette pal;
pal.setBrush(QPalette::Background,QBrush(QPixmap("")));
this->setPalette(pal);
方法3.在paintEvent(QPaintEvent *)事件中 //这种用于各种自定义控件
QPainter painter(this);
painter.drawPixmap(rect(), QPixmap&);
//设置窗口的背景 QPixmap pixmap(":/icon/background.jpg"); QPalette palette = this->palette(); palette.setBrush(this->backgroundRole(), QBrush(pixmap.scaled(this->size(), Qt::IgnoreAspectRatio, Qt::SmoothTransformation))); this->setPalette(palette);
附:Qt之设置QWidget背景色(QStyleOption->drawPrimitive(QStyle::PE_Widget)方法比较有趣)
QWidget是所有用户界面对象的基类,这意味着可以用同样的方法为其它子类控件改变背景颜色。
Qt中窗口背景的设置,下面介绍三种方法。
1.使用QPalette
2.使用Style Sheet
3.绘图事件
一般我不用QSS设置窗口背景,也不建议使用。(这里是对于窗口而,如果是子部件当然可以)。因为窗口使用QSS设置背景之后,若子部件不使用同样的方式来设置,默认则会继承父窗口的样式。
使用QPalette
使用QPalette来设置背景色
m_pWidget = new QWidget(this);
m_pWidget->setGeometry(0, 0, 300, 100);
QPalette pal(m_pWidget->palette());
pal.setColor(QPalette::Background, Qt::black); //设置背景黑色
m_pWidget->setAutoFillBackground(true);
m_pWidget->setPalette(pal);
m_pWidget->show();
使用Style Sheet
使用样式表来设置背景色,可以参考:Qt Style Sheets文档
m_pWidget = new QWidget(this);
m_pWidget->setGeometry(0, 0, 300, 100);
m_pWidget->setStyleSheet("background-color:black;");
m_pWidget->show();
如果从QWidget子类化一个Widget,为了能够使用样式表则需要为自定义Widget提供paintEvent事件。
void CustomWidget::paintEvent(QPaintEvent *event)
{
Q_UNUSED(event);
QStyleOption opt;
opt.init(this);
QPainter p(this);
style()->drawPrimitive(QStyle::PE_Widget, &opt, &p, this);
}
绘图事件
重写paintEvent,使用QPainter来绘制背景。
void Widget::paintEvent(QPaintEvent *event)
{
Q_UNUSED(event);
QPainter p(this);
p.setPen(Qt::NoPen);
p.setBrush(Qt::black);
p.drawRect(rect());
}
- QWidget 设置背景
- QWidget设置背景颜色
- QWidget背景设置
- 如何设置QWidget的背景颜色
- QWidget的背景颜色和背景图片的设置
- QWidget的背景颜色和背景图片的设置
- QWidget的背景颜色和背景图片的设置
- QWidget的背景颜色和背景图片的设置
- QWidget的背景颜色和背景图片的设置
- qt4.8.4 QWidget 随鼠标移动 与 背景设置
- QWidget中加载QML页面并设置透明背景
- QPushButton QWidget 背景贴图
- QWidget背景(透明)问题
- QWidget背景(透明)问题
- QWidget添加背景
- QWidget背景(透明)问题
- qt中关于QWidget的背景颜色和背景图片的设置
- qt中关于QWidget的背景颜色和背景图片的设置
- 遍历二叉树的神级方法(Morris遍历)
- Python3 在sublime text 的 console输出中文
- linux负载均衡总结
- ubuntu16.04安装vmware后集成显卡如何开启3D加速的问题解决思路
- Codeforces Round #444 (Div. 2) A、B、C
- QWidget背景设置
- Markdown在线编辑器
- Windows 系统安装Composer
- 大数据24小时:基因大数据公司安诺优达获7亿融资,腾讯发布AI助手“腾讯叮当”
- 数据猿专访农信互联魏春:如何在养猪场实现“普惠金融”?
- LINQ体验系列文章导航
- Linux用户管理
- java实现树形展示
- 谈PHP中信息加密技术