wxwidgets(GUI-Framework) - datei öffen dialog
-
hallo forum.
hat jemand paar infos wie man unter wxwidgets (GUI-Framework) einen datei öffnen dialog erstellen kann? bei winapi wüsste ich wie man das codet...danke für alle antworten..
mfg
-
mein versuch:
void BasicFrame::OnOpenFile (wxCommandEvent & event) { wxFileDialog * openFileDialog = new wxFileDialog ( this, "Open file", "", "", FILETYPES, wxOPEN, wxDefaultPosition); if (openFileDialog->ShowModal() == wxID_OK) { SetCurrentFilename(openFileDialog->GetFilename()); theText->LoadFile(openFileDialog->GetFilename()); SetStatusText(GetCurrentFilename(), 0); SetStatusText(openFileDialog->GetDirectory(),1); } }
wie ruf ich das im hauptprogramm auf?
cu
-
wxFileDialog, siehe Doku unter http://www.wxwidgets.org/ oder das Beispielprogramm dialogs, da kann man sich eigentlich alles abgucken.
Edit: Mal wieder zu langsam...
-
Noch schneller und einfacher gehts mit der Funktion wxFileSelector().
-
#include <wx\wx.h> #include <wx\file.h> #include <sstream> //#include <windows.h> const int ID_BUTTON_CHOOSEFILE = 1000; class FileTransferServerDialog : public wxDialog { public: FileTransferServerDialog(const wxChar* title, int xpos, int ypos, int width, int height) : wxDialog(NULL, -1, title, wxPoint(xpos, ypos), wxSize(width, height)) { pStaticTextFileName_ = new wxStaticText(this, -1, "Dateiname:", wxPoint(10, 10), wxSize(200, 20)); pStaticTextFileSize_ = new wxStaticText(this, -1, "Dateigröße:", wxPoint(10, 30), wxSize(200, 20)); pButtonChooseFile_ = new wxButton(this, ID_BUTTON_CHOOSEFILE, "Datei auswählen", wxPoint(210, 30), wxSize(90, 23)); pGaugeFileTransferProgress = new wxGauge(this, -1, NULL, wxPoint(10, 60), wxSize(300, 20), wxGA_SMOOTH); pGaugeFileTransferProgress->SetRange(100); pGaugeFileTransferProgress->SetValue(50); pStaticTextFileTransferSpeed_ = new wxStaticText(this, -1, "Geschwindigkeit: 16 kb/s", wxPoint(10, 85), wxSize(200, 20)); } void FileTransferServerDialog::onButtonChooseFile(wxCommandEvent &event) { wxFileDialog* pFileChooser = new wxFileDialog(this); if(pFileChooser->ShowModal() == wxID_OK) { wxFile file; file.Open(pFileChooser->GetPath()); std::ostringstream messageStream; messageStream << "Dateigröße: " << file.Length(); pStaticTextFileName_->SetLabel(wxString("Dateiname: ") + pFileChooser->GetFilename()); pStaticTextFileSize_->SetLabel(messageStream.str().c_str()); } pFileChooser->Destroy(); } private: DECLARE_EVENT_TABLE(); wxStaticText* pStaticTextFileName_; wxStaticText* pStaticTextFileSize_; wxButton* pButtonChooseFile_; wxGauge* pGaugeFileTransferProgress; wxStaticText* pStaticTextFileTransferSpeed_; }; BEGIN_EVENT_TABLE(FileTransferServerDialog, wxDialog) EVT_BUTTON(ID_BUTTON_CHOOSEFILE, FileTransferServerDialog::onButtonChooseFile) END_EVENT_TABLE(); class FileTransferServer : public wxApp { bool OnInit() { FileTransferServerDialog* pFileTransferServerDialog = new FileTransferServerDialog("File Transfer Server", 40, 40, 350, 200); pFileTransferServerDialog->ShowModal(); pFileTransferServerDialog->Destroy(); return false; } }; IMPLEMENT_APP(FileTransferServer);
wenn ich auf datei auswählen klicken...u dann eine datei aussuche..
u dann auf öffnen....kommt ein fenster error:
cant close file descriptor 3 (error 0: der vorgang wurde erfolgreich beendet)
??????????cu