7b.wxWidgets – wxFileDialog

OVERVIEW

In the sample code below, we use the wxFileDialog to select a text file , whose contents are then shown in a textbox.

SAMPLE CODE

dialog-file.h
#include <wx/wxprec.h>
#ifndef WX_PRECOMP
	#include <wx/wx.h>
#endif


class DialogFile: public wxFrame {
	public:
		DialogFile(const wxString& title);
		void OnClick(wxCommandEvent &event);
	private:
		wxTextCtrl *mTxt;
};


dialog-file.cpp
#include "dialog-file.h"

DialogFile::DialogFile(const wxString& title):
	wxFrame(NULL, -1, title, wxDefaultPosition, wxSize(500,400)) {

	wxPanel *panelMain = new wxPanel(this, -1);
	wxBoxSizer *vbox = new wxBoxSizer(wxVERTICAL);
	panelMain->SetSizer(vbox);
	
	wxButton *btn1 = new wxButton(panelMain, -1, wxT("Choose Text File"));
	mTxt = new wxTextCtrl(panelMain, -1, wxT(""), wxPoint(-1,-1), wxSize(-1,-1), wxTE_MULTILINE);

	vbox->Add(btn1, 0, wxALL | wxCENTER,5);
	vbox->Add(mTxt, 1, wxALL | wxEXPAND | wxCENTER, 5);
	
	btn1->Bind(wxEVT_BUTTON, &DialogFile::OnClick, this);
	Center();
}

	
void DialogFile::OnClick(wxCommandEvent &event) {
	wxFileDialog *dlg = new wxFileDialog(this, wxT("Open Text File"), wxT(""), wxT(""), wxT("txt files (*.txt)|*.txt"),
						wxFD_OPEN | wxFD_FILE_MUST_EXIST);
	int retVal = dlg->ShowModal();	
	if (retVal == wxID_OK) {
   		wxString path = dlg->GetPath();
		mTxt->LoadFile(path);
	}
}


main.h
#include <wx/wxprec.h>
#ifndef WX_PRECOMP
	#include <wx/wx.h>
#endif

class Main: public wxApp {

	public:
		virtual bool OnInit();
};
main.cpp
#include "main.h"
#include "dialog-file.h"

IMPLEMENT_APP(Main)

bool Main::OnInit() {
	DialogFile *app = new DialogFile(wxT("File Open Dialog "));
	app->Show(true);

}

The output is shown below

Be the first to comment

Leave a Reply

Your email address will not be published.


*