Sample Code 43: How to set a button as default action when user press Enter? |
|
Written by kksou
|
|
Monday, 02 October 2006 |
|
Problem You would like to set a button as default action when user press Enter as shown below:

Solution
Sample Code 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25
| <?php $window = new GtkWindow(); $window->set_size_request(400, 150); $window->connect_simple('destroy', array('Gtk','main_quit')); $window->add($vbox = new GtkVBox());
// display title
$title = new GtkLabel("Default Button Action"); $title->modify_font(new PangoFontDescription("Times New Roman Italic 10")); $title->modify_fg(Gtk::STATE_NORMAL, GdkColor::parse("#0000ff")); $title->set_size_request(-1, 40); $vbox->pack_start($title, 0, 0);
$hbox = new GtkHBox(); $vbox->pack_start($hbox, 0, 0); $hbox->pack_start(new GtkLabel("Keyword: "), 0, 0); $hbox->pack_start($entry = new GtkEntry(), 0, 0); $hbox->pack_start($button = new GtkButton("Search"), 0, 0);
$entry->connect('activate', 'on_enter', $button); // note 1
$button->connect('clicked', 'on_click', $entry); // note 2
function on_enter($entry, $button) { // handle Enter key
$keyword = $entry->get_text(); // get user input
echo "Enter pressed. keyword = $keyword\n";
|
- Note that this is only 70% of the sample code. You have to be a registered member to see the entire sample code. Please login or register.
- Registration is free and immediate.
- Have some doubt about the registration? Please read this forum article.
Explanation
- Set up event handler to listen to Enter key. Note that we pass the ID of the button along. We need the button ID later to simulate button click.
- Set up event handler to listen to button click. Note that we pass the ID of the GtkEntry along. We need the GtkEntry ID later to get user input.
- We simulate a button click with GtkButton::clicked().
User reviews Average user ratings: 4.0 (from 2 users) Note: You have to be a registered member to leave a comment. Free registration here. |
|
June 28, 2008 3:47pm
June 28, 2008 4:23pm