PyQt4学习笔记-002

914 查看

PyQt4学习笔记-002

@(PyQt_002)[PyQt|高级篇|笔记|Python]

内容来自zetcode.com

主窗口

  • 使用QtGui.QMainWindow类创建包含状态栏,工具栏,菜单栏的窗口应用

创建状态栏

  • 将代码组织成类的形式

    # -*-coding:utf-8-*-
    import sys #导入Sys模块
    from PyQt4 import QtGui
    class Statusbar(QtGui.QMainWindow):
    
      def __init__(self):
          super(Statusbar,self).__init__()
          self.initUI()
  • 创建方法
      def initUI(self):  
          self.statusBar().showMessage('Ready')#使用QtGui.QMainWindow类中的statusBar()方法创建状态栏
          #showMessage()创建状态栏上显示的文字
          self.setGeometry(300,300,450,250)
          self.setWindowTitle('Statusbar')
          self.show()
  • 调用执行
def main():
    app = QtGui.QApplication(sys.argv)
    t = Statusbar() 
    sys.exit(app.exec_())  


if __name__ == "__main__":
    main()
  • 返回结果
    statusbar001.PNG
    statusbar001.PNG

    创建菜单栏

    创建带一个菜单项的菜单栏,这个菜单执行关闭应用程序的动作,这个动作也可以通过快捷键来执行,同时创建了一个状态栏
  • 修改initUI方法

      def initUI(self):  
          exitAction = QtGui.QAction('&Exit',self)
          #创建一个动作,这个动作标签是Exit
          exitAction.setShortcut('Ctrl+Q')
          #给这个动作定义一个快捷键
          exitAction.setStatusTip('Exit application')
          #给这个动作创建一个状态栏提示
          exitAction.triggered.connect(QtGui.qApp.quit)
          #创建一个触发信号链接到一个退出的方法
    
          self.statusBar()
    
          menubar = self.menuBar()
          #创建一个菜单栏
          fileMenu = menubar.addMenu('&File')
          fileMenu.addAction(exitAction)
          #将此菜单执行动作关联之前定义的退出动作
    
          self.setGeometry(300,300,450,200)
          self.setWindowTitle('Menubar')
          self.show()
  • 返回结果
    statusbar002.png
    statusbar002.png

创建工具栏

  • 修改initUI方法
    修改的地方很少,与之前菜单栏相比,只是将此改为建立工具栏,将定义的退出动作与工具栏上的退出方法关联起来

      def initUI(self):  
          exitAction = QtGui.QAction('&Exit',self)
          exitAction.setShortcut('Ctrl+Q')
          exitAction.setStatusTip('Exit application')
          exitAction.triggered.connect(QtGui.qApp.quit)
    
          self.statusBar()
          #******************************************************
          self.toolbar = self.addToolBar('Exit')               #*只修改此处
          self.toolbar.addAction(exitAction)                   #*
          #******************************************************
    
          self.setGeometry(300,300,450,200)
          self.setWindowTitle('Toolbar')
          self.show()
  • 返回结果
    statusbar003.PNG
    statusbar003.PNG

将菜单栏,工具栏放到一起

  • 修改initUI方法
    将之前的代码放在一即可,增加了一个文字输入框
    def initUI(self):  
        #******************************************************
        textEdit = QtGui.QTextEdit()
        self.setCentralWidget(textEdit)
        #******************************************************

        exitAction = QtGui.QAction('&Exit',self)
        exitAction.setShortcut('Ctrl+Q')
        exitAction.setStatusTip('Exit application')
        exitAction.triggered.connect(QtGui.qApp.quit)

        self.statusBar()

        menubar = self.menuBar()
        fileMenu = menubar.addMenu('&File')
        fileMenu.addAction(exitAction)

        toolbar = self.addToolBar('Exit')
        toolbar.addAction(exitAction)



        self.setGeometry(300,300,450,200)
        self.setWindowTitle('Together')
        self.show()
  • 返回结果
    statusbar004.PNG
    statusbar004.PNG