在这节教程中,我们将创建菜单和工具栏。
QMainWindow 类提供应用程序主窗口,可以创建一个经典的拥有状态栏、工具栏和菜单栏的应用程序骨架。
菜单栏
菜单栏是GUI应用程序最明显的部分之一,这是分布在各个菜单的命令组合,在控制台程序中你需要记住所有那些晦涩难懂的命令,有了这些公认的标准,将进一步缩短学习新应用程序的时间。
#!/usr/bin/python # menubar.py import sys from PyQt4 import QtGui, QtCore class MainWindow(QtGui.QMainWindow): def __init__(self): QtGui.QMainWindow.__init__(self) self.resize(250, 150) self.setWindowTitle('menubar') exit = QtGui.QAction(QtGui.QIcon('icons/exit.png'), 'Exit', self) exit.setShortcut('Ctrl+Q') exit.setStatusTip('Exit application') self.connect(exit, QtCore.SIGNAL('triggered()'), QtCore.SLOT('close()')) self.statusBar() menubar = self.menuBar() file = menubar.addMenu('&File') file.addAction(exit) app = QtGui.QApplication(sys.argv) main = MainWindow() main.show() sys.exit(app.exec_())
menubar = self.menuBar() file = menubar.addMenu('&File') file.addAction(exit)
首先我们使用``QMainWindow`` 类的 menuBar() 方法创建一个菜单栏,然后使用 addMenu() 方法增加一个菜单项,最后我们插入 Action 对象到文件菜单。
菜单栏(Mac OS X)
菜单栏(Ubuntu)
工具栏
菜单集合了应用程序中所有可用的命令,工具栏提供了快速访问最常用的命令功能。
#!/usr/bin/python # toolbar.py import sys from PyQt4 import QtGui, QtCore class MainWindow(QtGui.QMainWindow): def __init__(self): QtGui.QMainWindow.__init__(self) self.resize(250, 150) self.setWindowTitle('toolbar') self.exit = QtGui.QAction(QtGui.QIcon('icons/exit.png'), 'Exit', self) self.exit.setShortcut('Ctrl+Q') self.connect(self.exit, QtCore.SIGNAL('triggered()'), QtCore.SLOT('close()')) self.toolbar = self.addToolBar('Exit') self.toolbar.addAction(self.exit) app = QtGui.QApplication(sys.argv) main = MainWindow() main.show() sys.exit(app.exec_())
self.exit = QtGui.QAction(QtGui.QIcon('icons/exit.png'), 'Exit', self) self.exit.setShortcut('Ctrl+Q')
GUI程序通过命令来控制,这些命令可以通过菜单、上下文菜单、工具栏或者快捷键来启动。PyQt引入了行为(Action)来简化开发。行为对象可以拥有菜单标题、图标、快捷键、状态栏内容、aasda“这是什么?”内容以及提示。在我们的例子中,我们定义了一个行为对象,包括图标、提示和快捷键。
self.connect(self.exit, QtCore.SIGNAL('triggered()'), QtCore.SLOT('close()'))
这里我们连接行为的 triggered() 信号到预定义的 close() 槽。
self.toolbar = self.addToolBar('Exit') self.toolbar.addAction(self.exit)
这里我们我们创建了一个工具栏并把行为加了进去。
工具栏
放在一起
在这部分的最后一个例子中,我们将会创建一个菜单栏、工具栏和状态栏。
#!/usr/bin/python # mainwindow.py import sys from PyQt4 import QtGui, QtCore class MainWindow(QtGui.QMainWindow): def __init__(self): QtGui.QMainWindow.__init__(self) self.resize(350, 250) self.setWindowTitle('mainwindow') textEdit = QtGui.QTextEdit() self.setCentralWidget(textEdit) exit = QtGui.QAction(QtGui.QIcon('icons/exit.png'), 'Exit', self) exit.setShortcut('Ctrl+Q') exit.setStatusTip('Exit application') self.connect(exit, QtCore.SIGNAL('triggered()'), QtCore.SLOT('close()')) self.statusBar() menubar = self.menuBar() file = menubar.addMenu('&File') file.addAction(exit) toolbar = self.addToolBar('Exit') toolbar.addAction(exit) app = QtGui.QApplication(sys.argv) main = MainWindow() main.show() sys.exit(app.exec_())
textEdit = QtGui.QTextEdit() self.setCentralWidget(textEdit)
这里我们创建了一个文本编辑控件,把它设置成 QMainWinow 的中心组件。中心组件将会占据所有留下的空间。
QMainWindow(Ubuntu)
在PyQt4教程的这部分,我们创建了菜单和工具栏。
本站文章为 宝宝巴士 SD.Team 原创,转载务必在明显处注明:(作者官方网站: 宝宝巴士 )
转载自【宝宝巴士SuperDo团队】 原文链接: http://www.cnblogs.com/superdo/p/4526702.html
来源:https://www.cnblogs.com/superdo/p/4526702.html