SQL连接和GUI问题

时间:2010-12-06 09:39:35

标签: c++ mysql qt

在我的代码中,我连接了MySql数据库和查询数据 我使用这些数据绘制图形场景。

当数据库连接返回false时,
我的程序尝试使用( db.Open())连接数据库。

与此同时,gui被锁定 你对这个问题有什么看法吗? 我该如何解决?

1 个答案:

答案 0 :(得分:1)

要解决此问题,您必须创建一个多线程应用程序。一个进程可以有多个线程,就像子进程一样,与主子进程并行运行(对于这个解释,请打我:P)。有关线程的更多信息,请阅读here

在您的情况下,您将必须生成一个线程,该线程在后台进行MySql连接(QT Doc说“连接只能在创建它的线程中使用。”),从服务器获取数据并将其绘制到所需的小部件。在后台线程执行此操作时,应用程序的主运行周期不会中断,并且您的应用程序不会无响应。但是,您必须实现一种机制,确保一次只存在1个Mysql-Data-Fetcher-Thread,因为它会变得混乱(例如,多个线程想要访问同一个绘图区域,这在QT中是不可能的)。

在QT文档站点上存在一个非常好的section about threads以及如何在QT中实现它们。如果您不熟悉线程编程,也应该参考那里的外部链接。