2013-11-15 36 views
0

我想擺脫窗體頂部的默認按鈕以及窗體的邊框。所以我用以下移動一個具有屬性Qt :: CustomizeWindowHint的QT表單;

w.setWindowFlags(Qt::CustomizeWindowHint); 

這符合我的標準,但現在的問題是我不能移動形式在屏幕上我如何可以解決這個問題有什麼建議?

+0

當用戶可以通過鼠標按下 - 拖放來移動它時,您可以實現表單的拖動功能。 – vahancho

+1

[這個例子](https://qt-project.org/doc/qt-4.8/widgets-shapedclock.html)可能是你需要的。 – thuga

回答

0

您應該設置比CustomizeWindowHint更多的標誌。

如果窗口只是一個小部件: -

w.setWindowFlags(Qt::Widget | Qt::FramelessWindowHint | Qt::CustomizeWindowHint); 

如果它是一個主要窗口: -

w.setWindowFlags(Qt::Window | Qt::FramelessWindowHint | Qt::CustomizeWindowHint); 

否則,如果它是一個對話框: -

w.setWindowFlags(Qt::Dialog | Qt::FramelessWindowHint | Qt::CustomizeWindowHint); 

然後,因爲@vahancho評論說,你需要自己處理拖動窗口,默認情況下,窗口拖動時不會移動,除非這樣做標題欄。