Re: how to create a sudoku gui
Tristan Van Berkom <[email protected]>
| Newsgroups | gmane.comp.gnome.glade.user |
|---|---|
| Message-ID | <CAGUy9WK_bHDKbpEYFtUZhaf1WLoopEC5tdq_v5jq_M3+V1DDdw@mail.gmail.com> |
On Tue, Dec 20, 2011 at 1:04 AM, karthik s <[email protected]> wrote: > > >> Date: Mon, 19 Dec 2011 23:08:35 +0900 >> Subject: Re: [Glade-users] how to create a sudoku gui >> From: [email protected] >> To: [email protected] >> CC: [email protected] > >> >> Hi, >> There are few ways you could make such a UI. >> >> GTK+ menuing system has a grid mode which might be interesting to use, >> using a grid-like menu might make it easier to use and more portable to >> a handheld (or touchscreen) environment. >> >> If you want to use an entry and go back and forth from >> keyboard/mouse-finger >> input... you will have to police the entry content quite a bit, make >> sure it only >> accepts numeric input and only allow a single character at a time, >> probably >> by selecting the current character (if any) at all times that the >> entry is focused. >> >> To force the entry size, set the "width-chars" property of GtkEntry to >> a reasonable >> value like 1 (otherwise you will always require a hard coded minimum width >> for >> the entry). >> >> Cheers, >> -Tristan >> >> >> >> On Mon, Dec 19, 2011 at 9:01 PM, karthik s <[email protected]> wrote: >> > I am done with command line interface of sudoku solver. Now, I am onto >> > GUI >> > building. I am absolutely new to GUI and so to glade. (I use C) >> > >> > Well, I created a frame and on it dropped a 'table' container of 9-by-9 >> > size. Now, I am trying to put a 'text entry' control in each container. >> > The 'Text Entry's' I have created are very long (horizontally very >> > long). >> > How do I reduce its size so as to look like a sudoku gui. >> > >> > As you might have already aware of how exactly a sudoku gui looks like, >> > so >> > please help me on this. How do I make it? >> > Also do know that I am still a student and not a professional who can >> > handle >> > Linux Kernel. >> > >> > I hope you will help me >> > >> > >> > Thanks >> > surya >> > >> > _______________________________________________ >> > Glade-users maillist - [email protected] >> > http://lists.ximian.com/mailman/listinfo/glade-users >> > > > I designed the basic structure of GUI for my sudoku solver. So, here are the > following things I am unable to do now > > 1. I could fixed the maximum length of input to 1 but how should I make it > only for int You have to connect to "key-press-event" signal, make sure you read up on how to handle signal callbacks because you need to use the right signature. Grepping the web will help you... search for input/entry validation > > 2. There are 2 buttons at the bottom which I created using "horizontal > panes" and button widgets. > The problem here is, as soon as I close and reopen the project, those > positions of buttons are changing. One is turning down to smaller and other > bigger. I had to readjust them every time.. how to fix it? The paned widget has some object properties which might be useful, if you need your application to save where the user previously had the paned window positioned, that means you need some level of session management. i.e. when your program quits, or a short time after the paned window position changes, you should save it to a file or database (GConf/GSettings ?) and load that to setup the position again at startup time. > > 3. How to generate C code for this project? and how to link it to my source > file. You never ever generate C code for a project. To load your project use the following code: #include <gtk/gtk.h> int main (int argc, char *argv[]) { GtkBuilder *builder; GtkWidget *window; gtk_init (&argc, &argv); builder = gtk_builder_new (); gtk_builder_add_from_file (builder, "/path/to/glade/file.glade", NULL); window = gtk_builder_get_object (builder, "the-name-you-gave-to-the-toplevel-window"); /* here you can fetch all the widgets you actually need to use... and call g_signal_connect(), alternatively you can use the signals assigned in your glade file by calling gtk_builder_connect_signals() */ gtk_widget_show (window); gtk_main (); return 0; } And that will build your interface for you dynamically. Furthermore, if you dont want to manage where the file is installed, you can just convert the glade file to a C header file as a string constant and just pass that directly to gtk_builder_load_from_data() instead of using gtk_builder_load_from_file(). Cheers, -Tristan > > > This is how I want my project should work: > > - The input function has an 9 by 9 array, all entries should be taken into > it as soon as I click "submit" > - 0 should be taken in place of empty 'text entry' > - After submitting, my code gives output which has to be shown there > - Input entry numbers should be in colored and shown in bold format. > > > Thanks > > _______________________________________________ > Glade-users maillist - [email protected] > http://lists.ximian.com/mailman/listinfo/glade-users > _______________________________________________ Glade-users maillist - [email protected] http://lists.ximian.com/mailman/listinfo/glade-users