C/C++±à³ÌGUI¿â±È½Ï
×îÇ¿µÄGUI¿âµ±ÊôQt£¬±Ï¾¹ÊÇÉÌÒµ»¯µÄ¶«Î÷£¬¹¦ÄÜ×îÍêÕû£¬Ê²Ã´¶¼ºÃ£¬°üÀ¨ÀàËÆjava´úÂë·ç¸ñ£¬Á¼ºÃµÄ¿ò¼ÜÉè¼Æ£¬µ«Óм¸µãÖµµÄÒ»Ì᣺
1.ËüûÓÐʹÓÃSTL£¬¶øÊÇ×Ô¼ºÊµÏÖÁËÒ»Ì×Ìæ´ú·½°¸QTL£»
2.ʼþÄ£ÐÍʹÓÃ×Ô´´µÄsignal/slot»úÖÆ£¬ËùÒÔÐèÒªmoc.exeÀ´Ô¤´¦ÀíÍ·Îļþ£»
3.¶ÔƤ·ôµÄÖ§³Ö²»ÊǺܺã¬ÐèÒª×Ô¼ºÐ´StyleÀàÀ´¶¨Òå¸÷ÖֿؼþµÄPaint£»
ËùÒÔÕ¾ÔÚQtµÄÊÓ½ÇÈ¥±È½ÏËùÓÐÆäËûµÄ¿ªÔ´¿â£¬ÏàÐÅÕâÑùÄÜΪÄã×÷³öÕýÈ·µÄÑ¡Ôñ¡£
1. GTK+
gtk+ÓÃCÓïÑÔµÄÃæÏò¶ÔÏóµÄÉè¼Æ·½·¨£¬¿ò¼ÜÉè¼ÆÁ¼ºÃ£¬Ëü¿ÉÄÜ»á±ÈQtÐÔÄܺá£LGPLÐÒ飬¿ÉÒÔ×÷ÉÌÒµÓÃ;£¬Ö§³ÖƤ·ô(theme/GtkStyle)£¬Ö§³ÖXML¶¨Òå½çÃæ£¬ÓÐÉè¼ÆÆ÷Ö§³Ö(glade)£¬Ö§³Ö¹ú¼Ê»¯(gettext)£¬µ«Ã»ÓÐQt·½±ã£¬±àÒëµÄ¿â´óС3M×óÓÒ(Debug°æ±¾ËãÉÏËùÓеÄlib)±ÈQtС£»ÓÐÀàËÆQtµÄsignal»úÖÆ£¬µ«²»ÐèÒªÔ¤±àÒë´¦Àí¡£¶ÔopenglºÍͼÐÎͼÏñÖ§³ÖÁ¼ºÃ¡£
gtk+»ùÓÚÈý¸ö¿â£ºglib£¬pangoºÍatk¡£glibÊǵײã¿â£¬·â×°ÁËcµÄÊý¾Ý½á¹¹´¦Àí£¬¿ÉÒÆÖ²ÐÔ£¬thread£¬¶¯Ì¬ÔØÈëÒÔ¼°Ò»¸ö¶ÔÏóϵͳ¡£pangoÊÇÒ»¸ö²¼¾ÖºÍÎı¾äÖȾ¿â£¬´¦Àí
×ÖÌåºÍ¹ú¼Ê»¯¡£atkÊÇÒ»¸öÓ¦ÓóÌÐò×é¼þ½Ó¿Ú¿â£¬ÀïÃæÓÐÀàËÆQtµÄactionÖ®ÀàµÄ¡£ÁíÍâcarioÊÇÒ»¸öʸÁ¿Í¼µÄ´¦Àí¿â¡£
ÒòΪÊÇC£¬µ«´úÂëÖбÜÃâ²»Á˺êºÍÏ»®Ïߣ¬²»ÊÇÄÇôÌÖÈËϲ»¶£¬¹À¼ÆC³ÌÐòÔ±±È½Ïϰ¹ß¡£
window = gtk_window_new (GTK_WINDOW_TOPLEVEL);
g_signal_connect (window, “destroy”, G_CALLBACK (gtk_widget_destroyed), &window);
µ«ÓÐÆäËûÓïÑԵİ󶨣¬c++µÄÊÇgtkmm£¬pythonµÄÊÇPyGtk£¬adaµÄÊÇAdaGtk¡£ÆäÖÐgtkmmµÄ´úÂë·ç¸ñ±È½ÏºÃ£¬Ã»ÓÐÁËÏ»®ÏߺÍÖî¶àºê¡£
gtk+µÄ×îÖøÃûµÄ³É¹¦°¸ÀýÊÇgimpͼÏñ´¦Àí¹¤¾ßºÍgnome×ÀÃæ¡£
GIMP (http://www.gimp.org/), an image manipulation program
AbiWord (http://www.abiword.com/), a professional word processor
Dia (http://www.lysator.liu.se/~alla/dia/dia.html), a diagram creation program
GnuCash (http://www.gnucash.org/), a personal finance manager
Gnumeric (http://www.gnome.org/projects/gnumeric/), the GNOME spreadsheet application
Glade (http://glade.gnome.org/), a GTK+ based RAD tool which produces GTK+ an
Ïà¹ØÎĵµ£º
1.ÒýÑÔ
¡¡¡¡C++ÓïÑԵĴ´½¨³õÖÔÊÇ“a better C”£¬µ«ÊÇÕâ²¢²»Òâζ×ÅC++ÖÐÀàËÆCÓïÑÔµÄÈ«¾Ö±äÁ¿ºÍº¯ÊýËù²ÉÓõıàÒëºÍÁ¬½Ó·½Ê½ÓëCÓïÑÔÍêÈ«Ïàͬ¡£×÷ΪһÖÖÓûÓëC¼æÈݵÄÓïÑÔ£¬C++±£ÁôÁËÒ»²¿·Ö¹ý³ÌʽÓïÑÔµÄÌØµã£¨±»ÊÀÈ˳ÆÎª“²»³¹µ×µØÃæÏò¶ÔÏ󔣩£¬Òò¶øËü¿ÉÒÔ¶¨Òå²»ÊôÓÚÈκÎÀàµÄÈ«¾Ö±äÁ¿ºÍº¯Êý¡£µ«ÊÇ£¬C++±Ï¾ ......
1) ʹÓõĿⲻͬ¡£windowsÏÂͼÐοª·¢Ò»°ãÓÃ΢ÈíµÄMFC»ò.net¿â£¬¶øLinuxÏÂÔò³£ÓÃqt¿â¡£C/C++ͨÓÿ⣨c¿â£¬STL¿â£©µÄ½Ó¿ÚÏàͬ£¬µ«ÄÚ²¿ÊµÏÖ²»Í¬¡£
2) ±àÒëÆ÷²»Í¬¡£windowsÏÂÓõÄÊÇ΢Èí±àÒëÆ÷VC»ò.net£¬¶øLinuxÏÂÔòÓÃgcc¡£
3) ¿ª·¢»·¾³²»Í¬¡£windowsµÄ±àÒëÆ÷×Ô¶¯Éú³Émakefile£¬¶øLinuxÔòÐèÒªÊÖ¶¯±àдmakefil ......
ÔÚºÏ×÷¿ª·¢Ê±£¬C#ʱ³£ÐèÒªµ÷ÓÃC++DLL£¬µ±´«µÝ²ÎÊýʱʱ³£Óöµ½ÎÊÌ⣬ÓÈÆäÊÇ´«µÝºÍ·µ»Ø×Ö·û´®ÊÇ£¬ÏÖ×ܽáһϣ¬·ÖÏí¸ø´ó¼Ò£º
VC++ÖÐÖ÷Òª×Ö·û´®ÀàÐÍΪ£ºLPSTR,LPCSTR, LPCTSTR, string, CString, LPCWSTR, LPWSTRµÈ
µ«×ªÎªC#ÀàÐÍÈ´²»ÍêÈ«Ïàͬ¡£
Ö÷ÒªÓÐÈçϼ¸ÖÖת»»£º
½«stringתΪIntPtr£ºIntPtr System.Runtime.InteropServ ......
#include <Windows.h>
#include <math.h>
#include "resource.h"
#define PI 3.1415976/180
int dwCenterX,dwCenterY,dwRadius;
const TCHAR *szAppName=TEXT("Clock");
LRESULT CALLBACK ProcWinMain(HWND hwnd,UINT message,WPARAM wParam,LPARAM lParam);
void ShowTime(HWND hwnd,HDC hdc);
void ......
±àÒ룬±àÒë³ÌÐò¶ÁȡԴ³ÌÐò£¨×Ö·ûÁ÷£©£¬¶ÔÖ®½øÐдʷ¨ºÍÓï·¨µÄ·ÖÎö£¬½«¸ß¼¶ÓïÑÔÖ¸Áîת»»Îª¹¦ÄܵÈЧµÄ»ã±à´úÂ룬ÔÙÓÉ»ã±à³ÌÐòת»»Îª»úÆ÷ÓïÑÔ£¬²¢ÇÒ°´ÕÕ²Ù×÷ϵͳ¶Ô¿ÉÖ´ÐÐÎļþ¸ñʽµÄÒªÇóÁ´½ÓÉú³É¿ÉÖ´ÐгÌÐò¡£
CÔ´³ÌÐòÍ·Îļþ££>Ô¤±àÒë´¦Àí(cpp)££>±àÒë³ÌÐò±¾Éí££>ÓÅ»¯³ÌÐò££>»ã±à³ÌÐò££>Á´½Ó³ÌÐò--> ......