摘要:
本文以一个例子介绍如何使用libtorch创建一个包含多层神经元的感知机,训练识别异或逻辑。即${ z = x \text{^} y }$。本例的测试环境是VS2017和libtorch1.13.1。从本例可以学到如何复用网络结构,如下方的LinearSigImpl类的写法。该测试网络结构如下图。一 阅读全文
摘要:
libtorch C++版可以直接在官网下载。自己学习如果没有合适的显卡可以选择下载CPU版的。下面是官网链接: PyTorch 下载后就可以把开发包包含到VS的项目中使用。注意libtorch官网提供的Release/Debug的开发包,Debug版的程序用Debug版的库,Release版的程序 阅读全文
摘要:
这篇文章展示了如何使用自定义的类型实现动画。自定义类型的动画效果使用QVariantAnimation类实现,需要实现一个插值函数。Qt提供了多个接口,主要有如下两种方法: 实现QVariant QVariantAnimation::interpolated(const QVariant &from 阅读全文
摘要:
某些时候会需要启用列表控件的拖拽功能,如果你不知道如何从列表控件的拖拽对象中提取拖拽的数据,这篇文章将会很有用。下面是取从QListWidget控件拖拽出来的数据的方法: void MObjectView::dropEvent(QDropEvent *event) { const QMimeData 阅读全文
摘要:
Cascade纠错算法是一种典型的随机校错算法。在量子密钥分发(QKD)里常用。在每一轮的传输结束,筛选(或对基)之后,Alice和Bob各有一组保密的密钥数组。由于系统的不完美,这两组密钥不一定相同。这时候就需要一种算法既能尽可能少的暴露隐私,又可以纠正误码比特。Cascade算法就是其中一种。它 阅读全文
摘要:
表格排序是Qt内建支持的,用起来很简单。只需要在QtCreator界面给QTableView或QTableWidget的SortingEnabled属性设置为true就行了。 本文将对这两种控件分别展示一下效果和一个自定义的排序例子。 一、QTableWidget 这个不需要任何代码,只需要设计界面 阅读全文
摘要:
QSharedMemory是Qt提供的一个共享内存的类。它可以用来进程之间传递数据。本文以使用该类为例,实现一个限制同一程序启动实例个数的功能。后面将会给出代码,代码是限制程序只能启动一个实例,当然也可以很方便的改成只允许启动两个实例等等。本文所附代码在VS2017和Qt5.9上测试通过。下面是在已 阅读全文
摘要:
本文是一个拖拽文本的例子。演示了如何把按钮的标题拖拽到文本编辑框里。Qt对拖拽的封装很好,QDrag对象简单易用。本文程序测试环境是VS2017和Qt5.9。下面是程序拖拽时的效果图,可以看出来拖拽的时候光标下方也显示了文本内容: 头文件。本功能是在主窗口中实现的。下面代码里QtTest就是主窗口类 阅读全文
摘要:
一般在Qt实现动画可以用QAbstractAnimation的子类实现。这里给出一个不一样的例子实现动画,即用QTimeLine实现。功能是有一个QStackedWidget,它有两个子页面。默认显示第一页。点击“动画”按钮播放一段动画使页面第一页滑动到第二页,然后切换到第二页。程序测试环境是VS2 阅读全文
摘要:
延续上一篇文章,本文以另一种方法实现QAbstractScrollArea。此例子是一个图片缩略图的列表控件,控件沿水平方向延伸。仅作为一个例子,因为实际的图片列表可以用QListWidget实现,并不需要自己写代码。下面是程序的运行截图: 头文件: class MListWidget : publ 阅读全文