PyQt4编程之如何做菜单栏

菜单栏是大部分软件都有的,菜单栏能提供便捷的帮助,记事本的菜单栏就是最简单的一个例子,等过几天我会写记事本的菜单栏了再另外发代码出来。

下面的代码是Copy的:

import sys
from PyQt4 import QtGui,QtCore

class MainWindow(QtGui.QMainWindow):
    def __init__(self):
        QtGui.QMainWindow.__init__(self)

        self.resize(250,150)	
        self.move(600,300)
        self.setWindowTitle('menubar')

        exit    =   QtGui.QAction(QtGui.QIcon('web.png'),'Exit',self)	#创建相应的动作(自己的理解)
        exit.setShortcut('Ctrl+Q')	#创建前面动作的快捷方式
        exit.setStatusTip('Exit application')	#属于QAction这个类的成员函数,用于设置在状态栏提示前面动作的信息
        self.connect(exit,QtCore.SIGNAL('triggered()'),QtCore.SLOT('close()'))	#建立信号和槽之间的连接,
        self.statusBar().showMessage("ready")
	menubar =   self.menuBar()
        file=   menubar.addMenu('&File')
        file.addAction(exit)
app=QtGui.QApplication(sys.argv)
main =  MainWindow()
main.show()
sys.exit(app.exec_())

 

这里我想详细分析一下。

首先查看QAction这个类,可以发现它有三种实例化方式:

QAction(QObject)
QAction(QString, QObject)
QAction(QIcon, QString, QObject)

显然我们这里采用的是第三种实例化方式。我想说的是,我们不仅要看得懂别人的代码,重要的是自己还要会分析在这么多选择下,他为什么要这么写。(显然,代码的作者要生成图标,所以选第三种)

我们再看一下setShortcut这个函数,它是QAction这个类的成员函数,exit是QAction实例化的一个对象,所以exit调用setShortcut这个函数就很正常了,另外,setShortcu函数的原型是:defsetShortcut(self, QKeySequence),QKeySequence也可以猜出来其参数是快捷键了。


有了刚才那个例子,我们也可以猜出来setStatusTip是QAction的成员函数了,我们在看一下它的原型:

defsetStatusTip(self, QString),很明显,QString是我们要显示的提示信息了。


紧接着又出现了和上面函数很像的statusBar(),点进去发现,它是属于QMainWindow这个类的,所以用self就是对的

它的原型是defstatusBar(self),返回值类型是QstatusBar,结合英文可以猜知它的作用是获得状态栏,

再看一下它的尾巴showmessage(),

点开发现它有五种类型,这里显然点进去第四个,发现它就是QstatusBar的成员函数。进而联系到它的作用,在状态栏上显示信息。
我也点进去了其他的,发现它属于的类都不是QstatusBar。(从后面的括号信息也看得出)
 
self.connect(exit,QtCore.SIGNAL('triggered()'),QtCore.SLOT('close()')) #建立信号和槽之间的连接,
这一句话我没有介绍,它是信号和槽之间的连接,有一篇文章不错,点击打开链接
 
 
 

                
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值