日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

Qt 自定义界面(实现无边框、可移动)

發布時間:2025/3/15 编程问答 29 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Qt 自定义界面(实现无边框、可移动) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

設置窗口標志為無邊框

this->setWindowFlags(Qt::FramelessWindowHint);

設置無邊框之后,窗體是無法移動的,下面我們介紹兩種方式來進行移動。

1. Qt事件:重寫函數

// 鼠標相對于窗體的位置 event->globalPos() - this->pos() void Widget::mousePressEvent(QMouseEvent *event) {if (event->button() == Qt::LeftButton){m_bPressed = true;m_point = event->pos();} }// 若鼠標左鍵被按下,移動窗體位置 void Widget::mouseMoveEvent(QMouseEvent *event) {if (m_bPressed)move(event->pos() - m_point + pos()); }// 設置鼠標未被按下 void Widget::mouseReleaseEvent(QMouseEvent *event) {Q_UNUSED(event);m_bPressed = false; }

2.Win API

包含頭文件與需要用到的庫

#ifdef Q_OS_WIN #pragma comment(lib, "user32.lib") #include <qt_windows.h> #endif

發送系統消息,進行移動

void Widget::mousePressEvent(QMouseEvent *event) { #ifdef Q_OS_WINif (ReleaseCapture())SendMessage(HWND(winId()), WM_SYSCOMMAND, SC_MOVE + HTCAPTION, 0);event->ignore(); #else #endif }



總結

以上是生活随笔為你收集整理的Qt 自定义界面(实现无边框、可移动)的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。