[Kde-java] Compressed Icons in Java Apps created with juic
Richard Dale
Richard_Dale at tipitina.demon.co.uk
Wed Aug 18 14:04:57 CEST 2004
On Wednesday 18 August 2004 12:35, Lukas Molzberger wrote:
> Hi,
>
> > Could you post the .ui file to make it easier to test out the problem?
>
> Sure, I'll send you the .ui file.
Yes, thanks for sending me that..
> In the meantime I've got yet another problem. Perhaps you know a solution
> for that problem too. The app that I'm writing contains a few operations
> that may take a long time to process and therefore I had to use Java
> threads to keep the ui from blocking.
Another way to break up long term operations is to use a single thread with
QTimers - each long term operation does something for say 100 ms, then exits
setting a QTimer again ready for another 100 ms of processing once the other
operations have had a chance. This assumes that the work can be split up into
discrete chunks though. Or perhaps just fork() and exec() a subprocess to run
in the background.
> So I have one thread for the ui and
> one thread for the actual processing and I use a working queue to get the
> commands from the ui to the processing thread. So far everything works very
> well, but what I still need is a way to inform the ui that processing has
> finished and that the ui needs to be updated. According to the Qt docs the
> way to do this is to call
>
> QCustomEvent ce = new
> QCustomEvent(ClassifierThread.FINISHED_IMPORT_CORPUS);
> QApplication.postEvent( qmainwindow, ce );
>
> in the processing thread and to have a method
>
> protected void customEvent(QCustomEvent e) {
> System.exit(0); // Exit just for testing
> }
>
> as part of the QMainWindow object. The problem is that while
> QApplication.postEvent( qmainwindow, ce ); definitely gets called, the
> event handler customEvent however doesn't get called. Do you have any idea?
I'm not sure if you can mix java threads and Qt threads like this. I think
that's more likely to be the problem than the QMainWindow.customEvent()
method being wrong. Is there a Qt event logging mechanism that could be
turned on to track how the custom event gets lost?
In QMainWindow.cpp there is a custom event handler for overriding
customEvent() and it looks just the same as the other event handlers:
void customEvent(QCustomEvent* arg1) {
if (!QtSupport::eventDelegate(this,"customEvent",
(void*)arg1,"org.kde.qt.QCustomEvent")) {
QObject::customEvent(arg1);
}
return;
}
-- Richard
More information about the Kde-java
mailing list