2015-06-26 69 views
2

我正在制作应用程序来读取卡片,然后打印其余额,当用户想要查看他的余额时,他点击主屏幕上的余额查询按钮。我使用开罗创建了背景。现在当用户点击Balance Enquiry屏幕显示show your card应该暂停2-3秒,所以我使用sleep()函数。但问题是屏幕上点击Bal. Enq.按钮,我相信sleep()是在屏幕上打印show ur card的代码之后。如何使用睡眠()GTK +

+1

“睡眠”函数使整个线程进入睡眠状态,意味着线程中根本没有代码运行。你应该寻找其他的超时机制。 –

+0

感谢您的快速回复!有一个'g_timeout_add_seconds'函数,但它只允许特定类型的函数指针,并且没有常规函数。 –

+0

传递给'g_timeout_add_seconds()'的函数将一个指针作为参数;如果您有多条数据,则应该分配一个结构并将其作为'g_timeout_add_seconds()'的'user_data'参数传递。 – ebassi

回答

6

您不能在GTK + GUI应用程序中使用sleep(),它会阻止整个应用程序并使其无响应。您的应用程序会导致GTK +执行更新界面的工作;如果你睡着了,你会停止运行GTK +,因此在应用程序被唤醒之前UI变化不会发生。

调查glib的超时API:g_timeout_add()是一个明智的开始。

+0

谢谢您的快速回答我会尝试这一点,并尽快接受您的答案开始工作。 –