Κουμπί

5.1.1. Κατασκευαστές

Υπάρχουν δύο τρόποι δημιουργίας ενός κουμπιού. Μπορείτε να ορίσετε μια συμβολοσειρά ετικέτας στον κατασκευαστή Gtk::Button, ή να το ορίσετε αργότερα με set_label().

Για τον ορισμό ενός πλήκτρου επιταχυντή για περιήγηση πληκτρολογίου, τοποθετήστε μια υπογράμμιση πριν από έναν από τους χαρακτήρες της ετικέτας και ορίστε true (αληθές) για την προαιρετική παράμετρο mnemonic (μνημονική). Για παράδειγμα:

Gtk::Button* pButton = new Gtk::Button("_Something", true);

Έτοιμα στοιχεία συνιστώνται για χρήση στα κουμπιά. Από την gtkmm-3.10 είναι ξεπερασμένα. Δεν πρέπει να χρησιμοποιηθούν σε νεογραμμένο κώδικα. Όμως, η τεκμηρίωση του namespace Gtk::Stock εμφανίζει συνιστώμενες ετικέτες και επώνυμα εικονίδια να εμφανίζονται στα κουμπιά.

Η Gtk::Button είναι επίσης ένας περιέκτης, έτσι μπορείτε να βάλετε οποιοδήποτε άλλο γραφικό συστατικό, όπως μια Gtk::Image μέσα του.

Reference

5.1.2. Παράδειγμα

Αυτό το παράδειγμα δημιουργεί ένα κουμπί με μια εικόνα και μια ετικέτα.

Φιγούρα 5-1παράδειγμα κουμπιών

Source Code

File: buttons.h (For use with gtkmm 3, not gtkmm 2)

#ifndef GTKMM_EXAMPLE_BUTTONS_H
#define GTKMM_EXAMPLE_BUTTONS_H

#include <gtkmm/window.h>
#include <gtkmm/button.h>

class Buttons : public Gtk::Window
{
public:
  Buttons();
  virtual ~Buttons();

protected:
  //Signal handlers:
  void on_button_clicked();

  //Child widgets:
  Gtk::Button m_button;
};

#endif //GTKMM_EXAMPLE_BUTTONS_H

File: buttons.cc (For use with gtkmm 3, not gtkmm 2)

#include "buttons.h"
#include <iostream>

Buttons::Buttons()
{
  m_button.add_pixlabel("info.xpm", "cool button");

  set_title("Pixmap'd buttons!");
  set_border_width(10);

  m_button.signal_clicked().connect( sigc::mem_fun(*this,
              &Buttons::on_button_clicked) );

  add(m_button);

  show_all_children();
}

Buttons::~Buttons()
{
}

void Buttons::on_button_clicked()
{
  std::cout << "The Button was clicked." << std::endl;
}

File: main.cc (For use with gtkmm 3, not gtkmm 2)

#include "buttons.h"
#include <gtkmm/application.h>

int main(int argc, char *argv[])
{
  auto app = Gtk::Application::create(argc, argv, "org.gtkmm.example");

  Buttons buttons;

  //Shows the window and returns when it is closed.
  return app->run(buttons);
}

5.1.3. Σήματα

The Gtk::Button widget has the following signals, but all except the clicked signal are deprecated and should not be used in newly-written code:

pressed

Emitted when the button is pressed. Use Gtk::Widget::signal_button_press_event() instead.

released

Emitted when the button is released. Use Gtk::Widget::signal_button_release_event() instead.

clicked

Εκπέμπεται όταν πατιέται το κουμπί και ελευθερώνεται.

enter

Emitted when the mouse pointer enters the button's window. Use Gtk::Widget::signal_enter_notify_event() instead.

leave

Emitted when the mouse pointer leaves the button's window. Use Gtk::Widget::signal_leave_notify_event() instead.