[Qt-interest] Showing a "Please wait" dialog during sql query
Gillen Daniel
gillen.daniel at gmail.com
Mon Jun 7 20:44:51 CEST 2010
On 06/07/2010 08:33 PM, Scott Aron Bloom wrote:
> -----Original Message-----
> From: qt-interest-bounces at trolltech.com
> [mailto:qt-interest-bounces at trolltech.com] On Behalf Of Gillen Daniel
> Sent: Monday, June 07, 2010 11:27 AM
> To: qt-interest at trolltech.com
> Subject: Re: [Qt-interest] Showing a "Please wait" dialog during sql
> query
>
> On 06/07/2010 07:47 PM, Scott Aron Bloom wrote:
>
>> Ive had the same problem. I have worked on it, but no "real" success
>> yet..
>>
>> Mine is a bit harder, because my SQL query is being used in a SQL
>>
> Model,
>
>> not just a dialog.
>>
>> But here is what I am trying.. And in speaking with some trolls,
>>
> should
>
>> work if I ever get the full time to devote to it.
>>
>> Assign the QSqlQuery and QSqlDatabase in a thread dedicated to the
>> display class. In my case a QSqlModel your case is QDialog derived
>> class.
>>
>> Show the dialog, have it start the thread. Have the threads run emit
>>
> a
>
>> signal when its finished, and exit the thread, but do not delete the
>> thread.
>>
>> Use the data from the QSql data from the thread. Once you are
>>
> finished
>
>> retrieving the data, you can delete the thread/QSql data.
>>
>> The display should stay valid during the exec.
>>
>> Scott
>>
>> -----Original Message-----
>> From: qt-interest-bounces at trolltech.com
>> [mailto:qt-interest-bounces at trolltech.com] On Behalf Of Gillen Daniel
>> Sent: Monday, June 07, 2010 10:32 AM
>> To: qt-interest at trolltech.com
>> Subject: [Qt-interest] Showing a "Please wait" dialog during sql query
>>
>> Hi @all
>>
>> I have a massive problem here and don't seem to find a solution for
>>
> it.
>
>> I'm developping a database application based on a MySQL database and I
>> would need to display a "Please wait" dialog while
>> populating a QSqlQueryModel. The data from QSqlQueryModel gets
>>
> displayed
>
>> in a widget in my main window, so I have to exec the query in my main
>> thread. The problem is that any dialog I open before querying the data
>> hangs as my query blocks the main thread.
>>
>> Does anyone has an idea on how I could solve this? I would need some
>> sort of 2nd thread which displays the dialog with his own event loop
>>
> but
>
>> as far as I understand, Qt does not support GUI interaction in a
>>
> second
>
>> thread. Or is it perhaps possible to exec the query in a second thread
>> and then move the whole QSqlQueryModel and database connection to my
>> main thread?
>>
>> Thx in advance
>>
>>
>>
> As far as I can see it's exactly the same as mine as I also need the
> data in a model that gets displayed in my main window.
>
> The dialog should only inform the user that a query is beeing executed
> and the program hasn't crashed.
>
> So just to clarify this, in my MainWindow I start a thread which opens a
>
> database connection, executes my SQL query, emits a signal to my
> MainWindow and exits. The slot receiving this signal uses the QSqlQuery
> from the thread and assigns it to my QSqlModel which is then assigned
> for ex. to a QTableModel widget?
>
> Sorry but this seems a bit confusing to me or didn't I get it right?
> -----------------
>
> Let me work on this a bit, and Ill try to get you a code sample...
>
>
> Howver, yes in general you got it right...
>
> Scott
>
Ok, a code sample would be great ;)
Thx a lot
--
Unix _IS_ user friendly - it's just
selective about who its friends are!
More information about the Qt-interest-old
mailing list