qt-----去除邊框和設置透明+移動

QT程序去掉標題欄邊框:
在構造函數裏面添加
setWindowFlags(Qt::FramelessWindowHint); //去除邊框
this->setAttribute(Qt::WA_TranslucentBackground); //透明設置

QT程序去掉標題欄後我又哭了,因爲它不能移動了,這就有點操蛋了,於是我就百度了一下,參照了別人的做法,最後實現了無標題欄窗口的移動,順便記錄下來。具體方法如下:

(1)在頭文件中添加如下代碼:

include

{
protected:
void mousePressEvent(QMouseEvent *e);
void mouseMoveEvent(QMouseEvent *e);
void mouseReleaseEvent(QMouseEvent *e);
private:
QPoint last;
}
(2)在.cpp文件中重寫鼠標的這三個函數:
void Gigdialog::mousePressEvent(QMouseEvent *e)
{
last=e->globalPos();
}
void Gigdialog::mouseMoveEvent(QMouseEvent *e)
{
int dx = e->globalX() - last.x();
int dy = e->globalY() - last.y();
last = e->globalPos();
move(x()+dx, y()+dy);
}
void Gigdialog::mouseReleaseEvent(QMouseEvent *e)
{
int dx = e->globalX() - last.x();
int dy = e->globalY() - last.y();
move(x()+dx, y()+dy);
}

(3)這樣沒有標題欄的窗體就能移動啦!

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章