首页
学习
活动
专区
工具
TVP
发布

jiajia_deng

专栏作者
383
文章
277796
阅读量
38
订阅数
使用 Conan、CMake 组织跨平台 Qt 工程
创建 Qt 工程时,我们通常使用 Qt 提供的 Online installer 安装 Qt Creator 和 Qt 库来创建、编译、发布 Qt 项目,这对开发环境和 CI Agent 环境有较强的要求,一旦环境安装不对或者安装时缺少了一些组件,可能导致无法编译出产物。最近一段时间,Qt 也拥抱 Conan,使我们可以通过 Conan 管理 Qt 库,这样我们就可以真正实现一套 CMake 脚本来管理和发布 Qt 的应用了。以下我们将演示如何通过 CMake + Conan 来组织 Qt 工程和实现程序的发布流程。
我与梦想有个约会
2023-10-21
5080
Qt Quick 5.15.0 Connections 新语法
对于日常开发中,新的写法有助于我们定义槽函数的形参个数和实际作用。代码看起来更容易读懂。另外 Qt 官方文档中也介绍了一些其他好处,见:Qt官方文档 如果你使用 Qt 15.5.0 版本打开了一个旧的工程并使用的是旧的写法,那么会收到一个警告:
我与梦想有个约会
2023-10-21
1370
Qt Quick QML 中使用自定义字体文件
为了视觉上的统一,有时你需要保持 UI 上的字体与其他端字体一致,但是又不是所有字体所有系统都带有的,所以有时需要加载一个自定义字体来满足需求。本文重点介绍如何加载以及使用自定义字体。
我与梦想有个约会
2023-10-21
3490
Qt Quick QML MouseArea 事件穿透
MouseArea 是 QML 中一个不可见的鼠标操作区域,可响应所有鼠标事件。一般情况下在自定义按钮、自定义需要鼠标交互的区域时使用。有时你只需要它的 hover 通知来做一些事情,而另外的点击等操作需要传递给其下层的控件,这时你就需要忽略其自身的鼠标按下释放等操作让其消息传递到下层了。
我与梦想有个约会
2023-10-21
5430
Qt 模拟 HTTP 表单提交文字或文件到服务器
传统通过 HTTP 表单的方式来上传文件在 Web 中实现是非常简单的,一个表单中加几个域填写上对应的内容提交就可以了,但如果通过 Qt 来实现就相对麻烦一点,不过我都总结好了代码,直接使用就可以了。
我与梦想有个约会
2023-10-21
2880
Qt Quick QSettings 配置信息保存位置
Qt Quick 给我们提供了非常方便的配置文件管理功能,它不仅仅可以在 C++ 中访问,也可以在 QML 中直接访问,最近在看 Qt Examples 目录下的 gallery 项目示例时,虽然知道用的是 QSettings 保存的持久化数据,但是不知道配置保存在哪里了,遂到 Qt 官网查询了一下,有英文阅读能力的可直接参考官网:https://doc.qt.io/qt-5/qsettings.html,以下为照搬翻译:
我与梦想有个约会
2023-10-21
2950
Qt Creator 项目属性配置常用设置
更多请参考:http://doc.qt.io/qt-5/qmake-variable-reference.html
我与梦想有个约会
2023-10-21
1740
Qt 制作一个音量回馈样式的进度条效果
使用 Qt 默认的进度条样式是传统的效果,但是 Qt 提供了强大的 QSS 引擎,提供我们去设置丰富的控件样式,这次是为了模仿一个音量或者声音回馈效果的进度条样式,类似下面这张图片的效果:
我与梦想有个约会
2023-10-21
2150
Qt 注册自定义数据类型提供信号和槽函数传递参数
Qt 信号和槽函数参数只能是基于 Qt 的基础类型的,比如 QString、int、bool 等,如果想传递自定义类型默认情况下是行不通的。要想在 Qt 的信号和槽函数之间传递自定义类型,可以先将自己的自定义类型注册一下,使用如下代码:
我与梦想有个约会
2023-10-21
1500
Qt 信号和槽机制详解
信号和槽是 Qt 独有的一种机制,他让窗口的各种消息处理简化到极致,常规情况下我们相应某窗口(控件)的点击时都需要自己投递消息到框架中,由框架的消息队列投递给不同的窗口消息处理函数来处理。如果使用信号和槽,需要声明信号、定义槽函数、绑定信号和槽、发射信号就可以完成上述功能,代码简单容易理解,逻辑简单易懂。信号和槽的大致实现图如下:
我与梦想有个约会
2023-10-20
3000
Qt 区分多个信号函数绑定一个槽函数
当有多个信号函数(Signal)绑定同一个槽函数(Slot)时,你会有这样的需求,在槽函数中我希望知道到底是哪个信号函数发送出来的信号,这样根据不同的发送者来执行不同的操作。想实现这个功能可以在槽函数中调用 sender() 方法获取发送信号的对象类型。然后进行处理,具体代码如下:
我与梦想有个约会
2023-10-20
1890
Qt 公共功能 style sheet
在 Qt 中的每一种控件都有属于自己的不同的方法来获取或设置某些属性,除了每个控件自身有的这些方法以外,Qt 还提供了一些公共有的功能,那就是 style sheet,我们可以在继承了 QWidget 类的构造函数中,调用 this->setStyleSheet() 来设置一些属性,随后所有属于这个 Widget 窗口中的控件都会使用这个样式。同样,你可以让这个样式面积更大,那就是在 main 函数中,让 QApplication 的对象调用 setStyleSheet() 函数,这样,整个程序的样式都会跟随这个样式的设定而变化。
我与梦想有个约会
2023-10-20
1060
Qt 中菜单栏 QMenuBar 与工具栏 ToolBar
QMenuBar 要添加在 QMainWindow 窗口中,同样我们要继承一份 QMainWindow 类,然后在派生的类中调用 menuBar() 来创建菜单栏(MenuBar),在菜单栏中你需要创建一个主菜单(Menu),再次在主菜单中创建子菜单(Action),这样我们就构建了一个可使用的菜单。 而工具栏一般是与菜单栏配合使用的,菜单栏有的功能在 ToolBar 下也可能会存在一份相同的功能,这是老的程序界面设计的一种风格,下面代码中主要编写了如何创建菜单、给菜单增加处理函数和快捷键功能,并用菜单来初始化一个 ToolBar。
我与梦想有个约会
2023-10-20
2530
Qt 状态栏 QStatusBar 使用
借用上一篇文章的窗口,我们在里面又创建了一个 QStatusBar 的状态栏例子,例子中使用了一个小的 Label 控件添加到了 StatusBar 中,让其可以随时改变 StatusBar 中文字的内容。具体示例代码如下:
我与梦想有个约会
2023-10-20
2310
Qt 中数据结构 map 使用
Qt 中的 map 与 stl、boost 中稍有差别,这些差别只能让你更加方便的去操作数据,下面代码演示了对 map 的增、删、改、查具体操作:
我与梦想有个约会
2023-10-20
2700
Qt 中 QString 和 QByteArray
QString 是 Qt 内部的一种字符串数据类型,QString 支持多字节编码(unicode)的一个字符串类。在程序和网络之间传输数据时,其他的程序和网络另一端的程序是不能识别他这种数据类型的。所以要想将 QString 类型的数据保存到文件或发送到网络,需要转换成 QByteArray 类型才可以。
我与梦想有个约会
2023-10-20
1390
Qt 窗口鼠标消息处理
在继承了 QWidget 窗口类以后,我们可以实现很多父类提供的虚函数,其中就包括鼠标的诸多消息处理函数,比如 mousePressEvent(鼠标单击消息)、mouseReleaseEvent(鼠标弹起消息)等等,这些虚函数我们可以通过 Qt 的帮助文档查看,如下:
我与梦想有个约会
2023-10-20
1880
Qt 键盘和定时器消息
键盘消息和鼠标消息没有什么差异,用法和覆写方法都差不多,可以通过传递的参数判断按下了哪些键,下面代码中有比较详细的示例。其中也介绍了一下定时器消息,当覆写一个定时器消息时,你需要调用 QWidget 的成员函数 startTimer 来启动定时器,它的参数是定时器多长时间运行一次,并且如果有多个定时器时,你还需要知道每个定时器的 ID 是多少,定时器消息因为哪个定时器触发了而运行。这些都在例子中有所体现。
我与梦想有个约会
2023-10-20
1120
Qt 窗口消息处理机制及拦截消息的五种方法
前几篇文章中,我们介绍了一些简单的消息拦截方法,但其实在整个 Qt 框架中,不仅仅有那么几处拦截消息的方法,在 Qt 文档中标明了,一共有5中方法。下面就一一列举一下每种方法所在的位置以及实现方法。后面我们会提供代码帮助大家学习。
我与梦想有个约会
2023-10-20
4400
使用 Qt 构建一个简单的窗体程序
Qt 早期是一个跨平台 C++ 图形用户界面应用程序开发框架,内部封装了大量的跨平台库,可以在 linux、windows、android、ios 等平台运行其编写的程序,并且还提供了一个强大的 IDE 工具 名为 Qt Creator。Qt 让我们对界面的编程变为“对象与对象之间相互作用”的结果。所以不要再像 C 语言一样去创建或编写 Qt 的程序,下面我们就简单实现一个 Qt 的界面程序。
我与梦想有个约会
2023-10-20
1980
点击加载更多
社区活动
腾讯技术创作狂欢月
“码”上创作 21 天,分 10000 元奖品池!
Python精品学习库
代码在线跑,知识轻松学
博客搬家 | 分享价值百万资源包
自行/邀约他人一键搬运博客,速成社区影响力并领取好礼
技术创作特训营·精选知识专栏
往期视频·千货材料·成员作品 最新动态
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档