QMainWindow
提供了主窗口的功能,使用它能创建一些简单的状态栏、工具栏和菜单栏。
状态栏是包含文本输出窗格或“指示器”的控制条。输出窗格通常用作消息行和状态指示器。消息行示例包括命令帮助消息行,它简要解释了“MFC 应用程序向导”所创建的默认状态栏的最左边窗格中选定的菜单或工具栏命令。状态指示器示例包括 SCROLL LOCK 键、NUM LOCK 键和其他键。状态栏通常和框架窗口的底部对齐。状态栏一般在每个窗口、程序操作界面的最底端
import sys
from PyQt5.QtWidgets import QMainWindow,QApplication
class Exampel(QMainWindow):
def __init__(self):
super().__init__()
self.initUI()
def initUI(self):
self.statusBar().showMessage('Ready') # 状态栏展示Ready信息
self.setGeometry(300,300,250,150)
self.setWindowTitle('Statubar')
self.show()
if __name__ == '__main__':
app = QApplication(sys.argv)
ex = Exampel()
sys.exit(app.exec_())
菜单栏是按照程序功能分组排列的按钮集合,在标题栏下的水平栏。菜单栏实际是一种树型结构,为软件的大多数功能提供功能入口。点击以后,即可显示出菜单项。
一般图形界面都会有菜单栏,实现多种功能且方便操作,用PyQt5创建菜单栏,用QMainWindow
生成一个主界面对象,用主界面的menuBar
方法增加菜单选项。
import sys
from PyQt5.QtWidgets import QMainWindow,QApplication
class Exampel(QMainWindow):
def __init__(self):
super().__init__()
self.initUI()
def initUI(self):
menubar = self.menuBar()
menubar.addMenu('&File') # 增加菜单
self.setGeometry(300, 300, 300, 200)
self.setWindowTitle(('Simple menu'))
self.show()
if __name__ == '__main__':
app = QApplication(sys.argv)
ex = Exampel()
sys.exit(app.exec_())
当然,也可增加子菜单并且执行一些功能,下面增加退出功能,代码如下:
import sys
from PyQt5.QtWidgets import QMainWindow,QAction,qApp,QApplication,QMenu # QAction是菜单栏、工具栏或者快捷键的动作的组合
from PyQt5.QtGui import QIcon
class Exampel(QMainWindow):
def __init__(self):
super().__init__()
self.initUI()
def initUI(self):
# 实现退出功能
exitAct = QAction(QIcon('exit.png'),'&Exit',self) # 增加一个功能
exitAct.setShortcut('Ctrl+Q') # 快捷键
exitAct.setStatusTip('Exit application') # 状态栏提示
exitAct.triggered.connect(qApp.quit) # 当执行这个指定的动作时,就触发了一个事件,实现界面退出,也可以用self.close,
# 增加子菜单
impMenu = QMenu('Import',self)
impAct = QAction('Import mail',self)
impMenu.addAction(impAct)
self.statusBar()
menubar = self.menuBar()
fileMenu = menubar.addMenu('&File')
fileMenu.addMenu(impMenu) # 将子菜单放入File菜单中
fileMenu.addAction(exitAct) # 将功能放到File菜单中
self.setGeometry(300,300,300,200)
self.setWindowTitle(('Simple menu'))
self.show()
if __name__ == '__main__':
app = QApplication(sys.argv)
ex = Exampel()
sys.exit(app.exec_())
工具栏,顾名思义,就是在一个软件程序中,综合各种工具,让用户方便使用的一个区域。在PyQt5中,用QMainWindow
的addToolBar
实现增加一个工具栏按钮,代码如下:
import sys
from PyQt5.QtWidgets import QMainWindow, QAction, qApp, QApplication
from PyQt5.QtGui import QIcon
class Example(QMainWindow):
def __init__(self):
super().__init__()
self.initUI()
def initUI(self):
exitAct = QAction(QIcon('exit.png'), 'Exit', self)
exitAct.setShortcut('Ctrl+Q')
exitAct.triggered.connect(qApp.quit)
self.toolbar = self.addToolBar('Exit')
self.toolbar.addAction(exitAct)
self.setGeometry(300, 300, 300, 200)
self.setWindowTitle('Toolbar')
self.show()
if __name__ == '__main__':
app = QApplication(sys.argv)
ex = Example()
sys.exit(app.exec_())
后续持续更新……