Qt与PyQT中设置ToolBar在AllowedArea的显示

  由于我的对传统的软件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就像是奇技淫巧,作不到完美,不值得学习,可是我错了!)设计

 

 

 

 

相关文章
相关标签/搜索