jessehk Posted May 5, 2017 Posted May 5, 2017 Can anyone explain how I would make a visual interface to use with c++ to create desktop applications and how I would go about doing this. I am currently in the process of learning it from Lynda.com and I am just curious how I would do this.
fiveworlds Posted May 5, 2017 Posted May 5, 2017 That's a very broad question. On windows, linux or mac?
Sensei Posted May 5, 2017 Posted May 5, 2017 Can anyone explain how I would make a visual interface to use with c++ to create desktop applications and how I would go about doing this. I am currently in the process of learning it from Lynda.com and I am just curious how I would do this. Assuming you're interested in writing applications for Windows/Intel using Visual Studio Express/Visual Studio Community, https://www.visualstudio.com/ please watch this video tutorial: This tutorial is for C#, but should be pretty easily adopted to C++ (.NET Framework is using Managed C++ version) https://msdn.microsoft.com/en-us/library/aa712574(v=vs.71).aspx ps. Fiveworlds asked the right question, because you didn't specify which platform you're interested in.
jessehk Posted May 5, 2017 Author Posted May 5, 2017 That's a very broad question. On windows, linux or mac? I work with visual studio on linux
fiveworlds Posted May 6, 2017 Posted May 6, 2017 (edited) You could use GTK+ for example. #include <gtk/gtk.h> /* This is a callback function. The data arguments are ignored * in this example. More on callbacks below. */ static void hello( GtkWidget *widget, gpointer data ) { g_print ("My first GUI\n"); } static gboolean delete_event( GtkWidget *widget, GdkEvent *event, gpointer data ) { /* If you return FALSE in the "delete-event" signal handler, * GTK will emit the "destroy" signal. Returning TRUE means * you don't want the window to be destroyed. * This is useful for popping up 'are you sure you want to quit?' * type dialogs. */ g_print ("delete event occurred\n"); /* Change TRUE to FALSE and the main window will be destroyed with * a "delete-event". */ return TRUE; } /* Another callback */ static void destroy( GtkWidget *widget, gpointer data ) { gtk_main_quit (); } int main( int argc, char *argv[] ) { /* GtkWidget is the storage type for widgets */ GtkWidget *window; GtkWidget *button; /* This is called in all GTK applications. Arguments are parsed * from the command line and are returned to the application. */ gtk_init (&argc, &argv); /* create a new window */ window = gtk_window_new (GTK_WINDOW_TOPLEVEL); /* When the window is given the "delete-event" signal (this is given * by the window manager, usually by the "close" option, or on the * titlebar), we ask it to call the delete_event () function * as defined above. The data passed to the callback * function is NULL and is ignored in the callback function. */ g_signal_connect (window, "delete-event", G_CALLBACK (delete_event), NULL); /* Here we connect the "destroy" event to a signal handler. * This event occurs when we call gtk_widget_destroy() on the window, * or if we return FALSE in the "delete-event" callback. */ g_signal_connect (window, "destroy", G_CALLBACK (destroy), NULL); /* Sets the border width of the window. */ gtk_container_set_border_width (GTK_CONTAINER (window), 10); /* Creates a new button with the label "Hello World". */ button = gtk_button_new_with_label ("Hello World"); /* When the button receives the "clicked" signal, it will call the * function hello() passing it NULL as its argument. The hello() * function is defined above. */ g_signal_connect (button, "clicked", G_CALLBACK (hello), NULL); /* This will cause the window to be destroyed by calling * gtk_widget_destroy(window) when "clicked". Again, the destroy * signal could come from here, or the window manager. */ g_signal_connect_swapped (button, "clicked", G_CALLBACK (gtk_widget_destroy), window); /* This packs the button into the window (a gtk container). */ gtk_container_add (GTK_CONTAINER (window), button); /* The final step is to display this newly created widget. */ gtk_widget_show (button); /* and the window */ gtk_widget_show (window); /* All GTK applications must have a gtk_main(). Control ends here * and waits for an event to occur (like a key press or * mouse event). */ gtk_main (); return 0; } You will need to write a program to get the .json to work correctly though since it doesn't seem to use `pkg-config` properly. Edited May 6, 2017 by fiveworlds
Sensei Posted May 6, 2017 Posted May 6, 2017 (edited) Or you could try Qt for Linuxhttp://doc.qt.io/qt-5/linux.html Qt Creator, with GUI builder/designerhttps://en.wikipedia.org/wiki/Qt_Creator Edited May 6, 2017 by Sensei
Manticore Posted May 6, 2017 Posted May 6, 2017 I mostly use FLTK (partly because it's used in Bjarne Stroustrup's books which are the standard for college courses and partly because I find it much simpler to use than GTK or QT)
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now