2010-12-06 137 views
2

在我的代碼中,我連接MySql數據庫和查詢數據。
我使用這些數據繪製圖形場景。Sql連接和GUI問題

當數據庫連接返回false時,
我的程序嘗試連接數據庫與(db.Open())

與此同時,gui被鎖定。
你對這個問題有什麼想法嗎?
我該如何解決?

+0

甚至沒有足夠的信息來幫助你。 – 2010-12-06 09:40:59

回答

1

要解決這個問題,您必須創建一個多線程應用程序。一個進程可以有多個線程,這些線程就像是與子進程並行運行的子進程(Slam me for this explanation:P)。有關線程的更多信息,請閱讀here

在你的情況下,你必須產生一個線程,在後臺創建MySql連接(QT Doc表示「只能在創建它的線程中使用連接」),獲取數據從服務器並將其繪製到您想要的小部件。在後臺線程執行此操作時,應用程序的主要運行週期不會中斷,並且您的應用程序不會無響應。但是,您必須實現一種機制,以確保一次只能存在一個Mysql-Data-Fetcher-Thread,否則它會變得混亂(例如,多個線程想要訪問相同的繪圖區域,這在QT中是不可能的)。

在QT文檔站點上存在非常好的section about threads以及如何在QT中實現它們。如果你不熟悉線程編程,你還應該查閱那裏的外部鏈接。