[Glade-users] how to create a sudoku gui

On Tue, Dec 20, 2011 at 2:22 AM, Tristan Van Berkom
<tristan.van.berkom at gmail.com> wrote:
On Tue, Dec 20, 2011 at 1:04 AM, karthik s <suryak at live.com> wrote:

Date: Mon, 19 Dec 2011 23:08:35 +0900
Subject: Re: [Glade-users] how to create a sudoku gui
From: tristan.van.berkom at gmail.com
To: suryak at live.com
CC: glade-users at lists.ximian.com

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
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,
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
the entry).


On Mon, Dec 19, 2011 at 9:01 PM, karthik s <suryak at live.com> wrote:
I am done with command line interface of sudoku solver. Now, I am onto
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
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,
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
Linux Kernel.

I hope you will help me


Glade-users maillist ?- ?Glade-users at lists.ximian.com

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

You never ever generate C code for a project.

To load your project use the following code:

#include <gtk/gtk.h>

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,

? /* 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;

Extra note:

I wrote this code off the top of my head, there is a good chance it will not
compile the first time.

I expect you to search gnome.developer.org and use the appropriate GTK+
apis for your needs.

Please inspect the GtkEntry apis and GtkPaned apis yourself and try compiling
it yourself.


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().

? ? ? -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.


Glade-users maillist ?- ?Glade-users at lists.ximian.com

[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]