1. 程式人生 > 其它 >PYQT5學習筆記(一)

PYQT5學習筆記(一)

技術標籤:PYQTpython

建立一個主視窗

在這裡插入圖片描述

# 建立一個主視窗
import sys   
from PyQt5.QtWidgets import QMainWindow,QApplication
from PyQt5.QtGui import QIcon
class MainWindow(QMainWindow):
    def __init__(self,parent=None): 
        super(MainWindow,self).__init__(parent)
        self.resize(400, 200) 
        self.status =
self.statusBar() self.status.showMessage("這是狀態列提示", 5000) self.setWindowTitle("PyQt MainWindow 例子") if __name__=="__main__": app=QApplication(sys.argv) app.setWindowIcon(QIcon("./images/cartoonl.icon")) form = MainWindow() form.
show() sys.exit(app.exec_())

視窗型別介紹

  1. QMainWindow、QWidget和 QDialog三個類都是用來建立視窗的,可以直 接使用,也可以繼承後再使用。
    QMainWindow視窗可以包含選單欄、工具欄、狀態列、標題欄等,是最常見的 視窗形式,也可以說是GUI程式的主視窗
    QDialog是對話方塊視窗的基類。對話方塊主要用來執行短期任務,或者與使用者進 行互動,它可以是模態的,也可以是非模態的。QDialog視窗沒有選單欄、工具欄、
    如果是主視窗,就使用QMainWindow類;如果是對話方塊,就使用QDialog類; 如果不確定,或者有可能作為頂層視窗,也有可能嵌入到其他視窗中,那麼就使用
    QWidget 類。

建立主視窗:

  1. 如果一個視窗包含一個或多個視窗,那麼這個視窗就是父視窗,被包含的視窗則是子視窗。沒有父視窗的視窗是頂層視窗,QMainWindow就是一個頂層視窗,它 可以包含很多介面元素,如選單欄、工具欄、狀態列、子視窗等。
    在 PyQt中,在主視窗(QMainWindow)中會有一個控制元件(QW idget)佔位符來佔著中心視窗,可以使用setCentralWidget()來設定中心視窗
  • QMainWindow繼承自QWidget類,擁有它的所有派生方法和屬性。
  • QMainWindow類中比較重要的方法如表4-1所示:
addToolBar()新增工具欄
centralWidgetO返回視窗中心的一個控制元件,未設定時返回NULL
menuBarQ返回主視窗的選單欄
setCentralWidget()設定視窗中心的控制元件
setStatusBar()設定狀態列
statusBarQ獲得狀態列物件後,呼叫狀態列物件的showMessage(message, int timeout = 0)方法,

顯示狀態列資訊。其中第一個引數是要顯示的狀態列資訊;第二個引數是資訊停留
的時間,單位是毫秒,預設是0 ,表示一直顯示狀態列資訊 |

QMainWindow不能設定佈局(使用setLayout()方法),因為它有自己的佈局

程式碼分析

    self.status.showMessage("這是狀態列提示", 5000)
# 建立一個主視窗
import sys        
from PyQt5.QtWidgets import QMainWindow,QApplication
from PyQt5.QtGui import QIcon

class MainWindow(QMainWindow):
    def __init__(self,parent=None): 
        super(MainWindow,self).__init__(parent)
        self.resize(400, 200) 
        self.status = self.statusBar()
        self.status.showMessage("這是狀態列提示", 5000)
        self.setWindowTitle("PyQt MainWindow 例子")
        
if __name__=="__main__":
    app=QApplication(sys.argv)
    app.setWindowIcon(QIcon("./images/cartoonl.icon")) 
    form = MainWindow()
    form.show()
    sys.exit(app.exec_())