Qt與PyQT中設置ToolBar在AllowedArea的顯示


  因為個人對傳統的軟件GUI界面不是太喜歡,最近又在學習Qt和PyQt5,所以就有了設置ToolBar在窗口的不同地方的想法,經過浪里淘沙,最終在Qt官網里找到了,原來再添加toolBar的時候是由設置toolbar位置的參數(addToolBar()有多個重載),只是有很多的教材都忽略了這么一個參數。

  這是QMainWindow中的各個構成框架,通過他可以清晰的了解各個控件可以放置的位置,對QMainWindow也有一個比較直觀的了解。

                    

以下是Qt官網上關於該類(在QMainWindow)的添加QToolBar控件的函數的解析。

 

在第一個重載函數中就指出了需要把toolbar放置的地方,其取值有:

  在添加ToolBar 的時候,就可以根據自己對工具欄位置的喜好,傳入適合的參數,但是注意這里的第二個參數是一個QToolBar對象,其實QToolBar還有很多的設置屬性,比如FlaotingAble,moveAble等,這些可以使你的工具欄實現工具欄在任何可以停靠的位置。

  下面是我在PyQt中實現的代碼以及效果圖:

                          

 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就像是奇技淫巧,做不到完美,不值得學習,但是我錯了!)

 

 

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM