我清楚地失去了一些东西; 为什么不将文件菜单中的这个小示例应用程序添加?
import sys
from PySide.QtGui import *
class Window(QMainWindow):
def __init__(self):
super(Window, self).__init__()
self.setWindowTitle('Test')
layout = QHBoxLayout()
self.widget = QWidget()
self.widget.setLayout(layout)
self.setCentralWidget(self.widget)
self.exitAction = QAction('Exit', self, shortcut=QKeySequence.Quit, triggered=self.close)
self.fileMenu = self.menuBar().addMenu('File')
self.fileMenu.addAction(self.exitAction)
app = QApplication(sys.argv)
w = Window()
w.show()
sys.exit(app.exec_())
编辑:
好吧,它看起来像这其实是一个unicode的问题。 下面是另一个示例应用程序:
from __future__ import unicode_literals, print_function, division
import sys
from PySide.QtCore import *
from PySide.QtGui import *
class Window(QMainWindow):
def __init__(self):
super(Window, self).__init__()
self.dummyAction = QAction(self.tr('dummy'), self, triggered=self.dummy)
self.gameMenu = self.menuBar().addMenu(self.tr('ddddummy'))
print (self.tr('dummy'))
self.gameMenu.addAction(self.dummyAction)
layout = QHBoxLayout()
self.widget = QWidget()
self.widget.setLayout(layout)
self.setCentralWidget(self.widget)
def dummy(self):
pass
locale = QLocale.system().name()
qtTranslator = QTranslator()
app = QApplication(sys.argv)
if qtTranslator.load('qt_' + locale, ':/'):
app.installTranslator(qtTranslator)
w = Window()
w.show()
sys.exit(app.exec_())
这个程序没有“文件”或“退出”或“退出” -但如果我注释掉它工作 from __future__
线,或环绕带引号的串像self.tr(str('foo'))
而不是self.tr('foo')
编辑2:
from __future__ import unicode_literals
import sys
from PySide.QtGui import *
class Window(QMainWindow):
def __init__(self):
super(Window, self).__init__()
print self.tr('foo')
app = QApplication(sys.argv)
Window().show()
sys.exit(app.exec_())
这应该打印“富”,但打印什么。