20 września
22:15 2005
Oczywiście, że tak... Poniższy kod wygląda jak zwykłe Hello napisane przy pomocy GTK, ale tak na prawdę jest to natywna aplikacja Qt :-) Diabeł tkwi w #include "gtk.h".
#include "gtk.h" int main(int argc, char **argv) { GtkLabel *label; GtkWindow *window; gtk_init(&argc, &argv); window = gtk_window_new(GTK_WINDOW_TOPLEVEL); gtk_window_set_title(GTK_WINDOW(window), "Native Qt Application"); //label = gtk_label_new("Hello, World"); gtk_widget_show_all(window); gtk_main(); return 0; } ... FRAGMENT gtk.c GtkWindow *gtk_window_new(GtkWindowType type) { switch (type) { case GTK_WINDOW_TOPLEVEL: return new QMainWindow(); } } void gtk_window_set_title(GtkWindow *window, const gchar *title) { window->setCaption(title); } FRAGMENT gtk.h typedef QLabel GtkLabel; typedef QWidget GtkWidget; typedef QWidget GtkWindow;
Gdyby uzupełnić emulowane API w 100%, to można by w ten sposób przekonwertować wiele aplikacji GTK ;-)
Kategoria Ogólne
Napisz komentarz...