您的位置:首页 > 编程语言 > Qt开发

Qt圆角窗体+半透明背景+右下角显示(移除窗体标题栏+置顶+不在任务栏显示)

2014-01-13 14:17 323 查看
现在转到Qt这块,很多东西使用起来确实像是到了另一个世界,特别是一些错误起初让人百思不得其解,比如bool类型的全局变量,你如果不先给它初始化一下,后面会出现一些非常莫名其妙的问题,别想当然的认为bool值默认就是false

最近刚好用到了如何对窗体设置圆角,如何设置透明背景,注意这边的透明只影响到窗体的背景,不影响窗体上的控件,还有如何让窗体在屏幕右下角显示,在此做个记录以备后用

setWindowFlags (Qt::Tool | Qt::FramelessWindowHint | Qt::WindowStaysOnTopHint);
setAttribute(Qt::WA_TranslucentBackground);
ui->btnBar->setFlat(true);
ui->btnPie->setFlat(true);

// 获取屏幕尺寸
QDesktopWidget* desktop = QApplication::desktop();
QRect deskRect = desktop->availableGeometry();
//移到右下角显示
move(deskRect.width() - this->width(), deskRect.height() - this->height());


上面这段代码放在构造函数中,其中Qt::Tool表示不在任务栏中显示,后面两个是去掉窗体标题栏以及置顶显示

setFlag(true)去掉按钮边框。

下面这段paintEvent则写出了如何对窗体进行圆角及半透明背景设置,其实也很简单 :)

void ****::paintEvent(QPaintEvent *)
{
QPainter painter(this);

QPainterPath path;
path.addRoundRect(this->rect(), 5); //圆角设置
//半透明背景
painter.fillPath(path, QColor(92, 155, 203, 100));
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: