【问题标题】:Qt 4: Move window without title barQt 4:移动没有标题栏的窗口
【发布时间】:2011-07-27 15:36:54
【问题描述】:

我有一个带有Qt::Popup 标记的窗口(没有标题栏和关闭等按钮),我想通过拖动\单击非标题栏区域来移动....

在 Win32 上,解决方案可能是 WM_NCLBUTTONDOWN,但我的要求是跨平台。

【问题讨论】:

    标签: qt qt4 window draggable popupwindow


    【解决方案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) {
      

      【讨论】:

        猜你喜欢
        • 2015-08-19
        • 2018-02-25
        • 2015-09-30
        • 1970-01-01
        • 1970-01-01
        • 2011-07-20
        • 2013-03-04
        • 2010-12-04
        • 2012-05-31
        相关资源
        最近更新 更多