精华内容
下载资源
问答
  • QT复选框使用

    千次阅读 2017-01-12 18:23:28
    复选框类是QCheckBox。 示例: bool radio_sel = ui->checkBox->isChecked(); //获取复选框状态 设置默认为选择状态:

    复选框类是QCheckBox。
    这里写图片描述
    示例:
    bool radio_sel = ui->checkBox->isChecked(); //获取复选框状态

    设置默认为选择状态:
    这里写图片描述

    展开全文
  • EasyUI之datagrid的复选框使用

    万次阅读 2018-07-09 10:58:28
    EasyUI 添加复选框 复选框是什么:放置一个复选框列到数据网格(DataGrid),用户将可以选择 选中/取消选中 网格行数据。 如何放置一个复选框:为了添加一个复选框列,只需添加一个列的 checkbox 属性,并设置它为 ...
     

    复选框是什么:放置一个复选框列到数据网格(DataGrid),用户将可以选择 选中/取消选中 网格行数据。


    如何放置一个复选框:为了添加一个复选框列,只需添加一个列的 checkbox 属性,并设置它为 true。代码如下所示:

        	<table id="tt" title="Checkbox Select" class="easyui-datagrid" style="width:550px;height:250px"
        			url="data/datagrid_data.json"
        			idField="itemid" pagination="true"
        			iconCls="icon-save">
        		<thead>
        			<tr>
        				<th field="ck" checkbox="true"></th>      //在这里就是设置复选框的语句
        				<th field="itemid" width="80">Item ID</th>
        				<th field="productid" width="80">Product ID</th>
        				<th field="listprice" width="80" align="right">List Price</th>
        				<th field="unitcost" width="80" align="right">Unit Cost</th>
        				<th field="attr1" width="100">Attribute</th>
        				<th field="status" width="60" align="center">Status</th>
        			</tr>
        		</thead>
        	</table>

    以上代码添加了一个带有 checkbox 属性的列,所以它将成为复选框列。如果 idField 属性已设置,数据网格(DataGrid)的选择集合将在不同的页面保持。

    datagrid有两种属性用来操作复选框:

    名称 类型 描述 默认值
    checkOnSelect boolean 如果设置为 true,当用户点击某一行时,则会选中/取消选中复选框。如果设置为 false 时,只有当用户点击了复选框时,才会选中/取消选中复选框。该属性自版本 1.3 起可用。 true
    selectOnCheckboolean如果设置为 true,点击复选框将会选中该行。如果设置为 false,选中该行将不会选中复选框。
    该属性自版本 1.3 起可用。
    true 
       
       
    展开全文
  • QTreeview的复选框使用

    千次阅读 2018-07-26 17:35:31
    目录: Qt树形控件QTreeView使用1——节点的操作 ...Qt树形控件QTreeView使用2——复选框的设置 利用C++11的function和bind功能,实现QStandardItemModel的通用遍历函数    通过QStandardItem和QStanda...

    转载自https://blog.csdn.net/czyt1988/article/details/19171727

    目录:

    Qt树形控件QTreeView使用1——节点的操作

    Qt树形控件QTreeView使用2——复选框的设置

    利用C++11的function和bind功能,实现QStandardItemModel的通用遍历函数

     

     通过QStandardItem和QStandardItemModel可以很简单方便的给QTreeView添加节点,但是,许多树形控件都需要树的节点需要一个复选框(checkBox),网上许多资料都是通过自定义model来实现的,而且不能很好的实现checkbox的父子关联(父节点选中子节点全部选中,父节点不选,子节点全部选),下面将介绍如何使用QStandardItem和QStandardItemModel实现复选框,且实现父子关联

     

     

    1.使用QStandardItem使树形控件条目带上复选框

    复选框在树形控件中经常见到,在QStandardItem中已经封装好了对复选框的一些设置

    
     
    1. void QStandardItem:: setCheckable ( bool checkable )

    2. void QStandardItem:: setTristate ( bool tristate )

    3. void QStandardItem:: setCheckState ( Qt::CheckState state )

    4. Qt::CheckState QStandardItem:: checkState () const

    5. bool QStandardItem:: isCheckable () const

    6. bool QStandardItem:: isTristate () const

     

    从字面意思就知道这些函数是干什么的了,但这里要注意一些,checkBox有两种情况,

    一种是两态,就是选中和不选中

    一种是三态,选中、不选中、不完全选中,如图:

     

    这种三态叫Tristate。

    要设置条目有复选框只需要使用QStandardItem的函数setCheckable,无论是两态还是三态都需要先setCheckable,setCheckable默认是两态,如果希望是三态的话,需要再setTristate

    示例代码如下:(树形视图节点的具体添加方法见上篇文章)

    
     
    1. QStandardItemModel* model = new QStandardItemModel(ui->treeView);

    2. model->setHorizontalHeaderLabels(QStringList()<<QStringLiteral("项目名")<<QStringLiteral("信息"));

    3. QStandardItem* itemProject = new QStandardItem(m_publicIconMap[QStringLiteral("treeItem_Project")],QStringLiteral("项目"));

    4. model->appendRow(itemProject);

    5. model->setItem(model->indexFromItem(itemProject).row(),1,new QStandardItem(QStringLiteral("项目信息说明")));

    6. QStandardItem* itemFolder = new QStandardItem(m_publicIconMap[QStringLiteral("treeItem_folder")],QStringLiteral("文件夹1"));

    7. itemProject->appendRow(itemFolder);

    8. itemProject->setChild(itemFolder->index().row(),1,new QStandardItem(QStringLiteral("信息说明")));

    9. itemFolder = new QStandardItem(m_publicIconMap[QStringLiteral("treeItem_folder")],QStringLiteral("文件夹2"));

    10. itemProject->appendRow(itemFolder);

    11. for(int i=0;i<5;++i){

    12. QStandardItem* itemgroup = new QStandardItem(m_publicIconMap[QStringLiteral("treeItem_group")],QStringLiteral("组%1").arg(i+1));

    13. itemFolder->appendRow(itemgroup);

    14. for(int j=0;j<(i+1);++j){

    15. QStandardItem* itemchannel = new QStandardItem(m_publicIconMap[QStringLiteral("treeItem_channel")],QStringLiteral("频道%1").arg(j+1));

    16. itemgroup->appendRow(itemchannel);

    17. itemgroup->setChild(itemchannel->index().row(),1,new QStandardItem(QStringLiteral("频道%1信息说明").arg(j+1)));

    18. }

    19. }

    20. itemProject->setChild(itemFolder->index().row(),1,new QStandardItem(QStringLiteral("文件夹2信息说明")));

    21. itemProject = new QStandardItem(m_publicIconMap[QStringLiteral("treeItem_Project")],QStringLiteral("项目2"));

    22. model->appendRow(itemProject);

    23. for(int i =0;i<3;++i)

    24. {

    25. itemFolder = new QStandardItem(m_publicIconMap[QStringLiteral("treeItem_folder")],QStringLiteral("项目2文件夹%1").arg(i+1));

    26. itemFolder->setCheckable(true);

    27. itemFolder->setTristate(true);

    28. QStandardItem* itemFolderDes = new QStandardItem(m_publicIconMap[QStringLiteral("treeItem_group")],QStringLiteral("文件夹%1组").arg(i+1));

    29. itemProject->appendRow(itemFolder);

    30. itemProject->setChild(itemFolder->index().row(),1,itemFolderDes);

    31. for(int j=0;j<i+1;++j)

    32. {

    33. QStandardItem* item = new QStandardItem(m_publicIconMap[QStringLiteral("treeItem_dataItem")],QStringLiteral("项目%1").arg(j+1));

    34. item->setCheckable(true);

    35. itemFolder->appendRow(item);

    36.  
    37. }

    38. }

    39. //关联项目属性改变的信号和槽

    40. connect(model,&QStandardItemModel::itemChanged,this,&Widget::treeItemChanged);

    41. //connect(model,SIGNAL(itemChanged(QStandardItem*)),this,SLOT(treeItemChanged(QStandardItem*)));

    42. ui->treeView->setModel(model);


     

     

    代码中m_publicIconMap是QMap<QString,QIcon>对象,用于存放定义好的图标,在树形视图节点添加之前进行初始化,初始化代码如下:

    
     
    1. m_publicIconMap[QStringLiteral("treeItem_Project")] = QIcon(QStringLiteral(":/treeItemIcon/res_treeItemIcon/Project.png"));

    2. m_publicIconMap[QStringLiteral("treeItem_folder")] = QIcon(QStringLiteral(":/treeItemIcon/res_treeItemIcon/folder.png"));

    3. m_publicIconMap[QStringLiteral("treeItem_folder-ansys")] = QIcon(QStringLiteral(":/treeItemIcon/res_treeItemIcon/folder-ansys.png"));

    4. m_publicIconMap[QStringLiteral("treeItem_group")] = QIcon(QStringLiteral(":/treeItemIcon/res_treeItemIcon/group.png"));

    5. m_publicIconMap[QStringLiteral("treeItem_channel")] = QIcon(QStringLiteral(":/treeItemIcon/res_treeItemIcon/channel.png"));

     

    效果图:

    2.三态复选框的智能关联

    三态复选框的主要体现就在树形控件里,如果子项目全选,父级需要全选,如果子项目部分选,父级就是不完全选

    下图是三态的正确表现方法

     

     

    但QTreeView在QStandardItem设置复选框后,并不是按照规则的,这时需要进行代码设置

    2.1 捕获复选框改变的信号

    要对复选框进行操作,首先需要捕获树形视图的复选框改变发出的信号

    通过QStandardItemModel设置的项目,任何改变都会触发void QStandardItemModel::itemChanged(QStandardItem * item)信号

    因此需要定义一个槽函数和这个信号关联

    
     
    1. private slots :

    2. void treeItem_CheckChildChanged ( QStandardItem * item );


     

    关联代码写在model创建之后的地方:

    
     
    1. //关联项目属性改变的信号和槽

    2. connect ( model ,&QStandardItemModel::itemChanged , this ,&Widget::treeItemChanged );

    3. //connect(model,SIGNAL(itemChanged(QStandardItem*)),this,SLOT(treeItemChanged(QStandardItem*)));

     

    这里使用最新的信号和槽的关联方法,记得在pro文件中加入如下,使得支持C++11

    CONFIG+=c++11

    槽函数的写法如下:

    void Widget :: treeItemChanged ( QStandardItem * item )
    {
    }

     

    下面开始实现三态的自动关联(父子节点checkbox自动关联)

     

    2.2 父子节点复选框自动关联实现

    
     
    1. void Widget : : treeItemChanged ( QStandardItem * item )

    2. {

    3. if ( item == nullptr )

    4. return ;

    5. if ( item - > isCheckable ())

    6. {

    7. //如果条目是存在复选框的,那么就进行下面的操作

    8. Qt : : CheckState state = item - > checkState (); //获取当前的选择状态

    9. if ( item - > isTristate ())

    10. {

    11. //如果条目是三态的,说明可以对子目录进行全选和全不选的设置

    12. if ( state != Qt : : PartiallyChecked )

    13. {

    14. //当前是选中状态,需要对其子项目进行全选

    15. treeItem_checkAllChild ( item , state == Qt : : Checked ? true : false );

    16. }

    17. }

    18. else

    19. {

    20. //说明是两态的,两态会对父级的三态有影响

    21. //判断兄弟节点的情况

    22. treeItem_CheckChildChanged ( item );

    23. }

    24. }

    25. }


     

    首先要判断条目的状态,如果条目是有复选框的话,那么就进行操作。通过函数isCheckable()可以判断条目是否有复选框

    在确认条目有复选框后,需要获取当前条目的选中状态,使用checkState ()函数可以判断当前条目的选中状态;

    现在分两种情况:

    1.如果条目是三态的,说明要判断它的子节点。条目选中时,所有子节点都将选中,条目不选中时,所有子节点都不选中

    2.如果条目是两态的,说明可能会影响它的三态的父节点,当两态节点选中且其所有的兄弟节点都选中,三态父节点选中,若两态子节点和其兄弟节点都没选中,那么其三态父节点将不选中,若果兄弟节点有选中有不选中,三态父节点将是处于不完全选中状态

     

    2.2.1 子节点递归全选

    treeItem_checkAllChild 函数是用于使子节点全选的函数。这个函数实现如下:

     

    
     
    1. ///

    2. /// \brief 递归设置所有的子项目为全选或全不选状态

    3. /// \param item 当前项目

    4. /// \param check true时为全选,false时全不选

    5. ///

    6. void Widget::treeItem_checkAllChild(QStandardItem * item, bool check)

    7. {

    8. if(item == nullptr)

    9. return;

    10. int rowCount = item->rowCount();

    11. for(int i=0;i<rowCount;++i)

    12. {

    13. QStandardItem* childItems = item->child(i);

    14. treeItem_checkAllChild_recursion(childItems,check);

    15. }

    16. if(item->isCheckable())

    17. item->setCheckState(check ? Qt::Checked : Qt::Unchecked);

    18. }

    19. void Widget::treeItem_checkAllChild_recursion(QStandardItem * item,bool check)

    20. {

    21. if(item == nullptr)

    22. return;

    23. int rowCount = item->rowCount();

    24. for(int i=0;i<rowCount;++i)

    25. {

    26. QStandardItem* childItems = item->child(i);

    27. treeItem_checkAllChild_recursion(childItems,check);

    28. }

    29. if(item->isCheckable())

    30. item->setCheckState(check ? Qt::Checked : Qt::Unchecked);

    31. }


     

    通过这个功能实现,可以看看如何对树形节点的所有子节点进行遍历,一般树形节点的遍历是通过递归来实现的(递归的效率不是最高的,可以把递归拆解为循环)。

    QStandardItem的child方法可以获取它的下级子节点,在这个方法之前现需要查明有多少个子节点,rowCount()方法是获取树形节点下一级的子节点个数(在树形视图中,每个节点的子节点算作这个节点的条目,第一个节点就是第一行,第二个就是第二行,以此类推,如果树形视图有多列的话,那么列也会起作用)。

    treeItem_checkAllChild_recursion是个递归函数,通过这个函数可以把树形节点的所有子节点遍历一遍。

    通过上面的这个方法,即可实现第一种情况。

     

    2.2.2 父节点递归处理

     

    treeItem_CheckChildChanged函数是用于处理第二种情况的,此函数主要对父级节点有影响,函数实现如下:

    
     
    1. ///

    2. /// \brief 根据子节点的改变,更改父节点的选择情况

    3. /// \param item

    4. ///

    5. void Widget::treeItem_CheckChildChanged(QStandardItem * item)

    6. {

    7. if(nullptr == item)

    8. return;

    9. Qt::CheckState siblingState = checkSibling(item);

    10. QStandardItem * parentItem = item->parent();

    11. if(nullptr == parentItem)

    12. return;

    13. if(Qt::PartiallyChecked == siblingState)

    14. {

    15. if(parentItem->isCheckable() && parentItem->isTristate())

    16. parentItem->setCheckState(Qt::PartiallyChecked);

    17. }

    18. else if(Qt::Checked == siblingState)

    19. {

    20. if(parentItem->isCheckable())

    21. parentItem->setCheckState(Qt::Checked);

    22. }

    23. else

    24. {

    25. if(parentItem->isCheckable())

    26. parentItem->setCheckState(Qt::Unchecked);

    27. }

    28. treeItem_CheckChildChanged(parentItem);

    29. }


     

    此函数也是一个递归函数,首先要判断的是父级是否到达顶层,到达底层作为递归的结束,然后通过函数checkSibling判断当前的兄弟节点的具体情况,checkSibling方法的实现如下:

     

    
     
    1. ///

    2. /// \brief 测量兄弟节点的情况,如果都选中返回Qt::Checked,都不选中Qt::Unchecked,不完全选中返回Qt::PartiallyChecked

    3. /// \param item

    4. /// \return 如果都选中返回Qt::Checked,都不选中Qt::Unchecked,不完全选中返回Qt::PartiallyChecked

    5. ///

    6. Qt::CheckState Widget::checkSibling(QStandardItem * item)

    7. {

    8. //先通过父节点获取兄弟节点

    9. QStandardItem * parent = item->parent();

    10. if(nullptr == parent)

    11. return item->checkState();

    12. int brotherCount = parent->rowCount();

    13. int checkedCount(0),unCheckedCount(0);

    14. Qt::CheckState state;

    15. for(int i=0;i<brotherCount;++i)

    16. {

    17. QStandardItem* siblingItem = parent->child(i);

    18. state = siblingItem->checkState();

    19. if(Qt::PartiallyChecked == state)

    20. return Qt::PartiallyChecked;

    21. else if(Qt::Unchecked == state)

    22. ++unCheckedCount;

    23. else

    24. ++checkedCount;

    25. if(checkedCount>0 && unCheckedCount>0)

    26. return Qt::PartiallyChecked;

    27. }

    28. if(unCheckedCount>0)

    29. return Qt::Unchecked;

    30. return Qt::Checked;

    31. }

     

    checkSibling用于判断兄弟节点的关系,兄弟节点之间无外乎三种关系:

    1.全选

    2.全不选

    3.部分选中

    获取QStandardItem的兄弟节点有多种方法,这里是通过获取它的父级在获取父级的子节点来得到包括它自己的所有兄弟节点,另外QStandardItem可以通过函数QModelIndex index() const;获取Item对应的QModelIndex,QModelIndex有QModelIndex QModelIndex::sibling(int row, int column) const方法获取兄弟节点。

    通过以上几个函数,即可实现QTreeView的复选框及自动识别勾选的功能。

    下面放出效果图:

    展开全文
  • jsp 复选框使用方法

    万次阅读 2010-07-01 11:36:00
    jsp 复选框使用方法实例代码 1,页面上 代码如下: <td width="4%" height="26" align="center"> value=()%> /> </td> 2.action 代码如下: String[] checkbox = request.getParameterValues(...

    展开全文
  • [原创]Matlab之复选框使用

    千次阅读 2016-12-22 20:46:00
    本文简单记录在Matlab的GUI设计中,复选框的一些使用,比较简单。 简单到直接上代码,就是可能比较容易忘记,使用的时候再翻回来好了。 1 2 3 4 5 6 7 % 复选框,选中后为1,未选中则为0 ...
  • 权限 ;border:0">浏览 ...$("[name='ckb']:checkbox:checked").length//获取选中的复选框个数 document.getElementById("is_browser").checked = false;//此方法设置复选框为未选中状态
  • MFC复选框使用

    2016-06-01 16:40:09
    在开发过程中复选框控件的使用也比较广泛我这里为大家分享一下我使用复选框控件的一些技巧。 1.我们新建一个Dlg对话框MFC程序 2.拖入一个复选框控件,控件ID修改为IDC_CHECK 3.拉入一个按钮文本修改为“获取复选...
  • 目录 介绍 现场演示 ...您可以使用jQuery进行多选复选框下拉列表,而不是使用HTML中的多个属性。 这是一个简单的HTML控件,带有jQuery和CSS,可以在任何Web编程语言中使用。 现场演示 https...
  • Flutter Checkbox 复选框

    万次阅读 2019-06-25 09:20:26
    Flutter 复选框 有两种:一 是精简版Checkbox复选框 ,二是自带标题和副标题CheckboxListTile复选框 参数详解 属性 说明 Checkbox 复选框 value 是否选中此复选框 onChanged 监听当复选框...
  • elementui复选框使用与遇到的问题

    千次阅读 2019-04-19 18:47:44
    elementui复选框使用与遇到的问题1、复选框使用2、默认值的设置3、遇到的问题3.1、导致问题的写法3.2、正常可以使用的写法 今天有个弹出窗编辑的时候elementui的复选框出了问题,控制台也没有报错,但就是死活选...
  • MFC复选框CheckBox使用

    万次阅读 2015-01-23 22:07:06
    MFC中复选框checkbox控件,至少有三种方法对其进行操作,第一种是利用Cbutton成员函数GetCheck和SetCheck,第二种是利用CWnd成员函数IsDlgButtonChecked,最后就是把checkbox复选框控件与BOOL型变量相关联。...
  • 上图 样式是默认的,其实自己可以改些CSS样式更好看些 代码全: <!DOCTYPE html> <html>...Vue 测试实例 - 单个,多个复选框</title> <script src="https://cdn.staticf...
  • VC复选框使用

    2017-02-24 23:19:22
    VC复选框使用: IsDlgButtonChecked(IDC_CHECK1) 参数为复选框的ID,选中时返回1,未选中返回0 使用IsDlgButtonChecked 函数判断单选钮或复选框是否被选中  CWnd::IsDlgButtonChecked函数,用来判断单选...
  • 自定义复选框

    2017-02-28 18:57:51
    1.为什么要自定义复选框?因为原生复选框的默认样式比较少,不太美观,而且当我们为其修改样式时,会发现,除了可以设置宽度和高度等少数样式外,其余样式都没有效果。这时,我们需要自己来设计一个漂亮的复选框。 2...
  • MFC treecontrol 复选框问题 点击文字后复选框没有勾选上,使用setcheck函数使之 勾选上后,变成点击复选框复选框钩不上了![图片说明](https://img-ask.csdn.net/upload/201809/20/1537430622_418916.png),这是...
  • ExtJs实现复选框组Checkboxgroup单勾选及复选框组对多个复选框组跨控件全选
  • 使用alertDialog时设置复选框时,复选框看不见,显示为白色
  • 1. 使用AngularJS让checkbox复选框实现,但限选两个checkbox复选框代码如下:&lt;!DOCTYPE html&gt; &lt;html lang="en"&gt; &lt;head&gt; &lt;meta charset="UTF-8&...
  • 设置复选框选中及其使用 开发工具与关键技术:VS 、MVC 撰写时间:2019/7/26 有一些需要就在你触发某个按钮的时候,单选框或者复选框就是一个选中的状态,并且要记录这个状态的时候;页面的复选框,单选框都是禁用...
  • layui复选框

    千次阅读 2018-11-20 16:52:00
    layui复选框,一个主的复选框控制多个从复选框,主复选框和从复选框的颜色不一样 layui复选框的样式,都是在选然后才会有的,所以直接通过css设置就实现不了了。只可以通过js动态设置 html代码使用了jfinal...
  • uniapp添加复选框和获取复选框的值

    千次阅读 2020-02-26 22:01:14
    uniapp中加入复选框,一般初学者都需要添加的东西,比如爱好进行选择添加 本人是以“班级”为例进行,“班级”按理来说是不应该复选的,但本人比较懒所以就不改了,以此为例进行讲解 <view class="uni-form-item...
  • 复选框使用

    千次阅读 2012-04-07 21:44:46
    前几天在网上看到好多有关复选框的文章,看了好几篇发觉都是转载的几乎全部都是出自一篇文章,转载也就算了,运行了一下代码还是错的。自己都不去验证下就拿出来转载,真的是害人不浅啊,因此我想给大家写篇质量比较...
  • delphi D10 TListView使用复选框的BUG修改

    千次阅读 2020-01-05 23:49:03
    在安卓下使用TListView时,需要使用复选框,同时系统定义的几种类型如:ListItemShowCheck、ImageListItemShowCheck等都不能满足功能的需要,所以需要使用自定义显示内容,在定义好后,发现复选框不能正确使用,如...
  • 因为网上现有的代码只是实现了复选框效果,在我把窗口关闭后,再打开,复选框还保留着上次的选中状态,因为有这个bug,所以自己把网上的代码给改进了下,加入了未选中事件和用extjs的样式,先上效果图 看着不错吧,...
  • 【Android开发】基本组件-复选框

    千次阅读 2015-03-31 11:46:15
    复选框: 默认情况下,单选框按钮...在Android中,复选框使用CheckBox表示,CheckBox又是Button的子类,所以单选按钮可以直接使用Button支持的各种属性。 Android中,可以使用两种方法向屏幕中添加单选按钮,一种是
  • 用javascript实现选中其中一个复选框后,其他复选框不可用
  • MFC使用复选框控件

    千次阅读 2012-11-26 12:27:09
    在开发过程中复选框控件的使用也比较广泛我这里为大家分享一下我使用复选框控件的一些技巧。   1.我们新建一个Dlg对话框MFC程序 2.拖入一个复选框控件,控件ID修改为IDC_CHECK 3.拉入一个按钮文本修改为“获取...
  • js使用li或者div来模拟input的复选框和单选框样式,7行代码,兼容好

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 169,796
精华内容 67,918
关键字:

复选框使用