QLabel 设置背景色

两种方法:

1.通过QPalette设置:

//颜色对话框获取颜色
QColor clr = QColorDialog::getColor(Qt::red,this,tr("颜色对话框"));
//获取Label调色板
QPalette palette = ui->labColor->palette();
//修改背景色
palette.setColor( QPalette::Background, clr);
ui->labColor->setAutoFillBackground(true);
//重新加载调色板
ui->labColor->setPalette(palette);

2.通过setStyleSheet方法修改背景色:

//颜色对话框获取颜色
QColor clr = QColorDialog::getColor(Qt::red,this,tr("颜色对话框"));
//格式化style sheet,背景色设置
QString str = QString("QLabel{background:%1;}").arg(clr.name(QColor::HexRgb));
//setStyleSheet 
ui->labColor->setStyleSheet(str);

  • 0
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
可以通过继承 QLabel 类来实现自定义 QLabel,然后可以通过以下方法设置背景颜色、文字颜色和滚动效果。 设置背景颜色: 可以通过 `setStyleSheet` 方法设置样式表来实现设置背景颜色,示例代码如下: ```cpp class MyLabel : public QLabel { public: MyLabel(QWidget* parent = nullptr); private: void init(); }; MyLabel::MyLabel(QWidget* parent) : QLabel(parent) { init(); } void MyLabel::init() { setStyleSheet("background-color: red;"); } ``` 设置文字颜色: 可以通过 `setStyleSheet` 方法设置样式表来实现设置文字颜色,示例代码如下: ```cpp class MyLabel : public QLabel { public: MyLabel(QWidget* parent = nullptr); private: void init(); }; MyLabel::MyLabel(QWidget* parent) : QLabel(parent) { init(); } void MyLabel::init() { setStyleSheet("color: blue;"); } ``` 设置文字滚动: 可以通过继承 `QLabel` 类,并重写 `paintEvent` 方法来实现文字滚动效果,示例代码如下: ```cpp class MyLabel : public QLabel { public: MyLabel(QWidget* parent = nullptr); private: void init(); void paintEvent(QPaintEvent *ev) override; QTimer* timer; int pos = 0; }; MyLabel::MyLabel(QWidget* parent) : QLabel(parent) { init(); } void MyLabel::init() { setText("Hello World!"); timer = new QTimer(this); connect(timer, &QTimer::timeout, [this](){ if (pos == width()) { pos = -fontMetrics().width(text()); } else { pos++; } update(); }); timer->start(10); } void MyLabel::paintEvent(QPaintEvent *ev) { QPainter painter(this); painter.drawText(pos, 0, text()); } ``` 以上代码通过重写 `paintEvent` 方法来实现文字滚动效果,每隔一定时间更新 `pos` 变量的值,然后重新绘制 `QLabel` 即可。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值