QML项目实战:自定义Combox

目录

一.添加模块

import QtQuick.Controls 2.4

import QtQuick.Templates 2.4 as T

import QtGraphicalEffects 1.15

import QtQuick 2.15 as T2

二.自定义Combox

1.combox文字显示

2.设置下拉图标显示

3.下拉框中选中背景设置

4.下拉框中选中文字设置

5.下拉框设置

三.效果显示

四.代码


一.添加模块

import QtQuick.Controls 2.4

  1. 作用: 引入Qt Quick Controls模块,提供了一组常见的UI控件(如按钮、文本框等),用于快速开发现代用户界面。

  2. 性质: 这个模块包含了许多预定义的控件和样式,可以大大简化UI开发。版本号2.4表示你正在使用该模块的第2.4版。

import QtQuick.Templates 2.4 as T

  1. 作用: 引入Qt Quick Templates模块,这个模块提供了一些常用的模板组件,例如Repeater、Loader等,用于动态创建和管理UI元素。
  2. 性质: 通过给模块起别名T,你可以在代码中用T来引用该模块中的类型和函数。版本号2.4表示你正在使用该模块的第2.4版。

import QtGraphicalEffects 1.15

  1. 作用: 引入Qt Graphical Effects模块,提供了一组图形效果类,用于为UI元素添加视觉效果,如阴影、模糊、渐变等。

  2. 性质: 这个模块允许你在应用程序中实现复杂的视觉效果,提升用户体验。版本号1.15表示你正在使用该模块的第1.15版。

import QtQuick 2.15 as T2

  1. 作用: 引入Qt Quick基础模块,这是Qt Quick的核心部分,提供了构建动态用户界面的基本功能和类型。

  2. 性质: 通过给模块起别名T2,你可以在代码中用T2来引用该模块中的类型和函数。版本号2.15表示你正在使用该模块的第2.15版。

二.自定义Combox

1.combox文字显示

2.设置下拉图标显示

3.下拉框中选中背景设置

4.下拉框中选中文字设置

5.下拉框设置

三.效果显示

四.代码

import QtQuick                  2.11
import QtQuick.Window           2.3
import QtQuick.Controls         2.4
import QtQuick.Templates        2.4 as T
import QtGraphicalEffects       1.15
import QtQuick 2.15  as T2Window{width: 800height: 600visible: trueproperty int    inPopHeight: 0property int    inRadius: 20property int    inTextWidth: 380property bool   sizeToContents: falseproperty real   _largestTextWidth:  0property real   _popupWidth:        sizeToContents ? _largestTextWidth + itemDelegateMetrics.leftPadding + itemDelegateMetrics.rightPadding : control.widthproperty bool   _onCompleted:       falseproperty int    _fontSize:          30ComboBox {id:             controlanchors.centerIn: parentpadding:        10spacing:        10font.family:    "微软雅黑"implicitWidth: 400implicitHeight:70leftPadding:    padding + (!control.mirrored || !indicator || !indicator.visible ? 0 : indicator.width + spacing)rightPadding:   padding + (control.mirrored || !indicator || !indicator.visible ? 0 : indicator.width)TextMetrics {id:                 textMetricsfont.pixelSize:     _fontSizefont.family:        "微软雅黑"}ItemDelegate {id:             itemDelegateMetricsvisible:        falsefont.pixelSize:         _fontSizefont.family:            "微软雅黑"}function _adjustSizeToContents() {if (_onCompleted && sizeToContents && model) {_largestTextWidth = 0for (var i = 0; i < model.length; i++){textMetrics.text = model[i]_largestTextWidth = Math.max(textMetrics.width, _largestTextWidth)}}}onModelChanged: _adjustSizeToContents()Component.onCompleted: {_onCompleted = true_adjustSizeToContents()}// The items in the popupdelegate: ItemDelegate {width:  _popupWidth//height: Math.round(popupItemMetrics.height * 1.75)property string _text: control.textRole ? (Array.isArray(control.model) ? modelData[control.textRole] : model[control.textRole]) : modelDataTextMetrics {id:             popupItemMetricsfont:           control.fonttext:           _text}contentItem: Text {text:                   _textfont.pixelSize:         _fontSizefont.family:            "微软雅黑"color:                  control.currentIndex === index ? "#FFFFFF" : "#1A40FF"verticalAlignment:      Text.AlignVCenter}background: Rectangle {radius:          20gradient: T2. Gradient {orientation :Gradient.HorizontalGradientStop { position: 0; color: control.currentIndex === index ?"#1A40FF":"white" }GradientStop { position: 1; color:control.currentIndex === index ? "#5E8EFF":"white" }}}highlighted:                control.highlightedIndex === index}indicator: Image {anchors.rightMargin:    parent.width * 0.05anchors.right:          parent.rightanchors.verticalCenter: parent.verticalCentersource: control.down ? "qrc:/new/Image/TimGeneral_pressarrow.png" : "qrc:/new/Image/pullDown.png"}// The label of the buttoncontentItem: Item {implicitWidth:                  text.implicitWidthimplicitHeight:                 text.implicitHeight//QGCLabel {Label {id:                         textanchors.verticalCenter:     parent.verticalCenteranchors.left:               parent.leftanchors.leftMargin:         parent.width * 0.032text:                      control.currentTextfont.pixelSize:             _fontSizewidth: control.inTextWidthelide:Text.ElideRightcolor:                     control.down? "#1A40FF" : "#3A3A3A"}}background: Rectangle {implicitWidth:      5implicitHeight:     1.6border.color:       control.down? "#508AFF" : "#FFFFFF"border.width:       2color:              control.down? "#FFFFFF" : "#4ceaf1fb"radius:             20layer.enabled:      truelayer.effect:       DropShadow {verticalOffset: 4radius:         10samples:        17color:          "#B2C5E0"}}model: ListModel {id: modelListElement { text: "Banana" }ListElement { text: "Apple" }ListElement { text: "Coconut" }}popup: T.Popup {y:              control.heightwidth:          _popupWidthheight:         Math.min(contentItem.implicitHeight, control.Window.height - topMargin - bottomMargin)topMargin:      6bottomMargin:   6contentItem: ListView {clip:                   trueimplicitHeight:         (inPopHeight===0) ? contentHeight : inPopHeightmodel:                  control.delegateModelcurrentIndex:           control.highlightedIndexhighlightMoveDuration:  0Rectangle {z:              10radius:         20 //20width:          parent.widthheight:         parent.heightcolor:          "transparent"border.width:   2border.color:    "#508AFF"}}//下拉框背景background: Rectangle {radius:         20 //20color:          "white"}}}
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/466276.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

招聘系统哪个最好用?

在当今竞争激烈的商业环境中&#xff0c;企业为了保持竞争优势&#xff0c;对人才的需求愈发迫切。然而&#xff0c;面对海量的简历和繁杂的招聘流程&#xff0c;如何高效、精准地找到合适的人才&#xff0c;成为许多企业面临的难题。招聘系统因此应运而生&#xff0c;为企业提…

基于C语言实现的图书管理系统

使用Visual Studio 2022编译工具进行编写代码的。 项目源码直接奉上: book1.h头文件: #ifndef __BOOK1_H //预处理用于条件编译 避免头文件反复包含 #define __BOOK1_H#include<stdio.h> #include <string.h> #include<stdlib.h> #include<stdbool.h&g…

带你用Go实现二维码小游戏(下)

本篇文章我们进入项目最后的部署和监控搭建阶段&#xff0c;这一节会有很少的编码量&#xff0c;但是却能够带来最实用的知识和技术&#xff0c;快来阅读吧~ 5 Docker镜像打包部署 接下来就到了我们项目的部署阶段&#xff0c;优雅的项目必须要搭配优雅的部署方式&#xff01…

Sigrity Power SI 3D-EM Inductance Extraction模式如何进行电感的提取操作指导(一)

Sigrity Power SI 3D-EM Inductance Extraction模式如何进行电感的提取操作指导(一) Sigrity Power SI使用3D-EM Inductance Extraction模式可以进行电感的提取,以下图为例 2D 视图 <

shodan6-7---清风

shodan6-7 1.shodan网页版 以cve-2019-0708漏洞指纹特征为例 "\x03\x00\x00\x0b\x06\xd0\x00\x00\x124\x00"在这里插入图片描述 搜索命令参考 https://www.shodan.io/search/filters这个网页中有搜索关键词 对指定网址进行监控&#xff0c;这里可以对ip进行扫描&…

CPU算法分析LiteAIServer视频智能分析平台视频智能分析:抖动、过亮与过暗检测技术

随着科技的飞速发展&#xff0c;视频监控系统在各个领域的应用日益广泛。然而&#xff0c;视频质量的好坏直接影响到监控系统的效能&#xff0c;尤其是在复杂多变的光照条件下和高速数据传输中&#xff0c;视频画面常常出现抖动、过亮或过暗等问题&#xff0c;导致监控视频难以…

win11电脑无法找到声音输出设备怎么办?查看解决方法

电脑无法找到声音输出设备是一个常见的问题&#xff0c;尤其是在使用Windows操作系统时。幸运的是&#xff0c;大部分问题都可以通过以下几种方法来解决。 一、检查物理连接 在深入诊断之前&#xff0c;首先要检查硬件连接是否正常。这包括&#xff1a; 确保耳机、扬声器或其…

JS数据结构之“栈”、“队列”、“链表”

一、栈 JS中没有栈这种数据类型&#xff0c;创建栈其实是创建数组。push&#xff08;内容&#xff09;入栈&#xff1b;pop&#xff08;&#xff09;出栈&#xff1b; const stack []; stack.push(1); stack.push(2); const item1 stack.pop(); const item2 stack.pop(); …

【51单片机】串口通信原理 + 使用

学习使用的开发板&#xff1a;STC89C52RC/LE52RC 编程软件&#xff1a;Keil5 烧录软件&#xff1a;stc-isp 开发板实图&#xff1a; 文章目录 串口硬件电路UART串口相关寄存器 编码单片机通过串口发送数据电脑通过串口发送数据控制LED灯 串口 串口是一种应用十分广泛的通讯接…

嵌入式web开发:boa、lighttpd

嵌入式web开发&#xff1a;boa、lighttpd https://blog.csdn.net/m0_37105371/category_10937068.html BOA服务器的移植-CSDN博客 【第1部分&#xff1a;boa服务器部署到ubuntu里】 http://www.boa.org/boa-0.94.13.tar.gz tar xvzf boa-0.94.13.tar.gz cd boa-0.94.13/src/ a…

RC高通滤波器Bode图分析(传递函数零极点)

RC高通滤波器 我们使得R1K&#xff0c;C1uF&#xff1b;电容C的阻抗为Xc&#xff1b; 传递函数 H ( s ) u o u i R X C R R 1 s C R s R C 1 s R C &#xff08;其中 s j ω &#xff09; H(s)\frac{u_{o} }{u_{i} } \frac{R }{X_{C}R} \frac{R }{\frac{1}{sC}R} \fra…

Python决策树、随机森林、朴素贝叶斯、KNN(K-最近邻居)分类分析银行拉新活动挖掘潜在贷款客户附数据代码

Python决策树、随机森林、朴素贝叶斯、KNN&#xff08;K-最近邻居&#xff09;分类分析银行拉新活动挖掘潜在贷款客户|附数据代码 最近我们被客户要求撰写关于银行拉新活动的研究报告&#xff0c;包括一些图形和统计输出。 项目背景&#xff1a;银行的主要盈利业务靠的是贷款&…

撰写开发信利器,高效工具助你赢在起点

ZohoCampaigns是电子邮件营销平台&#xff0c;提供创建、发送和分析邮件方案。其优势包括易用性、丰富模板、精准筛选、自动化和详细报告。外贸人员可用其高效发送开发信&#xff0c;追踪效果并优化策略&#xff0c;促进业务增长。 一、为什么选择Zoho Campaigns&#xff1f; …

协程5 --- 栈切换

文章目录 ucontext相关函数例子ucontext_t结构 setjump、longjump相关函数例子jmp_buf结构 汇编实现解析图示 ucontext 相关函数 #include <ucontext.h> int getcontext(ucontext_t *ucp);初始化ucp结构体&#xff0c;将当前上下文保存在ucp中。 int setcontext(const …

【Linux】Pinctrl子系统和GPIO子系统

Pinctrl子系统 在许多soc内部包含了多个pin控制器&#xff0c;通过pin控制器的寄存器&#xff0c;我们可以配置一个或者一组引脚的功能和特性。Linux内核为了统一各soc厂商的pin脚管理&#xff0c;提供了pinctrl子系统。该系统的作用&#xff1a; 在系统初始化的时候&#xf…

《Vue3 报错》Uncaught TypeError: s.finally is not a function

解决方案&#xff1a; 新建文件 my-polyfill.js // 当浏览器环境不支持Promise.prototype.finally if (!Promise.prototype[finally]) {Promise.prototype[finally] function(callback) {let P this.constructor;return this.then(value > P.resolve(callback()).then(…

RabbitMQ 七种工作模式介绍

目录 1.简单模式队列 2.WorkQueue(⼯作队列) 3 Publish/Subscribe(发布/订阅) 4 Routing(路由模式) 5.Topics(通配符模式) 6 RPC(RPC通信) 7 Publisher Confirms(发布确认) RabbitMQ 共提供了7种⼯作模式供我们进⾏消息传递,接下来一一介绍它的实现与目的 1.简单模式队列…

数组类算法【leetcode】

704. 二分查找 给定一个 n 个元素有序的&#xff08;升序&#xff09;整型数组 nums 和一个目标值 target &#xff0c;写一个函数搜索 nums 中的 target&#xff0c;如果目标值存在返回下标&#xff0c;否则返回 -1。 二分查找 用于有序数组中&#xff0c;没有重复的数组。…

Pandas 数据分析工具详细教程

Pandas 数据分析工具详细教程 Pandas 是一个强大的 Python 数据分析库&#xff0c;广泛应用于数据科学、数据分析和机器学习等领域。它提供了高效的数据操作和分析功能&#xff0c;使得数据处理变得简单而高效。本文将详细介绍 Pandas 的基本概念、数据结构、常用操作及其在数…

基于 EventBridge + DashVector 打造 RAG 全链路动态语义检索能力

作者&#xff1a;肯梦 本文将演示如何使用事件总线&#xff08;EventBridge&#xff09;&#xff0c;向量检索服务&#xff08;DashVector&#xff09;&#xff0c;函数计算&#xff08;FunctionCompute&#xff09;结合灵积模型服务 [ 1] 上的 Embedding API [ 2] &#xff0…