読者です 読者をやめる 読者になる 読者になる

牌語備忘録 -pygo

あくまでもメモです。なるべくオフィシャルの情報を参照してください。

牌語備忘録 -pygo

『The PyQt4 tutorial』をやってみた02 [Menus and Toolbars] 〜そして若干ハマったMacOSXでのメニューバー

Python

PyQt4 tutorial』をやってみた。
その02 Menus and Toolbars in PyQt4
(環境:MacOSX10.6, pythn2.6)

Menubarのとこで若干ハマったのでメモ

サンプル menubar.py をMacOSXで実行した場合の話

※コード上記リンクから引用
※追記:"exit.png" はとりあえずここからダウンロードして使用した。

#!/usr/bin/env python
# *-# -*- coding: utf-8 -*-

#menubar.py

import sys
from PyQt4 import QtGui, QtCore

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

        self.resize(250, 150)
        self.setWindowTitle('menubar')

        exit = QtGui.QAction(QtGui.QIcon('exit.png'), 'Exit', self)
        exit.setShortcut('Ctrl+Q')
        exit.setStatusTip('Exit application')
        self.connect(exit, QtCore.SIGNAL('triggered()'), QtCore.SLOT('close()'))

        self.statusBar()

        menubar = self.menuBar()
        file = menubar.addMenu('&File')
        file.addAction(exit)

app = QtGui.QApplication(sys.argv)
main = MainWindow()
main.show()
main.raise_()
sys.exit(app.exec_())

Macだとメニューバーの表示が変わるらしい

Windows でどのように表示されるか確認できないんだけど。
サンプルの『menubar.py』をMacOSXでそのまま実行すると、メニューバーに表示されるはずの"File"メニューが表示されない。


メニューバーの"Python"メニューの一番下にアイコンのみ表示され、文字列"Exit"は無視されてる。

原因と思われるとこ

たぶんここかなーと思って、文字"Exit"をとりあえず"Off"に変えて実行してみた。

        # exit = QtGui.QAction(QtGui.QIcon('exit.png'), 'Exit', self)
        exit = QtGui.QAction(QtGui.QIcon('exit.png'), 'Off', self)


意図するものが表示できた。
※追記:ショートカットキーのcommand+Qとかも同じ感じ

Exit の表示位置

Exit とか Quit とかにすると強制的に決められた表示箇所に変更されるっぽい。
こういうの他にもあると思うけど、まとまった情報はどこにあんだろ?