blackberry / qt Goto Github PK
View Code? Open in Web Editor NEWA popular cross-platform application framework
A popular cross-platform application framework
Hello Guys,
Can you guys build the Qt SDK for Playbook for the OSX? I mainly develop on OSX and it's painful to reboot each time I need to compile my Qt Apps.
This issue is somewhat intermittent - I have seen it appear and disappear with just whitespace changes to the code.
Compiling the program below, it should print a message to the console (or log file on playbook) on any keyboard input, this is what it does in linux. The qterm.h file contains includes of a few irrelevant headers - removing those irrelevant headers includes somehow makes it do this on playbook too (that is, without the includes, it works as I expect). But compiling the code exactly as-is, it does not print any message when the VKB is activated and a key is pressed on it. Adding prints to the Qt code, I can see that QWidget::setFocus() is called at some point on startup in the success case, and is not called in the failure case, but I haven't gotten further than that in debugging. If the 'new QPushButton(this) is commented out, then the problem never happens in my testing.
qterm.h:
class QTerm : public QWidget
{
Q_OBJECT
public:
QTerm(QWidget *parent = 0);
~QTerm( );
protected:
void keyPressEvent(QKeyEvent *);
};
qterm.cpp:
QTerm::QTerm(QWidget *parent) : QWidget(parent)
{
new QPushButton(this);
}
QTerm::~QTerm()
{
}
void QTerm::keyPressEvent(QKeyEvent *event)
{
printf("Key %d pressed\n", event->key());
fprintf(stderr, "Key %d pressed\n", event->key());
}
int main(int argc, char *argv[])
{
QCoreApplication::addLibraryPath("app/native/lib");
QApplication app(argc, argv);
QTerm term(NULL);
term.show();
return app.exec();
}
When initially creating a QWidget and calling show, then checking the value of contentsRect() on that widget, it is not sized to fill the screen even though the window is fullscreen.
On linux with a tiling window manager that automatically launches a new window as fullscreen (which I think is the closest equivalent to playbook), contentsRect will return the full screen dimensions in this case.
On mac, or on linux with a non-tiling window manager, the window starts smaller, but the value of contentsRect() still matches the actual dimensions of the window.
Calling "resize(1024,600)" on the widget fixes the problem, but this should have been done automatically when the application was launched, as it is on linux.
Dialogs launched with open() doesn't properly close on reject() signal.
Currently each open() call shall be replaced with exec() call to show true modal dialog without side-effects.
In the the file configure-qsk when it selects the OpenGL version based on the CPU, it's missing the $ sign on the if statment.
Because of this it always builds for GLES 2, even when buildin for x86 (simulator).
Usage of embed links is not available:
QDesktopServices::launchWebBrowser not implemented.
So every time I'm using web links in my lables, I shall disable automatic resolving of external links and implement a slot for "linkActivated" signal
When trying to build under windows 7 on MinGW after creating all the headers, when creating the qmake it fails to replace the variable $QMAKE_CC
(...)
headers.pri file created for Qt3Support
Creating qmake. Please wait...
$QMAKE_CC -lang-c++ -c -o project.o -DQMAKE_OPENSOURCE_EDITION -g -I. -Igenerators -Igenerators/unix -Igenerators/win32
-Igenerators/mac -Igenerators/symbian -Igenerators/integrity -I/e/ndk-1.0.0-workspace/QT/include -I/e/ndk-1.0.0-workspa
ce/QT/include/QtCore -I/e/ndk-1.0.0-workspace/QT/src/corelib/global -I/e/ndk-1.0.0-workspace/QT/src/corelib/xml -I/e/ndk
-1.0.0-workspace/QT/tools/shared -DQT_NO_PCRE -DQT_BUILD_QMAKE -DQT_BOOTSTRAPPED -DQLIBRARYINFO_EPOCROOT -DQT_NO_TEXTCOD
EC -DQT_NO_UNICODETABLES -DQT_NO_COMPONENT -DQT_NO_STL -DQT_NO_COMPRESS -I/e/ndk-1.0.0-workspace/QT/mkspecs/unsupported/
blackberry-armv7le-g++ -DHAVE_QCONFIG_CPP -DQT_NO_THREAD -DQT_NO_QOBJECT -DQT_NO_GEOM_VARIANT -DQT_NO_DEPRECATED projec
t.cpp
/bin/sh: -lang-c++: command not found
make.exe: *** [project.o] Error 127
(...)
Calling the clear function on the clipboard, from within an app, will cause the app to crash with a SIGSEGV:
QApplication::clipboard()->clear(QClipboard::Clipboard);
The problem is that the implementation of this method calls QBBClipboard's setMimeData() function with a 0 for the data parameter, and that case is not handled before trying to dereference it.
The fix is simple. Just add "if(data == 0) return;" right after the call to "empty_clipboard();" inside of QBBClipboard::setMimeData().
I installed on my laptop under Windows 7 QT for BB Playbook and QT Creator and was able to create and build the simple project.
14:25:38: Running steps for project First...
14:25:38: Starting: "C:\bbndk-2.0.0\host\win32\x86\usr\bin\make.exe" clean -w
make.exe: Entering directory C:/BBQt/First' rm -f moc_mainwidget.cpp rm -f ui_mainwidget.h rm -f main.o mainwidget.o moc_mainwidget.o rm -f *~ core *.core make.exe: Leaving directory
C:/BBQt/First'
14:25:40: The process "C:\bbndk-2.0.0\host\win32\x86\usr\bin\make.exe" exited normally.
14:25:40: Configuration unchanged, skipping qmake step.
14:25:40: Starting: "C:\bbndk-2.0.0\host\win32\x86\usr\bin\make.exe" -w
make.exe: Entering directory C:/BBQt/First' c:/QtPlaybookSDK/Playbook/Qt/4.8.1/bin/uic.exe mainwidget.ui -o ui_mainwidget.h qcc -Vgcc_ntoarmv7le -lang-c++ -c -O2 -Wall -W -D_REENTRANT -DQT_NO_DEBUG -DQT_GUI_LIB -DQT_CORE_LIB -DQT_SHARED -I../../QtPlaybookSDK/Playbook/Qt/4.8.1/mkspecs/default -I. -I../../QtPlaybookSDK/Playbook/Qt/4.8.1/include/QtCore -I../../QtPlaybookSDK/Playbook/Qt/4.8.1/include/QtGui -I../../QtPlaybookSDK/Playbook/Qt/4.8.1/include -I. -I. -I../../bbndk-2.0.0/target/qnx6/usr/include -I../../bbndk-2.0.0/target/qnx6/usr/include/freetype2 -o main.o main.cpp qcc -Vgcc_ntoarmv7le -lang-c++ -c -O2 -Wall -W -D_REENTRANT -DQT_NO_DEBUG -DQT_GUI_LIB -DQT_CORE_LIB -DQT_SHARED -I../../QtPlaybookSDK/Playbook/Qt/4.8.1/mkspecs/default -I. -I../../QtPlaybookSDK/Playbook/Qt/4.8.1/include/QtCore -I../../QtPlaybookSDK/Playbook/Qt/4.8.1/include/QtGui -I../../QtPlaybookSDK/Playbook/Qt/4.8.1/include -I. -I. -I../../bbndk-2.0.0/target/qnx6/usr/include -I../../bbndk-2.0.0/target/qnx6/usr/include/freetype2 -o mainwidget.o mainwidget.cpp C:/QtPlaybookSDK/Playbook/Qt/4.8.1/bin/moc.exe -DQT_NO_DEBUG -DQT_GUI_LIB -DQT_CORE_LIB -DQT_SHARED -I../../QtPlaybookSDK/Playbook/Qt/4.8.1/mkspecs/default -I. -I../../QtPlaybookSDK/Playbook/Qt/4.8.1/include/QtCore -I../../QtPlaybookSDK/Playbook/Qt/4.8.1/include/QtGui -I../../QtPlaybookSDK/Playbook/Qt/4.8.1/include -I. -I. -I../../bbndk-2.0.0/target/qnx6/usr/include -I../../bbndk-2.0.0/target/qnx6/usr/include/freetype2 -D__QNXNTO__ mainwidget.h -o moc_mainwidget.cpp qcc -Vgcc_ntoarmv7le -lang-c++ -c -O2 -Wall -W -D_REENTRANT -DQT_NO_DEBUG -DQT_GUI_LIB -DQT_CORE_LIB -DQT_SHARED -I../../QtPlaybookSDK/Playbook/Qt/4.8.1/mkspecs/default -I. -I../../QtPlaybookSDK/Playbook/Qt/4.8.1/include/QtCore -I../../QtPlaybookSDK/Playbook/Qt/4.8.1/include/QtGui -I../../QtPlaybookSDK/Playbook/Qt/4.8.1/include -I. -I. -I../../bbndk-2.0.0/target/qnx6/usr/include -I../../bbndk-2.0.0/target/qnx6/usr/include/freetype2 -o moc_mainwidget.o moc_mainwidget.cpp qcc -Vgcc_ntoarmv7le -lang-c++ -Wl,-rpath-link,C:/bbndk-2.0.0/target/qnx6/armle-v7/lib -Wl,-rpath-link,C:/bbndk-2.0.0/target/qnx6/armle-v7/usr/lib -Wl,-O1 -o First main.o mainwidget.o moc_mainwidget.o -LC:/bbndk-2.0.0/target/qnx6/armle-v7/lib -LC:/bbndk-2.0.0/target/qnx6/armle-v7/usr/lib -LC:\QtPlaybookSDK\Playbook\Qt\4.8.1\lib -lQtGui -L/home/andy/playbook/qt/stage/Playbook/Qt/4.8.1/lib -L/opt/bbndk-2.0.0-beta2/target/qnx6/armle-v7/lib -L/opt/bbndk-2.0.0-beta2/target/qnx6/armle-v7/usr/lib -lQtCore -lm make.exe: Leaving directory
C:/BBQt/First'
14:25:56: The process "C:\bbndk-2.0.0\host\win32\x86\usr\bin\make.exe" exited normally.
14:26:11: No hostname specified for device
Error while building/deploying project First (target: QNX Arm)
When executing step ''
The problem arose during deployment because I must define the target device (in my case it's 192.168.2.100). I know how make it in QNX Momentics IDE. How I've should be make this in QT Creator?
Please add some blackberry playbook specific build instructions to any of your readme files.
I am not quiet sure how to build qt for the both device and the simulator properly.
I use Windows but it is not obvious for other platforms as well.
In other words, please provide a set of flags for "configure.exe" tool.
We have an issue with window posting when launching through the navigator instead of through the command line.
Hi,
the issue reported in the title is related to the fact that "qcc -dumpversion" is not a valid parameter, so the code present at line 7507 of configure fails. It happens cause there's no specific command for blackberry-*-g++ makespec.
XmlPatterns is mandatory if you need to use QtDeclarative and QML language.
I have no clue about which could be the proper fix. I've just forced the build of XmlPatterns.
Tony.
I hope this description makes sense. The app's main window is a QMainWindow, which launches various QDialogs. Those display fine. But if they launch other QDialogs (e.g. dialog has a pop-up item-picker window), those sub-QDialogs are invisible and inaccessible. Even worse, if they're modal, they completely lock up the app's UI.
I did some investigation, and these sub-QDialogs are being correctly created. However, I suspect that the problem is that their Z-order is not being set. When checking debug logs, it appears that the last call to QBBScreen::updateHierarchy() occurs before the sub-QDialog is created.
I did find a fix, and while I'm not sure if its the right fix, it appears to work. At the very bottom of the QBBWindow constructor (right after the call to addWindow(this)), I added a call to QBBScreen::updateHierarchy() and the problem went away.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.