qt之透明提示框(模拟qq) (非常漂亮)
Qt实现类似QQ的登录失败的提示框,主要涉及窗口透明并添加关闭按钮,以及图标和信息的显示等。
直接上代码:
#include "error_widget.h"
ErrorWidget::ErrorWidget(QWidget *parent)
: QWidget(parent)
{
int width = parent->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);
//如果这个QWidget直接show,是有背景色的,但是如果放到一个父Widget中时,它就没有了效果。添加如下代码后就可以了:
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()));
}
ErrorWidget::~ErrorWidget()
{
Setting::freePointer(ask_label);
Setting::freePointer(msg_label);
Setting::freePointer(close_button);
}
void ErrorWidget::setTipInfo(QString
info)
{
//设置提示信息
ask_label->setText(info);
}
void ErrorWidget::setTipIcon(QPixmap
pixmap)
{
msg_label->setPixmap(pixmap);
}
//关闭按钮主要进行提示框的隐藏
bool ErrorWidget::closeWidget()
{
this->hide();
return true;
}
实现思路:
QQ效果图:

提示框透明,且包含提示图标,关闭按钮等!
所以自己也可以利用Qt中的QWidget创建一个提示框,在构建的时候设置背景透明,但是进行窗口隐藏,使用hide()(之所以隐藏是因为登录的时候不显示,只有在登录失败的时候才显示,即调用show()),再登录失败之后调用setTipIcon(QPixmap
pixmap)设置图标和setTipInfo(QString info)设置提示信息即可。
//进行错误提示
QPixmap pixmap =
QPixmap(":/icon/errortip");
error_widget->setTipIcon(pixmap);
error_widget->setTipInfo(info);
if(error_widget->isHidden())
{
error_widget->show();
}
效果图:

字体颜色样式什么的都可以自行设置,主要是实现的思路!愿大家共勉。
http://blog.sina.com.cn/s/blog_a6fb6cc90101az3h.html
qt之透明提示框(模拟qq) (非常漂亮)的更多相关文章
- Qt之透明提示框
简述 经常使用企鹅的小伙伴一定对登录失败的提示框很熟悉,主要涉及窗口透明并添加图标.提示信息.关闭按钮的显示等. 我们可以利用QWidget创建一个提示框,然后通过样式设置我们想要的效果. 简述 效果 ...
- Qt之等待提示框(QMovie)
简述 关于gif的使用在实际项目中我用的并不多,因为我感觉瑕疵挺多的,很多时候锯齿比较严重,当然与图存在很大的关系. 关于生成gif的方法可以提供一个网站preloaders,基本是可以满足需求的. ...
- Qt之等待提示框(QTimer)
简述 上节讲述了关于QPropertyAnimation实现等待提示框的显示,本节我们使用另外一种方案来实现-使用定时器QTimer,通过设置超时时间定时更新图标达到旋转效果. 简述 效果 资源 源码 ...
- Qt之等待提示框(QPropertyAnimation)
简述 之前分享过QLabel可以通过QMovie播放gif图片,可以实现等待提示框,今天主要使用动画QPropertyAnimation来进行实现! 数据加载的时候,往往都需要后台线程进行数据请求,而 ...
- Qt之等待提示框三(QLabel进行多图片切换)
之前分享过的等待提示框有用QMovie播放gif图片实现的,也有纯代码实现的,今天再次分享另一种实现方式,如题目所示:QLabel进行图片的切换! 进行用户登录的时候,往往都需要后台线程进行用 ...
- Qt实现冒泡提示框
通过QLabel创建类似冒泡方式的提示框(提示框显示位置为父类控件居中位置,具体可根据需要自行修改),鼠标停留提示框界面时查看信息,离开时自动淡化消失的效果: 头文件定义 #ifndef _TTipW ...
- Qt之QProgressIndicator(等待提示框)
简述 很早以前在网上看到一个纯代码实现的旋转动画感觉效果很不错,分享给大家.不得不说,条条大道通罗马,我们需要更多地创造... 详见:QProgressIndicator 简述 效果 源码 使用 更多 ...
- Android简易实战教程--第二十二话《自定义组合控件模拟qq登录下拉框和其中的一些”小技巧”》
转载此文章请注明出处:点击打开链接 http://blog.csdn.net/qq_32059827/article/details/52313516 首先,很荣幸此专栏能被CSDN推荐到主页.荣 ...
- wpf实现仿qq消息提示框
原文:wpf实现仿qq消息提示框 版权声明:本文为博主原创文章,未经博主允许不得转载. https://blog.csdn.net/huangli321456/article/details/5052 ...
随机推荐
- c/c++中主线程退出,子线程也会退出
#include <windows.h> #include <process.h> /* _beginthread, _endthread */ #include <io ...
- ubuntu cron.hourly不运行
服务器没有装NTP,要每天向特定的server进行时间同步,写了一个定时任务,放在/etc/cron.daily下,但是不运行. /etc/crontab文件: # /etc/crontab: sys ...
- ffmpeg 发布hls流
本来主要讲述如何利用ffmpeg将输入视频流通过转码的方式转成m3u8文件.如何通过http的方法将切边推送给客户端,不在本文中讲述. 输入视频流可以是rtsp流,也可以是http,还可以是文件等等. ...
- 防止IE7,8进入怪异模式
在页头添加 <meta http-equiv="X-UA-Compatible" content="IE=edge" />
- Netty 对通讯协议结构设计的启发和总结
Netty 通讯协议结构设计的总结 key words: 通信,协议,结构设计,netty,解码器,LengthFieldBasedFrameDecoder 原创 包含与机器/设备的通讯协议结构的设计 ...
- 设计模式之适配器模式(Adapter)
适配器模式原理:适配器模式属于结构型模式,主要作用是完成功能的转换, 1.通过一个类继承目标类. 2.需要适配的类 3.适配器 代码如下: #include <iostream> usin ...
- 【BZOJ】【3210】花神的浇花集会
曼哈顿距离与切比雪夫距离 QAQ蒟蒻并不知道切比雪夫距离是什么……并不会做这道题…… 去膜拜了PoPoQQQ大爷的题解: 题目大意:给定平面上的n个点,求一个点到这n个点的切比雪夫距离之和最小 与31 ...
- nodeJs 初探 ~
今天晚上,开始时间了一下nodejs,跟着 Node入门 一步步的往下走.对node开发也有了初步的了解. 期间没有碰到什么问题,只有在最后的时候,碰到了几个问题.在这里记录一下: 1 . cross ...
- 使用WCF服务的客户端出现maxReceivedMessageSize异常
使用WCF服务的客户端出现maxReceivedMessageSize异常解决方案 当使用WCF的客户端调取的数据过多时,会出现这个异常.一般情况下,系统默认值是65536,大约容纳100-200条左 ...
- Codeforces Round #283 (Div. 2)
A:暴力弄就好,怎么方便怎么来. B:我们知道最多加10次, 然后每次加1后我们求能移动的最小值,大概O(N)的效率. #include<bits/stdc++.h> using name ...