跨平台 C++ 界面库,用于使用编写高级GUI应用程序

2019-10-31     星集

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模式。

一般在如下几种情况会触发绘制事件:

  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

更多更优质的资讯,请关注我,你的支持会鼓励我不断分享更多更好的优质文章。

文章来源: https://twgreatdaily.com/zh-hans/Ls9vKm8BMH2_cNUgSj4x.html