wxWidgets教程(18)——wxWizard与wxWebView使用方法
来源:互联网 发布:ps网络用语是什么意思 编辑:程序博客网 时间:2024/05/22 06:55
一、创建向导对话框wxWizard
1、创建一个带有位图的向导对话框
// 给向导对话框定义一个ID#define wxID_WIZARD wxID_HIGHEST + 2
// 向导图,位于向导对话框的左侧wxBitmap bitmap;bitmap.CopyFromIcon(wxICON(MAIN_ICON));wxWizard wizard;wizard.Create(this, wxID_WIZARD, wxT("向导设置"), bitmap);// 设置向导图参数wizard.SetBitmapBackgroundColour(wxColour(255,0,0));wizard.SetBitmapPlacement(wxCENTER);wizard.SetMinimumBitmapWidth(200);注:这里有个bug,如果没有在构造函数中设置位图,那么将无法设置位图,SetBitmap函数使用不生效。
2、设置向导对话框中的页面大小
// 设置向导页的尺寸大小wizard.SetPageSize(wxSize(600, 400));wizard.SetSizeHints(wxDefaultSize, wxDefaultSize);3、添加2个向导页面,并设置好上一页与下一页的页面
wxWizardPageSimple* page1 = new wxWizardPageSimple(&wizard);wxWizardPageSimple* page2 = new wxWizardPageSimple(&wizard);page1->SetNext(page2);page2->SetPrev(page1);4、居中运行第一个页面
// 居中并运行wizard.Centre(wxBOTH);wizard.RunWizard(page1);
5、事件响应
wxEVT_WIZARD_PAGE_CHANGEDwxEVT_WIZARD_PAGE_CHANGINGwxEVT_WIZARD_CANCELwxEVT_WIZARD_HELPwxEVT_WIZARD_FINISHEDwxEVT_WIZARD_PAGE_SHOWNwxEVT_WIZARD_BEFORE_PAGE_CHANGED这些事件可以传递到父窗口,如果你没有从wxWizard类继承的话,那么可以让wxWizard的父窗口MyFrame的事件表来响应,代码如下:
BEGIN_EVENT_TABLE(MyFrame, MainFrame)EVT_WIZARD_FINISHED(wxID_WIZARD, MyFrame::OnFinished)EVT_WIZARD_CANCEL(wxID_WIZARD, MyFrame::OnCancel)END_EVENT_TABLE()void MyFrame::OnFinished(wxWizardEvent& event) {wxLogDebug(wxT("完成"));}void MyFrame::OnCancel(wxWizardEvent& event) {wxLogDebug(wxT("取消"));}
当然你也可以从wxWizard类继承一个子类MyWizard,单独另建一个文件,事件表都是独立处理的,而且可以重写父类wxWizard的方法。
6、修改底部的按钮文字
// 修改按钮文字的宏#define WIZARD_BTN_TEXT(wizard,itemid,label) ((wxButton*)(wizard->FindItem(itemid)))->SetLabelText(label)BEGIN_EVENT_TABLE(MyFrame, MainFrame)EVT_WIZARD_PAGE_CHANGED(wxID_WIZARD, MyFrame::OnPageChanged)END_EVENT_TABLE()void MyFrame::OnPageChanged(wxWizardEvent& event) {wxWizard * wizard = reinterpret_cast<wxWizard*>(FindWindowById(wxID_WIZARD));WIZARD_BTN_TEXT(wizard, wxID_FORWARD, wizard->HasNextPage(wizard->GetCurrentPage()) ? wxT("下一页") : wxT("完成"));WIZARD_BTN_TEXT(wizard, wxID_CANCEL, wxT("取消"));WIZARD_BTN_TEXT(wizard, wxID_BACKWARD, wxT("上一页"));}
二、创建web控件wxWebView
注:如果页面中的异步js调用特别多,那么将会卡GUI界面,这是一个很不好的地方,也说明封装的不成熟
1、创建一个百度链接的web控件
// 在面板m_panel4上创建一个web控件wxWebView * webView = wxWebView::New(m_panel4, wxID_ANY, wxT("https://www.baidu.com"));// 加入到垂直布局中wxBoxSizer * sizer = new wxBoxSizer(wxVERTICAL);sizer->Add(webView,1,wxALL|wxEXPAND,0);m_panel4->SetSizer(sizer);m_panel4->Layout();2、更改url
// 变更urlwebView->LoadURL(wxT("http://www.sina.com.cn"));3、控件比较难用,尽量不要频繁跳转,容易出各种问题,最好只用来展示某个页面而已。
阅读全文
0 0
- wxWidgets教程(18)——wxWizard与wxWebView使用方法
- wxWidgets教程(11)——App与进程管理
- wxWidgets教程(13)——wxArchive解压与压缩
- wxWidgets教程(16)——wxMenuBar、wxToolBar与wxStatusBar用法
- wxWidgets教程(10)——wxAUI相关用法总结
- wxWidgets教程(12)——wxConfig使用说明
- wxWidgets教程(14)——书签控件wxBookCtrl
- wxWidgets教程(15)——wxListCtrl用法
- wxWidgets教程(17)——wxSqlite3用法
- wxWidgets教程(3)- 窗口、对话框与控件
- wxWidgets初学者导引(2)——下载、安装wxWidgets
- wxWidgets教程(4)- 绘图
- wxWidgets教程
- wxWidgets教程(2)-事件处理
- wxWidgets的使用方法[转载]
- Swiper教程 —— 使用方法
- wxWidgets初学者导引(3)——wxWidgets应用程序初体验
- wxWidgets初学者导引(4)——wxWidgets学习资料及利用方法指导
- Redis简介(四)高可用分布式集群
- springmvc学习笔记(基于注解实现)
- 区间之和
- 队列,Queue.h
- 【TensorFlow】MNIST(使用全连接神经网络+滑动平均+正则化+指数衰减法+激活函数)
- wxWidgets教程(18)——wxWizard与wxWebView使用方法
- Dealing with unbalanced data in machine learning
- chapter8 叉积的基本介绍
- Linux命令-用户|权限
- 进程通信程序整理---消息队列(Linux)
- 多项式求逆 与 多项式开方
- Activemq消息的发送与接收
- 分页正确做法的分析
- 高并发解决方案(一)页面静态化