0

私は困惑しています。Ubuntu 13.10 で Python3 を使用して PySide を実行しています。テスト スイートでエラーが発生した単純なタスクをやり過ごすことができません。問題を 2 つのライナーに絞り込みました。

from PySide.QtGui import QAction
a = QAction("Test")

これです。/usr/bin/python3 インタープリター (v3.3.2) でこれらの 2 行を直接実行すると、次のように叫びます。

Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
TypeError: 'PySide.QtGui.QAction' called with wrong argument types:
  PySide.QtGui.QAction(str)
Supported signatures:
  PySide.QtGui.QAction(PySide.QtCore.QObject)
  PySide.QtGui.QAction(PySide.QtGui.QIcon, unicode, PySide.QtCore.QObject)
  PySide.QtGui.QAction(unicode, PySide.QtCore.QObject)

これが何を意味するのかよくわかりません。Python3 のすべての (str) 文字列は Unicode だと思いました。Qhy PySide は、暗黙的に同じ型 (str <=> unicode) ではないことについて不平を言っていますか?

どんな助けでも歓迎します、私はここで迷っています。

4

1 に答える 1

3

OMG、またやりました。stackoverflow に投稿してから 1 分後、私は解決策を得ました。

解決策は簡単です。str - unicode 変換とは関係ありません。QAction には、少なくともテキスト引数 (str、bytes、unicode...) と親 (QObject 派生) が必要です。これを忘れてしまいました。None だけ十分です。

于 2013-10-31T00:03:21.017 に答える