返回介绍

4.7 静态控件

发布于 2025-03-08 15:26:43 字数 3550 浏览 0 评论 0 收藏 0

静态控件不响应任何用户输入,只用来显示一些信息或者增加应用程序的美感。

进度条

这是一个水平或者垂直的用来显示进度(通常是时间的进度)的控件。它不产生任何命令事件。下面的代码用来创建一个进度条:

#include "wx/gauge.h"
wxGauge* gauge = new wxGauge(panel, ID_GAUGE,
  200, wxDefaultPosition, wxDefaultSize, wxGA_HORIZONTAL);
gauge->SetValue(50);

在 windows 平台上的外观:

wxGauge 的窗口类型

wxGA_HORIZONTAL水平进度条。
wxGA_VERTICAL垂直进度条。
wxGA_SMOOTH创建一个光滑的进度条,进度条的每一段之间没有空格. 仅适用于 Windows。

wxGauge 事件

因为进度条只是用来显示信息,因此不产生任何事件。

wxGauge 成员函数

GetRange 和 SetRange 用来设置进度条的最大值。

GetValue 和 SetValue 用来获取和设置进度条的当前值。

IsVertical 用来检测是否是垂直进度条(否则就是水平的)。

wxStaticText

静态文本控件用来显示一行或者多行的静态文本。

下面的例子创建了一个静态文本控件:

#include "wx/stattext.h"
wxStaticText* staticText = new wxStaticText(panel, wxID_STATIC,
  wxT("This is my &static label"),
  wxDefaultPosition, wxDefaultSize, wxALIGN_LEFT);

以及它在 windows 平台上的外观:

在静态文本控件标签中的前导符"&",在某些平台(比如 Windows 和 GTK+)上用来定义一个快捷键,通过这个快捷键可以直接访问到下一个非静态的控件。

wxStaticText 的窗口类型

wxALIGN_LEFT标签左对齐。
wxALIGN_RIGHT标签右对齐。
wxALIGN_CENTRE标签在水平方向上居中对齐。
wxST_NO_AUTORESIZE默认情况下,静态文本控件会在调用 SetLabel 以后自动改变大小以使得其大小刚好满足标签文本的需要,如果设置了这个类型,则标签不会改变自己的大小。通常这个类型应该和上面的对齐类型一起使用因为如果没有设置这个类型,自动调整大小使得对齐没有任何意义。

wxStaticText 的成员函数

GetLabel 和 SetLabel 用户获取和设置文本标签。

wxStaticBitmap

静态图片控件显示一个图片。

使用下面的代码创建静态图片控件。

#include "wx/statbmp.h"
#include "print.xpm"
wxBitmap bitmap(print_xpm);
wxStaticBitmap* staticBitmap = new wxStaticBitmap(panel, wxID_STATIC,
  bitmap);

这会在作为父窗口的面板或者对话框上显示一个图片,如下图所示:

wxStaticBitmap 的窗口类型

没有特别的窗口类型。

wxStaticBitmap 的成员函数

GetBitmap 和 SetBitmap 用来获取和设置其显示的图片。

wxStaticLine

这个控件用来在其父窗口上显示一个水平或者垂直的长条,以便作为子窗口的静态分割条。

下面是创建 wxStaticLine 的代码:

#include "wx/statline.h"
wxStaticLine* staticLine = new wxStaticLine(panel, wxID_STATIC,
    wxDefaultPosition, wxSize(150, -1), wxLI_HORIZONTAL);

以及其在 windows 平台上的外观:

wxStaticLine 的窗口类型

wxLI_HORIZONTAL水平长条。
wxLI_VERTICAL垂直长条。

wxStaticLine 的成员函数

IsVertical 用来检测是否为垂直长条。

wxStaticBox

这个控件用来在一组控件周围显示一个静态的拥有一个可选标签的矩形方框。到目前为止,这个控件不可以作为其它控件的父窗口。它围绕的那些控件是它的的兄弟窗口而非子窗口。它们应该在它后面创建,但是它们拥有同样的父窗口。在将来的版本中,也许会更改这个限制以便它可以同时容纳兄弟窗口和子窗口。

下面是创建一个 wxStaticBox 的例子代码:

#include "wx/statbox.h"
wxStaticBox* staticBox = new wxStaticBox(panel, wxID_STATIC,
  wxT("&Static box"), wxDefaultPosition, wxSize(100, 100));

以及它在 windows 平台上的样子:

wxStaticBox 的窗口类型

没有特别的窗口类型

wxStaticBox 的成员函数

GetLabel 和 SetLabel 用来获取和设置其静态标签。

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文