• 1178阅读
  • 2回复

[提问]qt在ubuntu22.04中使用move函数无法移动窗口? [复制链接]

上一主题 下一主题
离线nylingying
 

只看楼主 倒序阅读 楼主  发表于: 2023-11-12
qt 在ubuntu22.04中使用move函数无法移动窗口,哪们知道是怎么回事吗?

void MainWindow::mousePressEvent(QMouseEvent *event)
{
    if( event->button() == Qt::LeftButton)
    {
        mousePress = true;
        mousePoint = event->globalPos() - this->pos();
    }
}

void MainWindow::mouseReleaseEvent(QMouseEvent *event)
{
    mousePress = false;
}
void MainWindow::mouseMoveEvent(QMouseEvent *event)

{
    if ( mousePress )
    {
        move( event->globalPos() - mousePoint);
    }
}
move函数在这里无效,鼠标无法拖动窗口,在window下没发现问题
离线20091001753

只看该作者 1楼 发表于: 2023-11-12
Qt/C++开发经验小技巧286-290
http://www.qtcn.org/bbs/read-htm-tid-91882.html

  1. 287. 现在很多linux用wayland作为桌面显示,这样会出现一个问题,由于没有坐标系统,导致无边框窗体无法拖动和定位(一般是Qt6开始强制默认优先用wayland,之前Qt5是默认有xcb则优先用xcb),你需要在main函数前面加一行 qputenv("QT_QPA_PLATFORM", "xcb");



(づ ̄ 3 ̄)づ
离线liudianwu

只看该作者 2楼 发表于: 2023-11-13
回 20091001753 的帖子
20091001753:
Qt/C++开发经验小技巧286-290
http://www.qtcn.org/bbs/read-htm-tid-91882.html
  1. 287. 现在很多linux用wayland作为桌面显示,这样会出现一个问题,由于没有坐标系统,导致无边框窗体无法拖动和定位(一般是Qt6开始强制默认优先用wayland,之前Qt5是默认有xcb则优先用xcb),你需要在main函数前面加一行 qputenv("QT_QPA_PLATFORM", "xcb");

.......

卧槽大佬牛逼   右下角选择Ubuntu on Xorg。




欢迎关注微信公众号:Qt实战/Qt入门和进阶(各种开源作品、经验整理、项目实战技巧,专注Qt/C++软件开发,视频监控、物联网、工业控制、嵌入式软件、国产化系统应用软件开发) QQ:517216493  WX:feiyangqingyun  QQ群:751439350
快速回复
限100 字节
 
上一个 下一个