Qt 4:移动没有标题栏的窗口
Posted
技术标签:
【中文标题】Qt 4:移动没有标题栏的窗口【英文标题】:Qt 4: Move window without title bar 【发布时间】:2011-07-27 15:36:54 【问题描述】:我有一个带有Qt::Popup
标记的窗口(没有标题栏和关闭等按钮),我想通过拖动\单击非标题栏区域来移动....
在 Win32 上,解决方案可能是 WM_NCLBUTTONDOWN,但我的要求是跨平台。
【问题讨论】:
【参考方案1】:试试这个手动移动窗口:
void PopupWindow::mousePressEvent(QMouseEvent *event)
mpos = event->pos();
void PopupWindow::mouseMoveEvent(QMouseEvent *event)
if (event->buttons() & Qt::LeftButton)
QPoint diff = event->pos() - mpos;
QPoint newpos = this->pos() + diff;
this->move(newpos);
并在某处声明QPoint mpos
。
【讨论】:
【参考方案2】:if (event->buttons() && Qt::LeftButton)
这个条件对每个鼠标按钮都成立
也许你记住了这一点
if (event->buttons() & Qt::LeftButton)
【讨论】:
以上是关于Qt 4:移动没有标题栏的窗口的主要内容,如果未能解决你的问题,请参考以下文章
Qt---去掉标题栏后,最大化应用程序窗口时,窗口遮住了任务栏的问题