pyside 添加菜单栏,窗口状态栏,工具栏
这三个放到一起,个人认为比较有可比性。
另外该写的解释我都记到注释里面了
话不多说,show me the code
菜单栏,
# ubuntu16.04触发关联事件不成功,应该是ubantu的全局窗口模式的问题,其他环境运行正常。
1 #!/usr/bin/env python 2 # -*- coding: utf-8 -*- 3 # @Date : 2016-06-02 03:25:37 4 # @Author : Nevermoreluo (nevermoreluo@gmail.com) 5 ''' 6 菜单栏文件 7 windows下顺利执行 8 ubuntu下不显示状态栏信息 9 10 ''' 11 import sys 12 from PySide import QtGui 13 14 15 class Pyside_menubar(QtGui.QMainWindow): 16 17 def __init__(self): 18 super(Pyside_menubar, self).__init__() 19 20 self.initUI() 21 22 def initUI(self): 23 24 self.statusBar() 25 self.setFocus() 26 # 建立一个动作&提供了内置ALT快捷键 27 exitAction = QtGui.QAction('&Exit', self) 28 # 设置快捷键Ctrl+Q 29 exitAction.setShortcut('Ctrl+Q') 30 # 在ubuntu下未能显示状态栏提示 31 exitAction.setStatusTip('Exit application') 32 # 建立触发机制,self.close退出窗口 33 exitAction.triggered.connect(self.close) 34 35 # 建立一个菜单栏 36 menubar = self.menuBar() 37 # 建立一个菜单栏按钮 &提供内置快捷键 38 fileMenu = menubar.addMenu('&File') 39 # 为菜单栏内 file按钮添加,建立的exitAction事件 40 fileMenu.addAction(exitAction) 41 42 self.setGeometry(300, 300, 250, 150) 43 self.setWindowTitle('Menubar') 44 self.show() 45 46 47 def main(): 48 49 app = QtGui.QApplication(sys.argv) 50 ex = Pyside_menubar() 51 sys.exit(app.exec_()) 52 53 54 if __name__ == '__main__': 55 main()
工具栏
1 #!/usr/bin/env python 2 # -*- coding: utf-8 -*- 3 # @Date : 2016-06-02 04:13:15 4 # @Author : Nevermoreluo (nevermoreluo@gmail.com) 5 ''' 6 工具栏事件 7 8 QtGui.QAction建立一个事件 9 10 .triggered.connect关联触发函数 11 self.addToolBar('name').addAction( )建立工具栏,并为工具栏添加事件 12 ''' 13 14 15 import sys 16 from PySide import QtGui 17 18 19 class Pyside_toolbar(QtGui.QMainWindow): 20 21 def __init__(self): 22 super(Pyside_toolbar, self).__init__() 23 24 self.initUI() 25 26 def initUI(self): 27 # QtGui.QAction建立一个事件动作 28 # 用QtGui.QIcon做一个图标, 29 exitAction = QtGui.QAction(QtGui.QIcon('screenshot.jpg'), 'Exit', self) 30 # 建立一个关联快捷键 31 exitAction.setShortcut('Ctrl+Q') 32 # 关联一个触发函数self.close 33 exitAction.triggered.connect(self.close) 34 # 建立一个工具栏 35 self.toolbar = self.addToolBar('Exit') 36 # 为工具栏添加动作 37 self.toolbar.addAction(exitAction) 38 39 self.setGeometry(300, 300, 350, 250) 40 self.setWindowTitle('Toolbar') 41 self.show() 42 43 44 def main(): 45 46 app = QtGui.QApplication(sys.argv) 47 ex = Pyside_toolbar() 48 sys.exit(app.exec_()) 49 50 51 if __name__ == '__main__': 52 main()
状态栏
1 #!/usr/bin/env python 2 # -*- coding: utf-8 -*- 3 # @Date : 2016-06-01 21:20:02 4 # @Author : Nevermoreluo (nevermoreluo@gmail.com) 5 6 ''' 7 simple ex: 8 QtGui.QMainWindow.statusBar().showMessage('') 9 ''' 10 11 12 import sys 13 from PySide import QtGui 14 15 16 class Pyside_statusbar(QtGui.QMainWindow): 17 18 def __init__(self): 19 super(Pyside_statusbar, self).__init__() 20 21 self.initUI() 22 23 def initUI(self): 24 # 创建一个状态栏,并写入ready 25 self.statusBar().showMessage('Ready') 26 # 设置窗口位置大小 27 self.setGeometry(300, 300, 250, 150) 28 self.setWindowTitle('Statusbar') 29 self.show() 30 31 32 def main(): 33 34 app = QtGui.QApplication(sys.argv) 35 ex = Pyside_statusbar() 36 sys.exit(app.exec_()) 37 38 39 if __name__ == '__main__': 40 main()