T-Gtk. Implementacion Multiplataforma bajo GTK+
Dentro de la reunion que tuvo lugar en Barcelona, explique lo que era T-Gtk
y para que la gente entienda el concepto dejo en estas lineas, espero que os
saque de dudas, lo que es y lo que no es T-Gtk.
Todo aquel que quiera probarlas, ya sea bajo Win32 o GNU/Linux,
enviarme un correo con el asunto: T-Gtk y sobre que plataforma.
¿ Que es T-Gtk ?
T-Gtk es un GUI de GTK+ para usarlo desde [x]Harbour.
Sobre que sistema operativo funciona
T-Gtk correra donde haya un Harbour , gcc y gtk+ disponible, es decir,
actualmente compagino en probar tanto en GNU/Linux y Windows, pero
tambien podra correr sobre MAC, FreeBsd, etc..
Estamos hablando a nivel de COMPATIBILIDAD de codigo a nivel de GUI,
no de codigo a nivel de sistema, como por ejemplo, la gestion de INIs,
el acceso a nivel de hardware, etc... donde los sistemas son completamente
distintos.
Implementacion y uso.
El camino escogido a sido, desde mi punto de vista claro esto, ser lo mas
parecido a GTK+ a nivel de C, ¿ Que quiero decir con esto ?
Quiero decir, que para programar , se programara practicamente como se hacer
en C, a nivel de funciones, despues ya se encapsulara todo eso , y si,
haremos el mismo preprocesador DEFINE WINDOW....
¿ Tengo que saber C ?
No. Que las funciones del API de GTK+ , sera el mismo nombre de funcion a
nivel de harbour, no signifique que se vaya a programar en C, si no
que se usara EL MISMO NOMBRE de la funcion, por ejemplo:
Si para crear un boton en C es :
GtkWidget * button = gtk_button_new_with_label( "Hola" );
transformando a T-Gtk+Harbour sera:
button = gtk_button_new_with_label( "Hola" )
Ustedes se preguntaran el porque asi, y no haber creado una funcion
que se llame, createbutton( cLabel ).
EL motivo principal, es que si buscan ayuda sobre una funcion en GTK+,
la misma ayuda de C le servira, porque se comportara EXACTAMENTE IGUAL.
Asi , la trasformacion de codigo C a PRG es trivial, en cosas bastantes
sencillas.
Ahora bien, para ahorrar velocidad y facilitar un poco la historia, hay
dos excepciones de momento:
+ Conversion a traves de Macros, esto lo hace ya automaticamente desde C,
no hace falta hacerlo, por ejemplo, esta funcion en C :
GtkWidget * button= gtk_button_new() ;
GtkWidget * checkbox = gtk_check_button_new_with_label( "Check" );
gtk_container_add( GTK_CONTAINER( button ), checkbox );
en harbour quedaria:
button= gtk_button_new()
checkbox = gtk_check_button_new_with_label( "Check" )
gtk_container_add( button , checkbox )
fijese , que la macro GTK_CONTAINER a desaparecido.
+ Por comodidad de transportar el codigo de C, se ha echo el soporte
de dichas funciones, que lo unico que hace es retorna el valor pasado.
+ La function Gtk_Connect_signal permite saltar a una funcion estatica en
Harbour, porque Harbour mete en la tabla dinamica de simbolos las
funciones estaticas, y Xharbour NO!
En xHarbour solamente se puede saltar, por el momento, a funciones
publicas.
Ahora bien, como pueden ver en los ejemplos, el usar funciones, impone
el escribir mucho codigo, para ello, tambien se esta portando a la
programacion de POO, de esta manera, sera mucho mas rapido y ademas
realizar el preprocesado es trivial y aprovecharemos mejor el tiempo.
¿ Como funciona GTK+ y que es eso de los widgets ?
Los widgets son sinonimos de controles en sistema Win32 API.
GTK+ es una libreria que crea y pone a disposicion una seria de controles,
para ello se basa en otro libreria de nivel inferior, GDK, que es la
encargada de dibujarlos, a parte de otras mas.
A nivel mas bajo , se conecta con XLib o Win32, nada mas.
En GTK+ existe el concepto de 'contenedor' de widgets, y solamente puede
contener un solo widget, es decir , un hijo.
Usted se pregunta , ¿ entonces en una ventana como coloco mis botones ?
Como dice el dicho popular, HECHA LA LEY HECHA LA TRAMPA,
pues bien sencillo, un contenedor a su vez puede contener a su vez a
otros contenedores.
Para entendernos, seria equivalente a usar la clase TPanel de Fivewin,
y esta a su vez fuera mas paneles, que contienen los botones.
Hay varios tipo de contenedores, hBox, vBox, paned, table, etc...
A su vez , un boton es un contenedor que contiene una etiqueta, por ejemplo.
A principio, este concepto es muy extraño si lo comparamos con el api win32,
pero es mucho mas potente a efectos practicos, son AUTODIMENSIONABLES, no
tenemos que gestionar su ancho / alto, el solo lo hara y se adaptara segun
le hayamos especificado su comportamiento.
Que de madura esta.
Actualmente esta portado estos widgets :
+ Window
+ Get/Entry ( Partialmente )
+ Notebooks
+ Button
+ Say
+ Radiobutton
+ Checkbox
+ Table
+ Box
+ Tooglebutton
+ Frame
+ Calendar
+ Paned
+ Image
+ Expander
+ Menus ( Parcialemente, falta el checkmenu, imagemenu )
+ Fixed
+ StatusBar
+ Separador
+ ProgressBar
+ Soporte de lenguaje de Marcas.
+ hSeparator
+ vSeparator
+ VBox
+ HBox
+ ToolTips
+ ButtonColor
+ Fonts ( Parcialmente, permite poner fuente a los widgets )
+ Combobox
Prototipo de Clases y control de eventos :
+ TWidget
+ TWindow
+ TButton
Funciones para hace la vida mas simples.
+ MyStyle(). Pon un stylo determinado a un widget concreto.
Explicacion de ejemplos
1.ProgressBar
Este ejemplo sencillamente enseña las distintas maneras de las cual podemos
enseñar una barra de progreso.
2.StatusBar.
Enseña como funciona la barra de status y los comboboxs.
3.Radiobutton
Ejemplo de seleccion por defecto de de unos radiobuttons, el 2.
4.Radiobutton2.
Metiendo un widget entry en el radiobutton.
5.Fixed.
Implementacion de widgets en posiciones fijas, a la win32
6.Notebook.
Sinonimo de Folders, funcionamiento de posiciones, etc..
7.Demotable.
Funcionamiento de tablas de empaquetamiento, imagenes y botones por
defecto, separados por un paned, simil de splitter y Fonts.
8.Demo.
Distintos widgets, calendar, expand, lenguaje de marcas, menus, el mas
completo.
Hola rafa podrias envarme la T-gtk por favor.
actualmente la estoy provando bajo dev-c
saludos.
fernando sandoval ruiz
Buen dia...
En este momento estamos en busqueda de un buen lenguaje de programacion multiplataforma para migrar las applicaciones de la empresa....Una de las opciones php - gtk quisiera conocer su opinion con respecto a la "robustes" que esto nos puede ofrecer en aplicaciones de mision critica..
muchas gracias
Escrito por elkin a las Noviembre 24, 2004 02:47 PMSoy programador y estoy interesado en la programacion multiplataforma, en estos momentos programo el vb6 pero me interesaria conocer T-gtk.
Que opinion me daria al respecto?
Una aplicacion que haga, corre sobre cualquier plataforma sin necesidad de instalar algun frame?
Gracias
Escrito por Cristian a las Febrero 1, 2007 06:30 PMHola muy interesante el proyecto me lo puedes mandara mi correo?
Gracias
网络营销软件
网络营销软件
网络营销软件
群发软件
群发软件
---
群发软件
博客群建软件
网络营销软件
论坛群发软件
网站排名软件
群发软件
推广小助手破解版
论坛群发
网站排名软件
群发软件
推荐给你很好的群发软件和信息群发软件和供求群发软件
推荐给你很好的群发软件和信息群发软件和供求群发软件博客群发软件网络营销软件网络营销软件
网站排名软件网站排名软件网站优化软件信息群发软件信息群发软件信息群发软件论坛群发软件网站推广软件网站推广软件博客群发软件博客群发软件
群发软件
网络营销软件
论坛群发
网站推广软件
群发软件群发软件博客群发软件论坛群发软件网络营销软件论坛群发软件
信息群发软件推广软件网站推广软件网络营销软件网站推广软件群发软件网站排名软件网站推广软件博客群发软件论坛群发软件群发软件网站排名软件网站推广软件博客群发软件论坛群发软件
网站排名软件
群发软件
博客群发软件
网站排名软件
网站推广软件
群发软件信息群发软件
免费论坛群发软件
论坛群发软件
网站排名软件
免费博客群发软件
网站推广软件
群发软件
博客群发软件
网站排名软件
网站推广软件
群发软件信息群发软件
免费论坛群发软件
论坛群发软件
网站排名软件
免费博客群发软件
博客群发软件
信息群发软件
论坛群发软件
信息群发软件
博客群发软件
qq群发软件
邮件群发软件
博客群建软件
企业名录搜索软件
信息群发软件
邮件群发软件
论坛群发软件
博客群发软件
网站推广软件
网络营销软件
全能营销破解版
网络营销软件
论坛群发软件
论坛群发软件
论坛群发软件
网络营销软件
信息群发软件
信息群发软件
信息群发软件
群发软件
论坛群发软件
\Guild Wars goldeve isk
黄金矿工小游戏黄金矿工小游戏美女餐厅小游戏美女餐厅小游戏拳皇小游戏拳皇小游戏三国麻将小游戏
car wash systemscar wash systemscar wash equipmentcar wash equipmentautomatic car washautomatic car washcar washing machinecar washing machinecar washcar wash
青光眼眼科医院糖尿病眼病视网膜脱落近视眼白内障眼整形
牛皮癣
商标局北京卫星电视安装卫星电视婚庆婚庆公司卫星电视安装防静电地板荷兰留学钢管舞留学荷兰国家司法考试司法考试商标查询北京安装卫星电视北京卫星天线安装北京海淀驾校卫星电视安装安装卫星电视北京卫星电视安装脑囊虫病治疗脑囊虫北京安装卫星天线北京安装卫星电视同声传译海淀驾校蟑螂灭蟑螂蟑螂药灭蟑螂公司灭蟑公司
防静电工作台货架货架厂货架货架厂涂料设备电磁流量计电磁流量计涡街流量计涡街流量计液位开关液位开关流量开关流量开关压力变送器压力变送器超声波液位计超声波液位计液位计流量计阳痿前列腺炎早泄早泄风水起名品牌服装服装加盟服装代理服装经销品牌男装品牌女装男装加盟女装加盟服装厂北京服装租赁品牌服装服装加盟服装代理服装经销品牌女装品牌服装服装代理男装加盟服装经销 品牌男装品牌女装男装加盟女装加盟服装厂北京服装租赁脑瘤脑肿瘤胶质瘤垂体瘤脂肪肝脂肪肝的治疗脂肪肝的食疗脂肪肝的预防
尖锐湿疣尖锐湿疣疱疹疱疹生殖器疱疹生殖器疱疹慢性前列腺炎慢性前列腺炎支原体非淋非淋衣原体前列腺炎前列腺炎牛皮癣银屑病牛皮癣治疗皮肤病
肝硬化乙肝脂肪肝涂料设备尖锐湿疣治疗尖锐湿疣尖锐湿疣治疗生殖器疱疹生殖器疱疹治疗 toeflマンスリーマンション
网站建设北京火车票塑料袋手提袋话筒软胶囊加工软胶囊北京钢构北京彩钢独立 音响XylitolSodium Sulphate AnhydrousCaustic Soda FlakeCalcium chloride营销策划sit find other good site to link
景观设计toeflマンスリーマンション园林景观
尖锐湿疣尖锐湿疣治疗生殖器疱疹生殖器疱疹治疗疱疹治疗疱疹的治疗疱疹图片病毒性疱疹单纯疱疹疱疹病毒疱疹症状男性生殖器疱疹症状男性生殖器疱疹什么是生殖器疱疹生殖器疱疹的治疗生殖器疱疹怎么治疗生殖器疱疹如何治疗生殖器疱疹治疗方法生殖器疱疹怎么治生殖器疱疹的治疗生殖器疱疹的治疗中药治疗生殖器疱疹复发性生殖器疱疹治疗生殖器疱疹的药物治疗生殖器疱疹的特效药生殖器疱疹治疗尖锐湿疣症状什么是尖锐湿疣宫颈尖锐湿疣阴道尖锐湿疣男性尖锐湿疣假性尖锐湿疣尖锐湿疣怎么治疗尖锐湿疣治疗方法尖锐湿疣的治疗中药治疗尖锐湿疣治疗尖锐湿疣的药物治疗尖锐湿疣的特效药男性尖锐湿疣尖锐湿疣复发尖锐湿疣图片老年公寓
高血压高血压防治牛皮癣牛皮癣防冶尖锐湿疣疱疹
前列腺炎
脂肪肝的治疗