qt之透明提示框

    int width = this->width();
    this->resize(width, 28);
    this->setWindowFlags(Qt::FramelessWindowHint);//设置标题栏隐藏
    QPalette palette;//设置背景色
    QColor color(190, 230, 250);
    color.setAlphaF(0.6);
    palette.setBrush(this->backgroundRole(), color);
    this->setPalette(palette);

    this->setAutoFillBackground(true);

   //构建关闭按钮
    close_button = new QToolButton(this);
    QPixmap close_pix = style()->standardPixmap(QStyle::SP_TitleBarCloseButton);
    close_button->setIcon(close_pix);
    close_button->setStyleSheet("QToolButton{background-color:transparent;}");

    //获取主界面的宽度
    int height = this->height();
    close_button->setGeometry(width - 20, 0, 20, 20);
    //设置提示图片
    msg_label = new QLabel(this);
    msg_label->setGeometry(QRect(5, 5, 20, 20));
    msg_label->setStyleSheet("background-color:transparent;");
    msg_label->setScaledContents(true);
    //设置提示信息
    ask_label = new QLabel(this);
    ask_label->setStyleSheet("background-color:transparent;color:red;");
    ask_label->setGeometry(QRect(30, 0, width - 60, height));
    ask_label->setAlignment(Qt::AlignCenter);
    close_button->setCursor(Qt::PointingHandCursor);
    QObject::connect(close_button, SIGNAL(clicked()), this, SLOT(closeWidget()));


void errorTest::setTipInfo(QString info)
{
    //设置提示信息
    ask_label->setText(QString::fromLocal8Bit(info));
}

void errorTest::setTipIcon(QPixmap pixmap)
{
    msg_label->setPixmap(pixmap);
}

//关闭按钮主要进行提示框的隐藏
bool errorTest::closeWidget()
{
    this->hide();
    return true;
}

下面是引用上面代码的地方:

   //进行错误提示
   QPixmap pixmap = QPixmap(":/icon/errortip");
   error_widget->setTipIcon(pixmap);
   error_widget->setTipInfo(info);
   if(error_widget->isHidden())
   {
    error_widget->show();
   }
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值