35、wxWidgets小部件之wxListBook

2024-01-27 17:58
文章标签 35 部件 wxwidgets wxlistbook

本文主要是介绍35、wxWidgets小部件之wxListBook,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

 

 MyGrid请参照上一章https://blog.csdn.net/sq8706/article/details/119638263

#include <wx/wx.h>
#include <wx/listbook.h>
#include <wx/listctrl.h>
#include "mygrid.h"

class Simple:public wxFrame
{
public:
    Simple(const wxString& title);
protected:
    void OnQuit(wxCommandEvent& event);
    void OnChanged(wxBookCtrlEvent& event);

    wxListbook* book;
    wxListView* lvBook;
};

Simple::Simple(const wxString& title)
    :wxFrame(NULL,-1,title)
{
    wxImage::AddHandler(new wxPNGHandler);
    wxImageList* ilMain = new wxImageList(16,16);
    ilMain->Add(wxBitmap("add.png",wxBITMAP_TYPE_PNG));
    ilMain->Add(wxBitmap("del.png",wxBITMAP_TYPE_PNG));
    ilMain->Add(wxBitmap("edit.png",wxBITMAP_TYPE_PNG));


    book = new wxListbook(this,-1,wxPoint(-1,-1),wxSize(-1,-1),wxNB_LEFT);
    book->SetImageList(ilMain);
    lvBook = book->GetListView();

    wxMenuBar* mbMain = new wxMenuBar;
    wxMenu* mnFile = new wxMenu;
    wxMenuItem* miQuit = new wxMenuItem(mnFile,-1,wxT("退出"));
    mnFile->Append(miQuit);
    mbMain->Append(mnFile,wxT("文件"));
    SetMenuBar(mbMain);

    Bind(wxEVT_COMMAND_MENU_SELECTED,Simple::OnQuit,this,miQuit->GetId());

    MyGrid* grid1 = new MyGrid(book);
    MyGrid* grid2 = new MyGrid(book);
    MyGrid* grid3 = new MyGrid(book);

    book->AddPage(grid1,wxT("标签1"));
    book->SetPageImage(0,0);
    lvBook->SetItemData(0,1);
    book->AddPage(grid2,wxT("标签2"));
    book->SetPageImage(1,1);
    lvBook->SetItemData(1,2);
    book->AddPage(grid3,wxT("标签3"));
    book->SetPageImage(2,2);
    lvBook->SetItemData(2,3);

    book->SetSelection(2);//调用此函数会产生页面更改事件
    book->ChangeSelection(1);//调用此函数不产生页面更改事件

    Bind(wxEVT_LISTBOOK_PAGE_CHANGED
         ,wxListbookEventHandler(Simple::OnChanged)
         ,this
         ,book->GetId()
         );
    CreateStatusBar();

    Centre();
}

void Simple::OnChanged(wxBookCtrlEvent& event)
{

    long index = lvBook->GetFirstSelected();
    if(index !=-1)
    {
        wxListItem li;
        long nData = lvBook->GetItemData(index);

        wxMessageBox(lvBook->GetItemText(index,0)
                     ,wxString::Format("ID=%i Data=%i",index,nData)
                     );
    }
}

void Simple::OnQuit(wxCommandEvent& event)
{
    Close(true);
}

这篇关于35、wxWidgets小部件之wxListBook的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/651049

相关文章

『功能项目』战士的平A特效【35】

我们打开上一篇34武器的切换实例的项目, 本章要做的事情是在战士的每次按A键时在指定位置生成一个平A特效 首先将之前下载的技能拖拽至场景中 完全解压缩后重命名为AEffect 拖拽至预制体文件夹 进入主角动画的战士动画层级 双击第一次攻击 选择Animation 创建事件 创建的动画事件帧放在攻击动画挥剑指定处 命名为PerpetualAtt

NoSQL数据库的35个应用场景

现在我们站在各个用例的角度上来考虑那种系统适合于这些用例。   你的意见是?   首先,我们要纵览各种数据模型。这些模型的分类方法来自于Emil Eifrem和NoSQL databases。   文档数据库   源起:受Lotus Notes启发。   数据模型:包含了key-value的文档集合   例子:CouchDB, MongoDB   优点:数据模型自然,编

MySQL-35个DQL练手题(难)

第1题 取得每个部门最高薪水的人员名称 第一步:取得每个部门最高薪水 select max(sal) topsal, deptno from emp group by deptno; 第二步:将上面第一步的查询结果当做一张临时表t,进行表连接,条件是:t.deptno=e.deptno and t.maxsal=e.sal select e.ename, t.* from emp e

没有35类可以做特许经营加盟不!

前几天有个老客户找到普推知产商标老杨,没有35类可以做特许经营加盟不,在35类有个小类叫做“特许经营的商业管理”,但是35类这个主要指的为他人提供的,所以就是没有35类广告,照样就可以做特许经营加盟。 比如已经有43类餐饮行业的商标了,有44类美容店的商标,那也可以自营做加盟,35类的特许经营主要是指的是为他人的特许经营行为提供商业咨询、调查、管理等服务的主体,比如管理多个

「图」邻接矩阵|边集数组|邻接表 / LeetCode 35|33|81(C++)

概述 我们开始入门图论:图的存储。 图是一种高级数据结构:链表是一个节点由一条边指向下一个节点,二叉树是一个节点由两条边指向下两个节点,而图是由任意多个节点由任意多条边指向任意多个节点。 图由节点和边构成,边往往存在边权。边权在不同的问题中往往有不同含义,如在最短路径中表示边的长度,在AOE网中表示任务所需时间。 对于这种复杂的结构,如何存储在计算机的程序语言中呢? 我们先来介绍三种存储

代码随想录算法训练营第35天|背包问题基础、46. 携带研究材料(01背包二维解法)(01背包一维解法)(acm)、416. 分割等和子集

目录 0、背包问题基础01背包 46. 携带研究材料(01背包)1、题目描述2、思路3、code(二维解法)3-1、code(一维解法)4、复杂度分析 416. 分割等和子集1、题目描述2、思路3、code4、复杂度分析 0、背包问题基础 01背包 有n件物品和一个最多能背重量为w 的背包。第i件物品的重量是weight[i],得到的价值是value[i] 。每件物品只能

使用wxWidgets中的wxXmlDocument来对一个xml文件操作

如何操作一个XML,使用wxWidgets ? 可以使用一下方法: wxXmlDocument doc;wxString str_filename =file;if(false == doc.Load(str_filename)){return;}wxXmlNode* root = doc.GetRoot();wxXmlNode* child_root = root->GetChildr

使用wxWidgets如何获得所有的字体

如果想使用wxWidgets获得字体列表:可以使用以下方法 wxFontEnumerator myFonts;wxArrayString strFontNames;wxFontEncoding encoding = wxFONTENCODING_DEFAULT;//wxFONTENCODING_SYSTEM;strFontNames = myFonts.GetFacenames(enco

如何使用wxWidgets跨平台界面库来编写一个对话框窗口?

如题: 这是一个窗口类,调用方法是: ++++++ wxString fontname = new_tab_->GetFontName(); //wxT("System");DlgFontName *dlg_fontname = new DlgFontName(this,fontname);if (dlg_fontname->ShowModal() == wxID_OK){fontn

<Rust>egui学习之小部件(九):如何在窗口中添加下拉列表combobox部件?

前言 本专栏是关于Rust的GUI库egui的部件讲解及应用实例分析,主要讲解egui的源代码、部件属性、如何应用。 环境配置 系统:windows 平台:visual studio code 语言:rust 库:egui、eframe 概述 本文是本专栏的第九篇博文,主要讲述下拉列表部件combobox的使用。 事实上,类似于iced,egui都提供了示例程序,本专栏的博文都是建立在官方示