日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

C指针原理(25)-gtk

發(fā)布時(shí)間:2025/3/12 编程问答 50 豆豆
生活随笔 收集整理的這篇文章主要介紹了 C指针原理(25)-gtk 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

GTK+3開發(fā)

GTK+3可以運(yùn)行在WIN下和LINUX下。

#include <gtk/gtk.h>int main( int argc, char *argv[]) {GtkWidget *window;GtkWidget *fixed;GtkWidget *button;gtk_init(&argc, &argv);window = gtk_window_new(GTK_WINDOW_TOPLEVEL);gtk_window_set_title(GTK_WINDOW(window), "你好");gtk_window_set_default_size(GTK_WINDOW(window), 230, 150);gtk_window_set_position(GTK_WINDOW(window), GTK_WIN_POS_CENTER);fixed = gtk_fixed_new();gtk_container_add(GTK_CONTAINER(window), fixed);button = gtk_button_new_with_label("退出");gtk_fixed_put(GTK_FIXED(fixed), button, 50, 50);gtk_widget_set_size_request(button, 80, 35);g_signal_connect(G_OBJECT(button), "clicked",G_CALLBACK(gtk_main_quit), G_OBJECT(window));g_signal_connect_swapped(G_OBJECT(window), "destroy",G_CALLBACK(gtk_main_quit), NULL);gtk_widget_show_all(window);gtk_main();return 0; }

windows下配置gtk+3與codeblocks的開發(fā)環(huán)境如下:

選擇all-in-one bundle下載后安裝。

Then add the bin folder to your PATH. Make sure you have no other

versions of GTK+ in PATH. Run:

pkg-config --cflags gtk+-3.0

and verify that it prints out something reasonable. Prepare Pango :

pango-querymodules > c:\gtk\etc\pango\pango.modules

Prepare GDK-Pixbuf :

gdk-pixbuf-query-loaders > c:\gtk\lib\gdk-pixbuf-2.0\2.10.0\loaders.cache

Prepare GTK±IMModules :

gtk-query-immodules-3.0 > c:\gtk\lib\gtk-3.0\3.0.0\immodules.cache

Run:

gtk3-demo

and verify that it works.

J:>pkg-config --libs gtk±3.0 > libs.txt

J:>pkg-config --cflags gtk±3.0 > cflags.txt

Codeblocks 建立empty project

#include <gtk/gtk.h>static void destroy(GtkWidget window,gpointer data){printf("%s",gtk_label_get_text(data));gtk_main_quit(); } static gboolean delete_event(GtkWindow window,GdkEvent *event,gpointer data){return FALSE; }int main( int argc, char argv[]) {GtkWidget window;char markup;char str="hello,world";gtk_init(&argc, &argv);window = gtk_window_new(GTK_WINDOW_TOPLEVEL);gtk_window_set_title(GTK_WINDOW(window), "你好");gtk_container_set_border_width(GTK_CONTAINER(window),10);gtk_window_set_default_size(GTK_WINDOW(window), 130, 150);gtk_window_set_position(GTK_WINDOW(window), GTK_WIN_POS_CENTER);GtkWidget * label=gtk_label_new("");markup = g_markup_printf_escaped ("<span style=\"italic\">%s</span>",str );gtk_label_set_markup (GTK_LABEL (label), markup);gtk_label_set_selectable(GTK_LABEL(label),TRUE);g_signal_connect(G_OBJECT(window), "destroy",G_CALLBACK(destroy),(gpointer)label);g_signal_connect(G_OBJECT(window), "delete _event",G_CALLBACK(delete_event),NULL);gtk_container_add(GTK_CONTAINER(window),label);gtk_widget_show_all(window);gtk_main();g_free (markup);return 0; }

在windows下配置遠(yuǎn)程登錄UNIX/LINUX服務(wù)器,執(zhí)行圖形程序

在Putty上有X的轉(zhuǎn)發(fā)功能,可以將Linux主機(jī)的X程序通過(guò)SSH通道轉(zhuǎn)發(fā)到客戶端,交給在本地Windows系統(tǒng)下運(yùn)行的X Server來(lái)管理和顯示。 提供X server和SSH服務(wù)的軟件有很多,可以使用Putty和Xming

Putty 下載地址:http://www.putty.org/Xming 下載地址:http://xming.softpedia.com/

Xming與putty一起實(shí)現(xiàn)Linux X11在本地顯示的方法如下:

putty上設(shè)置:Connection->SSH->X11->Enable X11 forwarding

然后在本地 Windows 系統(tǒng)上啟動(dòng)一個(gè) Xwindow 服務(wù),如 Xming. 這時(shí)就可以遠(yuǎn)程輸入命令啟動(dòng)圖形界面的程序了,啟動(dòng)后程序的界面將顯示在本地的 Windows 桌面上。

Xming的主頁(yè):
http://www.straightrunning.com/XmingNotes/
Xming的SourceForge頁(yè)面:
http://sourceforge.net/projects/xming/

第一次運(yùn)行時(shí)使用開始菜單里面的XLaunch來(lái)啟動(dòng),產(chǎn)生一個(gè)初始的配置文件。對(duì)于簡(jiǎn)單的使用來(lái)說(shuō),不需要任何特殊的配置,一切使用默認(rèn)即可。Xming的具體配置和使用可以參考http://www.straightrunning.com/XmingNotes/xmingrc.php

運(yùn)行PuTTY,在配置界面,選擇“Connection-SSh-X11”,選中“Enable X11forwarding”,“X display location”中填上上一步中“Display number”中的數(shù)字(此處就是“l(fā)ocalhost:0”)。

下面測(cè)試一下,編寫一段簡(jiǎn)單的關(guān)于GTK+的C代碼文件:

dp@dp:~/gtklearn % vim test1.c

#include <gtk/gtk.h>int main (int argc,char *argv[]){GtkWidget *window;gtk_init (&argc,&argv);window = gtk_window_new (GTK_WINDOW_TOPLEVEL);g_signal_connect (window, "destroy", G_CALLBACK (gtk_main_quit), NULL);gtk_widget_show (window);gtk_main ();return 0; }

然后,編譯運(yùn)行

gcc pkg-config --cflags gtk±3.0 -o window-default tset1.c pkg-config --libs gtk±3.0

給窗口加上標(biāo)題

dp@dp:~/gtklearn % vim test1.c

#include <gtk/gtk.h> int main (int argc,char *argv[]){GtkWidget *window;gtk_init (&argc,&argv);window = gtk_window_new (GTK_WINDOW_TOPLEVEL);g_signal_connect (window, "destroy", G_CALLBACK (gtk_main_quit), NULL);gtk_window_set_title(GTK_WINDOW(window), "hello,world");gtk_widget_show (window);gtk_main ();return 0; }

~
dp@dp:~/gtklearn % gcc pkg-config --cflags gtk±3.0 -o window-default test1.c pkg-config --libs gtk±3.0
dp@dp:~/gtklearn % ./window-default

Xming-fonts的安裝
http://xming-fonts.software.informer.com/download/
雙擊Xming-fonts-7-4-0-3-setup.exe安裝Xming-fonts, 安裝路徑為默認(rèn)的C:\Program Files\Xming, 則安裝字體之后的字體路徑就是C:\Program Files\Xming\fonts.

這是windows客戶端的顯示

下面是在虛擬上安裝的freebsd的顯示

啟動(dòng)xorg

startx

然后運(yùn)行程序

如下圖

我們也可以選擇xmanger,相對(duì)xming來(lái)說(shuō),更加強(qiáng)大,使用xmanger后,為正常顯示中文,需要下載字體文件安裝

http://www.netsarang.com/download/font.html

同時(shí)在freebsd/linux端指定編碼為utf-8格式,最后需要調(diào)整xshell的參數(shù)

下面是上述程序在xmanger的運(yùn)行畫面

dp@dp:~/gtklearn % vim test1.c #include <gtk/gtk.h> int main (int argc,char *argv[]){GtkWidget *window;gtk_init (&argc,&argv);window = gtk_window_new (GTK_WINDOW_TOPLEVEL);g_signal_connect (window, "destroy", G_CALLBACK (gtk_main_quit), NULL);gtk_window_set_title(GTK_WINDOW(window), "你好,世界");gtk_widget_show (window);gtk_main ();return 0; }

這是在xfce4中運(yùn)行的界面:

總結(jié)

以上是生活随笔為你收集整理的C指针原理(25)-gtk的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。