Hello! I'm checking if PySide is better than PyQt at handling this issue with QApplication initialization:
http://stackoverflow.com/questions/27869281/python3-qt4-discards-non-ascii-characters-from-unicode-strings-in-qapplication-c It turns out it has it's own set of bugs. In Python 2, unicode arguments kill the interpreter: $ python Python 2.7.8 (default, Oct 20 2014, 15:05:29) [GCC 4.9.1] on linux2 Type "help", "copyright", "credits" or "license" for more information. >>> from PySide.QtGui import QApplication >>> QApplication([u"test"]) Segmentation fault (core dumped) The backtrace: #0 __strlen_ia32 () at ../sysdeps/i386/i686/multiarch/../../i586/strlen.S:94 #1 0xf7e630cd in __GI___strdup (s=0x0) at strdup.c:41 #2 0xf736ae78 in Shiboken::sequenceToArgcArgv(_object*, int*, char***, char const*) () from /usr/lib/i386-linux-gnu/libshiboken-python2.7.so.1.2 #3 0xf62eaba6 in ?? () from /usr/lib/python2.7/dist-packages/PySide/QtGui.so #4 0x080f9d91 in type_call.lto_priv () at ../Objects/typeobject.c:745 #5 0x081082cf in PyObject_Call (kw=<optimized out>, arg=<optimized out>, func=<optimized out>) at ../Objects/abstract.c:2529 #6 do_call (nk=<optimized out>, na=<optimized out>, pp_stack=<optimized out>, func=<optimized out>) at ../Python/ceval.c:4239 #7 call_function (oparg=<optimized out>, pp_stack=<optimized out>) at ../Python/ceval.c:4044 #8 PyEval_EvalFrameEx () at ../Python/ceval.c:2667 #9 0x08106535 in PyEval_EvalCodeEx () at ../Python/ceval.c:3253 #10 0x0813b96c in PyEval_EvalCode ( locals={'__builtins__': <module at remote 0xf7d3c11c>, '__name__': '__main__', 'QApplication': <Shiboken.ObjectType at remote 0xf6c8c8a0>, '__doc__': None, '__package__': None}, globals={'__builtins__': <module at remote 0xf7d3c11c>, '__name__': '__main__', 'QApplication': <Shiboken.ObjectType at remote 0xf6c8c8a0>, '__doc__': None, '__package__': None}, co=0xf7cdaec0) at ../Python/ceval.c:667 #11 run_mod.lto_priv () at ../Python/pythonrun.c:1371 #12 0x0808d601 in PyRun_InteractiveOneFlags (fp=0xf7f92c20 <_IO_2_1_stdin_>, filename=0x8237988 "<stdin>", flags=0xffffcfd8) at ../Python/pythonrun.c:858 #13 0x0808d399 in PyRun_InteractiveLoopFlags (fp=0xf7f92c20 <_IO_2_1_stdin_>, filename=0x8237988 "<stdin>", flags=0xffffcfd8) at ../Python/pythonrun.c:778 #14 0x0806f7f0 in PyRun_AnyFileExFlags (fp=0xf7f92c20 <_IO_2_1_stdin_>, filename=0x8237988 "<stdin>", closeit=0, flags=0xffffcfd8) at ../Python/pythonrun.c:747 #15 0x080daed1 in Py_Main () at ../Modules/main.c:640 #16 0x080da93b in main (argc=1, argv=0xffffd124) at ../Modules/python.c:23 Conversely, non-Unicode arguments become empty strings in Python 3: #! /usr/bin/python3 from PySide.QtGui import QApplication app = QApplication(["string1", b"bytes", "string2"]) print(app.arguments()) The output is: ['string1', '', 'string2'] I'm using Ubuntu 14.10 i386 with python 2.7.8-1 python3 3.4.2-1 python-pyside 1.2.2-1 python3-pyside 1.2.2-1 -- Regards, Pavel Roskin _______________________________________________ PySide mailing list [email protected] http://lists.qt-project.org/mailman/listinfo/pyside
