由於我的對傳統的軟件GUI界面不是太喜歡,最近又在學習Qt和PyQt5,因此就有了設置ToolBar在窗口的不一樣地方的想法,通過浪裏淘沙,最終在Qt官網裏找到了,原來再添加toolBar的時候是由設置toolbar位置的參數(addToolBar()有多個重載),只是有不少的教材都忽略了這麼一個參數。編程
這是QMainWindow中的各個構成框架,經過他能夠清晰的瞭解各個控件能夠放置的位置,對QMainWindow也有一個比較直觀的瞭解。app
如下是Qt官網上關於該類(在QMainWindow)的添加QToolBar控件的函數的解析。框架
(函數
在第一個重載函數中就指出了須要把toolbar放置的地方,其取值有:工具
在添加ToolBar 的時候,就能夠根據本身對工具欄位置的喜愛,傳入適合的參數,可是注意這裏的第二個參數是一個QToolBar對象,其實QToolBar還有不少的設置屬性,好比FlaotingAble,moveAble等,這些可使你的工具欄實現工具欄在任何能夠停靠的位置。學習
下面是我在PyQt中實現的代碼以及效果圖:spa
1 import sys 2 from PyQt5.QtWidgets import * 3 from PyQt5.QtCore import * 4 from PyQt5.QtCore import * 5 6 class MainWindow(QMainWindow): 7 def __init__(self,parent=None): 8 super(MainWindow,self).__init__(parent) 9 self.setWindowTitle('Left-ToolBar') 10 self.resize(1000,618) 11 self.initUI() 12 13 def initUI(self): 14 self.Creat_Menu() 15 self.Creat_ToolBar() 16 17 self.widget=QWidget() 18 self.mainLayout=QHBoxLayout() 19 #Add diffrent Widget for the CentraWindow 20 21 self.edit=QTextEdit() 22 self.mainLayout.addWidget(self.edit) 23 24 self.widget.setLayout(self.mainLayout) 25 self.setCentralWidget(self.widget) 26 27 28 def Creat_Menu(self): 29 self.menu=self.menuBar() 30 file=self.menu.addMenu('File') 31 file.addAction('New') 32 file.addAction('Open') 33 file.addAction('Close Project') 34 35 tool=self.menu.addMenu('Tool') 36 tool.addAction('Python') 37 tool.addAction('C++') 38 tool.addAction('C') 39 40 def Creat_ToolBar(self): 41 self.toolBar=QToolBar() 42 #MainWindow.addToolBar(QtCore.Qt.LeftToolBarArea, self.toolBar) 43 self.addToolBar(Qt.LeftToolBarArea,self.toolBar) 44 self.toolBar.addAction('Edit') 45 self.toolBar.addAction('Open') 46 47 if __name__=='__main__': 48 app=QApplication(sys.argv) 49 demo=MainWindow() 50 demo.show() 51 sys.exit(app.exec())
其實關於Qt和PyQt5實現GUI編程,從根本上來講其方法是同樣的(我說的是類中具備的方法),在編寫PyQt5的代碼時,徹底能夠參考Qt中的解析。還有一個是我的最近以爲比較重要的:不管是使用PyQt5仍是Qt,聯合使用UI設計器能夠很是方便的開發(由於我的一直以爲用代碼開發能夠對控件位置精確掌控,而使用UI就像是奇技淫巧,作不到完美,不值得學習,可是我錯了!)設計