『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 とかにすると強制的に決められた表示箇所に変更されるっぽい。
こういうの他にもあると思うけど、まとまった情報はどこにあんだろ?