Membuat button di wxWidgets

Pada posting sebelumnya saya sudah memberikan tutorial cara membuat program wxWidgets dengan contoh sederhana. Walaupun contoh tersebut sangatlah sederhana tetapi terdapat hal yang sangat fundamental dalam membangaun setiap aplikasi dengan wxWidgets.

Pada tutorial kali ini kita sudah mulai belajar menampilkan button di frame window. Button ini akan kita kaitkan dengan event untuk menutup frame window kita.

Ini kode untuk tutorial kita kali ini.

////////////////////////////////////////////////////////////////
// 	Name:		button.cpp
// 	Purpose:	Button wxWidgets sample
//	Author:		Hermanto
//	Created:	2012-06-08
//	Copyright:	(c) 2012, Hermanto
//	Licence:	wxWindows licence
////////////////////////////////////////////////////////////////

#include <wx/wx.h>

// Declare the application class
class MyApp : public wxApp
{
    public:
		// Called on application startup
        virtual bool OnInit();

};

// Declare our main frame class
class MyFrame : public wxFrame
{
    public:
		// Constructor
        MyFrame (const wxString title);

         //Event handlers
        void OnQuit(wxCommandEvent &event);
};


// Give wxWidgets the means to create MyApp object
IMPLEMENT_APP(MyApp)

// Initialize the application
bool MyApp::OnInit()
{
    // Create the main application window
	MyFrame *frame = new MyFrame(wxT("Contoh Button wxWidgets "));

	// Show it
    frame->Show(true);

	// Start the event loop
    return true;
}

MyFrame::MyFrame(const wxString title)
            : wxFrame(NULL, wxID_ANY, title, wxDefaultPosition, wxSize(400,300))
{
    wxPanel *panel1 = new wxPanel (this, wxID_ANY);
    wxButton *button = new wxButton (panel1, wxID_EXIT, wxT("Quit"), wxPoint(20,20));
    Connect(wxID_EXIT, wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler(MyFrame::OnQuit));
    button->SetFocus();
	// Show window on centre screen
    Centre();
}

void MyFrame::OnQuit(wxCommandEvent &event)
{
    // Destroy the frame
    Destroy();
}

Kode yang saya buat hampir sama dengan tutorial sebelumnya, jadi pejelasannya bisa dilihat di wxWidgets tutorial pertama.

Pada kode berikutnya berupa event handler dari yang seharusnya bukan fungsi virtual (ini pesan yang saya dapatkan dari buku wxWidgets yang dikarang langsung oleh James Smart sang creator library ini)

         //Event handlers
        void OnQuit(wxCommandEvent &event);

Selanjutnya kode yang baru kita masukkan adalah panel yang diturunkan dari wxPanel. wxPanel mempunyai properties yang hampir sama dengan wxDialog.

wxPanel mempunyai konstruktor default sebagai berikut:

wxPanel(wxWindow* parent, wxWindowID id, const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxDefaultSize, long style = wxTAB_TRANSVERSAL|wxNO_BORDER, const wxString& name = wxT(“panel”));

Sebagai contoh:

wxPanel* panel = new wxPanel(frame, wxID_ANY, wxDefaultPosition, wxSize(500,300));

Untuk selanjutnya kita meletakkan sebuah button yang diturunkan dari wxButton di dalam panel, ini contoh sederhana penulisannya:

#include “wx/button.h”

wxButton* button = new wxButton(panel, wxID_OK, wxT(“OK”), wxPoint(10,10), wxDefaultSize);

Kode berikutnya adalah fungsi Connect yang berhubungan dynamic event handlers. Bentuk event handlers yang lain insya Allah akan saya jelaskan pada tutorial selanjutnya).

wxPanel *panel1 = new wxPanel (this, wxID_ANY);
    wxButton *button = new wxButton (panel1, wxID_EXIT, wxT("Quit"), wxPoint(20,20));
    Connect(wxID_EXIT, wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler(MyFrame::OnQuit));
    button->SetFocus();

Selanjutnya adalah implementasi dari event OnQuit

void MyFrame::OnQuit(wxCommandEvent &event)
{
    // Destroy the frame
    Destroy();
}

Demikianlah tutorial kali ini sampai jumpa di tutorial berikutnya.

File tutorial dapat download di button.cpp

Contoh yang bisa dijalankan di Windows dapat download di button.zip

Bentuk tampilan di Windows XP

Tagged with: ,
Ditulis dalam wxWidgets
One comment on “Membuat button di wxWidgets
  1. Emerson mengatakan:

    You possibly can start a blog now. Lots of persons commmence a boog in order
    that they can get online subjection.

Tinggalkan Balasan

Isikan data di bawah atau klik salah satu ikon untuk log in:

Logo WordPress.com

You are commenting using your WordPress.com account. Logout / Ubah )

Gambar Twitter

You are commenting using your Twitter account. Logout / Ubah )

Foto Facebook

You are commenting using your Facebook account. Logout / Ubah )

Foto Google+

You are commenting using your Google+ account. Logout / Ubah )

Connecting to %s

Kontak Saya

Email: info@hermanto.org
Facebook: facebook/hermanto.org
Twitter: @hermanto_org
Hp/WA : 0812.734.1100
BBM : 5A408B11
Website:
- http://blogbeken.com
- http://wikimed.blogbeken.com
- http://www.hermanto.org

Masukkan alamat surel Anda untuk berlangganan blog ini dan menerima pemberitahuan tulisan-tulisan baru melalui email.

Bergabunglah dengan 4 pengikut lainnya

Kategori
Arsip
Status Blog
%d blogger menyukai ini: