36、wxWidgets小部件之wxChoicebook

2024-01-27 17:58

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

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

#include <wx/wx.h>
#include <wx/choicebk.h>

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

    wxChoicebook* book;
    wxChoice* choice;
};


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 wxChoicebook(this,-1,wxPoint(-1,-1),wxSize(-1,-1),wxNB_TOP);
    book->SetImageList(ilMain);
    choice = book->GetChoiceCtrl();

    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_CHOICEBOOK_PAGE_CHANGED
         ,wxChoicebookEventHandler(Simple::OnChanged)
         ,this
         ,book->GetId()
         );
    CreateStatusBar();

    Centre();
}

void Simple::OnChanged(wxBookCtrlEvent& event)
{

    long index = choice->GetSelection();
    if(index !=-1)
    {
        wxString str = choice->GetString(index);

        wxMessageBox(str
                     ,wxString::Format("ID=%i",index)
                     );
    }
}

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


 

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



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

相关文章

关于大模型和AIGC的36条笔记和真话

行业到底有多卷? 最新统计,中国已有130多个大模型问世,在网信办备案的算法模型也超过70多家。BAT等互联网巨头悉数下场发布AI大模型,仅2023年就有超60家创业公司拿到融资,产品更是布满了基础层、模型层和应用层。新一代生成式AI,可能要回头看看上一代AI趟过的坑,不要行业自嗨,避免上一个冬天的轮回。在这个领域的从业者,更要清晰地看到行业的内卷和客户的痛点,别被大佬的鸡汤迷了眼。 1、

itoa()函数,10进制转换到(2~36)进制

先看下itoa()的函数说明吧: 功 能:把一整数转换为字符串   用 法:char *itoa(int value, char *string, int radix);    详细解释:itoa是英文integer to array(将int整型数转化为一个字符串,并将值保存在数组string中)的缩写.    参数:  value: 待转化的整数。            radix:

代码随想录Day 36|滑铁卢了,leetcode题目:1049.最后一块石头的重量、494.目标和、474.一和零

提示:DDU,供自己复习使用。欢迎大家前来讨论~ 文章目录 动态规划一、题目题目一:1049.最后一块石头的重量II解题思路: 题目二:494.目标和动态规划 (二维dp数组)#动态规划 (一维dp数组) 题目三: 474.一和零解题思路: 总结 动态规划 有点难了,之前差的有点多,找时间补 一、题目 题目一:1049.最后一块石头的重量II leetcode题目链接

LeetCode - 36. Valid Sudoku

36. Valid Sudoku  Problem's Link  ---------------------------------------------------------------------------- Mean:  给定一个数独,判断这个数独是否合法. analyse: 略. Time complexity: O(N)   view

leetcode解题思路分析(五)29-36题

两数相除 给定两个整数,被除数 dividend 和除数 divisor。将两数相除,要求不使用乘法、除法和 mod 运算符。 返回被除数 dividend 除以除数 divisor 得到的商。 本题思路倒是不难,既然不能用乘除法和mod,那使用减法是理所当然的,唯一需要考虑的是边界溢出情况 class Solution {public:int divide(int dividend, in

LeetCode 36 Valid Sudoku

题意: 判断一个填了一部分的数独有没有解。 思路: 按照数独规则判断即可,即同一行、同一列、同一个3*3的方格内没有数字重复出现。 代码: class Solution {public:bool isValidSudoku(vector <vector<char>> &board) {const int step = 3;bool app[step * step];fo

代码随想录算法训练营第36天|1049. 最后一块石头的重量、494. 目标和、474.一和零

目录 1049. 最后一块石头的重量 II1、题目描述2、思路3、code4、复杂度分析 494. 目标和1、题目描述2、思路3、code4、复杂度分析 474. 一和零1、题目描述2、思路3、code4、复杂度分析 1049. 最后一块石头的重量 II 题目链接:link 1、题目描述 有一堆石头,用整数数组 stones 表示。其中 stones[i] 表示第 i 块

MySQL5.7.36之高可用架构部署-MHA-VIP漂移

1、创建文件 vi /usr/local/bin/master_vip_mysql_mha #!/usr/bin/env perluse strict;use warnings FATAL => 'all';use Getopt::Long;my ($command, $ssh_user, $orig_master_host, $orig_master_i

认知杂谈36

今天分享 有人说的一段争议性的话 《爷们儿,高手避坑指南》 嘿,爷们儿!人生处处有陷阱,稍不留意就可能让你的人生轨迹严重跑偏。 I 今天咱就从高手的视角聊聊这些硬派的人生感悟,这可都是无数前辈爷们用血汗换来的教训。 I 咱分享给你,就是希望你能避开那些坑,让你的黄金岁月走在正道上,闪闪发光。 I 要知道,男人的青春无比珍贵,是在烂泥里挣扎还是在康庄大道上飞驰,结果天差地别。 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