Pyside and QWS on embedded arm platform



  • Hi,

    my platform:
    hw= Beaglebone black
    so= debian wheezy without X11 server installed
    python3.2, qt4.8

    I test simple helloword with c++ and it works very well with qws, but I prefer coding in python, hence:
    Is possible run GUI applications ( without X11 server ) developted with Pyside ?

    Thanks


  • Lifetime Qt Champion

    Hi and welcome to devnet,

    Technically it should be (I haven't tried though), you'll have to build PySide using the embedded arm version of Qt.



  • Thanks for reply.
    I see that there are several debian packages for my arm, hence I think that is enough "apt-get install python-pyside".

    Im newibe in qt and pyside, and I cant understand how do I use QT video server in Pyside app.
    In other words, in simple app ( like helloword ) develop in classic Qt/c++ I use <option> "-qws" to run it and works well.
    In app developed in Pyside, how shall I run app with "-QWS" option ?

    thanks


  • Lifetime Qt Champion

    Since you should be constructing a QApplication with the arguments given on the command line, I'll use the same call e.g.

    @python myapp.py -qws@



  • Excuse me, but I cant understand

    if Ive this script:

    @#!/usr/bin/python

    Import PySide classes

    import sys
    from PySide.QtCore import *
    from PySide.QtGui import *

    Create a Qt application

    app = QApplication(sys.argv)

    Create a Label and show it

    label = QLabel("Hello World")
    label.show()

    Enter Qt application main loop

    app.exec_()
    sys.exit()# @

    and i run it with this command line:

    python myapp -qws

    "-qws" argument...is not used in script, and it is ignored...or no?
    Can you link me some docs about qws use in python script?

    Thanks


  • Lifetime Qt Champion

    Like I said before, I haven't tried it yet, so it's essentially an educated guess.

    When you call mycppapp -qws, -qws becomes an argument that will be pass to the QApplication object you create through argv. The same goes with sys.argv in python, it will contain -qws.

    However, did you already built PySide to use the Embedded version of Qt ?



  • Hi,

    I'm cross compiling Pyside on my host for my arm target, but i receive this error:

    @
    python2.7 setup.py bdist_wheel --qmake=/opt/qt-arm/bin/qmake --standalone

    Make path: /usr/bin/make
    Make generator: Unix Makefiles

    Build directory: /home/silvio/BBB/download/PySide-1.2.2/pyside_build/py2.7-qt4.8.6-32bit-release
    Install directory: /home/silvio/BBB/download/PySide-1.2.2/pyside_install/py2.7-qt4.8.6-32bit-release

    Python site-packages install directory: /home/silvio/BBB/download/PySide-1.2.2/pyside_install/py2.7-qt4.8.6-32bit-release/lib/python2.7/site-packages
    Creating build folder /home/silvio/BBB/download/PySide-1.2.2/pyside_build/py2.7-qt4.8.6-32bit-release...
    Creating install folder /home/silvio/BBB/download/PySide-1.2.2/pyside_install/py2.7-qt4.8.6-32bit-release...
    Building module shiboken...
    Creating module build folder /home/silvio/BBB/download/PySide-1.2.2/pyside_build/py2.7-qt4.8.6-32bit-release/shiboken...
    Configuring module shiboken (/home/silvio/BBB/download/PySide-1.2.2/sources/shiboken)...
    Running process: /usr/bin/cmake -G "Unix Makefiles" -DQT_QMAKE_EXECUTABLE=/opt/qt-arm/bin/qmake -DBUILD_TESTS=False -DDISABLE_DOCSTRINGS=True -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=/home/silvio/BBB/download/PySide-1.2.2/pyside_install/py2.7-qt4.8.6-32bit-release /home/silvio/BBB/download/PySide-1.2.2/sources/shiboken -DPYTHON_EXECUTABLE=/usr/bin/python2.7 -DPYTHON_INCLUDE_DIR=/usr/include/python2.7 -DPYTHON_LIBRARY=/usr/lib/libpython2.7.so -DCMAKE_INSTALL_RPATH_USE_LINK_PATH=yes
    /usr/bin/cmake -G Unix Makefiles -DQT_QMAKE_EXECUTABLE=/opt/qt-arm/bin/qmake -DBUILD_TESTS=False -DDISABLE_DOCSTRINGS=True -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=/home/silvio/BBB/download/PySide-1.2.2/pyside_install/py2.7-qt4.8.6-32bit-release /home/silvio/BBB/download/PySide-1.2.2/sources/shiboken -DPYTHON_EXECUTABLE=/usr/bin/python2.7 -DPYTHON_INCLUDE_DIR=/usr/include/python2.7 -DPYTHON_LIBRARY=/usr/lib/libpython2.7.so -DCMAKE_INSTALL_RPATH_USE_LINK_PATH=yes@



  • and after:

    @ -- The C compiler identification is GNU 4.7.2
    -- The CXX compiler identification is GNU 4.7.2
    -- Check for working C compiler: /usr/bin/gcc
    -- Check for working C compiler: /usr/bin/gcc -- works
    -- Detecting C compiler ABI info
    -- Detecting C compiler ABI info - done
    -- Check for working CXX compiler: /usr/bin/c++
    -- Check for working CXX compiler: /usr/bin/c++ -- works
    -- Detecting CXX compiler ABI info
    -- Detecting CXX compiler ABI info - done
    -- Looking for Q_WS_X11
    -- Looking for Q_WS_X11 - not found.
    -- Looking for Q_WS_WIN
    -- Looking for Q_WS_WIN - not found.
    -- Looking for Q_WS_QWS
    -- Looking for Q_WS_QWS - found
    -- Looking for Q_WS_MAC
    -- Looking for Q_WS_MAC - not found.
    -- Found Qt4: /opt/qt-arm/bin/qmake (found suitable version "4.8.6", required is "4.5.0")
    -- Found PythonLibs: /usr/lib/libpython2.7.so (found suitable version "2.7.3", required is "2.6")
    -- Found LibXml2: /usr/lib/i386-linux-gnu/libxml2.so (found suitable version "2.8.0", required is "2.6.32")
    -- Found LibXslt: /usr/lib/i386-linux-gnu/libxslt.so (found suitable version "1.1.26", required is "1.1.19")
    -- sphinx-build - not found! doc target disabled
    -- Configuring done
    -- Generating done
    -- Build files have been written to: /home/silvio/BBB/download/PySide-1.2.2/pyside_build/py2.7-qt4.8.6-32bit-release/shiboken
    Compiling module shiboken...
    Running process: /usr/bin/make
    /usr/bin/make
    [ 1%] Generating qrc_generator.cxx
    Scanning dependencies of target apiextractor
    [ 3%] Building CXX object ApiExtractor/CMakeFiles/apiextractor.dir/apiextractor.cpp.o

    /opt/qt-arm/include/QtCore/qatomic_armv5.h: Assembler messages:
    /opt/qt-arm/include/QtCore/qatomic_armv5.h:131: Error: no such instruction: swpb ........' /opt/qt-arm/include/QtCore/qatomic_armv5.h:131: Error: no such instruction:swpb ...............'
    /opt/qt-arm/include/QtCore/qatomic_armv5.h:131: Error: no such instruction: swpb ...............' /opt/qt-arm/include/QtCore/qatomic_armv5.h:131: Error: no such instruction:swpb ...............'
    /opt/qt-arm/include/QtCore/qatomic_armv5.h:131: Error: no such instruction: swpb .................' /opt/qt-arm/include/QtCore/qatomic_armv5.h:131: Error: no such instruction:swpb ...............'
    /opt/qt-arm/include/QtCore/qatomic_armv5.h:131: Error: no such instruction: swpb ................' /opt/qt-arm/include/QtCore/qatomic_armv5.h:131: Error: no such instruction:swpb .....................'
    /opt/qt-arm/include/QtCore/qatomic_armv5.h:131: Error: no such instruction: `swpb .................' @

    Excuse me for multi posts, nut formatting code dosent work. I remove some character and replace with "......"

    In your opinion, what is error ?
    i dont know if problem is compiler....I use linaro toolchain





  • Lifetime Qt Champion

    The configuration is mixing your system gcc/libraries and the arm version



  • thanks for reply.

    Now I make a TOOLCHAIN.CMAKE
    I mount sdcard with rootfs in /media/rootfs with target rootfs
    edit toolchain.cmake:

    @# INCLUDE(CMakeForceCompiler)

    CMake toolchain file for building ARM software on OI environment

    this one is important

    SET(CMAKE_SYSTEM_NAME Linux)
    SET(CMAKE_SYSTEM_PROCESSOR arm)

    #this one not so much
    SET(CMAKE_SYSTEM_VERSION 1)

    specify the cross compiler

    SET(CMAKE_C_COMPILER /home/silvio/BBB/gcc-linaro-arm-linux-gnueabihf-4.9-2014.05_linux/bin/arm-linux-gnueabihf-gcc)
    SET(CMAKE_CXX_COMPILER /home/silvio/BBB/gcc-linaro-arm-linux-gnueabihf-4.9-2014.05_linux/bin/arm-linux-gnueabihf-g++)
    SET(CMAKE_CXX_FLAGS "-O3 -march=armv7-a -mtune=cortex-a8 -mfpu=neon -mfloat-abi=hard")
    SET(CMAKE_STRIP /home/silvio/BBB/gcc-linaro-arm-linux-gnueabihf-4.9-2014.05_linux/bin/arm-linux-gnueabihf-strip)

    where is the target environment

    SET(CMAKE_FIND_ROOT_PATH / /home/silvio/BBB/gcc-linaro-arm-linux-gnueabihf-4.9-2014.05_linux/arm-linux-gnueabihf /media/rootfs /med$

    search for programs in the build host directories

    SET(CMAKE_FIND_ROOT_PATH_MODE_PROGRAM NEVER)

    for libraries and headers in the target directories

    SET(CMAKE_FIND_ROOT_PATH_MODE_LIBRARY ONLY)
    SET(CMAKE_FIND_ROOT_PATH_MODE_INCLUDE ONLY)
    @

    after I change setup.py in Pyside with this mod:

    @# Build module

    MY ADD "-DCMAKE_TOOLCHAIN_FILE=/home/silvio/BBB/toolchain.cmake",

        cmake_cmd = [
            OPTION_CMAKE,
     "-DCMAKE_TOOLCHAIN_FILE=/home/silvio/BBB/toolchain.cmake",
            "-G", self.make_generator,
            "-DQT_QMAKE_EXECUTABLE=%s" % self.qmake_path,
            "-DBUILD_TESTS=%s" % self.build_tests,
            "-DDISABLE_DOCSTRINGS=True",
            "-DCMAKE_BUILD_TYPE=%s" % self.build_type,
            "-DCMAKE_INSTALL_PREFIX=%s" % self.install_dir,
            module_src_dir
        ]@
    

    always in setup.py i force

    @ # change self.py_library
    self.py_library = "/media/rootfs/usr/lib/libpython2.7.so"

        if sys.version_info[0] > 2:
            cmake_cmd.append("-DPYTHON3_EXECUTABLE=%s" % self.py_executable)
            cmake_cmd.append("-DPYTHON3_INCLUDE_DIR=%s" % self.py_include_dir)
            cmake_cmd.append("-DPYTHON3_LIBRARY=%s" % self.py_library)
            if self.build_type.lower() == 'debug':
                cmake_cmd.append("-DPYTHON3_DBG_EXECUTABLE=%s" % self.py_executable)
                cmake_cmd.append("-DPYTHON3_DEBUG_LIBRARY=%s" % self.py_library)
        else:
    

    .....bla bla bla....
    @
    because during built i receive error that ld cannot find -lpython2.7
    hence i force to use target's "libpython2.7 "



  • now my built

    @root@deb32-dev-bbb:/home/silvio/BBB/download/PySide-1.2.2# python2.7 setup.py bdist_wheel --qmake=/opt/qt-arm/bin/qmake --standalone
    Removing /home/silvio/BBB/download/PySide-1.2.2/pyside_package
    running bdist_wheel
    running build
    Python architecture is 32bit
    Inserting path "/opt/qt-arm/bin" to environment
    Inserting path "/home/silvio/BBB/download/PySide-1.2.2/pyside_install/py2.7-qt4.8.6-32bit-release/bin" to environment

    Package version: 1.2.2
    Build type: Release
    Build tests: False

    Make path: /usr/bin/make
    Make generator: Unix Makefiles
    Make jobs:

    Script directory: /home/silvio/BBB/download/PySide-1.2.2
    Sources directory: /home/silvio/BBB/download/PySide-1.2.2/sources
    Build directory: /home/silvio/BBB/download/PySide-1.2.2/pyside_build/py2.7-qt4.8.6-32bit-release
    Install directory: /home/silvio/BBB/download/PySide-1.2.2/pyside_install/py2.7-qt4.8.6-32bit-release
    Python site-packages install directory: /home/silvio/BBB/download/PySide-1.2.2/pyside_install/py2.7-qt4.8.6-32bit-release/lib/python2.7/site-packages

    Python executable: /usr/bin/python2.7
    Python includes: /usr/include/python2.7
    Python library: /usr/lib/libpython2.7.so
    Python prefix: /usr
    Python scripts: /usr/bin

    Qt qmake: /opt/qt-arm/bin/qmake
    Qt version: 4.8.6
    Qt bins: /opt/qt-arm/bin
    Qt plugins: /opt/qt-arm/plugins

    OpenSSL libs: None

    Building module shiboken...
    Deleting module build folder /home/silvio/BBB/download/PySide-1.2.2/pyside_build/py2.7-qt4.8.6-32bit-release/shiboken...
    Creating module build folder /home/silvio/BBB/download/PySide-1.2.2/pyside_build/py2.7-qt4.8.6-32bit-release/shiboken...
    Configuring module shiboken (/home/silvio/BBB/download/PySide-1.2.2/sources/shiboken)...
    Running process: /usr/bin/cmake -DCMAKE_TOOLCHAIN_FILE=/home/silvio/BBB/toolchain.cmake -G "Unix Makefiles" -DQT_QMAKE_EXECUTABLE=/opt/qt-arm/bin/qmake -DBUILD_TESTS=False -DDISABLE_DOCSTRINGS=True -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=/home/silvio/BBB/download/PySide-1.2.2/pyside_install/py2.7-qt4.8.6-32bit-release /home/silvio/BBB/download/PySide-1.2.2/sources/shiboken -DPYTHON_EXECUTABLE=/usr/bin/python2.7 -DPYTHON_INCLUDE_DIR=/usr/include/python2.7 -DPYTHON_LIBRARY=/media/rootfs/usr/lib/libpython2.7.so -DCMAKE_INSTALL_RPATH_USE_LINK_PATH=yes
    /usr/bin/cmake -DCMAKE_TOOLCHAIN_FILE=/home/silvio/BBB/toolchain.cmake -G Unix Makefiles -DQT_QMAKE_EXECUTABLE=/opt/qt-arm/bin/qmake -DBUILD_TESTS=False -DDISABLE_DOCSTRINGS=True -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=/home/silvio/BBB/download/PySide-1.2.2/pyside_install/py2.7-qt4.8.6-32bit-release /home/silvio/BBB/download/PySide-1.2.2/sources/shiboken -DPYTHON_EXECUTABLE=/usr/bin/python2.7 -DPYTHON_INCLUDE_DIR=/usr/include/python2.7 -DPYTHON_LIBRARY=/media/rootfs/usr/lib/libpython2.7.so -DCMAKE_INSTALL_RPATH_USE_LINK_PATH=yes
    -- The C compiler identification is GNU 4.9.1
    -- The CXX compiler identification is GNU 4.9.1
    -- Check for working C compiler: /home/silvio/BBB/gcc-linaro-arm-linux-gnueabihf-4.9-2014.05_linux/bin/arm-linux-gnueabihf-gcc
    -- Check for working C compiler: /home/silvio/BBB/gcc-linaro-arm-linux-gnueabihf-4.9-2014.05_linux/bin/arm-linux-gnueabihf-gcc -- works
    -- Detecting C compiler ABI info
    -- Detecting C compiler ABI info - done
    -- Check for working CXX compiler: /home/silvio/BBB/gcc-linaro-arm-linux-gnueabihf-4.9-2014.05_linux/bin/arm-linux-gnueabihf-g++
    -- Check for working CXX compiler: /home/silvio/BBB/gcc-linaro-arm-linux-gnueabihf-4.9-2014.05_linux/bin/arm-linux-gnueabihf-g++ -- works
    -- Detecting CXX compiler ABI info
    -- Detecting CXX compiler ABI info - done
    -- Looking for Q_WS_X11
    -- Looking for Q_WS_X11 - not found.
    -- Looking for Q_WS_WIN
    -- Looking for Q_WS_WIN - not found.
    -- Looking for Q_WS_QWS
    -- Looking for Q_WS_QWS - found
    -- Looking for Q_WS_MAC
    -- Looking for Q_WS_MAC - not found.
    -- Found Qt4: /opt/qt-arm/bin/qmake (found suitable version "4.8.6", required is "4.5.0")
    -- Found PythonLibs: /media/rootfs/usr/lib/libpython2.7.so (found suitable version "2.7.3", required is "2.6")
    -- Found LibXml2: /media/rootfs/usr/lib/arm-linux-gnueabihf/libxml2.so (found suitable version "2.8.0", required is "2.6.32")
    -- Found LibXslt: /media/rootfs/usr/lib/arm-linux-gnueabihf/libxslt.so (found suitable version "1.1.26", required is "1.1.19")
    -- sphinx-build - not found! doc target disabled
    -- Configuring done
    -- Generating done
    -- Build files have been written to: /home/silvio/BBB/download/PySide-1.2.2/pyside_build/py2.7-qt4.8.6-32bit-release/shiboken
    Compiling module shiboken...
    Running process: /usr/bin/make
    /usr/bin/make @



  • @ [ 1%] Generating qrc_generator.cxx
    Scanning dependencies of target apiextractor
    [ 3%] Building CXX object ApiExtractor/CMakeFiles/apiextractor.dir/apiextractor.cpp.o

    [my CUT]

    [ 37%] Building CXX object ApiExtractor/CMakeFiles/apiextractor.dir/parser/declarator_compiler.cpp.o
    /home/silvio/BBB/download/PySide-1.2.2/sources/shiboken/ApiExtractor/parser/declarator_compiler.cpp:109:2: warning: #warning "ptr to mem -- not implemented" [-Wcpp]
    #warning "ptr to mem -- not implemented"
    ^
    [ 38%] Building CXX object ApiExtractor/CMakeFiles/apiextractor.dir/parser/default_visitor.cpp.o
    [ 40%] Building CXX object ApiExtractor/CMakeFiles/apiextractor.dir/parser/dumptree.cpp.o
    [ 42%] Building CXX object ApiExtractor/CMakeFiles/apiextractor.dir/parser/lexer.cpp.o
    /home/silvio/BBB/download/PySide-1.2.2/sources/shiboken/ApiExtractor/parser/lexer.cpp: In member function ‘void LocationManager::positionAt(std::size_t, int*, int*, QString*) const’:
    /home/silvio/BBB/download/PySide-1.2.2/sources/shiboken/ApiExtractor/parser/lexer.cpp:87:9: warning: ‘ppline’ may be used uninitialized in this function [-Wmaybe-uninitialized]
    int ppline, ppcolumn;
    ^
    /home/silvio/BBB/download/PySide-1.2.2/sources/shiboken/ApiExtractor/parser/lexer.cpp:97:31: warning: ‘line2’ may be used uninitialized in this function [-Wmaybe-uninitialized]
    *line = base_line + *line - line2 - 1;
    ^
    #warning "implement me"
    ^
    /home/silvio/BBB/download/PySide-1.2.2/sources/shiboken/ApiExtractor/parser/parser.cpp:2140:2: warning: #warning "implemente me (AST)" [-Wcpp]
    #warning "implemente me (AST)"
    ^
    /home/silvio/BBB/download/PySide-1.2.2/sources/shiboken/ApiExtractor/parser/parser.cpp:2297:2: warning: #warning "implement me" [-Wcpp]
    #warning "implement me"
    ^
    /home/silvio/BBB/download/PySide-1.2.2/sources/shiboken/ApiExtractor/parser/parser.cpp:2305:2: warning: #warning "implement me" [-Wcpp]
    #warning "implement me"
    ^
    /home/silvio/BBB/download/PySide-1.2.2/sources/shiboken/ApiExtractor/parser/parser.cpp:2900:2: warning: #warning "mark the ast as constant" [-Wcpp]
    #warning "mark the ast as constant"
    ^
    /home/silvio/BBB/download/PySide-1.2.2/sources/shiboken/ApiExtractor/parser/parser.cpp:2990:2: warning: #warning "Parser::skipFunctionBody() -- implement me" [-Wcpp]
    #warning "Parser::skipFunctionBody() -- implement me"
    ^
    /home/silvio/BBB/download/PySide-1.2.2/sources/shiboken/ApiExtractor/parser/parser.cpp:3019:2: warning: #warning "implement me" [-Wcpp]
    #warning "implement me"
    ^
    [ 50%] Building CXX object ApiExtractor/CMakeFiles/apiextractor.dir/parser/smallobject.cpp.o
    [ 51%] Building CXX object ApiExtractor/CMakeFiles/apiextractor.dir/parser/tokens.cpp.o

    [my CUT]

    [ 83%] Building CXX object libshiboken/CMakeFiles/libshiboken.dir/shibokenbuffer.cpp.o
    Linking CXX shared library libshiboken-python2.7.so
    [ 83%] Built target libshiboken
    Scanning dependencies of target shiboken

    [CUT]

    [ 96%] Building CXX object generator/CMakeFiles/shiboken.dir/main.cpp.o
    Linking CXX executable shiboken
    [ 96%] Built target shiboken
    [ 98%] Running generator for 'shiboken'...
    /home/silvio/BBB/download/PySide-1.2.2/pyside_build/py2.7-qt4.8.6-32bit-release/shiboken/generator/shiboken: 1: /home/silvio/BBB/download/PySide-1.2.2/pyside_build/py2.7-qt4.8.6-32bit-release/shiboken/generator/shiboken: Syntax error: word unexpected (expecting ")")
    make[2]: *** [shibokenmodule/shiboken/shiboken_module_wrapper.cpp] Error 2
    make[1]: *** [shibokenmodule/CMakeFiles/shibokenmodule.dir/all] Error 2
    make: *** [all] Error 2
    error: Error compiling shiboken
    root@deb32-dev-bbb:/home/silvio/BBB/download/PySide-1.2.2#@

    Can you help me ?
    thanks


  • Lifetime Qt Champion

    For that one I can't, AFAIK, it's auto generated code


Log in to reply
 

Looks like your connection to Qt Forum was lost, please wait while we try to reconnect.