【发布时间】:2011-07-27 15:36:54
【问题描述】:
我有一个带有Qt::Popup 标记的窗口(没有标题栏和关闭等按钮),我想通过拖动\单击非标题栏区域来移动....
在 Win32 上,解决方案可能是 WM_NCLBUTTONDOWN,但我的要求是跨平台。
【问题讨论】:
标签: qt qt4 window draggable popupwindow
我有一个带有Qt::Popup 标记的窗口(没有标题栏和关闭等按钮),我想通过拖动\单击非标题栏区域来移动....
在 Win32 上,解决方案可能是 WM_NCLBUTTONDOWN,但我的要求是跨平台。
【问题讨论】:
标签: qt qt4 window draggable popupwindow
试试这个手动移动窗口:
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。
【讨论】:
if (event->buttons() && Qt::LeftButton) {
这个条件对每个鼠标按钮都成立
也许你记住了这一点
if (event->buttons() & Qt::LeftButton) {
【讨论】: