PyQT5生成無標題欄的介面,Designer篇

2021-10-24 07:51:21 字數 2109 閱讀 4682

網上有很多設定為無標題欄的方法,但都是基於全手寫**的,並沒有針對designer這個gui工具的設定方法。

由於designer生成的介面是繼承自object類的,而網上的方法全是手寫**,並繼承自qmainwindow類或qwidget類的,在designer中並沒有相關的設定項,改py檔案的話,一旦重新生成介面,所做的工作全部白廢,很不方便。

我的做法如下

1 designer生成的介面為main_ui.ui,經過uic工具轉換以後的檔名為main_ui.py

2 新建乙個display_ui.py,開頭增加 from pyqt5.qtcore import qt 這一行

3 從main_ui.ui中再繼承一下,並增加設定無邊框的方法

這樣操作以後,designer中的任何更改,以及再次生成介面檔案,都不再影響功能的實現

**如下:

檔名:main_ui.py

from pyqt5 import qtcore, qtgui, qtwidgets

class

ui_form

(object):

# def setnotittle(self, form):

# form.setwindowflags(qt.framelesswindowhint)

# pass

defsetupui

(self, form)

: form.setobjectname(

"form"

) form.resize(

800,

600)

# form.setwindowflags(qt.framelesswindowhint)

sizepolicy = qtwidgets.qsizepolicy(qtwidgets.qsizepolicy.preferred, qtwidgets.qsizepolicy.preferred)

sizepolicy.sethorizontalstretch(5)

sizepolicy.setverticalstretch(5)

sizepolicy.setheightforwidth(form.sizepolicy(

).hasheightforwidth())

form.setsizepolicy(sizepolicy)

form.setlayoutdirection(qtcore.qt.lefttoright)

self.retranslateui(form)

qtcore.qmetaobject.connectslotsbyname(form)

defretranslateui

(self, form)

: form.setwindowtitle(_translate(

"form"

,"form"

))

from main_ui import

*from pyqt5.qtcore import qt

# 從designer生成的標準檔案結構中的ui_form類繼承,並增加乙個設定方法setnotittle,以設定為無標題欄

class

ui_form_additional

(ui_form)

:def

setnotittle

(self, form)

: form.setwindowflags(qt.framelesswindowhint)

# 設定為無標題欄

pass

if __name__ ==

"__main__"

:import sys

from pyqt5.qtgui import qicon

widget=qtwidgets.qwidget(

) ui=ui_form_additional(

) ui.setnotittle(widget)

ui.setupui(widget)

widget.show())

) self.setwindowflags(qt.qt.framelesswindowhint)

pyqt5生成的APP製作DMG

3.1.1 安裝 3.1.2 配置環境變數 因mac os已預設安裝python2.7,所以還需修改環境變數,使python3.5為python預設使用版本。修改檔案 bash profile,追加如下內容 path library frameworks python.framework versi...

如何移動無標題欄的窗體

方法一 1.在form1類的標頭檔案中宣告wm nchittest訊息的回應過程函式 public user declarations message void fastcall wmnchittest twmnchittest message begin message map message h...

無標題欄對話方塊的拖動

實際上,用滑鼠點住對話方塊背景進行拖動操作並不難,但是你必須了解在標題欄裡拖動視窗的原理。windows首先確定滑鼠點中了那個視窗,然後向那個視窗傳送乙個wm nchittest訊息找出此視窗的哪個 非客戶區 如邊界 最大化 最小化按鈕 選單 標題等等 擁有滑鼠游標。接著預設的視窗過程響應訊息並返回...