zoukankan      html  css  js  c++  java
  • PyQt(Python+Qt)学习随笔:视图中的dragDropMode属性对dragEnabled和acceptDrops属性的影响

    在《PyQt(Python+Qt)学习随笔:QAbstractItemView的dragEnabled和dragDropMode属性的关系》介绍了视图中dragDropMode属性对dragEnabled属性的影响,实际上除了dragDropMode属性对dragEnabled属性有影响之外,对acceptDrops属性也有类似的影响。

    经老猿验证测试如下场景:

    • 当dragDropMode设置为DragOnly、DragDrop、InternalMove时,会自动将视图dragEnabled设置为True
    • 当dragDropMode设置为DropOnly、NoDragDrop时,会自动将dragEnabled设置为False
    • 当修改dragEnabled值时,对dragDropMode属性没有影响,但是需要视图支持拖拽,这两个属性都必须支持拖拽,如果一个不支持,则视图无法拖拽
    • 当dragDropMode设置为DropOnly、DragDrop、InternalMove时,会自动将视图的acceptDrops属性、以及视图视口的acceptDrops设置为True
    • 当dragDropMode设置为DragOnly、NoDragDrop时,会自动将视图的acceptDrops属性、以及视图视口的acceptDrops设置为False
    • 当视图的acceptDrops设置为False时,视图视口的acceptDrops同时设置为设置为False,dragDropMode属性如果支持放下,则会将放下去除,如dragDropMode原来为DragDrop,则变为了DragOnly,运行时视图内不能拖放
    • 当视图的acceptDrops设置为True时,视图视口的acceptDrops同时设置为设置为True,dragDropMode属性如果不支持放下,则会改为支持放下,如dragDropMode原来为DragOnly,则变为了DragDrop,运行时视图内可以拖放
    • 当视图对应视口的acceptDrops设置为False时,视图的acceptDrops属性和dragDropMode属性保持不变,但视图中的拖拽数据只能拖动无法放下
    • 当视图对应视口的acceptDrops设置为True时,视图的acceptDrops属性和dragDropMode属性保持不变,但不论视图原来相关属性是否支持拖拽数据放下,视图中的拖拽数据都能放下

    从上述场景综合来看,视图中的dragDropMode、dragEnabled和acceptDrops属性相互关系如下:

    • 视图中的dragDropMode属性、acceptDrops属性 相互之间都会互相影响,最终效果受这些属性设置语句的执行先后影响,后执行的影响先执行
    • 视图中的dragDropMode属性 对dragEnabled是单向影响,即dragDropMode设置值时会根据情况改变dragEnabled的值,但反过来不行,不过最终是否允许拖拽需要这两个属性都支持拖拽才行
    • 视图对应视口的acceptDrops属性值改变不会影响视图的dragDropMode、和acceptDrops属性,但视图中如果要支持拖放,需要这三个属性都支持拖放才可

    关于视图视口,实际上就是视图中数据可见部分的窗体,所有需要展示的数据都需要滚动到视口才可见。可以通过视图的viewport()方法访问。关于视口更多的说明请参考《PyQt(Python+Qt)学习随笔:QAbstractScrollArea的viewPort(视口)理解

    老猿Python,跟老猿学Python!

  • 相关阅读:
    NPOI json转Excel DataTable转Excel ,Excel转DataTable
    sqlhelper;
    C# DataSet数据导入Excel 修正版- .net FrameWork 4.0以上
    asp.net core 教程(七)-异常处理、静态文件
    asp.net core 教程(六)-中间件
    asp.net core 教程(五)-配置
    jQuery_3_过滤选择器
    jQuery_2_常规选择器-高级选择器2
    jQuery_2_常规选择器-高级选择器
    jQuery_2_常规选择器-进阶选择器
  • 原文地址:https://www.cnblogs.com/LaoYuanPython/p/12235153.html
Copyright © 2011-2022 走看看