Công cụ bảo vệ mã nguồn .NET mạnh nhất, không thể unpack, miễn phí cho các khách hàng đầu tiên đăng ký.
Trang 1 trên tổng số 3 123 Cuối cùngCuối cùng
Từ 1 tới 10 trên tổng số 24 kết quả

Đề tài: [C++][Chuyên đề] GUI programming with wxWidgets

  1. #1
    Ngày gia nhập
    12 2006
    Nơi ở
    US
    Bài viết
    1,917

    Mặc định [C++][Chuyên đề] GUI programming with wxWidgets

    Cư dân open-source vào đây đạm đạo nhá T_T ! vài điều cơ bản đầu tiên :
    - Compiler để dễ dàng build Widgets ?
    - Làm sao để install wxPack.
    - Lib nào ?
    - 1 chương trình Hello đơn giản GUI T_T.

    - Ai dùng Windows thì nên xài CodeBlock, bên Linux thì cứ download package về mà dập tới nơi thui .
    - Trên Windows thì down load thằng này về ( đầu tiên phải có Code::Blocks ) down tại đây nhé :
    Nhớ là down bản Binary của nó chứ down source thì lại tay không bắt cướp oải lắm đây T_T.
    - Tiếp theo là wxPack :
    200mb mê, rùi install vào 1 directory nào đó ngốn chừng 3.5GB T_T.
    Chi tiết có thể đọc thêm tại đây :
    Và cuối cùng 1 chương trình Hello Word đơn giản ăn cắp từ CodeProject T_T :
    C++ Code:
    1. /*
    2.  * hworld.cpp
    3.  * Hello world sample by Robert Roebling
    4.  */
    5.  
    6. #include "wx/wx.h"
    7.  
    8. class MyApp: public wxApp
    9. {
    10.     virtual bool OnInit();
    11. };
    12.  
    13. class MyFrame: public wxFrame
    14. {
    15. public:
    16.  
    17.     MyFrame(const wxString& title, const wxPoint& pos, const wxSize& size);
    18.  
    19.     void OnQuit(wxCommandEvent& event);
    20.     void OnAbout(wxCommandEvent& event);
    21.  
    22.     DECLARE_EVENT_TABLE()
    23. };
    24.  
    25. enum
    26. {
    27.     ID_Quit = 1,
    28.     ID_About,
    29. };
    30.  
    31. BEGIN_EVENT_TABLE(MyFrame, wxFrame)
    32.     EVT_MENU(ID_Quit, MyFrame::OnQuit)
    33.     EVT_MENU(ID_About, MyFrame::OnAbout)
    34. END_EVENT_TABLE()
    35.  
    36. IMPLEMENT_APP(MyApp)
    37.  
    38. bool MyApp::OnInit()
    39. {
    40.     MyFrame *frame = new MyFrame( "Hello World", wxPoint(50,50), wxSize(450,340) );
    41.     frame->Show(TRUE);
    42.     SetTopWindow(frame);
    43.     return TRUE;
    44. }
    45.  
    46. MyFrame::MyFrame(const wxString& title, const wxPoint& pos, const wxSize& size)
    47. : wxFrame((wxFrame *)NULL, -1, title, pos, size)
    48. {
    49.     wxMenu *menuFile = new wxMenu;
    50.  
    51.     menuFile->Append( ID_About, "&About..." );
    52.     menuFile->AppendSeparator();
    53.     menuFile->Append( ID_Quit, "E&xit" );
    54.  
    55.     wxMenuBar *menuBar = new wxMenuBar;
    56.     menuBar->Append( menuFile, "&File" );
    57.  
    58.     SetMenuBar( menuBar );
    59.  
    60.     CreateStatusBar();
    61.     SetStatusText( "Welcome to wxWindows!" );
    62. }
    63.  
    64. void MyFrame::OnQuit(wxCommandEvent& WXUNUSED(event))
    65. {
    66.     Close(TRUE);
    67. }
    68.  
    69. void MyFrame::OnAbout(wxCommandEvent& WXUNUSED(event))
    70. {
    71.     wxMessageBox("This is a wxWindows Hello world sample",
    72.         "About Hello World", wxOK | wxICON_INFORMATION, this);
    73. }
    Đọc vô hiểu chít liền T_T, ai rành thì vào giải thích cho mọi người đê T_T !

    Một số thông tin về xWidgets
    What is wxWidgets
    wxWidgets gives you a single, easy-to-use API for writing GUI applications on multiple platforms. Link it with the appropriate library for your platform (Windows/Unix/Mac) and compiler (almost any popular C++ compiler), and your application will adopt the look and feel appropriate to that platform. On top of the great GUI functionality, wxWindows gives you: online help, network programming, streams, clipboard and drag and drop, multithreading, image loading and saving in a variety of popular formats, database support, HTML viewing and printing, and much more.
    Who should use wxWidgets
    wxWidgets is a framework very much similar to MFC, except for a few negative points of its own. Those MFC programmers who are aware of the growing number of Linux users and who want to write cross platform GUI applications can use wxWidgets. With wxWidgets, it is very easy to use a framework based on C++ and it has a proven record of 13 years. In fact, wxWidgets is very stable and is supported on:

    * Windows 3.1, Windows 95/98, Windows NT, Windows 2000/XP, Windows ME, Windows CE.
    * Linux and other UNIX platforms with GTK+.
    * UNIX with Motif or the free Motif clone Lesstif.
    * Mac OS.
    * Embedded platforms are being investigated. See the wxUniversal project.
    * An OS/2 port is in progress, and you can also compile wxWidgets for GTK+ or Motif on OS/2.

    Why use wxWidgets

    There are a number of options available for writing cross platform GUI development, like: JAVA, Mono.NET, Qt, etc. Java has failed to prove itself as an efficient alternative. Qt is good but commercial and nobody knows its future. Mono.NET seems to be good but is largely driven by Microsoft, it seems like a copy of the work done by Microsoft and it has not yet proved itself as a successful alternative. Also, people would not like to use an extra burden of layer for highly efficient software. As wxWidgets does not use any middle layer and uses only the native controls available on the platform, it gives a nice look and feel to the application.

    * It is very complete. There are many utility classes like : wxRegEx, wxFTP, wxSplashScreen, wxZipInputStream, etc.
    * It is still heavily developed, and has a lot of support from the open source community.
    * Many compilers and platforms are supported : Windows, Linux, Mac, Unix.
    * There's a lot of documentation available on the internet, forums, wxBook.
    * It's free for personal and commercial use, and is more flexible than the LGPL license.
    * Whenever possible, wxWindows uses the platform SDK. This means that a program compiled on Windows will have the look and feel of a Windows program, and when compiled on a Linux machine, it will have the look and feel of a Linux program.
    * Ease of learning, it has the same Event tables and similar API and classes like that of WINAPI and MFC.
    * A lot of sample is provided in the samples directory of the installation, which contains how to use the basic controls, multi threading, MDI, drag and drop, sockets, printing and lots more.
    * A lot of ready to use classes are available, like: wxGenericDirCtrl, wxCalendarCtrl, wxDatePickerCtrl, wxTipWindow, wxStyledTextCtrl, wxStaticPicture, wxLEDNumberCtrl, wxEditableListBox, wxFoldPanelBar, wxGIFAnimationCtrl, wxSplashScreen, OGL (Object Graphics Library), FL (Frame Layout), etc. This is one of the main repository.
    Công cụ bảo vệ mã nguồn .NET mạnh nhất hiện tại, miễn phí cho các khách hàng đầu tiên đăng ký.
    Đã được chỉnh sửa lần cuối bởi rox_rook : 29-03-2008 lúc 04:06 PM.

  2. #2
    Ngày gia nhập
    03 2008
    Bài viết
    11

    Một số video hướng dẫn:
    http://www.wxwidgets.info/files/wxCodeBlocks_28.7z
    http://www.wxwidgets.info/files/wxCodeBlocks_video.7z
    http://www.wxwidgets.info/files/wxNetBeans_video.7z

    Em nghĩ từng bước sẽ là:
    _ Biên dịch, viết ứng dụng đầu tiền
    _ Hướng dẫn sử dụng wxSmith
    _ Làm quen với các control, layout
    _ Những vấn đề liên quan đến chương trình như đóng gói... Ví dụ như cái Hello World, sau khi em biên dịch ra Release thì dung lượng là 84KB, nhưng muốn chạy phải cần có wxmsw28ud_gcc.dll tới 43MB.
    Đã được chỉnh sửa lần cuối bởi toi0biet : 29-03-2008 lúc 04:20 PM.

  3. #3
    Ngày gia nhập
    12 2006
    Nơi ở
    US
    Bài viết
    1,917

    - toi0biet và Hok_bik_zi có tìm được ebook hay tài liệu nào thì chịu khó update nhá T_T. Từ trước h chơi với Console không bay qua đọc code GUI sao mà thảm quá T_T !

  4. #4
    Ngày gia nhập
    03 2008
    Bài viết
    11

  5. #5
    Ngày gia nhập
    01 2008
    Nơi ở
    UIT
    Bài viết
    129

    Tui mới kiếm được tuturial này, khá cơ bản:
    http://www.zetcode.com/tutorials/wxwidgetstutorial/
    Uhm đúng roài từ trước đến giờ toàn chơi konsole, trước có vọc qua MFC tí lại bỏ !

  6. #6
    Ngày gia nhập
    12 2006
    Nơi ở
    US
    Bài viết
    1,917

    Mặc định [C++][Chuyên đề] GUI programming with wxWidgets

    Tui mới kiếm được tuturial này, khá cơ bản:
    http://www.zetcode.com/tutorials/wxwidgetstutorial/
    Uhm đúng roài từ trước đến giờ toàn chơi konsole, trước có vọc qua MFC tí lại bỏ !
    Tuyệt vời .
    Em thấy có ebook này:
    http://rapidshare.com/files/10324368....wxwidgets.pdf
    __________________
    Tuyệt + 1/2 vời .
    Thực ra bữa h đang vọc thằng gtkmm, thằng này thì chỉ dùng cho gnome và Unix nhưng nó cũng tuyệt vời không kém gì thằng wxWidgets này. Có lẽ học 1 lúc 2 thằng chắc cũng không có vấn đề gì T_T. Và đây là forums tuyệt vời để tụi mình có thắc mắc gì thì hỏi nhé :
    Tụi nó có cả international sub-forums nhưng hiện tại chỉ có 3 nc là : TQ, Nga, và Pháp, ráng học khá khá 1 tí tụi mình cũng nên register cho VN chúng mình nhỉ T_T.

  7. #7
    Ngày gia nhập
    01 2008
    Nơi ở
    UIT
    Bài viết
    129

    Àh bác RR build được Qt project chưa vậy, tui đánh vật với Qt suốt từ hôm qua đến giờ mà không thể nào build được, chán quá ! Toàn lỗi runtime thiếu Qt4Core.dll, tức không chịu nổi. Tui thấy nó trong thư mục \Qt\4.3.3\bin mà không biết sửa cái lỗi này làm sao !

  8. #8
    Ngày gia nhập
    12 2006
    Nơi ở
    US
    Bài viết
    1,917

    Tui build trên Ubuntu thì Qt4, gtkmm, hay wx đều ngon lành. Còn thằng Qt thì cậu phải dùng MinGw32 để config nó. Trong path của enviroment thì cậu add 1 cái bin và 1 cái lip nữa. Cậu google : how to build Qt4 sẽ rõ. Mà tui thấy thằng Qt4 này xài trên Windows cài đặt cũng vất vả với lại forums của tụi nó cũng ngang ngữa wx à.T_T Tui tháy tụi mình nên tập trung cho wx thì hơn.
    Nhân tiện tui có 1 số lời muốn nói :
    - Theo tui tìm tòi tối qua, tui cảm thấy tài liệu về wx là rất khan hiếm cho nên khi chúng ta tìm được phần nào hay và cảm thấy dịch ra được thì mạnh dạn dịch, bỏ 1 chút công sức nhưng bù lại chúng ta lại học và nhớ rất dai.
    - Một lưu ý là đừng quá tham lam ôm cả đống rất dễ dẫn đến bế tắc, cố viết 1 ngày 1 chút và giữ nhịp độ trận đấu + tinh thần như 1 ngày vừa qua là tui thấy nhất định sẽ thành công.
    - Cứ thoải mái post tut vào đây luôn, tui sẽ dọp dẹp lại sau khi chúng ta có 1 nền tảng chắc chắn đã T_T.
    - Và cuối cùng cảm ơn 2 cô cậu rất nhiều T_T, hi vọng qua những cuôc trao đổi thắc mắc cả 3 chúng ta sẽ học được wx 1 cách thật chắc chắn T_T. Sau đó viết vài cái application show hàng cho oách haha T_T !
    Đã được chỉnh sửa lần cuối bởi rox_rook : 13-11-2008 lúc 06:36 AM.

  9. #9
    Ngày gia nhập
    01 2008
    Nơi ở
    UIT
    Bài viết
    129

    Năm nay tui thi ĐH và TN lớp 12 nên cũng rất bận rộn, có thời gian rảnh rỗi tui sẽ post bài nhưng chắc chắc sẽ có những lúc tui không lên forum trong một thời gian dài. Các bác cứ phát huy nhé !
    Àh mà sao executable file xuất ra sao "khủng" quá đến hơn 20MB !
    Đã được chỉnh sửa lần cuối bởi Hok_bik_zi : 30-03-2008 lúc 08:43 AM.

  10. #10
    Ngày gia nhập
    03 2008
    Bài viết
    11

    Ai giúp em với, em đọc mãi mà không hiểu được :(( Em bí ngay từ đoạn đầu Creating new plugin :((
    Creating a plugin which adds new item into wxSmith
    Công cụ bảo vệ mã nguồn .NET mạnh nhất hiện tại, miễn phí cho các khách hàng đầu tiên đăng ký.
    Đã được chỉnh sửa lần cuối bởi toi0biet : 30-03-2008 lúc 04:50 PM.

Các đề tài tương tự

  1. Video Tạo WxListBox Với thư viện wxwidgets
    Gửi bởi AlexF trong diễn đàn Thủ thuật, Tutorials và Mã nguồn C/C++/C++0x
    Trả lời: 2
    Bài viết cuối: 28-05-2011, 07:17 AM
  2. Tạo 1 Ứng Dụng Wxwidgets như thế nào?
    Gửi bởi honey trong diễn đàn Thắc mắc lập trình C/C++/C++0x
    Trả lời: 4
    Bài viết cuối: 17-08-2009, 09:45 AM
  3. wxwidgets làm sao để gán 1 giá trị vào ListBox
    Gửi bởi honey trong diễn đàn Thắc mắc lập trình Visual C++
    Trả lời: 6
    Bài viết cuối: 10-05-2009, 09:09 AM
  4. Ebook Cross-Platform GUI Programming with wxWidgets, ai có cho mình xin?
    Gửi bởi honey trong diễn đàn Tài liệu, ebooks và công cụ
    Trả lời: 0
    Bài viết cuối: 06-05-2009, 03:50 PM
  5. Cài đặt wxWidgets-2.8.10 tạo giao diện
    Gửi bởi honey trong diễn đàn Thắc mắc lập trình C/C++/C++0x
    Trả lời: 2
    Bài viết cuối: 29-04-2009, 10:24 PM

Quyền hạn của bạn

  • Bạn không thể gửi đề tài mới
  • Bạn không thể gửi bài trả lời
  • Bạn không thể gửi các đính kèm
  • Bạn không thể chỉnh sửa bài viết của bạn