摘要:
Qt 具备让某个对象的信号与符合要求的槽函数自动建立连接。弄起来也很简单,只要调用这个静态方法即可: QMetaObject::connectSlotsByName(...); connectSlotsByName 方法需要一个参数,此参数的指针指向一个实例,这个实例自身的信号,以及它的子级对象的信 阅读全文
摘要:
Qt 里面的信号(Signal)和槽(Slot)虽然看着像事件,但它实际上是用来在两个对象之间进行通信的。既然是通信,就会有发送者和接收者。 1、信号是发送者,触发时通过特有的关键字“emit”来发出信号。 2、槽是信号的接收者,它实则是一个方法(函数 )成员,当收到信号后会被调用。 为了让C++类 阅读全文
摘要:
一般来说,用C++写 Qt 应用才是正宗的,不过,为了让小学生也能体验 Qt 的开发过程,或者官方为了增加开发者人数,推出了可用 Python 来编程的 Qt 版本。此版本命名比较奇葩,叫 PySide,与 Qt 6 配套的是 PySide 6。当前最新版本是 6.3.2。 PySide 的优势在于 阅读全文
摘要:
在99.996%的情况下,我们弄 Qt 应用都会使用 QApplication 类和 QWidget 类,即直接用 Widgets 库中的组件/控件。为了方便开发人员自己造轮子,Qt 也提供了一套基础的 GUI 组件。这些组件位于 Gui 库中。 实际上,Widgets 也是在 Gui 库上实现的, 阅读全文
摘要:
在开始今天的表演之前,老周先跟大伙伴们说一句:“中秋节快乐”。 今天咱们来聊一下如何自己动手,实现会话(Session)的存储方式。默认是存放在分布式内存中。由于HTTP消息是无状态的,所以,为了让服务器能记住用户的一些信息,就用到了会话。但会话数据毕竟是临时性的,不宜长久存放,所以它会有过期时间。 阅读全文
摘要:
今天咱们来扯一下 Blazor 应用程序怎么访问 HttpContext。其实这句话有坑,为了避免大伙伴们掉茅坑,老周直接说明:Blazor 是不能访问 HttpContext 的。哪怕你在服务容器中注册了 IHttpContextAccessor 也不行,无法返回有效的上下文。 为啥?这得从 Bl 阅读全文
摘要:
在正题开始之前,老周照例扯点别的。嗯,咱们扯一下在 VS 2022 下结合 CMake 开发 Qt6 时的环境变量设置问题。在VS Code 中,通够通过 CMake Tools 扩展的配置来设置环境,但在VS 里面,CMake 项目只是一个文件夹,然后通过 .json 文件来配置一些参数,不能像 阅读全文
摘要:
上一次水文中,老周所介绍的是编译 Qt 的基础模块—— qtbase。一次性编译所有代码可以一劳永逸,但体积相当大,编译时间较长,CPU负载大发热大,风扇转得猛,电费交得多。因此老周更喜欢分开来编译。 qtbase 模块已经能完成一般的 Qt 开发了,毕竟它包含了铁三角—— Core、Gui、Wid 阅读全文
摘要:
咱们继续上一个话题。先简单复习一下,根据老周前面文章的介绍,选项类体系的基本套路是通过 IOptionsFactory 来创建选项类实例的。而我们在服务容器(IServiceCollection)上是用Configure、PostConfigure 等扩展方法去配置选项类的(设置属性的值)。配置代码 阅读全文
摘要:
先说明一下,本水文老周仅讨论新版的 Qt 6,旧版的 Qt 不讨论。 尽管 Qt 有自己的开发环境,但老周必须说句不装逼的话:真的不好用。说起写代码,当然了,用记事本也能写。但是,有个高逼格的工具,写起来不仅效率高,而且舒服。 Qt 应用程序本质上就是 C++ 开发的代码,所以,不用官方工具是没有问 阅读全文