学习pyqt4 基础 2
回顾
- 之前有句话这么说:
QWidget 部件是PyQt4 中所有用户界面类的父类
。 - 突然想起,在上节中,或许会碰到中文乱码问题,在字符串前面加上u,表示unicode(具体原理也不清楚)。解决办法:比如
u'你好'
。 在下面的例子中有体现。
主窗口
QMainWindow类用来创建应用程序的主窗口。通过该类,我们可以创建一个包含状态栏,工具栏和菜单栏的经(老)典(套)应用程序框架。(虽老套,但基础还是要尽量牢固)
状态栏
<!-- lang: python -->
#! /usr/bin/python
# -*- coding:utf8 -*-
import sys
from PyQt4 import QtGui
class MainWindow(QtGui.QMainWindow):
def __init__(self, parent=None):
QtGui.QMainWindow.__init__(self)
self.resize(250, 150)
self.setWindowTitle(u'主窗口')
self.statusBar().showMessage(u'就绪')
app = QtGui.QApplication(sys.argv)
main = MainWindow()
main.show()
sys.exit(app.exec_())
在这里它继承的是QMainWindow类,和上一节有点不同,上节都是QWidget。
菜单栏
<!-- lang: python -->
#! /usr/bin/python
# -*- coding:utf8 -*-
import sys
from PyQt4 import QtGui, QtCore
class MainWindow(QtGui.QMainWindow):
def __init__(self, parent=None):
QtGui.QMainWindow.__init__(self)
self.resize(250, 150)
self.setWindowTitle(u'主窗口')
self.statusBar().showMessage(u'就绪')
exit = QtGui.QAction(QtGui.QIcon('./1.ico'), u'退出', self)
exit.setShortcut('Ctrl+Q')
exit.setStatusTip(u'退出应用')
exit.connect(exit, QtCore.SIGNAL('triggered()'), QtGui.qApp, \
QtCore.SLOT('quit()'))
#self.statusBar()
menubar = self.menuBar()
file = menubar.addMenu(u'&文件')
file.addAction(exit)
app = QtGui.QApplication(sys.argv)
main = MainWindow()
main.show()
sys.exit(app.exec_())
- 一个action对象可以拥有菜单、文本、图标、快捷方式(快捷键)、状态信息。我们这里的exit就是一个示例。
- self.connect 这句,将action对象的triggered()信号连接到预定义的quit()槽函数。
工具栏
它和菜单栏大同小异。略
总结
学习了pyqt的主窗口的菜单栏,工具栏,状态栏 综合示例代码
<!-- lang: python -->
#! /usr/bin/python
# -*- coding:utf8 -*-
import sys
from PyQt4 import QtGui, QtCore
class MainWindow(QtGui.QMainWindow):
def __init__(self, parent=None):
QtGui.QMainWindow.__init__(self)
self.resize(250, 150)
self.setWindowTitle(u'主窗口')
self.statusBar().showMessage(u'就绪')
exit = QtGui.QAction(QtGui.QIcon('./1.ico'), u'退出', self)
exit.setShortcut('Ctrl+Q')
exit.setStatusTip(u'退出应用')
exit.connect(exit, QtCore.SIGNAL('triggered()'), QtGui.qApp, \
QtCore.SLOT('quit()'))
#self.statusBar()
menubar = self.menuBar()
file = menubar.addMenu(u'&文件')
file.addAction(exit)
textEdit = QtGui.QTextEdit()
self.setCentralWidget(textEdit)
self.toolbar = self.addToolBar('Exit')
self.toolbar.addAction(exit)
app = QtGui.QApplication(sys.argv)
main = MainWindow()
main.show()
sys.exit(app.exec_())