首页 > 代码库 > 学习pyqt4 基础 2

学习pyqt4 基础 2

学习pyqt4 基础 2

回顾

  1. 之前有句话这么说:QWidget 部件是PyQt4 中所有用户界面类的父类
  2. 突然想起,在上节中,或许会碰到中文乱码问题,在字符串前面加上u,表示unicode(具体原理也不清楚)。解决办法:比如 u‘你好‘。 在下面的例子中有体现。

主窗口

QMainWindow类用来创建应用程序的主窗口。通过该类,我们可以创建一个包含状态栏,工具栏和菜单栏的经(老)典(套)应用程序框架。(虽老套,但基础还是要尽量牢固)

状态栏

#! /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。

菜单栏

#! /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的主窗口的菜单栏,工具栏,状态栏
综合示例代码

#! /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_())