作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我想在这个程序中同时拥有“for 循环”和“gtk 窗口”。如您所知,循环结束后 gtk 窗口将打开。但我想同时打开它们。
我该怎么做?
#include <gtk/gtk.h>
#include<stdio.h>
int main( int argc, char *argv[])
{
int i;
GtkWidget *window;
gtk_init(&argc, &argv);
window = gtk_window_new(GTK_WINDOW_TOPLEVEL);
gtk_window_set_position(GTK_WINDOW(window), GTK_WIN_POS_CENTER);
gtk_window_set_title(GTK_WINDOW(window), "markup label");
getchar();
for(i=1;i<10;i++)
{
printf("%d",i);
getchar();
}
gtk_window_set_default_size(GTK_WINDOW(window), 300, 100);
g_signal_connect(window, "destroy",
G_CALLBACK (gtk_main_quit), NULL);
gtk_widget_show(window);
gtk_main();
return 0;
}
最佳答案
那么,线程呢:
#include <stdio.h>
#include <gtk/gtk.h>
#include <pthread.h>
void * go(void *threadid)
{
int i;
for(i=1;i<10000000;i++)
{
printf("%d\n",i);
}
pthread_exit(NULL);
}
int main( int argc, char *argv[])
{
int i;
GtkWidget *window;
gtk_init(&argc, &argv);
window = gtk_window_new(GTK_WINDOW_TOPLEVEL);
gtk_window_set_position(GTK_WINDOW(window), GTK_WIN_POS_CENTER);
gtk_window_set_title(GTK_WINDOW(window), "markup label");
gtk_window_set_default_size(GTK_WINDOW(window), 300, 100);
g_signal_connect(window, "destroy",
G_CALLBACK (gtk_main_quit), NULL);
pthread_t t;
int rc = pthread_create(&t , NULL , go ,NULL);
if (rc){
printf("ERROR; return code from pthread_create() is %d\n", rc);
exit(-1);
}
gtk_widget_show(window);
gtk_main();
return 0;
}
编译:
gcc -Wall -g main.c -o my_gtk `pkg-config --cflags gtk+-3.0` `pkg-config --libs gtk+-3.0`
在 lubuntu 上使用 gtk 3 进行测试。
关于c - 如何在 gtk 中运行该程序而不崩溃?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27530122/
我是一名优秀的程序员,十分优秀!