QT取消标题栏,如何实现窗口移动

简介: QT取消标题栏,如何实现窗口移动

qt自带的标题栏在多个平台都显示的不一样,而且在常用的window平台也非常的不好看,所以我们经常会用到的美化方式就是会取消标题栏的显示,但是取消标题栏的显示就会出现一个问题就是无法实现窗口的移动,所以这里给出一个方法实现左键按压窗口控件任意地方来实现窗口的移动,下面我们直接看代码和使用方法即可。

// 窗体移动方法重载eventFilter函数
bool Widget::eventFilter(QObject *watched, QEvent *evt)
{
    static QPoint mousePoint;
    static bool mousePressed = false;
    QMouseEvent *event = static_cast<QMouseEvent *>(evt);
    if (event->type() == QEvent::MouseButtonPress) {
        if (event->button() == Qt::LeftButton) {
            mousePressed = true;  // 左击事件跟随鼠标移动窗口位置
            mousePoint = event->globalPos() - this->pos();
            return true;
        } else {
//            exit(0);// 右击事件直接退出程序
        }
    } else if (event->type() == QEvent::MouseButtonRelease) {
        mousePressed = false;
        return true;
    } else if (event->type() == QEvent::MouseMove) {
        if (mousePressed && (event->buttons() && Qt::LeftButton)) {
            this->move(event->globalPos() - mousePoint);
            return true;
        }
    }
    return QWidget::eventFilter(watched, event);
}

使用方法:将最大的窗口重载上我们写的方法上面就可以了

this->setWindowFlags(Qt::FramelessWindowHint | Qt::WindowSystemMenuHint | Qt::WindowMinimizeButtonHint);//取消标题栏的显示
ui->tabWidget->installEventFilter(this);// 重载主窗口控件的eventfilter方法来实现移动。


相关文章
|
2月前
|
算法 API C++
【Qt UI】QT 窗口/控件置顶方法详解
【Qt UI】QT 窗口/控件置顶方法详解
56 0
|
API 计算机视觉
Qt实用技巧:自定义窗口标题栏
Qt实用技巧:自定义窗口标题栏
Qt实用技巧:自定义窗口标题栏
|
6月前
|
C语言 Python
PyQt5-如何设置应用和窗口的图标?控件的提示信息如何设置?
PyQt5-如何设置应用和窗口的图标?控件的提示信息如何设置?
31 1
|
4月前
|
C++
QT 重写控件(QPushButton为例)实现背景图片的切换和鼠标样式切换
一般在QT开发中,使用setCursor()给控件设置鼠标的样式效果(一般是手型和箭头的切换),一般情况下,这个函数也是起作用的,但是一旦调用了全局QApplication::setOverrideCursor()设置鼠标效果后,在使用setCursor给控件设置鼠标样式就不起效果了,这是QT的机制
83 0
|
4月前
Qt 控件大小随着窗口的大小而变化设置
Qt 控件大小随着窗口的大小而变化设置
63 0
|
11月前
Qt设置窗口可拖动
Qt设置窗口可拖动
154 0
|
6月前
|
数据可视化
PyQt5-如何设置主窗口居中?退出应用程序如何操作?
PyQt5-如何设置主窗口居中?退出应用程序如何操作?
46 0
Qt隐藏系统标题栏,使用自定义标题栏
Qt隐藏系统标题栏,使用自定义标题栏
Qt隐藏系统标题栏,使用自定义标题栏
PyQt5 技术篇-窗口名、窗口图标的设置方法。
PyQt5 技术篇-窗口名、窗口图标的设置方法。
752 0
PyQt5 技术篇-窗口名、窗口图标的设置方法。
PyQt5 技巧篇-窗口置顶设置,如何使窗口始终显示在最前面
PyQt5 技巧篇-窗口置顶设置,如何使窗口始终显示在最前面
1931 0

热门文章

最新文章