PYQT5學習筆記(一)
阿新 • • 發佈:2021-01-30
建立一個主視窗
# 建立一個主視窗
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_())
視窗型別介紹
- QMainWindow、QWidget和 QDialog三個類都是用來建立視窗的,可以直 接使用,也可以繼承後再使用。
QMainWindow視窗可以包含選單欄、工具欄、狀態列、標題欄等,是最常見的 視窗形式,也可以說是GUI程式的主視窗
QDialog是對話方塊視窗的基類。對話方塊主要用來執行短期任務,或者與使用者進 行互動,它可以是模態的,也可以是非模態的。QDialog視窗沒有選單欄、工具欄、
如果是主視窗,就使用QMainWindow類;如果是對話方塊,就使用QDialog類; 如果不確定,或者有可能作為頂層視窗,也有可能嵌入到其他視窗中,那麼就使用
建立主視窗:
- 如果一個視窗包含一個或多個視窗,那麼這個視窗就是父視窗,被包含的視窗則是子視窗。沒有父視窗的視窗是頂層視窗,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_())