Qt 技巧:去除对话框边框 + 设置窗口可移动和透明

1、去除对话框标题栏和边框

在构造函数里设置:
    this->setWindowFlags(Qt::FramelessWindowHint);

Qt::Dialog     (按照对话框的形式创建窗口--帮助/关闭)
Qt::Window  (按照正常窗口的形式创建窗口--最大化/最小化/关闭)

2、窗口可移动

去除边框会造成窗口不可移动,可以通过以下方法来解决:

自定义鼠标按下事件和鼠标移动事件:

void yourwindow::mousePressEvent(QMouseEvent *event)

{

this->windowPos = this->pos();                // 获得部件当前位置

this->mousePos = event->globalPos();     // 获得鼠标位置

this->dPos = mousePos - windowPos;       // 移动后部件所在的位置

}

void yourwindow::mouseMoveEvent(QMouseEvent *event)

{

this->move(event->globalPos() - this->dPos);

}

3、设置窗口透明

在构造函数中添加:

    this->setAttribute(Qt::WA_TranslucentBackground);

http://blog.csdn.net/jan5_reyn/article/details/38955695

时间: 2024-10-14 07:36:08

Qt 技巧:去除对话框边框 + 设置窗口可移动和透明的相关文章

Qt 之 设置窗口边框的圆角(使用QSS和PaintEvent两种方法)

Qt在设置窗口边框圆角时有两种方式,一种是设置样式,另一种是在paintEvent事件中绘制窗口.下面分别叙述用这两种方式来实现窗口边框圆角的效果. 一.使用setStyleSheet方法 this->setStyleSheet(“QWidget{border-top-left-radius:15px;border-top-right-radius:5px;}”)); 使用的主要是使用border-radius 属性,关于这个属性,可选的样式有 border-top-left-radius 设置

QT窗口置顶/真透明/背景模糊/非矩形/跳过任务栏分页器/无边框/无焦点点击/焦点穿透

qt 窗口置顶/真透明/背景模糊/非矩形/跳过任务栏分页器/无边框/无焦点点击/焦点穿透 窗口置顶qt 里是 setWindowFlags(Qt::WindowStaysOnTopHint)kde 里是 KWindowSystem::setState(winId(), NET::KeepAbove)这样的置顶窗口不会处于全屏窗口的上方,如果需要真正的置顶,setWindowFlags(Qt::X11BypassWindowManagerHint) 可无视这个规则,但这样不会出现任务栏等,kimt

Qt5.3中qml ApplicationWindow设置窗口无边框问题

这个版本的qt在这里有点bug.. 设置ApplicationWindow的flags属性为Qt.FramelessWindowHint的确可以使程序无边框,但是同时程序在任务栏的图标也没了. 看文档发现 ApplicationWindow 是由 QQuickWindow 实现的,QQuickWindow 又继承于 QWindw. 直接创建一个QWindow对象实验了一下,代码如下 QWindow window; window.setFlags( Qt::FramelessWindowHint

Qt QGroupBox StyleSheet 边框设置

/**************************************************************************** * Qt QGroupBox StyleSheet 边框设置 * 声明: * 之前陈颖奇问到这个效果要怎么做出来,查了点资料后直接给他了,自己没有 * 进行相关测试,现在貌似自己要用到这个功能,于是再次查资料并自己验证其功能 * 效果. * * 2015-12-25 深圳 南山平山村 曾剑锋 *************************

WPF 窗口去除顶部边框(正宗无边框)

原文:WPF 窗口去除顶部边框(正宗无边框) 最近在做一个大屏展示视频图片的项目,功能并不复杂,半天的工作量吧,一开始同事采用的Unity3D进行开发,但是里面要播放4K视频,Unity 的短板就是视频的播放了,今晚就要交付了,我一早就来公司,决定用WPF重新开发一版,各项功能都好了,唯独顶部总是显示一条白色的边,已经设置WindowStyle为None了也没用,幸得网上大神提供的资料,终于解决了这个小问题. XAML内容如下: <Window x:Class="WPF_VideoPlay

Qt设置窗口的初始大小(使用sizeHint这个虚函数)

我们用qt创建一个窗口,先后显示它,代码如下: class Mywindow : public QMainWindow{ ..... } int main( int argc, char** argv ) { QApplication app( argc, argv ); Mywindow wind; wind.show(); return app.exec();} 发现窗口很小,查看它的方法,以及他的父类widget的方法,发现有个方法像是设置其初始大小的,setBaseSize,调用这个方法

C# WPF 设置窗口无边框

<Window xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" AllowsTransparency="True" WindowStyle="None" > AllowsTransparency="True&quo

Qt 设置窗口居中显示和窗体大小

设置窗口居中显示 方法一:在窗口(QWidget类及派生类)的构造函数中添加如下代码: #include <QDesktopWidget> //....... QDesktopWidget* desktop = QApplication::desktop(); // =qApp->desktop();也可以 move((desktop->width() - this->width())/2, (desktop->height() - this->height())

QT学习 之 对话框 (四) 字体对话框、消息对话框、文件对话框、进程对话框(超详细中文注释)

QMessageBox类: 含有Question消息框.Information消息框.Warning消息框和Critical消息框等 通常有两种方式可以来创建标准消息对话框: 一种是采用“基于属性”的API,一种是使用QMessageBox的静态方法. 后者书写容易,但缺少灵活性,针对用户给出的提示的信息不够丰富,并且不能自定义消息对话框里面的按钮提示信息.因此推荐第一种写法. [cpp] view plaincopy <span style="font-size:18px;"&