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模式。
一般在如下几种情况会触发绘制事件:
- 程序初始化界面显示。
- 窗口最小化后再重新出现。
- 窗口尺寸变化。
- 窗口被挡住后,重新出现。
- 代码调用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
更多更优质的资讯,请关注我,你的支持会鼓励我不断分享更多更好的优质文章。