QML中的ExclusiveGroup

Exclusive这个单词在高中应该都学过,是互斥的意思。如果你没有上过或者还没有上到高中,那你非常棒,计算机领域的大师很多都是这么起步的。

ExclusiveGroup顾名思义就是互斥分组,效果很明显,就是说你选了一个,就不能选另一个。

这个元素提供了两种用法,一种是像做定位器一样的,把那些乱七八糟的元素嵌套进去就可以了,在选择的时候就是互斥的。

但是多层嵌套会让人崩溃,所以我们还可以给它指定一个id,然后设置其它元素的属性就好了。

举个栗子:

import QtQuick 2.3
import QtQuick.Window 2.2
import QtQuick.Controls 1.4

Window {
    visible: true

  ExclusiveGroup{
  id:huchi
  }
  RadioButton{
  id:radio1
  text: "我是一号"
  exclusiveGroup: huchi
  }
  RadioButton{
  id:radio2
  anchors.top: radio1.bottom
  anchors.topMargin: 4
  text: "我是二号"
  exclusiveGroup: huchi
  }
  RadioButton{
  id:radio3
  anchors.topMargin: 4
  anchors.top: radio2.bottom
  text: "我是三号"
  exclusiveGroup: huchi
  }
}

效果图:

这个示例并不是很好,因为很多人觉得radio似乎本来就是用来单选的,你可以尝试注释掉其中某个exclusiveGroup:huchi
然后你就会发现不同了。

时间: 2024-11-16 08:23:39

QML中的ExclusiveGroup的相关文章

QML中实现setTimeout和setInterval

Qt的QML中,js未提供setTimeout和setInterval,可以通过下面的代码实现. Timer {id: timer} function setTimeout(cb,delayTime) { //timer = new Timer(); timer.interval = delayTime; timer.repeat = false; timer.triggered.connect(cb); timer.start(); } https://my.oschina.net/lieef

QML中文件的加载(三种方法)

在这里小小总结一下QML文件中如何加载QML文件与JavaScript文件. 1.QML文件中加载JavaScript文件 语法: import <ModuleIdentifier> <Version.Number> [as <Qualiflier>] ModuleIdentifier为URL: Version.Number为版本号: Qualifier为自定义命名: 示例代码如下: Qml文件: 图一 Js文件 图二 注:将js文件引入后可直接调用里面的函数,自定义命

qt qml中PropertyAnimation的几种使用方法

qml文章 qt qml中PropertyAnimation的几种使用方法 动画应用场景有以下几种: 首先如果一个Rectangle.动画是要改变它的x和y值 1,Rectangle一旦被创建,就要移动到一个特定的位置 2,动画仅仅有在某一个特定的外部行为触发时候才会被触发,比如,鼠标单击某一个控件时候,产生动画.使目标移动到指定的位置 3,仅仅有在某一个特定的信号后才触发 4,做为一个独立的动画,尽管没有绑定rectangle的运动,可是能够在脚本中载入,開始和停止 5.仅仅有在状态改变时候才

在Qt5的QML中使用QZXing识别二维码

前言 ZXing库是一个用来识别二维码的库,QZXing是一个基于Qt的Qt wrapper library,在本文我们使用它和qml开发一个android小应用. 添加QZXing项目 QZXing最常用是作为一个子项目包含在我们的项目中,在我们的项目的pro文件中添加如下的一句: include(./QZXing/QZXing.pri) QZXing和我们的pro文件在同一个目录. qml程序 import QtQuick 2.0 import QtQuick.Controls 1.3 im

QML与C++交互:在qml中使用QSqlQueryModel显示数据库数据

QML与C++交互:在qml中使用QSqlQueryModel显示数据库数据 本文博客链接:http://blog.csdn.net/jdh99,作者:jdh,转载请注明. 参考链接: http://qt-project.org/wiki/How_to_use_a_QSqlQueryModel_in_QML 环境: 主机:WIN7 开发环境:Qt5.2.1 说明: 在QML中不能直接对数据库进行操作,所以将QSqlQueryModel封装成子类,作为属性给QML使用 效果图: 源代码: qml文

QML中的模型/视图 十二

QML中对于数据的存储和显示使用模型/视图框架. 1. QML数据模型 视图项目(如ListView.GridView和Repeater等)需要使用数据模型来为其提供数据进行显示.这些项目通常也需要一个委托(delegate)组件来为模型中的每一个条目创建一个实例.模型可以是静态的,也可以进行动态的修改.插入.移除或者移动项目.Qt帮助参考QML Data Models关键字. Item{ width:200; height:250 ListModel{ id:myModel ListEleme

QML 中的屏幕适配问题

QML 中的屏幕适配问题 其实 QML 中的屏幕适配问题,官方也写了一篇文章,如何在不同分辨率下适配控件大小和图片大小(字体好像没有讲到).虽然文章条理清晰,原理,案例都写得不错,但是总觉得缺点什么.对,就是代码,具体实现的代码.从头到尾,原理阐述清晰,唯独就是不写出具体的代码实现. 有人说,具体的代码实现可能很复杂.倒不至于,这里给出一段最简单的使用纯 QML 实现的 dp,至于 dpi 什么,管它呢. import QtQuick.Window 2.0 import QtQuick 2.5

qml 中 使用 shader

使用绘制工具如Photoshop .Flash已经可以创建许多效果非常绚丽的图像.动画等. Qt/QML 的努力其实是在这些工具发展的后面, 因此很多效果在Qt中无法实现. 不得不佩服Qt小组的才智, 他们为了解决这个矛盾, 采取了让qt 5.x 跟opengl 紧密结合的方法, openGL是现代图形学的一个有力的编程工具,很多图形学的概念都已经在opengl中实现: 因此虽然实现一些特效虽然需要比较丰富的图形学知识, 但已经让以前很多的不可能变为可能. Qt 中可以有多种方法使用opengl

如何得到QML中的TextArea的slider的位置信息

几天以前,有一个开发者问道如何得到TextArea中的slider的位置信息.目前在QML中的TextArea中并没有这个信息,那么我们如何得到这个信息呢? 1)通过遍历TextArea中的child来得到这个信息 我们可以通过研究TextArea的代码,我们可以发现其中是有一个叫做Flickable的child在里面的.它的里面的contentY含有这个信息,但是可惜的是它不暴露这个信息给我们,那么我们怎么才能得到这个信息呢? 我们设计了如下的测试程序: import QtQuick 2.0