Re: [Interest] Qt interfacing to Android native UI ?
Dear Edward and others, It seems that my practical experience with making core business logic in C++-STL without Qt works well with: a. Qt-based GUI for Linux, Mac and Windows - it works excellent; b. Native GUI for iOS and Android. Unfortunately, Qt at iOS and Android has too many issues to overcome, just a few to mention: 1. Lack of customizable Edit Menu (Platform menu) at Qt for iOS - at least for widgets; 2. Broken selection handles at Qt for Android - total mess for widgets and many issues for QML Other reasons to mention: 3. Lack of features where I found myself always with JNI+Java or developing native components in Obj-C where native Java and Swift are much easier and less time consuming. Optimistic people would say that the matters are improving... Maybe. jm4c Kind regards, Robert On Thu, May 5, 2016 at 10:58 PM, Edward Sutton wrote: > I have not used the project. > > My guess one motivating goal would be to reuse the many react-native modules > that support both Android and iOS ( or one OS or the other ). > > Another goal would be to access real native UI components and native API’s. > While QML looks native-like, for Android or iOS apps, native just feels > better to the user IMO. > > Microsoft is reportedly adding react native support for UWP and claim it > will support 270 million Windows 10 devices. > > https://blogs.windows.com/buildingapps/2016/04/13/react-native-on-the-universal-windows-platform/ > > > -Ed > > On May 5, 2016, at 9:45 AM, Jason H wrote: > > What is the motivation for such a project? > > Sent: Thursday, May 05, 2016 at 10:31 AM > From: "Edward Sutton" > To: "Robert Iakobashvili" > Cc: "interest@qt-project.org" > Subject: Re: [Interest] Qt interfacing to Android native UI ? > An interesting project: > > > https://github.com/grassator/react-qml > > > react-qml is a bridge library that allows to use React.js with QML. > > Example > > Usage of ReactQml is pretty straightforward — the only difference from web > version is that you need to pass id of the qml item to React.render instead > of DOM node. For example: > > import QtQuick 2.4 > import QtQuick.Controls 1.3 > import "js/ReactQml.js" as React > > ApplicationWindow { > id: root > title: qsTr("React QML") > width: 300 > height: 300 > visible: true > > function reactRender(x, y) { > var props = { > x: 100, > y: 100, > width: 100, > height: 100, > color: '#000' > }; > var childProps = { > x: 25, > y: 25, > width: 50, > height: 50, > color: '#fff' > }; > var child = React.createElement(React.Rectangle, childProps); > React.render(React.createElement(React.Rectangle, props, child), > root); > } > > Component.onCompleted: { > reactRender(); > } > } > > > > -Ed > > > On May 2, 2016, at 1:50 PM, Robert Iakobashvili wrote: > > Dear Ekke, > Thank you for sharing your experience with > qt.labs.controls Qt Quick Controls2 in 5.7. > > Sure, we'll be reading you blog. > > Kind regards, > Robert > > > On Mon, May 2, 2016 at 8:38 PM, ekke wrote: > > I really like the new qt.labs.controls from Qt 5.6 (will become Qt Quick > Controls2 in 5.7) > using these lightweight controls together with Material Style (Android) or > Universal Style (Windows) with light or dark themes and all the new Controls > (like Drawer) for mobile-app-navigation and also HighDPI Support you can now > first time ever develop mobile apps with nearly native feeling. (iOS style > will come later when the new controls are stable) > > I prefer to write UI in QML compared with React Native's mix of Markup and > JS or using Xamarin where you have one language but different code for > x-platform. > > Before leaving QT for mobile apps - give it a try. > BTW: I'm writing a blog series about my experiences > https://urldefense.proofpoint.com/v2/url?u=http-3A__j.mp_qt-2Dx&d=CwIGaQ&c=G4BpsyPyB19LB50bn2swXw&r=cAG2c-SQES5P2qb8IW-uwnBOCX_f2qYJIlzenFnoHUc&m=5X_i0s6I6cbSYRP1ZGUPRMZL0OkDR9nmhuR8RAiIems&s=13ftz5U9_dHo8BjIh3RKmuX9DkqPXcAx9ctnx5a0YHA&e= > and > I'll develop - as proof of concept - Conference APPs for QtCon and Qt World > Summit. > > ekke > > Am 02.05.16 um 20:17 schrieb Robert Iakobashvili: > > Dear Edward, > React Native - good catch. > > Thank you so much for sharing this idea > and your experience! > > Kind regards, > Robert > > > On Mon, May 2, 2016 at 8:08 PM, Edward Sutton > wrote: > > On May 1, 2016, at 4:27 AM, Robert Iakobashvili wrote: > > Dear Edward, > What are your conclusions and which direction you decided on > after your experiments? > > > I never made much progress. While QML looked more "native like” I never felt > comfortable using it. > > I am doing my new iOS and Android development using Facebook's react-native. > React Native calls native UI from Javascript. > > https://urldefense.proofpoint.com/v2/url?u=https-3A__face
[Interest] Is anyone here doing Qt mobile development relying on payment subscriptions?
Hi, I’m using Qt Purchasing to handle mobile in-app purchases. Qt Purchasing doesn’t seem to support subscriptions. Is anyone here with an app that supports subscriptions? How are you handling it? Regards, Nuno ___ Interest mailing list Interest@qt-project.org http://lists.qt-project.org/mailman/listinfo/interest
Re: [Interest] QDataStream not increasing position of QByteArray
On Monday, 2 October 2017 05:23:21 PDT stephan.ebel...@hs-anhalt.de wrote: > Dear Qt-list-members, > > > > i got the following problem with Qt and i hope that you can help me: > > > When I write raw network bytes to a QDataStream object repeatedly, the > QDataStream never increases the write position of the underlying > QByteArray. What write position of a QByteArray? The write position belongs to the QDataStream, not the array. > QByteArray recvBuf; > int bytePosition = 0; > > void init( ){ > recvBuf = QByteArray( 240 * 10, Qt::Uninitiliazed ); > } > > void receiveAppend( ){ > QByteArray buffer( 240, Qt::Uninitialized ); > QDataStream datastream( recvBuf, QIODevice::WriteOnly ); This line doesn't compile. I assume you meant QDataStream datastream( &recvBuf, QIODevice::WriteOnly ); > datastream.setByteOrder( QDataStream::LittleEndian ); > > if( udpSocket->readDataGram( buffer.data(), buffer.size(), &ip, &port ){ You should try the receiveDatagram() function. > datastream.device().seek( bytePosition ); datastream.device() here is a QBuffer that QDataStream created internally to wrap the QByteArray. > datastream.writeRawData( buffer.data(), buffer.size() ); > bytePosition += 240; > } > } > > > Why is this happening? Why is what happening? What is the issue? Describe what's happening and what you expected to happen. -- Thiago Macieira - thiago.macieira (AT) intel.com Software Architect - Intel Open Source Technology Center ___ Interest mailing list Interest@qt-project.org http://lists.qt-project.org/mailman/listinfo/interest
Re: [Interest] QDataStream not increasing position of QByteArray
On 2017-10-02 14:23, stephan.ebel...@hs-anhalt.de wrote: Dear Qt-list-members, i got the following problem with Qt and i hope that you can help me: When I write raw network bytes to a QDataStream object repeatedly, the QDataStream never increases the write position of the underlying QByteArray. Here's the code: |QByteArray recvBuf; int bytePosition = 0; void init( ){ recvBuf = QByteArray( 240 * 10, Qt::Uninitiliazed ); } void receiveAppend( ){ QByteArray buffer( 240, Qt::Uninitialized ); QDataStream datastream( recvBuf, QIODevice::WriteOnly ); datastream.setByteOrder( QDataStream::LittleEndian ); if( udpSocket->readDataGram( buffer.data(), buffer.size(), &ip, &port ){ datastream.device().seek( bytePosition ); datastream.writeRawData( buffer.data(), buffer.size() ); bytePosition += 240; } } | Why is this happening? The code works fine on Linux Mint 18 64Bit. But it's not working on Windows 10 64Bit. I'm using Qt Creator 4.3.1 with Qt 5.9.1. Maybe a stupid question, but you're sure you're receiving the same 240 network bytes in Win10 as you do in Mint? If you do a trace printout of the buffer.size() in receiveAppend(), is it the same in both systems? Maybe Win10's firewall is messing the program... Rgrds Henry ___ Interest mailing list Interest@qt-project.org http://lists.qt-project.org/mailman/listinfo/interest
[Interest] QDataStream not increasing position of QByteArray
Dear Qt-list-members, i got the following problem with Qt and i hope that you can help me: When I write raw network bytes to a QDataStream object repeatedly, the QDataStream never increases the write position of the underlying QByteArray. Here's the code: QByteArray recvBuf; int bytePosition = 0; void init( ){ recvBuf = QByteArray( 240 * 10, Qt::Uninitiliazed ); } void receiveAppend( ){ QByteArray buffer( 240, Qt::Uninitialized ); QDataStream datastream( recvBuf, QIODevice::WriteOnly ); datastream.setByteOrder( QDataStream::LittleEndian ); if( udpSocket->readDataGram( buffer.data(), buffer.size(), &ip, &port ){ datastream.device().seek( bytePosition ); datastream.writeRawData( buffer.data(), buffer.size() ); bytePosition += 240; } } Why is this happening? The code works fine on Linux Mint 18 64Bit. But it's not working on Windows 10 64Bit. I'm using Qt Creator 4.3.1 with Qt 5.9.1. I appreciate your help. Best regards Stephan Ebeling ___ Interest mailing list Interest@qt-project.org http://lists.qt-project.org/mailman/listinfo/interest
[Interest] Clarification or Update required on Qt Blog to install QT on Tinkerboard.
Hi, I like many others are trying build qt for asus tinker board according to this qt blog post: https://blog.qt.io/blog/2017/05/03/qt-git-tinkerboard-wayland/ I have spent quite some time going over this with no results. As the guide cross-references another guide (https://wiki.qt.io/RaspberryPi2EGLFS) it could become easy to make a mistake. To help I have included a short guide of what I've done. But this will need to be verified. The original blog that was created a short time ago also has some hyperlink issues around downloading the toolchain and there are some command issues when using: rsync -e ssh avz instead of rsync -avz. I believe there will also need to be some clarification on what system the blog was performed on (i.e Ubuntu, Debian) and also if the dev- branch of a qtbase is still required. Also, I think the additional instruction is necessary on setting up the Qt environment as there are linking issues with the qmake. please reference https://forum.qt.io/topic/83776/can-t-build-qt-for-tinkerboard Please see the attached for the draft user guide. Thank you Loading QT on to Asus Tinker http://blog.qt.io/blog/2017/05/03/qt-git-tinkerboard-wayland/#comments https://wiki.qt.io/RaspberryPi2EGLFS Download latest Cross-compiler for x64 https://releases.linaro.org/components/toolchain/binaries/6.3-2017.02/arm-linux-gnueabihf/ Extract and rename to 'toolchain' and place into /tinker folder Download latest “wayland” variant from the Firefly RK3288 section https://developer.arm.com/products/software/mali-drivers/user-space [on Tinker] copy EGL/GLES/GBM/wayland-egl libraries to /usr/lib/arm-linux-gnueabihf. 1)[on Tinker] Install a bunch of development files (for simplicity we use build-dep, not everything is really needed, but it is easier this way). A- Disable auto-starting X Command = sudo systemctl set-default multi-user.target or systemctl set-default graphical.target (to restore GUI) 1- Edit sources list in /etc/apt/sources.list with use of your favorite editor (nano / vi) and uncomment the 'deb-src' line: Command = sudo nano /etc/apt/sources.list 2- Update your system and install required libraries: Command = sudo apt-get update Command = sudo apt-get build-dep qt4-x11 libqt5gui5 wayland weston 3- Prepare our target directory Command = sudo mkdir /usr/local/qt5 Command = sudo chown linaro:linaro /usr/local/qt5 4- Give Root Password Command = sudo passwd root Command = Password Command = Password 2)[on Host] Create a sysroot on the host: Command = rsync -avz linaro@192.168.0.48:/lib ~/tinker/sysroot Command = rsync -avz linaro@192.168.0.48:/usr/include ~/tinker/sysroot/usr Command = rsync -avz linaro@192.168.0.48:/usr/lib ~/tinker/sysroot/usr 3)[on Host] Make all symlinks relative: Command = cd ~/tinker Command = wget https://raw.githubusercontent.com/riscv/riscv-poky/master/scripts/sysroot-relativelinks.py Command = chmod +x sysroot-relativelinks.py Command = ./sysroot-relativelinks.py sysroot 4) [on Host] Configure with -device linux-tinkerboard-g++: Command = git clone git://code.qt.io/qt/qtbase.git -b dev //or Command = git clone git://code.qt.io/qt/qtbase.git -b 5.10 Command = cd qtbase Command = ./configure -release -opengl es2 -nomake examples -nomake tests -opensource -confirm-license -v \ -device tinkerboard -device-option CROSS_COMPILE=~/tinker/toolchain/bin/arm-linux-gnueabihf- \ -sysroot ~/tinker/sysroot -prefix /usr/local/qt5 -extprefix ~/tinker/qt5 -hostprefix ~/tinker/qt5-host Command = make Command = make install 5)[on Host] rsyn to tinker return to /tinker Command = rsync -avz qt5 linaro@192.168.0.48:/usr/local 6)[on Host] Set up QT device and Kit.___ Interest mailing list Interest@qt-project.org http://lists.qt-project.org/mailman/listinfo/interest