一个比较完整的wxWidget项目

wxWidgets可视化框架开发——上 wxWidgets 是一个开源的 C++ 跨平台 GUI(图形用户界面)框架,允许开发者使用同一套代码构建在多个操作系统(如 Windows、macOS、Linux 等)上运行的可视化程序。 阅读详情

将shell式的PC软件,改造成扁平的wxWidget软件

1. 分析shell

当你第一次分析一个比较长的shell程序时,肯定会头晕,找不着如何下手.我是看了将近两遍的.
第一次,整体看一遍,把不了解的命令查出来,标注释.
第二次,用笔记录逻辑分支,把整个大程序,按功能分解成小程序块.

2.理清设计思路

1.画UML,确定逻辑顺序. (这可能会在后期设计界面和写代码的时候,进行属性改动,没事,这是初手必经之路,不可能一次定型)
2.根据UML,和之前的功能分析,画出界面草图.
3.生成工程,开始设计实现界面.

根据界面进行编码实现

formbuilder (wxFormBuilder界面文件)
----------------gui.fbp(主界面)
----------------child1gui.fbp(子界面)
----------------child2gui.fbp
include(具体功能实现的.h文件)
-----------main.h(派生于gui.h)
-----------child1.h(i派生于child1gui.h)
-----------child2.h
-----------common.h(通用的方法头文件)
-----------otherfun.h(其它模块)
resources(界面相关的实现cpp和.h头文件)
----------------gui.cpp
----------------gui.h
----------------child1gui.cpp
----------------child1gui.h
----------------child2gui.cpp
----------------child2gui.h
src(具体功能实现的cpp文件)
------------main.cpp
------------child1.cpp
------------child2.cpp
------------common.cpp
------------otherfun.cpp
|
|
**备注:**界面设计和实现依赖于gui.h再派生.h的方法,具体是:在wxFormBuilder中,设计好界面,然后点击Tools | Generate InheritedClass(或F6)启动Generate Inherited Class(生成继承类向导)的办法在
wxFormBuilder中生成子类

代码开发中的总结

1.得到system里命令的返回值

//得到system里命令的返回值
string Common::getCmdResult(const string &strCmd)
{
	char buf[10240] = {0};
	FILE *pf = NULL;

	if( (pf = popen(strCmd.c_str(), "r")) == NULL ) {
		return "";
	}

	string strResult;
	while(fgets(buf, sizeof buf, pf)) {
		strResult += buf;
	}

	pclose(pf);

	unsigned int iSize =  strResult.size();
	if(iSize > 0 && strResult[iSize - 1] == '\n') { // linux
		strResult = strResult.substr(0, iSize - 1);
	}

	return strResult;
}

2.在指定文件里的查找指定字符串,找到返回true, flag ==1 表示区分大小写, 0表示不区分

//function: 在指定文件里的查找指定字符串,找到返回true, flag ==1 表示区分大小写, 0表示不区分
bool Common::findContent(const wxString file, const wxString findString, int flag)
{
	wxString content;
	wxFile content_file(file,wxFile::read);
	wxFileOffset nSize = content_file.Length();
	if (wxInvalidOffset == nSize) {
		wxMessageBox(file + _T(" is null "), _T("Error"),
		             wxOK | wxICON_INFORMATION);
	} else {
		wxUint8 * data = new wxUint8[nSize];
		if (content_file.Read(data, (size_t)nSize) != nSize) {
			delete[] data;
		}
		for(int i=0; i<nSize; i++) {
			content = content + data[i];
		}
	}
	content_file.Close();

	if(flag==1) {
		if(content.Contains(findString)) {
			return true;
		} else {
			return false;
		}
	} else {
		if(content.Lower().Contains(findString.Lower())) {
			return true;
		} else {
			return false;
		}
	}

}

3.多个控件共用一个事件函数

只需要在wxFormBuilder里,选择控件,然后在把控件的Events里,设置同样的事件函数名就行.
那么如何判断是哪个控件触发的事件呢?
这时就可能用event.id来判断了

4.wx写文件

假如有一个wxArrayString 数组, item
下面的程序,将item里的内容写进文件ll里
wxFile file(wxT("/home/xiale/wer/ll"),wxFile::write);  //这种写文件的方式,直接重写,不会追加
		if (file.IsOpened()) {
			//wxString  str= wxT("sdfsf");
			//file.Write(str + wxTextFile::GetEOL());
			for(int i =0; i <item.Count(); i++) {
				file.Write(item[i] + wxTextFile::GetEOL());
			}
			file.Close();
		}

WxWidget多平台交叉编译环境搭建 wxWidget作为知名的跨平台界面开发框架,已经有相当长的历史了,最近利用业余时间研究了wxWidget框架在Ubuntu下的开发方法,其中搭建开发环境走了一些弯路,参考了网上不少好文,总算尘埃落定,不敢独享,把搭建步骤记录于此,希望给有同样研究兴趣的同学一个参考。 那么现在开始... 开始之前需要安装: C++ 基本开发环境:sudo apt-g 阅读详情

相关推荐

使用wxWidgets创建GUI应用程序:欢迎世界

wxWidgets是一个跨平台的C++图形用户界面(GUI)开发框架,它提供了丰富的工具和组件,用于创建各种平台上的应用程序。本文将向您展示如何使用wxWidgets创建一个简单的“欢迎世界”GUI应用程序,并提供相应的源代码。您可以从wxWidgets官方网站(https://www.wxwidgets.org/)下载并安装适用于您的操作系统的版本。要编译和运行此应用程序,您需要使用适当的编译器和构建系统。要编译和运行此应用程序,您需要使用适当的编译器和构建系统。类代表了我们的应用程序的主窗口。

HackDyno的博客 186

使用 wxWidgets 的 wxAUI 界面库,创建功能丰富的软件界面

软件界面是用户与软件交互的重要桥梁,一个好的界面不仅可以提升用户体验,还可以彰显软件的专业性。wxAUI 是一款功能强大的跨平台界面库,可以帮助开发者轻松创建出美观、易用的软件界面。wxAUI 是一款功能强大、易于使用的跨平台界面库,可以帮助开发者轻松创建出美观、易用的软件界面。如果你正在开发一款软件,不妨尝试使用 wxAUI 来创建界面。

boom's works 2735

“风色幻想XX:交错轨迹游戏卡顿:从解决d3dx9_xx.dll缺失开始——风色幻想XX优化指南

《风色幻想XX:交错轨迹》作为一款深受玩家喜爱的角色扮演游戏,以其丰富的剧情、独特的角色设定和精美的画面赢得了广泛的赞誉。然而,在游戏过程中,部分玩家可能会遇到游戏卡顿的问题,这不仅影响了游戏体验,还可能让玩家错失精彩的剧情和战斗瞬间。在众多导致游戏卡顿的因素中,d3dx9_xx.dll文件的缺失往往是一个不容忽视的原因。

czl922的博客 1256

Windows平台搭建wxWidgets 3.2.3开发环境

Windows平台搭建wxWidgets 3.2.3开发环境

LILI00000的专栏 1592

kaggle竞赛平台上数据集下载详解

从kaggle 网站上下载数据集既保证了速度又避免了网络的不稳定造成下载失败问题。该平台也可以上传代码作为自己的代码库,不过本人更习惯将代码上传到github上。希望本人整理的kaggle库使用技巧能够帮助到正在阅读本博客的你。此外还有一篇博客针对kaggle数据集下载问题的几个问题的相关文章进行了整理【博客链接】。

li1784506的博客 2万+

ubuntu20.04下内核源码下载分析

ubuntu 20.04下内核源代码下载,配置编译环境写在前面一、安装VMware Workstation和Ubuntu20.04二、修改apt源合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释也是必不可少的KaTeX数学公式新的甘特图功能,丰富你的文章UML 图表FLowchart流程图导出与导入导出导入 写在前面 我最近的科研工作需要使用到对ubun

冰冻三尺非一日之寒 1万+

使用VSCODE进行wxWidgets开发环境搭建

初学C++,想要从头搭建用户界面,之前接触过QT开发,但是QT开发环境安装后占用空间比较大,而且新版QT已经是在线下载了,感觉没以前离线下载整个安装包方便。而且封装太多也不利于更深入学习C++。因此入手学习wxWidgets,因为又不想使用VISUAL STUDIO来开发(太过于笨重,也是本人过于挑剔),因此选择VSCODE安装C++环境来开发wxWidgets。花了几天时间来编译wxWidgets,总算把wxWidgets3.2.1编译出来,做出了第一个界面窗口。

kindhyh的博客 4423

STM32F103RC学习(一)

STM32F103RC学习(一)

Cat_South_North的博客 6057

初识wxWidget——项目结构说明

初识wxWidget——项目结构说明说明gui.hgui.cppmain.hmain.cpp 说明 哈喽,我是杨小乐,一个初入行业的菜鸟,这里简单分享下wxWidget的初步认识,如有错误,欢迎指正。 一个wxWidget+FormBuilder的简单项目,包括以下几个部分,如图: include里一般放头文件,头文件里放各种引用的库文件。 resources里放的gui.fbp,也就是FormBuilder的可视化界面。 src一般是实现文件 .cpp gui.h 界面定义文件:这里代码省略了引用的一些

yanxiaole_coder的博客 1701

Mplus—随机截距交叉滞后模型(Random Intercepts Cross-Lagged Panel Model, RI-CLPM)

介绍随机截距交叉滞后模型(Random Intercepts Cross-Lagged Panel Model, RI-CLPM)的相关知识,例如模型内容、Mplus语法及对应网址等。

m0_54401011的博客 9532

Python+Appium实现泛微OA自动打卡:5分钟搭建移动端自动化脚本

移动端自动化测试是软件测试与办公自动化领域的重要技术方向,其核心原理是通过程序模拟用户对手机应用界面的操作,实现重复性任务的自动执行。Appium作为主流的开源移动端自动化框架,基于WebDriver协议,支持跨平台且无需修改被测应用,为自动化脚本开发提供了标准化接口。在工程实践中,结合Python简洁的语法和丰富的生态,可以快速构建稳定可靠的自动化解决方案。这一技术组合的价值在于能够高效处理“重复性、低价值、高频率”的日常操作,例如考勤打卡、数据填报等办公场景,显著提升工作效率。本文以泛微OA Emobi

weixin_28836875的博客 389

wxWidget开篇

出处:http://blog.youkuaiyun.com/dpfordor 这阵子比较了qt及wxWidget如下几方面特性: 1. 库的编译    QT库完全编译费时两个钟左右    wx库只需两分钟。。。。汗 2.开发应用的便利性   QT可以直接用qmake生成所需的makefile及project文件   wx虽然没提供这样的工具,不过下一篇文章,能看出是没必

毛C毛Py的专栏 1249

离散小波变换(概念与应用)

离散小波变换(概念与应用)

weixin_46713695的博客 4415

ubuntu下wxWidget的安装及相关问题解决

一、首先,重新创建一个新的用户,起名为hr2000,在终端输入以下命令:useradd –d /home/hr2000 –m hr2000           (注:当然你也可以在你自己的帐户下安装) 二、设置新用户密码,终端输入:passwd hr2000 三、复制wxGTK安装文件到此目录下/home/hr2000 四、修改目录/home/hr2000下的.profile文件,添加

hy0736的专栏 5757

提示工程ROI计算模板:架构师私藏Excel表(含自动计算)

花3个人力优化提示词,到底能带来多少实际收益?“这个提示工程项目值得做吗?投入10万成本,多久能回本?“不同LLM应用的提示词优化优先级怎么排?全凭经验拍脑袋?当前90%的企业在提示工程投入上缺乏标准化的量化评估方法,导致资源浪费(盲目投入无回报项目)或错失机会(低估高价值优化点)。ROI = (总收益 - 总成本) / 总成本 × 100%对于提示工程,总成本=显性成本+隐性成本,总收益=直接收益+间接收益(后文会详细拆解)。提示工程的价值不是“玄学”,而是可以用数据量化的投资行为。本文分享的。

AI开发架构师 1073

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

初识wxWidget——wxTimer用法

初识wxWidget——wxTimer用法 1. wxTimer在gui.cpp里的定义 首先要在 gui.h 中定义符号常量:#define TIMER_ID 1000 (为个是其标识ID)。引用头文件 #include <wx/timer.h> 网上更多的是timer的静态事件表用法,我没有实验成功。因此,这里展示timer的动态事件连接用法,一定要用this指向,因为它是定义于窗体之内的。具体代码在 gui.cpp 里,如下所示。 m_timer = new wxTimer(this,

yanxiaole_coder的博客 2147

锂电池充电器电路设计 里面有电路

锂电池充电器电路设计 里面有电路 3.7V升压到5V电路设计。

[Effective WX] 理解wxWidget跨平台的实现方法

wxWidget为了做到跨平台,对于那么与平台相关的类,比如wxWindow,大都会先定义一个平台无关的基类$(class)Base,通常定义在include/wx/xxx.h文件中,实现则放在了src/common/yyy.cpp文件。请注意头文件和实现文件的文件名通常是不同的,不过也有规律可循,譬如wxWindowBase类声明在window.h中,定义在src/common/wincmn.c

zeroom的技术专栏 1359

SAP B1中文培訓教材_SDK

公司内部培训资料,对开发工具 ,DIAPI, UIAPI,Add-ON有详细解说

IMSL CNL 7.0.0 (x86-64)Crack

IMSL CNL 7.0.0 (x86-64)Crack intel的算法库破解文件,这是C++版本的破解文件

wxWidget类型转换

在C++里常用类型转换感觉很杂,不好用;跟C#没得比:可以强类型转换,还有convert通用的转换,非常方便的说。刚用wxwidget时类型转换也是一头大,了解后发现要比MFC简洁好用多,接口也容易记住。下面上WXWIDGET常用类型转换:一、wxstring与其他类型转换    1.1 int  to wxString:     wxString str = wxString::Form

puny的专栏 3643

wxWidget的下载与安装

这一章我将为各位介绍如何下载安装wxWidget这个GUI开发库。    首先,我们先要知道,我们是在win32下使用wxWidget的。所以,我们现在要下载的是wxMSW这个开发库。MSW我想你也知道是什么意思。直到这篇文章写出来,wxMSW的最新版本是2.5.3。现在你可以从www.sf.net上下载,也可以在如下地址下载。http://umn.dl.sourceforge.net/sour

痞子龙3D编程 4156

学习wxWidget的心得

            wxWidget是类似于MFC的一个开发工具包,风格也与MFC类似,但是wxWidget最大的一个特点是“Cross-platform”(跨平台)。以下重点针对几大类别进行介绍,它们的关系如下图:         1、 wxAui: 包含了Docking的各种类库          2、wxBase:  wxBase can be used to develop c

hjy82919的专栏 1249

wxWidget之XML文件解析

找了好久,很遗憾的发现wxWidget没有提供很好的XML文件解析类,只好自己写一个了,主要用来获取xml节点及读取节点的值,已经够自己用了。废话不多说,直接上代码了。 头文件: #ifndef WXXMLHELPER_H #define WXXMLHELPER_H #pragma once #include #include class wxXmlHelper { public: w

Giselite的专栏 2711

wx网罗系列之环境搭建:wxWidget的下载、安装与编译

此文转载自北斗星君的博客,是他的Dev-Cpp/Mingw32 环境介绍系列教程中的几章。他博客地址为:http://blog.youkuaiyun.com/visioncat/  和 http://nirvana.cublog.cn/ 。此文为他高中时所写。皿第十四章 wxWidget的下载与安装  这一章我将为各位介绍如何下载安装wxWidget这个GUI开发库。  首先,我们先要知道,我们是

Utensil的专栏 3871

wxWidget小试

 wxWidget小试 之前用wxlua写过脚本界面,今天尝试了一下wxWidget的win32版本。 没有界面设计工具怎么行,什么年代了肯定不能纯手工打造界面。 于是找得code:Blocks,开源的,才22M,一用,很牛B,基本上编译器功能全了,基于插件的设计和ECLIPCE一样强大。 但是如果用vs自带的cl编译的话,还要配置很多,设置断点还得用cdb,太麻烦了,我不就是想找一个

huapro.vip的程序人生 697

如何使用wxWidget缩放图片

我在用wxWidget写Portab Media Player Version 1.0的时候,在图片浏览模块中,需要一种能在一定范围类预览图片的功能,所以需要用到一种机制——那就是如何用wxWidget库实现图片缩放的功能。wxWidget中有一个wxImage类,是专门处理图象的类之一.当然,wxStaticBitmap也是,而且通常是用wxStaticBitmap类来显示一幅图片,因为它继承w

moyumoyu的专栏 3042

wxwidget支持PHP,Mac 安装wxWidget 3.01

1,Carbon和Carbon区别Carbon是苹果电脑操作系统的应用程序编程接口(API)之一。Carbon和Cocoa,X11,POSIX,JAVA并列成为Mac OS X五个主要的API。与Cocoa相较之下,Carbon是非面向对象(Procedural)编程语言API,而Cocoa是面向对象(Object Oriented)的编程语言API。Carbon是比Cocoa更为低层次的API,...

weixin_39992660的博客 214

wxWidget中文手册下载仓库

wxWidget中文手册下载仓库 【下载地址】wxWidget中文手册下载仓库 wxWidget中文手册下载仓库为开发者提供了全面且清晰的中文使用指南,帮助用户更好地理解和运用wxWidget。该手册内容详实,涵盖广泛,特别适合在阅读英文手册时遇到困难的开发者。通过下载并解压资源文件,您可以轻松使用任意文本编辑器或阅读器...

gitblog_06740的博客 466
上一篇: 使用异或交换两整数###与运算判断奇偶
下一篇: wxstring与其他类型转换
杨小乐coder
博客等级 码龄7年 11粉丝 22原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值