跨平臺 C++ 界面庫,用於使用編寫高級GUI應用程序

跨平臺 C++ 界面庫,用於使用編寫高級GUI應用程序

wxWidgets

wxWidgets允許您為所有主要的桌面平臺編寫具有本機外觀的GUI應用程序,還可以幫助抽象它們之間在非GUI方面的差異。它可免費用於開放源代碼和商業應用程序,附帶完整的,易於閱讀和修改的,源代碼和大量的文檔,以及一百多個示例的集合。

平臺類

此版本的wxWidgets支持以下主要平臺:

  • Windows XP,Vista,7、8和10(32/64位)。
  • 大多數使用GTK +工具包(版本2.6或更高版本或3.x)的Unix變體。
  • 使用Cocoa(32/64位)的OS X(10.7或更高版本)。

支持大多數流行的C ++編譯器,包括但不限於:

  • Microsoft Visual C ++ 2003或更高版本(直到2019年)。
  • g ++ 3.4或更高版本,包括Windows下的MinGW / MinGW-64 / TDM。
  • OS X和Linux下的Clang。
  • 英特爾icc編譯器。
  • Oracle(Sun之前)的aCC。

繪製事件示例

通常GUI程序繪製圖像,是使用繪製事件通知的方式界面(面板)繪製的。這是一個經典的MVC模式。

跨平臺 C++ 界面庫,用於使用編寫高級GUI應用程序

一般在如下幾種情況會觸發繪製事件:

  1. 程序初始化界面顯示。
  2. 窗口最小化後再重新出現。
  3. 窗口尺寸變化。
  4. 窗口被擋住後,重新出現。
  5. 代碼調用Refresh()或ReflashRect()。

為了能夠處理繪製事件,我們需要給它綁定一個繪製事件。

class Board : public wxPanel {
public:
Board(wxFrame *parent): wxPanel(parent){
// 綁定繪製事件
Bind(wxEVT_PAINT, &Board::OnPaint,this);
}
// 定義繪製函數
void OnPaint(wxPaintEvent &event) {
}
};

其中,wxPaintEvent是繪製事件類,它包含了一些繪製信息。wxEVT_PAINT是繪製事件宏定義表示事件類型。

執行效果與上圖一樣,因為我們什麼也沒有繪製。

更多使用方法可以查看官方文檔

開源地址:

https://github.com/wxWidgets/wxWidgets

更多更優質的資訊,請關注我,你的支持會鼓勵我不斷分享更多更好的優質文章。


分享到:


相關文章: