QT 窗口设置成无边框并实现拖动
2017-10-17 08:05
465 查看
根据需求需要把窗口设置成无边框的。
因为不熟悉,网上也各种百度,都没成功,最后发现使用一句话就搞定了。
setWindowFlags(Qt::FramelessWindowHint);
OK,这样窗口是无边框了,问题来了。我发现,不能拖动窗口了,它就死在那里不动了。只能重写一些函数了。
在头文件中定义如下:
然后在资源文件中实现该函数:
void QUaFileShowDlg::mousePressEvent(QMouseEvent *event)
{
if (event->button() == Qt::LeftButton)
{
mousePressed = true;
mousePoint = event->pos();
}
}
void QUaFileShowDlg::mouseReleaseEvent(QMouseEvent *)
{
mousePressed = false;
}
void QUaFileShowDlg::mouseMoveEvent(QMouseEvent *event)
{
if (mousePressed && (event->buttons() && Qt::LeftButton))
{
this->move(event->globalPos() - mousePoint);
event->accept();
}
}
这样就可以实现拖动了。
因为不熟悉,网上也各种百度,都没成功,最后发现使用一句话就搞定了。
setWindowFlags(Qt::FramelessWindowHint);
OK,这样窗口是无边框了,问题来了。我发现,不能拖动窗口了,它就死在那里不动了。只能重写一些函数了。
在头文件中定义如下:
void mousePressEvent(QMouseEvent *event); void mouseReleaseEvent(QMouseEvent *); void mouseMoveEvent(QMouseEvent *event); QPoint mousePoint; //鼠标拖动自定义标题栏时的坐标 bool mousePressed; //鼠标是否按下
然后在资源文件中实现该函数:
void QUaFileShowDlg::mousePressEvent(QMouseEvent *event)
{
if (event->button() == Qt::LeftButton)
{
mousePressed = true;
mousePoint = event->pos();
}
}
void QUaFileShowDlg::mouseReleaseEvent(QMouseEvent *)
{
mousePressed = false;
}
void QUaFileShowDlg::mouseMoveEvent(QMouseEvent *event)
{
if (mousePressed && (event->buttons() && Qt::LeftButton))
{
this->move(event->globalPos() - mousePoint);
event->accept();
}
}
这样就可以实现拖动了。
相关文章推荐
- Qt无边框窗口实现拖动和改变大小(修改)
- Qt - QDialog,QWidget实现模态及非模态(模态Widget不能有父窗口,如果设置无边框就不能阻塞父窗口,但是可以强行设置指定Qt::Dialog,还可以setAttribute(Qt::WA_ShowModal),很多讲究)good
- WinForm 无边框窗口 拖动实现
- QT实现拖动没有标题栏的窗口
- WPF下Window设置WindowStyle="None"时实现鼠标拖动移动窗口位置
- Qt中,当QDockWidget的父窗口是一个不可以拖动的QTabWidget的时候实现拖动的方法
- PyQt5实现无边框窗口的标题拖动和窗口缩放
- Qt无边框模态窗口QDialog在点其它窗口时实现闪烁效果
- 隐藏QT窗口边框 并且在隐藏后实现窗口拖拽 同时实现透明度
- Qt/QML窗口阴影边框实现
- QT 实现子控件的透明,可以实现主窗口设置背景皮肤
- C# 实现无边框窗口拖动
- node-webkit无边框窗口用纯JS实现拖动改变大小
- Qt 技巧:去除对话框边框 + 设置窗口可移动和透明
- Qt 创建圆角、无边框、有阴影、可拖动的窗口 good
- Pyqt实现无边框窗口拖动以及窗口大小改变
- Qt去边框,可以实现拉大缩小窗口。
- 可拖动拉伸的左右分栏效果,本例子是用Table以及JS来实现的,左右分栏可改变,拖动中间的边框就可实现宽度的调整,点击时可设置为隐藏左侧列表。
- Qt之无边框自定义最小化、关闭按钮并实现窗口移动
- C# 无边框窗口实现拖动