Срещнах проблем при работа с PySide [Python 3.3.3 / PySide 1.2.1] и invokeMethod - изглежда, че PySide няма вграден Q_ARG макрос.
QtCore.QMetaObject.invokeMethod(self.worker, '_reader_run_mfoc_dummy',
QtCore.Qt.QueuedConnection,
QtCore.Q_ARG(str, self.get_keys_filename()),
QtCore.Q_ARG(str, self.get_dump_filename()))
се завръща:
QtCore.Q_ARG(str, self.get_keys_filename()),
AttributeError: 'module' object has no attribute 'Q_ARG'
Въпреки предупрежденията от Документите да не го правя, дори ако се опитам да предам общ аргумент, той се проваля (но по друга причина):
QtCore.QMetaObject.invokeMethod(self.worker, '_reader_run_mfoc_dummy',
QtCore.Qt.QueuedConnection,
QtCore.QGenericArgument("str",self.get_keys_filename()),
QtCore.QGenericArgument("str",self.get_dump_filename()))
QMetaObject::invokeMethod: Няма такъв метод Worker::_reader_run_mfoc_dummy(str,str)
Въпреки че подписът ми на слот/метод е:
@QtCore.Slot(str, str)
def _reader_run_mfoc_dummy(self, keys_filename, dump_filename):
Някой има ли предложение как да се преодолее този проблем? Не съм сигурен защо не успява да намери целевия метод..