- 博客(40)
- 资源 (1)
- 收藏
- 关注
原创 Qt程序Release版本记录崩溃信息,并定位问题代码
由于Debug和Release模式下,编译器的行为不同,导致有些bug在Debug模式下并不能检查出来,而Release模式下又无法单步调试。因此在Release模式下记录程序崩溃的信息,并定位代码所在的行号是非常有必要的。该过程分为3步:在当前程序的Release版本中生成pdb调试信息文件将程序崩溃时的执行信息保存为dump文件;指定pdb和exe文件路径,使用WinDbg打开dump文件定位崩溃时的代码位置。测试的环境:Qt Creator 4.11.2 + Qt 5.12.8 + MS
2020-12-31 11:35:30 4539 4
原创 python打包pyqt5+opencv开发的程序(一):pyinstaller
目的:将python项目打包成exe文件。项目特点:该python项目包含多个子文件夹及py文件,与外部有xml数据交换。使用的库:pyqt5,numpy,matplotlib,opencv-python,scikit-learn方法:新建虚拟环境,使用pyinstaller进行打包,避免在anaconda环境下打包体积过大。问题:anaconda下打包的exe文件约200Mb,新建环境后...
2020-04-19 14:49:16 3484
原创 【WPF】向command中传递EventArgs参数,使用mvvmlight
一般code-behind中的事件有sender和EventArgs两个参数,而如果采用MVVM的模式,command中只能传递一个commandParameter参数。可以使用EventTrigger,结合MVVMLight提供的EventToCommand,将属性PassEventArgsToCommand设置为True,在ViewModel中使用RelayCommand<EventA...
2019-10-29 21:20:31 7242 3
原创 在AndroidStudio中Flutter打包发布apk,加入网络权限申请
打包发布apk的详细步骤可以参考下面两个教程:1、AndroidStudio中Flutter打包APK2、Flutter打包发布 Android 项目简要总结步骤如下:1)生成签名文件.jks;注意:如果terminal中提示keytool不是有效的工具,需要将keytool.exe所在的文件夹(一般为C:\Program Files\Android\Android Studio\jr...
2019-09-29 22:02:07 2024
转载 Android Studio通过模拟器联网
转载自:https://blog.csdn.net/weixin_42306122/article/details/82563925模拟器无法联网原因因为Android Studio模拟器默认的DNS设置为10.0.2.3,通过这个DNS无法联网。检查: 可以在powershell中依次使用命令adb shell和getprop获取系统属性,[net.dns1]这一项显示的应该是10.0.2...
2019-09-12 22:09:51 3645 1
原创 偏置圆柱体相贯线的空间坐标计算
两个圆柱形管的相贯存在4种形式,正交、偏置、斜交和偏置斜交。本文仅讨论偏置情况下的计算方法。建立如下坐标系,圆柱1的轴线为Z轴,圆柱2的轴线与Y轴平行,通过右手法则确定X轴,圆柱2的轴线在XOY平面上。圆柱1半径为a,圆柱2半径为b,圆柱2的轴线相较于Y轴偏移距离为ΔX,其中b > a。采用极坐标系表示两个圆柱面和法线矢量:∑1\sum_1∑1: x1=acosθx_1 = ...
2019-08-22 16:04:04 3293 3
原创 MVVM架构的WPF中实现ListBox内容自动换行和滚动到最下方
场景应用程序主界面需要显示程序运行中的log信息,随着log信息的增多,应能自动滚动到最新的一条信息。针对不同的信息显示不同,比如info信息正常显示,error信息标红提醒。由于使用的MVVM架构,希望xaml文件中只出现Binding LogText,将显示与逻辑分离。选择ListBox作为显示的控件,存在两个问题:当log信息长度超过ListBox宽度时,不会自动换行;无法通过...
2019-07-25 22:15:29 7230 1
原创 WPF中实现bool值取反的绑定,使用值转换器ValueConverter
场景xaml设计器中,当一个RadioButton选中时,对应的另一个TextBox取消激活。用代码表述如下:if(RadioButton.IsChecked == True): TextBox.IsEnabled = False;else if (RadioButton.IsChecked == False): TextBox.IsEnabled = True;解决方案...
2019-07-16 22:25:58 10678 2
原创 为Visual Studio 2017设置C#/C++代码配色方案——Monokai风格
Visual Studio 2015及以下版本的VS配色方案可以直接移步 StudioStyle 免费下载。平常用PyCharm和VS Code感觉代码真是看着赏心悦目,发现是Monokai风格的,打算找一个现成的.vssettings直接导入,并没有直接适用于C#的。微软对于C#的配色真的是太匮乏了,只能结合自己多方摸索和手动设置才得到比较满意的配色,先上效果图:准备工作在工具——>...
2019-07-14 22:36:15 27929 4
原创 【C#】多个视图的Winforms如何实现MVP(Model-View-Presenter)模式
网上已经有很多讲MVC、MVP、MVVM模式的区别和原理的文章,这里不细说了。具体可以翻本文的参考资料。这里主要讲讲实际项目中的一些经验。背景工作原因接手一个用C#开发的Winforms软件,代码大概一万多行,业务逻辑完全和界面混在一起,没有单元测试。考虑到后面还要优化、修改,每次下手之前读代码都得半天,于是决定重构成MVP模式。MVP模式又分为Passive View和Supervisin...
2019-07-02 21:22:37 4423 2
原创 【C#】如何比较两个对象是否相等(重写Equals方法)
问题: 写单元测试时,需要对比两个对象是否相等,如果使用Assert.AreEqual(mockclass1, class1)永远无法通过。原因: 这里使用了object默认的Equals方法,必须要引用同一个对象,才会返回true 。默认的Equals方法实现的只是同一性(identity),而不是相等性(equality)。合理的Equals方法本应该这样实现:如果obj实参为空,就返...
2019-06-01 18:31:45 7075
原创 【C#】单元测试及NUnit的基本用法
单元测试单元测试(Unit Testing)是针对程序弄块(软件设计的最小单位)来进行正确性检验的测试工作。单元测试通常由软件开发人员编写,用于确保他们了所写的代码匹配软件需求和遵循开发目标。单元测试的优点:适应变更。允许程序员在未来重构代码,并确保模块依然工作正确。简化集成。采用自底向上的测试路径,消除程序单元的不可靠,使集成测试变得更简单。文档记录。借助于查看单元测试提供的功能和单...
2019-05-28 23:24:33 12041
原创 【C#】ref与out关键字的区别
ref的使用:使用ref进行参数的传递时,该参数在创建时,必须设置其初始值,且 ref侧重于修改;out的使用:采用out参数传递时,该参数在创建时,可以不设置初始值,但是在方法中必须初始化,out侧重于输出;当希望方法返回多个值时,可以用out,并且一个方法中的参数可以有一个或多个out参数;使用out参数,必须将参数作为out参数显式传递到方法中,但是out参数的值不会被...
2019-05-28 18:29:05 354
原创 【C#】单例模式的使用
有时候,需要一个类只能被实例化一次,例如设备中只有一个运动控制卡。这时,可以使用设计模式中的单例模式,确保一个类只有一个实例,并提供一个访问它的全局访问点。// 单例模式的实现public class Singleton{ // 定义一个静态变量来保存类的实例 private static Singleton uniqueInstance; // 定义私有构...
2019-05-28 18:23:03 1551 3
原创 【C#】Invoke 和 InvokeRequired,线程安全
如果在winform构建的GUI界面,通过事件响应函数改变控件的状态(比如某个按钮文本为“Open”,单击之后需要显示“Close”),需要在控件响应函数中调用控件的Invoke方法。因为存在一种可能: 如果控件是在主线程创建,进入控件的事件响应函数是在控件所在的线程,而不是主线程。则当在事件响应函数中改变控件的状态,可能与主线程发生线程冲突。C#中是禁止跨线程直接访问控件的,可以使用控件的I...
2019-05-25 13:24:39 6149
原创 【C#】UserControl用法
为了避免将所有的控件堆在 MainForm上,导致整个视图和逻辑特别复杂,可以使用UserControl将相关的控件组合起来,独立成一个个小的视图。比如主窗口中有多个Tab选项卡,可以将每个Tab选项卡的视图独立成一个UserControl,通过手动添加或者拖放添加到Form中。下面以PrintPanel为例说明用法(VS2015)。首先,“添加——>新建项——>Visual C...
2019-05-25 12:59:58 26578
转载 【C#】多线程之thread与task
最近有个用C#开发的winform软件,需要调用matlab导出的dll文件。最开始把dll中类的初始化放在了主窗体的构造函数里面,结果软件打开30多秒才显示界面。由于dll不是本人写的,没法改,只能在C#程序上想办法。两个方案:使用Timer,在主窗体的load事件里面触发timer,将初始化的代码放在timer_Tick里面。尝试延时10秒触发Tick事件,窗体秒开,但是10s之后...
2018-12-22 17:50:57 5060
转载 SVN trunk(主线) branch(分支) tag(标记) 用法详解和详细操作步骤
转载至:https://blog.csdn.net/vbirdbest/article/details/51122637使用场景:假如你的项目(这里指的是手机客户端项目)的某个版本(例如1.0版本)已经完成开发、测试并已经上线了,接下来接到新的需求,新需求的开发需要修改多个文件中的代码,当需求已经开始开发一段时间的时候,突然接到用户或测试人员的反馈,项目中有个重大bug需要紧急修复,并且要求b...
2018-12-20 12:10:32 386
原创 VS2015远端调试器无法启动(MSVSMON.EXE)问题
背景: VS2015 通过C#语言调用 MATLAB2016a生成的dll文件,平台都是64位,需要将“属性——&gt;生成——&gt;目标平台”改成x64。问题: 在某些电脑上编译报错,提示是MSVSMON.EXE的问题。原因: Visual studio自身是32位(X86)程序,如果想要调试X64的程序,必须通过一个远程调试器MSVSMON.EXE来进行调试,但是这个MSVSMON.EX...
2018-12-19 19:24:27 6929
原创 【C#】VS2015调用Matlab2016a生成的dll文件、MWArray数据类型转换
系统环境:用于生成dll文件的电脑:VS2015专业版,Matlab2016a,均为64位用于调用dll文件的电脑:VS2015社区版,64位生成dll文件这部分网上教程非常多,可以参考:[MATLAB]将.m文件生成dll文件。主要注意的几点:visual studio要安装专业版,详见官方System Requirements and Supported Compilers。...
2018-12-17 14:23:15 4273
原创 Visual Studio中计算软件项目总行数
一共有三种方法:用VS自带的代码度量值、正则表达式、严格版的正则表达式。VS自带以VS2015为例,菜单栏的“分析——>为解决方案计算代码度量值”,会自动生成“代码度量值”结果,包括可维护性指数、圈复杂度、继承深度、类耦合度、代码的行数。可维护性指数:计算一个介于 0 和 100 之间的指数值,表示维护代码的相对容易度。值越大表示可维护性越好。圈复杂度:衡量代码在结构上的复杂程度。...
2018-12-17 01:14:48 1058
原创 XML文件解析及C#基本实现
XML文件概述XML全称Extensible Markup Language,可扩展标记语言,与超文本标记语言(HTML,HyperText Markup Language)同属于标准通用标记语言的子集。XML被设计用来传输和存储数据,使文档具有结构性;而HTML被设计用来显示数据。XML的特点是:– 与操作系统、编程语言的开发平台都无关;– 可以实现不同系统之间的数据交互。XM...
2018-10-21 20:24:21 11882
原创 【python】PyQt5 + pycharm调用Qt Designer,将.ui文件转换成.py文件
使用python进行开发过程中,不可避免会用到图形用户界面(Graphical User Interface,GUI),目前常用的GUI控件集有PyQt、Tkinter、wxPython、PyGTK等。 本文选用的控件集为PyQt5,开发环境如下: 安装包 版本号 windows10 64bit PyCharm 2017.2.3 python ...
2018-07-18 09:40:27 9628 1
原创 【C#】调用DLL文件
实际使用C#的过程中,并不一定所有的函数都需要自己写,可以直接使用已经存在的功能,这些功能一般封装在DLL文件中。C#中的DLL文件又分为托管DLL和非托管DLL。托管DLL文件是在 .NET 环境下生成的dll文件,在公共语言运行库(Common Language Runtime,简称CLR)中能够直接引用的。比如封装各种命名空间的DLL文件,包括System.dll。非托管DLL文...
2018-07-05 16:46:21 4721
原创 【C#】EventHandler委托详解
MSDN的解释:EventHandler即事件委托,表示用于处理不具有事件数据的事件的方法。字面上理解就是一个事件处理器,将一个事件与处理事件的方法联系起来的一种机制。 C++中通过函数指针来完成的。 在C#中的事件基于委托模型。委托模型遵守观察者设计模式,使订阅者(接收或处理事件的类)能够向提供方(发送或引发事件的类)注册并接收相关通知。步骤:首先声明一个委托,一般命名为:Na...
2018-07-05 00:57:36 47148 4
原创 【C#】从头开始看一个C#项目
由于软件需要用C#进行二次开发,看了一段时间的语法之后,开始接触官网提供demo工程文件,将从头开始读一个C#项目所遇到的一些知识点记录下来。C#项目的入口一般C#项目中会有一个program.cs文件,可以称为主程序,Main方法为主程序中的入口点,通常是如下模板:static class Program { /// <summary> ...
2018-06-13 08:47:40 24186 2
原创 opencv-python读取中文路径,cv2.imdecode()
问题: 使用cv2.imread读取含有中文路径的图片时,返回None。原因: opencv不接受non-ascii的路径。解决方法: 先用np.fromfile()读取为np.uint8格式,再使用cv2.imdecode()解码。cv2.imdecode(buf, flags)# buf - Input array or vector of bytes.# flags - Th...
2018-05-22 21:26:10 11731
原创 使用Amazon EBS作为EC2的数据盘
在AWS的EC2上部署深度学习时,通常会有较大的数据集,动辄几个GB。为了避免每次启动EC2实例后再重新下载数据集,可以在终止实例前保存为自己的AMI,相当于将整个实例环境和数据备份,下一次从保存的AMI中启动实例,可以做到无缝对接。但是现在官方Deep Learning AMI最低启动容量上升到75GB,而0.1$/GB/month的价格实在有点肉疼,而且每次处理完都要保存本次AMI、删掉上...
2018-05-20 17:55:47 2674
原创 【Git/Github】从远程分支合并最新版本到本地- git remote/ git fetch/ git pull
git clone到本地的项目,如果远程仓库更新,需要将更新取回本地,并与本地的分支合并。有两种命令可以做到:git fetchgit pull这里主要是解决fork的远程项目更新之后,如何将最新版与本地合并。不涉及到多人协作开发。 首先要将远程主机关联,需要用到git remote命令。git remotegit remote 用于管理主机名。-v可以查看主机网址。...
2018-05-06 21:45:10 3647
原创 【python】用tqdm模块实现进度条显示
tqdm在阿拉伯语中的意思是“进展”,是一个快速、扩展性强的进度条工具库,用户只需要封装任意的迭代器 tqdm(iterator)。一张动图展示tqdm 的简单而强大: 用法最主要的用法有3种,自动控制、手动控制或者用于脚本或命令行。 详细资料见GitHub: https://github.com/tqdm/tqdm自动控制运行最基本的用法,将tqdm() 直接包...
2018-02-18 23:00:08 66146 4
转载 【教程】使用CSDN-markdown编辑器
欢迎使用Markdown编辑器写博客本Markdown编辑器使用StackEdit修改而来,用它写博客,将会带来全新的体验哦:Markdown和扩展Markdown简洁的语法代码块高亮图片链接和图片上传LaTex数学公式UML序列图和流程图离线写博客导入导出Markdown文件丰富的快捷键快捷键加粗 Ctrl + B 斜体 Ctrl + I...
2018-02-18 15:02:31 236
原创 从Kaggle上直接下载数据到aws
Kaggle上的数据集必须登陆之后才能下载,直接复制链接会下载失败。有2种解决办法:安装kaggle-cli,或者利用cookie下载。
2018-02-18 14:13:46 3006
原创 python数据预处理并使用pickle模块保存
机器学习中,通常拿到的数据并不能直接使用,需要进行预处理,比如剔除部分特征、去除脏数据、数据归一化、独热编码等,也就是特征工程。我们不希望每次加载程序的时候都需要进行前面的预处理,因此可以把预处理之后的数据保存起来,这里可以用pickle模块。这有点类似电脑游戏中的进度保存。下面以 notMNIST 数据集为例,介绍如何进行数据的预处理。1. 导入需要的模块第一步,先把需要的模块导
2018-01-21 19:17:35 5469
原创 【深度学习】卷积神经网络CNN基本知识点
卷积神经网络与前面学的常规神经网络很相似,也有输入、权重、偏差、损失函数、激活函数、全连接层等概念,之前的一些小的技巧也仍然适用。与常规神经网络的对比卷积神经网络(Convolutional Neural Networks,CNNs / ConvNets)明确的假设输入inputs为图像,这使得ConvNets需要前向传播更加高效的执行,同时要大幅度的减小网络中的参数数量。常规神经
2017-12-27 16:14:01 1905
原创 windows下如何配置AWS进行深度学习
update—-2018.04.13卷积神经网络(Convolutional Neural Network,CNN)用于图像处理确实是非常出色,但是随之而来的计算量也很大,如果没有配置过硬的电脑,训练过程实在让人焦急。好在Udacity赠送100刀的亚马逊云服务代金券,下面也是整理自Udacity深度学习纳米学位的课程。AWS介绍即amazon web services,可以在其云...
2017-12-26 21:11:22 2832
原创 【Git/Github】在 Windows 上设置Git工作空间
为了让git用起来更舒心,根据udacity的Git课程,整理了Windows平台下配置Git工作空间的方法:
2017-12-22 22:21:24 1158
原创 TensorFlow入门(3)-单层神经网络实现方法
这里将构建一个简单的线性分类器。神经网络中最常见的运算,就是计算输入、权重和偏差的线性组合。 根据前面学习的用神经网络处理分类问题,需要考虑以下几个方面:数据准备激活函数选择损失函数选择梯度下降法参数选择重复训练
2017-12-21 00:25:27 1009
原创 TensorFlow入门(2)-基本概念
这里直接引用自TensorFlow中文社区: 使用图 (graph)来表示计算任务。 在被称之为 会话 (Session) 的上下文 (context) 中执行图。 使用 tensor 表示数据。 通过 变量 (Variable) 维护状态。 使用 feed 和 fetch 可以为任意的操作(arbitrary operation) 赋值或者从其中获取数据。
2017-12-19 19:24:10 461
原创 TensorFlow入门(1)-简介与安装
简介安装WindowsOS X 或 Linux测试 hello world本系列是基于Udacity的深度学习纳米学位课程做的笔记。简介TensorFlow是一个Google开源的深度学习框架。 TensorFlow中文社区有如下两段介绍 关于 TensorFlow TensorFlow™ 是一个采用数据流图(data flow graphs),用于数值计算的开源软件库。节点(
2017-12-19 14:56:06 561
VS2017 C#代码配色方案-monokai
2019-07-14
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人