Qt
Qt开发碰到的一些问题和经验总结
逻辑漩涡
Leaning by doing.
展开
-
Qt和Boost::asio中的emit冲突
signals修改为Q_SIGNAL,1.添加编译宏定义QT_NO_KEYWORDS。2、把QT工程中的emit修改成Q_EMIT,slots修改为Q_SLOTS。原创 2024-03-31 15:15:29 · 454 阅读 · 0 评论 -
QML之一个属性编辑界面的实现
继续细化,标题栏由一个图片和标题文本组成,属性内容是由N个未知窗口组成,那么第一出现的问题是:怎么让Item的大小随着属性内容的展开和隐藏而变化?我想到的是Column或Row,它们的大小都随内容而变,所以只要把包含了标题栏和属性内容的Column的implicitWidth赋值给Item控件的implicitWidth即可。每一类属性都可以展开和隐藏,每一类下的属性都不一样,全部展开后,所有属性共享一个滚动条。我的第一个想法是,这是一个ListView控件,每一个Item都可以展开隐藏。原创 2024-03-28 18:08:06 · 664 阅读 · 0 评论 -
QML之SpinBox
今天使用SpinBox,为了使界面风格统一,需要修改控件的边框颜色,文本颜色,点击时的背景颜色和文本颜色,这时需要对SpinBox作一定程度的定制化。弄清除了上面两条信息后,就可以开始自定这个控件了,唯一需要注意的是,左右两个按钮的大小需要设置正确,不然会显示不出来,这里需要用。SpinBox主要有三部分组成:左右两个按钮,可以点击,中间一个文本框,用来显示数字或者其他文本。左右两个按钮对应SpinBox的down.indicator和up.indicator参数,原创 2024-03-27 21:25:08 · 798 阅读 · 0 评论 -
使用cmake组织QML工程代码
2、把一些代码编译成模块,这样才能注册QML自定义类型。1、添加资源文件,主要是图片资源和qml文件资源。3、设置A的编译源文件时用到的头文件路径。4、设置A依赖的动态库或静态库。1、创建一个可执行文件A。2、设置A需要的源文件。原创 2024-03-26 22:29:00 · 574 阅读 · 0 评论 -
QML之RowLayout
QML中的RowLayout是一种布局管理器,用于在水平方向上排列其子元素。原创 2024-03-24 11:45:40 · 820 阅读 · 0 评论 -
QM中implicitWidth和width的区别,为什么需要两种大小?
来提供一种建议大小,这样在使用该控件时,如果没有特别指定大小,控件会尝试使用这些建议值来渲染。而在需要固定大小的情况下,可以外部指定具体的。此外,之所以需要这两种大小属性,是因为在不同场景下,控件可能需要不同的尺寸行为。例如,在自定义控件时,可以通过设置。分别代表了控件的隐式推荐的默认宽度和明确指定的宽度。,控件将尽可能地填充其容器的宽度,而不考虑其他宽度设置。通常用于表达控件的首选宽度,但不会强制执行,除非配合使用。则是直接指定控件的宽度,它会覆盖所有的隐式宽度设置。来确保控件按照预期的尺寸显示。原创 2024-03-24 10:46:36 · 968 阅读 · 1 评论 -
QML之ListView
最近在写一个网络测试小工具,需要用到ListView来显示收到和发送的网络消息,需要能显示消息收到的时间,消息的发送方,还有消息内容,为了防止占用内存过多,要能设置界面上最多显示的消息数量,超过后自动删除最早的消息。感觉主要难点还是这么多窗口的颜色配置,颜色不合适界面就很丑。原创 2024-03-21 22:02:30 · 558 阅读 · 0 评论 -
QML之TreeView的使用
注: 测试环境为Opensuse 15.5 + Qt 6.6.2。如果有大神知道其他解决办法的,请评论区发出来。原创 2024-03-20 13:14:37 · 1488 阅读 · 2 评论 -
几种Model的简单使用
此时Model只有一个信息,数据项的个数是多少,没有项数据。由于是JS中的数组,所以数组里的数据类型可以不同。下面主要来介绍下QML中几种Model的使用。对象的属性作为每一项属性。原创 2024-03-18 18:13:01 · 373 阅读 · 0 评论 -
QML几个常用全局函数
【代码】QML几个常用全局函数。原创 2024-03-17 22:35:24 · 440 阅读 · 0 评论 -
QML多媒体功能初体验
QML多媒体功能介绍原创 2024-03-17 21:00:31 · 559 阅读 · 0 评论 -
OpenSuse下Qt安卓虚拟机和VirtualBox虚拟机冲突的问题
sudo modprobe kvm_amd (我是AMD的CPU)找了一圈都没有找到让两者同时启动的办法,只能通过modprobe命令来完成切换。但此时却无法启动VirtualBox虚拟机了,提示如下错误。然后再尝试 启动VirtualBox,这时可以正常启动了。上述命令执行完之后,中可以看到Android虚拟机的界面。这个错误是让我禁用KVM模块,于是执行。原创 2024-03-16 13:47:21 · 429 阅读 · 0 评论