QT widget设置半透明的问题
大家好,我按照别的程序做了一个小闹钟。 现在想把他的背景颜色设置为半透明色,可是看了很久,也没有设置从成功。
源代码如下,大家帮我看看是怎么回事,谢谢了!!! (注释部分是我不停的测试用的)
#include <QTime>
#include <QTimer>
#include <QMouseEvent>
DIgiClock::DIgiClock(QWidget *parent) :
QLCDNumber(parent)
{
resize(250,60);
QPalette p=palette(); //调色板
p.setColor(QPalette::Window,Qt::blue);
p.setColor(QPalette::Background, QColor(0x00,0xff,0x00,0x00));
setPalette(p);
setWindowFlags(Qt::FramelessWindowHint);//去掉边框。
setNumDigits(8);//设置
// setWindowOpacity(0.7);
// setAttribute(Qt::WA_TranslucentBackground, true);
//setAttribute(Qt::WA_TranslucentBackground);
QTimer *timer=new QTimer(this);
connect(timer,SIGNAL(timeout()),this,SLOT(ShowTime()));
timer->start(500);
ShowTime();
showColon=true;//只是滴答滴答跳到。就是不停取反。
}
void DIgiClock::ShowTime()
{
QTime time=QTime::currentTime();
QString text=time.toString("hh:mm:ss");
if(showColon)
{
text[2]=':'; //因为hh:mm:ss text[2] =':'
text[5]=':';
showColon=false;
}
else
{
text[2]=' ';
text[5]=' ';
showColon=true;
}
display(text);
}
void DIgiClock::mousePressEvent(QMouseEvent *event)
{
if(event->button()==Qt::LeftButton)
{
dragPosition=event->globalPos()-frameGeometry().topLeft(); //新位置
event->accept();//子类要了这个事件,如果子类不要,传送到基类
}
else if(event->button()==Qt::RightButton)
{
close();
}
}
void DIgiClock::mouseMoveEvent(QMouseEvent *event)
{
move(event->globalPos()-dragPosition);//两个类也可以相减
event->accept();
}
源代码如下,大家帮我看看是怎么回事,谢谢了!!! (注释部分是我不停的测试用的)
#include "widget.h"#include <QTime>
#include <QTimer>
#include <QMouseEvent>
DIgiClock::DIgiClock(QWidget *parent) :
QLCDNumber(parent)
{
resize(250,60);
QPalette p=palette(); //调色板
p.setColor(QPalette::Window,Qt::blue);
p.setColor(QPalette::Background, QColor(0x00,0xff,0x00,0x00));
setPalette(p);
setWindowFlags(Qt::FramelessWindowHint);//去掉边框。
setNumDigits(8);//设置
// setWindowOpacity(0.7);
// setAttribute(Qt::WA_TranslucentBackground, true);
//setAttribute(Qt::WA_TranslucentBackground);
QTimer *timer=new QTimer(this);
connect(timer,SIGNAL(timeout()),this,SLOT(ShowTime()));
timer->start(500);
ShowTime();
showColon=true;//只是滴答滴答跳到。就是不停取反。
}
void DIgiClock::ShowTime()
{
QTime time=QTime::currentTime();
QString text=time.toString("hh:mm:ss");
if(showColon)
{
text[2]=':'; //因为hh:mm:ss text[2] =':'
text[5]=':';
showColon=false;
}
else
{
text[2]=' ';
text[5]=' ';
showColon=true;
}
display(text);
}
void DIgiClock::mousePressEvent(QMouseEvent *event)
{
if(event->button()==Qt::LeftButton)
{
dragPosition=event->globalPos()-frameGeometry().topLeft(); //新位置
event->accept();//子类要了这个事件,如果子类不要,传送到基类
}
else if(event->button()==Qt::RightButton)
{
close();
}
}
void DIgiClock::mouseMoveEvent(QMouseEvent *event)
{
move(event->globalPos()-dragPosition);//两个类也可以相减
event->accept();
}
...全文
相关推荐
Qt实现半透明不规则窗体示例
这是Qt实现半透明不规则窗体的一个示例,希望能帮助到需要的朋友
QT实现半透明窗口面板的完整示例
Qt 是一个跨平台的C++应用程序框架,自1991年由奇趣科技公司开发以来,已经成为构建图形用户界面(GUI)应用程序、嵌入式系统以及高度可移植软件的首选工具。Qt的设计哲学基于“写一次,到处运行”的理念,这得益于其独特的元对象编译器(MOC)和信号与槽机制,使得开发者能够以更加灵活和高效的方式编写程序。它提供了一套丰富的API,支持包括但不限于2D/3D图形、数据库、网络、多媒体和并行处理等多种功能。
Qt实现半透明不规则窗体的示例
Qt实现半透明不规则窗体的示例,希望可以帮助到需要的朋友
Qt4 右键菜单 透明Widget 实例
Qt4透明Widget实现 右键菜单实现 小程序源码.
重写QStyle,高端定制QMenu风格样式,仿qq右键菜单
重写QProxyStyle,实现Qmenu的背景半透明效果,边框圆角,菜单项图标定制大小。二级菜单间距调整,菜单项高度调整。菜单项字体设置。


