Linux下使用GTK+创建窗口关闭后,再创建时候提示窗口已经存在

lover2668 发布于 2018/09/19 17:05
阅读 286
收藏 0

我在linux  redhat7.5下发使用GTK+开发窗口显示界面。

主要是文件上传下载操作。

首先,进程中创建一个UI线程主要接收命令文件上传下载命令消息。

再创建一个GTK界面绘制线程,此GTK线程创建一个主windows窗口并设置为hide不显示此窗口,且调用gdk_threads_init和gdk_threads_enter以及gdk_threads_leave接口进行线程安全保护,在此GTK线程中调用gtk_main循环。此GTK线程会loop循环在GTK中。

UI线程通过事件通知GTK线程创建文件选择框或者进度条子窗口。

下载时候使用GTk+创建一个多文件选择框窗口,选择完毕文件后调用gtk_widget_destroy销毁窗口且函数传入参数为子窗口的GtkWidget指针。 

上传文件时候使用GTK+创建一个文件选择窗口,选择文件目录作为保存文件路径,选择完毕后调用gtk_widget_destroy销毁窗口且函数传入参数为子窗口的GtkWidget指针。

上传或者下载文件超过1MB大小时,会创建一个进度条子窗口,窗口中创建一个box容器,添加label控件显示文件名,添加progressbar空间显示文件传输进度,添加两个button按钮分别作为暂停和取消按钮。动态更新此子窗口titel来显示传输百分比的数值,更新progressbar显示百分比条,更新label显示时间。传输完毕或者取消时,会调用tk_widget_destroy销毁窗口且函数传入参数为子窗口的GtkWidget指针。

但是进度条窗口会概率性出现下面这样的提示框,提示进度条窗口已经创建了。

出现时会导致进度条窗口按钮点击没有任何相应,进度条窗口也不能刷新。

这问题求帮助指教  qq  1733177

加载中
返回顶部
顶部