02 2024 档案

摘要:QSharedMemory是Qt提供的一个共享内存的类。它可以用来进程之间传递数据。本文以使用该类为例,实现一个限制同一程序启动实例个数的功能。后面将会给出代码,代码是限制程序只能启动一个实例,当然也可以很方便的改成只允许启动两个实例等等。本文所附代码在VS2017和Qt5.9上测试通过。下面是在已 阅读全文
posted @ 2024-02-29 10:20 兜尼完 阅读(221) 评论(0) 推荐(0) 编辑
摘要:本文是一个拖拽文本的例子。演示了如何把按钮的标题拖拽到文本编辑框里。Qt对拖拽的封装很好,QDrag对象简单易用。本文程序测试环境是VS2017和Qt5.9。下面是程序拖拽时的效果图,可以看出来拖拽的时候光标下方也显示了文本内容: 头文件。本功能是在主窗口中实现的。下面代码里QtTest就是主窗口类 阅读全文
posted @ 2024-02-26 14:37 兜尼完 阅读(177) 评论(0) 推荐(0) 编辑
摘要:一般在Qt实现动画可以用QAbstractAnimation的子类实现。这里给出一个不一样的例子实现动画,即用QTimeLine实现。功能是有一个QStackedWidget,它有两个子页面。默认显示第一页。点击“动画”按钮播放一段动画使页面第一页滑动到第二页,然后切换到第二页。程序测试环境是VS2 阅读全文
posted @ 2024-02-25 19:15 兜尼完 阅读(227) 评论(0) 推荐(0) 编辑
摘要:延续上一篇文章,本文以另一种方法实现QAbstractScrollArea。此例子是一个图片缩略图的列表控件,控件沿水平方向延伸。仅作为一个例子,因为实际的图片列表可以用QListWidget实现,并不需要自己写代码。下面是程序的运行截图: 头文件: class MListWidget : publ 阅读全文
posted @ 2024-02-24 16:15 兜尼完 阅读(54) 评论(0) 推荐(0) 编辑
摘要:在一些有多个显卡,比如一个核芯显卡和一个独立显卡的系统中使用显卡加速,OpenCL默认的设备可能不是性能更好的独立显卡。这时候可以用下述方法更换显卡,代码如下。本例在VS2015和OpenCL3.0下测试通过: const string kernel = u8R"( kernel void redu 阅读全文
posted @ 2024-02-23 17:08 兜尼完 阅读(80) 评论(0) 推荐(0) 编辑
摘要:本文以一个简单的列表控件为例,展示如何自己实现一个QAbstractScrollArea。此控件由viewport、水平滚动条和垂直滚动条组成。可选的还可以设置一个Corner控件,它在QAbstractScrollArea的右下角。viewport是用来显示内容的地方,是我们最关注的。请注意vie 阅读全文
posted @ 2024-02-19 08:28 兜尼完 阅读(237) 评论(0) 推荐(0) 编辑
摘要:本文给出一个规约算法求数组的和的例子。本例子求128000个整数的和。其实我想用浮点数做例子的但是我的电脑用atomic_float类型编译会报错。运算过程是每个工作组先把数据加载到局部内存中,工作组的大小是128,然后再求和,把结果累积到全局变量中。实际运行对比发现GPU的效率不如CPU直接求和。 阅读全文
posted @ 2024-02-13 20:56 兜尼完 阅读(97) 评论(0) 推荐(0) 编辑
摘要:本文是模仿某些软件里的控件样式。在组合框里选择具有两级结构的数据,比如选某省->某市类似的数据。下述代码在VS2015和Qt5.9中测试通过。其运行效果如图。为了展示更多的功能,我还特地实现了滚动条的功能: 头文件: class MItemView : public QAbstractItemVie 阅读全文
posted @ 2024-02-03 15:12 兜尼完 阅读(199) 评论(0) 推荐(0) 编辑
摘要:这个原理简单,就是调用QWidget::setMask(...)设置窗口的掩膜实现异形窗口。下面的代码环境是VS2015和Qt5.9。其运行效果图如下,就是下图中显示“显示气球控件”文本的窗口: 头文件: class MBalloonTip : public QWidget { Q_OBJECT p 阅读全文
posted @ 2024-02-01 08:43 兜尼完 阅读(144) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示