91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》
  • 首頁 > 
  • 教程 > 
  • 開發技術 > 
  • python GUI庫圖形界面開發之PyQt5中QMainWindow, QWidget以及QDialog的區別和選擇

python GUI庫圖形界面開發之PyQt5中QMainWindow, QWidget以及QDialog的區別和選擇

發布時間:2020-09-21 12:26:02 來源:腳本之家 閱讀:387 作者:Mengwei_Ren 欄目:開發技術

PyQt中MainWindow, QWidget以及Dialog的區別和選擇

1. Qt界面分類

在Qt Designer設計界面時,首先需要選擇界面模板,主要分為三個類:

  1. Main Window
  2. Widget
  3. Dialog

2. 三種模板的區別(官方文檔介紹)

MainWindow

QMainWindow類提供一個有菜單條、錨接窗口(例如工具條)和一個狀態條的主應用程序窗口。

主窗口通常用在提供一個大的中央窗口部件(例如文本編輯或者繪制畫布)以及周圍菜單、工具條和一個狀態條。QMainWindow常常被繼承,因為這使得封裝中央部件、菜單和工具條以及窗口狀態變得更容易。繼承使創建當用戶點擊菜單項或者工具條按鈕時被調用的槽成為可能。你也可以使用Qt設計器來創建主窗口。我們將簡要地回顧一下有關添加菜單項和工具條按鈕,然后描述QMainWindow自己的便捷。

Widget

QWidget類是所有用戶界面對象的基類。

窗口部件是用戶界面的一個原子:它從窗口系統接收鼠標、鍵盤和其它事件,并且在屏幕上繪制自己的表現。每一個窗口部件都是矩形,并且它們按Z軸順序排列的。一個窗口部件可以被它的父窗口部件或者它前面的窗口部件蓋住一部分。

QWidget有很多成員函數,但是它們中的一些有少量的直接功能:例如,QWidget有一個字體屬性,但是它自己從來不用。有很多繼承它的子類提供了實際的功能,比如QPushButton、QListBox和QTabDialog等等。

Dialog

QDialog是最普通的頂級窗口。

不被嵌入到一個父窗口部件的窗口部件被叫做頂級窗口部件。通常情況下,頂級窗口部件是有框架和標題欄的窗口(盡管如果使用了一定的窗口部件標記,創建頂級窗口部件時也可能沒有這些裝飾。)在Qt中,QMainWindow和和不同的QDialog的子類是最普通的頂級窗口。

一個沒有父窗口部件的窗口部件一直是頂級窗口部件。

3. 如何選擇QMainWindow,QWidget,QDialog

大致理解是:

QMainWindow是完整的窗體,在window上可以加入widget,適合于完整的項目,因為它封裝了toolbar,statusbar,central widget,docking area。

QWidget是raw widget,widget也可以容納其他的widget,但是注意setCentralWidget是只能由mainwindow類調用的。

QDialog派生自QWidget,是頂級窗口,功能也最基礎。

所以功能上QMainWindow > QWidget > QDialog

4. 在PyQt中初始化類的區別

QMainWindow

from test.py import Ui_MainWindow #通過pyuic產生的test.py中生成類
class mywindow(QMainWindow,Ui_MainWindow):
  def __init__(self,parent = None):
    super(mywindow,self).__init__(parent)
    self.setupUi(self)

QWidget

from test import Ui_Widget 
from PyQt5 import QtWidgets

class mywindow(QtWidgets.QWidget,Ui_Widget):
  def __init__(self,parent = None):
    super(mywindow,self).__init__(parent)
    self.setupUi(self)

本文主要分析介紹了python GUI庫圖形界面開發PyQt5中QMainWindow, QWidget以及QDialog的區別和怎樣選擇選擇,更多關于python GUI庫圖形界面開發PyQt5開發請查看下面的相關鏈接

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

富蕴县| 五原县| 巫山县| 黄浦区| 南通市| 靖安县| 闵行区| 乌恰县| 仁布县| 陈巴尔虎旗| 温泉县| 咸宁市| 双辽市| 定边县| 绥滨县| 阳江市| 曲麻莱县| 宜丰县| 仪陇县| 临汾市| 内乡县| 白朗县| 元氏县| 拜泉县| 宿迁市| 姜堰市| 晋城| 贺兰县| 银川市| 德令哈市| 环江| 西充县| 沙湾县| 赫章县| 广东省| 昔阳县| 文昌市| 德安县| 宜良县| 临沭县| 桑日县|