织梦网站如何做移动端,惠州 家具 网站上线,dedecms 生成网站地图,wordpress迁移后栏目打开404网页右下角上经常会出现一些提示性的信息#xff0c;B/S有的东西#xff0c;C/S当然也可以有#xff0c;就像QQ的消息提示一样#xff01; 实现一个类似的东西并不困难#xff0c;只要想明白原理实现起来就很简单了#xff01; 实现原理#xff1a; #xff08;1#…网页右下角上经常会出现一些提示性的信息B/S有的东西C/S当然也可以有就像QQ的消息提示一样 实现一个类似的东西并不困难只要想明白原理实现起来就很简单了 实现原理 1显示右下角缓慢弹出定时器启动逐渐改变位置即可到达相应位置停止计时器
2驻留定时器启动让界面停留一定的时间相应的时间过后停止定时器
3退出可以直接退出也可以采用改变透明度的形式模糊退出
标题栏
#include message_title.h
#include setting.h
MessageTitle::MessageTitle(QWidget *parent): QWidget(parent)
{setFixedHeight(30);title_label new QLabel();close_button new PushButton();layout new QHBoxLayout(); title_label-setObjectName(QString::fromUtf8(labelOne));QFont title_font title_label-font();title_font.setBold(true);title_label-setFont(title_font);close_button-loadPixmap(tipclose);close_button-setToolTip(tr(close));layout-addWidget(title_label);layout-addStretch();layout-addWidget(close_button);layout-setMargin(0);setLayout(layout);connect(close_button, SIGNAL(clicked()), this, SIGNAL(myClose()));
}
void MessageTitle::paintEvent(QPaintEvent *)
{QLinearGradient linear(rect().topLeft(), rect().bottomRight());linear.setColorAt(0, QColor(55, 135, 215));linear.setColorAt(0.5, QColor(140, 120, 185));linear.setColorAt(1, QColor(55, 135, 215));QPainter painter(this);painter.setBrush(QBrush(linear));painter.setPen(Qt::NoPen);painter.drawRect(rect());
}
void MessageTitle::setTitleText(QString title)
{title_label-setText(title);
} 弹出框界面#include message_widget.hMessageWidget::MessageWidget(QWidget *parent): QWidget(parent)
{setFixedSize(300, 180);setWindowFlags(Qt::FramelessWindowHint | Qt::WindowStaysOnTopHint);message_title new MessageTitle();content_label new QLabel();icon_label new QLabel();timer_show new QTimer(this);timer_stay new QTimer(this);timer_close new QTimer(this);time_count 0;transparent 1.0;desktop_height QApplication::desktop()-height();icon_label-setFixedSize(64, 64);content_label-setWordWrap(true);content_label-setAlignment(Qt::AlignTop);QVBoxLayout *v_layout new QVBoxLayout();v_layout-addWidget(icon_label);v_layout-addStretch();QVBoxLayout *v_layout2 new QVBoxLayout();QSpacerItem *spacerItem new QSpacerItem(20, 20, QSizePolicy::Minimum, QSizePolicy::Minimum);v_layout2-addSpacerItem(spacerItem);v_layout2-addWidget(content_label);QHBoxLayout *h_layout new QHBoxLayout();h_layout-addLayout(v_layout);h_layout-addLayout(v_layout2);QMargins margins h_layout-contentsMargins();margins.setTop(20);margins.setLeft(10);margins.setRight(10);h_layout-setContentsMargins(margins);QVBoxLayout *main_layout new QVBoxLayout();main_layout-setMargin(0);main_layout-addWidget(message_title);main_layout-addLayout(h_layout);setLayout(main_layout);connect(timer_show, SIGNAL(timeout()), this, SLOT(myMove()));connect(timer_stay, SIGNAL(timeout()), this, SLOT(myStay()));connect(timer_close, SIGNAL(timeout()), this, SLOT(myClose()));connect(message_title, SIGNAL(myClose()), this, SLOT(close()));
}void MessageWidget::showMsg(QString title, QString content)
{QPixmap pixmap(:/icon/win);icon_label-setPixmap(pixmap);message_title-setTitleText( title);content_label-setText( content);this-showMessage();
}void MessageWidget::paintEvent(QPaintEvent *)
{QBitmap bitmap(this-size());bitmap.fill(Qt::white);QPainter painter(this);painter.setBrush(QBrush(QColor(250, 240, 230)));painter.setPen(QPen(QBrush(QColor(55, 135, 215)), 6));painter.drawRoundedRect(bitmap.rect(), 5, 5);setMask(bitmap);
}
void MessageWidget::showMessage()
{time_count 0;transparent 1.0;desktop_height QApplication::desktop()-height();timer_show-stop();timer_stay-stop();timer_close-stop();setWindowOpacity(1);QDesktopWidget *desktop QApplication::desktop();desk_rect desktop-availableGeometry();normal_point.setX(desk_rect.width() - rect().width());normal_point.setY(desk_rect.height() - rect().height());move(normal_point.x(), normal_point.y());showNormal();timer_show-start(5);
}void MessageWidget::myMove()
{desktop_height--;move(normal_point.x(), desktop_height);if(desktop_height normal_point.y()){timer_show-stop();timer_stay-start(1000);}
}void MessageWidget::myStay()
{time_count;if(time_count 9){timer_stay-stop();timer_close-start(200);}
}void MessageWidget::myClose()
{transparent - 0.1;if(transparent 0.0){timer_close-stop();this-close();}else{setWindowOpacity(transparent);}
}