item 订阅
“Item”是类似“管理者”地位的学园都市暗部组织,主要成员由4名女孩组成。和“School”是敌对关系。任务是阻止统括理事会及高层的暴走。10/9事件后解体。 曾在外传漫画《某科学的超电磁炮》八月十九日事件中作为阻止御坂美琴破坏“妹妹计划”实验设施的雇佣兵登场。 展开全文
“Item”是类似“管理者”地位的学园都市暗部组织,主要成员由4名女孩组成。和“School”是敌对关系。任务是阻止统括理事会及高层的暴走。10/9事件后解体。 曾在外传漫画《某科学的超电磁炮》八月十九日事件中作为阻止御坂美琴破坏“妹妹计划”实验设施的雇佣兵登场。
信息
正式成员
泷壶理后、绢旗最爱、芙兰达
外文名
Item,アイテム
领导者
(前)麦野沈利,滨面仕上
组织类别
暗部组织
直接指挥
电话女(CV:村川梨衣)
出自作品
《魔法禁书目录》
中文名
道具
隶    属
学园都市统括理事会
所    属
学园都市
Item简介
「道具(Item)」是直属于学园都市统括理事会的暗部组织,首领是学园都市排名第四位的超能力者麦野沉利,但实质上泷壶理后才是核心,负责防止包括统括理事会在内的上层部的失控及镇压其他暗部的暴动。因为很能出力,因此能拿到许多不知道从何处筹来的预算。在第三次世界大战后,重组的「道具」中,滨面仕上为实际领袖。 Item全员 小说插画(台湾角川) 8月19日曾受委托在水穗机构病理解析研究所阻止第三位的超能力者御坂美琴的侵入,并由绢旗最爱在脑神经解析研究所抓获了布束砥信。10月9日事件中奉命赴素粒子工学研究所阻止另一暗部组织「School」的第二位超能力者垣根帝督的侵入,但遭受失败。而成员芙兰达则因被捕后向垣根帝督泄露情报而在逃脱归队后被麦野沉利腰斩。由于麦野沉利在极度暴怒下强迫虚弱不堪的成员泷壶理后使用“体晶”不顾其生命强行施展失控能力而最终导致「道具(Item)」内讧,在战斗中麦野沉利被成员无能力者滨面仕上划瞎右眼,随着身中数枪并失去左臂的麦野沉利倒下,「道具(Item)」随之解体。10月17日由于受到学园都市高层和接受肢体修补后的麦野沉利的追杀,滨面仕上和泷壶理后驾驶飞机逃亡俄罗斯。最终在俄罗斯麦野沉利因能力失控极度痛苦下被滨面仕上所保护而与滨面、泷壶理后媾和,并在一齐击溃学园都市的追兵获得同学园都市谈判的素材「素养判定」后得以重返学园都市,并会合绢旗最爱,四人重组「道具(Item)」。做着和原来完全没有变化的打杂事务的滨面仕上成为了该组织实质上的核心。由于受一方通行要挟,学园都市解散了暗部组织,「道具(Item)」得以脱离暗部。11月5日,由于滨面仕上与一方通行的联手落入了暗部组织「新入生」的圈套,而作为滨面仕上的关系人群「道具(Item)」亦被学园都市下令抹杀,资金人才均遭冻结。原计划由「新入生」的黑夜海鸟来对付「道具(Item)」,虽然打败了绢旗最爱,但是却被滨面仕 item成员(6张) 上以机甲「加特林电磁炮」击溃。
收起全文
精华内容
参与话题
问答
  • Android之listview点击item当前item变色其他不变

    万次阅读 多人点赞 2017-01-06 13:51:31
    listview点击item当前item变色其他不变

    一:效果图

    二:实现步骤

    1.xml布局

    <ListView
        android:id="@+id/left_listview"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:background="#f4f5f7"
        android:scrollbars="none">

    2.activity里加载适配器完后添加这两句代码

    listViewAdpret.setSelectedPosition(position); listViewAdpret.notifyDataSetInvalidated();
    

    3.适配器里面自定义一个变量

    private int selectedPosition = 0;// 选中的位置
    public void setSelectedPosition(int position) {
        selectedPosition = position;
    }

     

    4.判断是否选择当前item

    if (selectedPosition == position) {
        itemlayoutb.setBackgroundColor(Color.parseColor("#ffffff"));
        textc.setTextColor(Color.parseColor("#ff0000"));
    } else {
        itemlayoutb.setBackgroundColor(Color.TRANSPARENT);
        textc.setTextColor(Color.parseColor("#393939"));
    }
    


     

     

     

    -------------代码不多,效果还是可以实现的,你们凑合看看吧。

     

    展开全文
  • Android 使用Scroller实现绚丽的ListView左右滑动删除Item效果,项目详情http://blog.csdn.net/xiaanming/article/details/17539199
  • 自定义 QGraphicsItem

    万次阅读 多人点赞 2016-11-11 19:53:38
    QGraphicsItem 是场景中 item 的基类。图形视图提供了一些典型形状的标准 item,例如:矩形 ( QGraphicsRectItem )、椭圆 ( QGraphicsEllipseItem ) 、文本项 ( QGraphicsTextItem )。当这些不满足需求时(例如:在...

    简述

    QGraphicsItem 是场景中 item 的基类。图形视图提供了一些典型形状的标准 item,例如:矩形 ( QGraphicsRectItem )、椭圆 ( QGraphicsEllipseItem ) 、文本项 ( QGraphicsTextItem )。当这些不满足需求时(例如:在一些复杂的工作流场景中),往往需要自定义,通常的做法就是继承 QGraphicsItem。

    | 版权声明:一去、二三里,未经博主允许不得转载。

    自定义 QGraphicsItem

    要实现自定义 item,需要覆盖 QGraphicsItem 的两个纯虚函数:

    • void paint()
      • 以本地坐标绘制 item 的内容
    • QRectF boundingRect()
      • 将 item 的外边界作为矩形返回
      • 由 QGraphicsView 调用以确定什么区域需要重绘

    除此之外,可能还需要附加其他需求,例如:

    • QPainterPath shape() - item 的形状
      • 由 contains() 和 collidesWithPath() 用于碰撞检测
      • 如果未实现,则默认为 boundingRect()
    • 使用信号/槽、属性机制:继承 QObject 和 QGraphicsItem(或直接继承 QGraphicsObject)
    • 处理鼠标事件:重新实现 mouse***Event()
    • 处理键盘事件:重新实现 key***Event()
    • 处理拖放事件:重新实现 drag***Event()、dropEvent()
      ……

    关于信号/槽、事件、算法相关的内容,本节暂时不做讲解,放到后面章节。

    Bounding Rect 和 Shape

    先来一张效果图,解释 Bounding Rect 和 Shape 的联系与区别:

    这里写图片描述

    • Bounding Rect

      将 item 的外边界定义为矩形,所有绘制必须限制在此区域内,QGraphicsView 使用它来确定 item 是否需要重绘。

      虽然 item 的形状可以是任意的(例如:直线、椭圆、矩形 ),但是 bounding rect 总是矩形,并且不受 item 变换的影响。

    • Shape

      以本地坐标中的 QPainterPath 形式返回 item 的形状。形状可用于许多事情,包括:碰撞检测,命中测试以及 QGraphicsScene::items() 函数。

      shape() 默认实现调用 boundingRect() 返回一个简单的矩形形状,但子类可以重新实现该函数,以返回非矩形 item 更准确的形状。例如,一个圆形 item 可以选择返回椭圆形状,以便更好地进行碰撞检测。

      shape() 由 contains() 和 collidesWithPath() 的默认实现调用。

    参照模型

    来一个笑脸,瞬间萌萌哒……笑一笑,十年少!

    这里写图片描述

    要实现这个效果很简单,可以逐步分解:

    • 整体(最外侧的圆)
    • 眼睛(左眼/右眼/眼球)
    • 嘴(笑容)

    分别计算出各部分的区域坐标、大小,然后根据形状进行绘制。

    上述图案标识的是绝对位置,为了适应各种大小, 可以进行比例及相对位置换算,将各部分进行逐一转换。

    使用示例

    效果

    下图显示了 3 个不同大小的笑脸:

    这里写图片描述

    源码

    根据以上思路,我们可以很快的实现一个自定义的笑脸 - SmileItem。

    SmileItem.h:

    #ifndef SMILE_ITEM_H
    #define SMILE_ITEM_H
    
    #include <QGraphicsItem>
    
    class SmileItem : public QGraphicsItem
    {
    public:
        explicit SmileItem(QGraphicsItem *parent = Q_NULLPTR);
        explicit SmileItem(const QRectF &rect, QGraphicsItem *parent = Q_NULLPTR);
        explicit SmileItem(qreal x, qreal y, qreal w, qreal h, QGraphicsItem *parent = Q_NULLPTR);
        ~SmileItem();
        QRectF rect() const;
        void setRect(const QRectF &rect);
        inline void setRect(qreal x, qreal y, qreal w, qreal h);
    
        QRectF boundingRect() const Q_DECL_OVERRIDE;
        void paint(QPainter *painter, const QStyleOptionGraphicsItem *option, QWidget *widget = 0) Q_DECL_OVERRIDE;
    
    private:
        void updateRect();
    
    private:
        QRectF m_rect;
        mutable QRectF m_boundingRect;
    
        // 缩放比例
        double m_dScale;
    
        // 左眼、右眼、嘴的中点
        QPointF m_leftEyeCenter;
        QPointF m_rightEyecenter;
        QPointF m_smileCenter;
    
        // 眼睛的宽度、高度
        double m_dEyeWidth;
        double m_dEyeHeight;
    
        // 眼球宽度(高和宽相同)
        double m_dEyeBallWidth;
    
        // 嘴的高度、宽度
        double m_dSmileWidth;
        double m_dSmileHeight;
    };
    
    inline void SmileItem::setRect(qreal ax, qreal ay, qreal w, qreal h)
    {
        setRect(QRectF(ax, ay, w, h));
    }
    
    #endif  //SMILE_ITEM_H

    除了上述必须实现的两个函数之外,我们还提供一些额外的接口,例如:setRect() 来更改 item 的大小,在更新大小之后,则会调用 updateRect() 来重新计算笑脸中各个部位的坐标、大小。

    SmileItem.cpp:

    #include <QPainter>
    #include "SmileItem.h"
    
    SmileItem::SmileItem(QGraphicsItem *parent)
        : QGraphicsItem(parent)
    {
        setRect(QRect(-50, -50, 100, 100));
    }
    
    SmileItem::SmileItem(const QRectF &rect, QGraphicsItem *parent)
        : QGraphicsItem(parent)
    {
        setRect(rect);
    }
    
    SmileItem::SmileItem(qreal x, qreal y, qreal w, qreal h, QGraphicsItem *parent)
        : QGraphicsItem(parent)
    {
        setRect(x, y, w, h);
    }
    
    SmileItem::~SmileItem()
    {
    }
    
    QRectF SmileItem::rect() const
    {
        return m_rect;
    }
    
    void SmileItem::setRect(const QRectF &rect)
    {
        if (m_rect == rect)
            return;
    
        prepareGeometryChange();
        m_rect = rect;
        m_boundingRect = QRectF();
        updateRect();
        update();
    }
    
    QRectF SmileItem::boundingRect() const
    {
        if (m_boundingRect.isNull())
            m_boundingRect = m_rect;
    
        return m_boundingRect;
    }
    
    void SmileItem::updateRect()
    {
        // 缩放比例
        m_dScale = m_rect.width() / 100.0;
    
        // 左眼的中点
        m_leftEyeCenter.setX(-15 * m_dScale);
        m_leftEyeCenter.setY(- 25 * m_dScale);
    
        // 右眼的中点
        m_rightEyecenter.setX(15 * m_dScale);
        m_rightEyecenter.setY(- 25 * m_dScale);
    
        // 嘴的中点
        m_smileCenter.setX(0);
        m_smileCenter.setY(10 * m_dScale);
    
        // 眼睛的宽度、高度(宽度的 2 倍)
        m_dEyeWidth = m_rect.width() / (100.0 / 12);
        m_dEyeHeight = m_dEyeWidth * 2;
    
        // 眼球为眼睛大小的 1/4
        m_dEyeBallWidth = m_dEyeWidth / 4;
    
        // 嘴的高度、宽度
        m_dSmileWidth = m_rect.width() / (100.0 / 66);
        m_dSmileHeight = m_rect.height() / (100.0 / 50);
    }
    
    void SmileItem::paint(QPainter *painter, const QStyleOptionGraphicsItem *option, QWidget *widget)
    {
        Q_UNUSED(option);
        Q_UNUSED(widget);
    
        // 反走样
        painter->setRenderHint(QPainter::Antialiasing, true);
    
        // 脸
        painter->setPen(Qt::NoPen);
        painter->setBrush(Qt::yellow);
        painter->drawEllipse(m_rect);
    
        // 左眼
        painter->setPen(QPen(Qt::black));
        painter->setBrush(Qt::white);
        painter->drawEllipse(QRectF(m_leftEyeCenter.x() - m_dEyeWidth / 2, m_leftEyeCenter.y() - m_dEyeHeight / 2, m_dEyeWidth, m_dEyeHeight));
    
        // 左眼球
        painter->setPen(QPen(Qt::black));
        painter->setBrush(Qt::black);
        painter->drawEllipse(QRectF(m_leftEyeCenter.x() - m_dEyeBallWidth / 2, m_leftEyeCenter.y() - m_dEyeBallWidth / 2, m_dEyeBallWidth / 2, m_dEyeBallWidth / 2));
    
        // 右眼
        painter->setPen(QPen(Qt::black));
        painter->setBrush(Qt::white);
        painter->drawEllipse(QRectF(m_rightEyecenter.x() - m_dEyeWidth / 2, m_rightEyecenter.y() - m_dEyeHeight / 2, m_dEyeWidth, m_dEyeHeight));
    
        // 右眼球
        painter->setPen(QPen(Qt::black));
        painter->setBrush(Qt::black);
        painter->drawEllipse(QRectF(m_rightEyecenter.x() - m_dEyeBallWidth / 2, m_rightEyecenter.y() - m_dEyeBallWidth / 2, m_dEyeBallWidth / 2, m_dEyeBallWidth / 2));
    
        // 嘴 - 笑容
        painter->setPen(QPen(Qt::red));
        painter->setBrush(Qt::NoBrush);
    
        QPainterPath path;
        path.arcMoveTo(QRectF(- m_dSmileWidth / 2, - (m_dSmileHeight / 2 - m_smileCenter.y()), m_dSmileWidth, m_dSmileHeight), 0);
        path.arcTo(QRectF(- m_dSmileWidth / 2, - (m_dSmileHeight / 2 - m_smileCenter.y()), m_dSmileWidth, m_dSmileHeight), 0, -180);
        painter->drawPath(path);
    }

    正如 setRect(),无论以任何方式更改 item 的几何形状,必须首先调用prepareGeometryChange(),以保证 QGraphicsScene 中的索引是最新的。

    为了实现大小的自适应,在 updateRect() 中实现了坐标、大小的换算。并通过调用 update() 重新对 item 进行绘制。

    然后就可以使用了:

    // 定义笑脸
    SmileItem *pItem = new SmileItem();
    pItem->setRect(QRect(-25, -25, 50, 50));
    pItem->setPos(10, 50);
    
    SmileItem *pItem2 = new SmileItem();
    pItem2->setRect(QRect(-50, -50, 100, 100));
    pItem2->setPos(100, 50);
    
    SmileItem *pItem3 = new SmileItem();
    pItem3->setRect(QRect(-75, -75, 150, 150));
    pItem3->setPos(250, 50);
    
    // 将笑脸添加至场景中
    QGraphicsScene *pScene = new QGraphicsScene();
    pScene->addItem(pItem);
    pScene->addItem(pItem2);
    pScene->addItem(pItem3);
    
    // 为视图设置场景
    QGraphicsView *pView = new QGraphicsView();
    pView->setScene(pScene);
    pView->setStyleSheet("border:none; background:transparent;");
    
    pView->show();

    首先,构造三个不同大小的笑脸,并调用 setPos() 设置它们的位置。然后通过 QGraphicsScene::addItem() 将笑脸添加至场景中。最后,调用 QGraphicsView::setScene() 为视图设置场景,并显示视图。

    展开全文
  • QGraphicsItem

    千次阅读 2016-05-11 02:49:53
    enum QGraphicsItem::CacheMode QGraphicsItem::NoCache 禁用缓存 QGraphicsItem::ItemCoordinateCache 逻辑坐标缓存?逻辑缓存? QGraphicsItem::DeviceCoordinateCache 物理坐标缓存?物理缓存? enum ...

    Public Types

    enum QGraphicsItem::CacheMode

    QGraphicsItem::NoCache
    禁用缓存

    QGraphicsItem::ItemCoordinateCache

    缓存能够用于元素的逻辑坐标系统,QGraphicsItem用一个可配置的大小/解决方案建立了屏幕以外的像素缓冲区,追求质量会典型地降低,取决于缓冲的分辨率和元素变换,可以调用setCacheMode()再次调整缓存的分辨率


    QGraphicsItem::DeviceCoordinateCache
    缓存能够用于设备的逻辑坐标系统,这种模式可以移动元素,但不可以旋转,缩放或剪切,总是显示最好的画质


    enum QGraphicsItem::GraphicsItemChange

    QGraphicsItem::ItemEnabledChange
    项目启用状态更改,可以从itemChanged()返回新的状态

    QGraphicsItem::ItemEnabledHasChanged
    项目启用状态更改,itemChange将忽略该返回值

    QGraphicsItem::ItemMatrixChange
    项目矩阵旋转

    QGraphicsItem::ItemPositionChange
    项目位置变化,如果是ItemSendsGeometryChanges发送,可以调用pos()得到原来的位置,
    调用itemChange()后QGraphicsItem将会立即发送ItemPositionHasChanged,得到变化后的位置

    QGraphicsItem::ItemPositionHasChanged
    项目位置发生变化,pos()获得当前位置,QGraphicsItem忽略该消息的返回值

    QGraphicsItem::ItemTransformChange
    项目变换矩阵变化,如果是ItemSendsGeometryChanges发送,transform返回以前的矩阵,可以从ItemChange获得变换后的矩阵,如果更改了转换属性,该信号将不会发送

    QGraphicsItem::ItemTransformHasChanged
    项目变换矩阵变化,可能是setTransform或转换特性的改变,如果是ItemSendsGeometryChanges发送,transform和QGraphicsItem忽略该消息的返回值

    QGraphicsItem::ItemRotationChange
    项目旋转属性更改,如果是ItemSendsGeometryChanges发送,rotation返回以前的旋转,从itemChange得到新的矩阵

    QGraphicsItem::ItemRotationHasChanged
    项目旋转属性更改,如果是ItemSendsGeometryChanges发送,QGraphicsItem将忽略该消息的返回值

    QGraphicsItem::ItemScaleChange
    项目比例发生变化,scale获得以前的比例,itemChange返回当前尺寸

    QGraphicsItem::ItemScaleHasChanged
    项目比例发生变化,如果是ItemSendsGeometryChanges发送,QGraphicsItem将忽略该消息的返回值

    QGraphicsItem::ItemTransformOriginPointChange
    项目变换原点坐标改变,如果是ItemSendsGeometryChanges发送,transformOriginPoint获得以前的坐标,itemChange获得当前坐标

    QGraphicsItem::ItemTransformOriginPointHasChanged
    项目变换原点坐标改变,如果是ItemSendsGeometryChanges发送,QGraphicsItem将忽略该消息的返回值

    QGraphicsItem::ItemSelectedChange

    项目选定状态改变,如果该项目当前是选定的,它将会选择。 itemChange返回新的选中状态


    QGraphicsItem::ItemSelectedHasChanged
    项目选定状态改变,itemChange忽略返回值

    QGraphicsItem::ItemVisibleChange
    项目可见状态改变,itemChage返回新的可见状态


    QGraphicsItem::ItemVisibleHasChanged
    项目可见状态改变,itemChange忽略返回值


    QGraphicsItem::ItemParentChange
    项目父项改变,itemChage返回新的可见状态


    QGraphicsItem::ItemParentHasChanged
    项目父项改变,itemChange忽略返回值

    QGraphicsItem::ItemChildAddedChange
    添加了一个子项,返回值未使用,新的子项可能无法完全构造,纯虚函数会导致崩溃

    QGraphicsItem::ItemChildRemovedChange
    移除一个子项,返回值未使用

    QGraphicsItem::ItemSceneChange
    项目被移动到新的场景,当该项目被删除时scene是老场景或者一个空指针,itemChange返回新场景

    QGraphicsItem::ItemSceneHasChanged
    项目被移动到新的场景,返回值被忽略

    QGraphicsItem::ItemCursorChange
    项目光标改变,itemChange返回新光标

    QGraphicsItem::ItemCursorHasChanged
    项目光标改变,返回值被忽略

    QGraphicsItem::ItemToolTipChange
    项目提示改变,itemChange返回新提示

    QGraphicsItem::ItemToolTipHasChanged
    项目提示改变,返回值被忽略

    QGraphicsItem::ItemFlagsChange
    项目焦点改变,itemChange返回新焦点

    QGraphicsItem::ItemFlagsHaveChanged
    项目焦点改变,返回值被忽略

    QGraphicsItem::ItemZValueChange
    项目Z值改变,itemChange返回新Z值

    QGraphicsItem::ItemZValueHasChanged
    项目Z值改变,返回值被忽略

    QGraphicsItem::ItemOpacityChange
    项目透明度改变,itemChange返回透明度

    QGraphicsItem::ItemOpacityHasChanged
    项目透明度改变,返回值被忽略

    QGraphicsItem::ItemScenePositionHasChanged
    项目场景位置发生变化,如果是ItemSendsScenePositionChanges发出,QGraphicsItem忽略该消息的返回值



    enum QGraphicsItem::GraphicsItemFlag

    QGraphicsItem::ItemIsMovable
    项目可以通过点击和拖动移动(递归子项)

    QGraphicsItem::ItemIsSelectable
    项目可以通过点击,框选拖动或者在QGraphicsScene::setSelectionArea()调用所影响的区域内被选中

    QGraphicsItem::ItemIsFocusable
    项目支持键盘按下事件

    QGraphicsItem::ItemClipsToShape
    按自己的形状剪切,不管如何绘制,也不能接收在它形状之外的事件

    QGraphicsItem::ItemClipsChildrenToShape
    项目按照自己的形状剪切它的所有子项,【递归】

    QGraphicsItem::ItemIgnoresTransformations
    忽略应用到它的父项的变换(位置与父项关联)

    QGraphicsItem::ItemIgnoresParentOpacity
    忽略父项透明度

    QGraphicsItem::ItemDoesntPropagateOpacityToChildren
    透明度不影响子项

    QGraphicsItem::ItemStacksBehindParent
    堆叠到父项后面

    QGraphicsItem::ItemUsesExtendedStyleOption
    为项提供额外的QStyleOptionGraphicsItem属性

    QGraphicsItem::ItemHasNoContents
    项目不绘制任何内容

    QGraphicsItem::ItemSendsGeometryChanges
    项目位置或变换发生改变时调用itemChange

    QGraphicsItem::ItemAcceptsInputMethod
    项目接受输入法

    QGraphicsItem::ItemNegativeZStacksBehindParent
    如果Z值是负的,自动放在父项后方

    QGraphicsItem::ItemIsPanel
    该项目是一个面板,提供了激活和焦点处理,只有一个面板可以处于活动状态

    QGraphicsItem::ItemSendsScenePositionChanges
    项目在位置变化发生时调用itemChange()

    QGraphicsItem::ItemContainsChildrenInShape
    显示所有项目的直接或间接的子项只在项目的形状中绘制,默认情况下禁用


    enum QGraphicsItem::PanelModality


    QGraphicsItem::NonModal
    该面板是不是模态,并不会阻止输入到其他面板。这是面板的默认值。

    QGraphicsItem::PanelModal
    面板模型?

    QGraphicsItem::SceneModal

    窗口是模态的,整个场景和块输入到所有面板。


    public Functions


    boundingRect() const = 0

    这是个纯虚函数,定义了边界矩形尺寸


    paint(QPainter *painter, const QStyleOptionGraphicsItem *option, QWidget *widget = Q_NULLPTR) = 0
    这是个纯虚函数,指定了在边界矩形内如何绘画

    class SimpleItem : public QGraphicsItem
    {
    public:
        QRectF boundingRect() const
        {
            qreal penWidth = 1;
            return QRectF(-10 - penWidth / 2, -10 - penWidth / 2,
                          20 + penWidth, 20 + penWidth);
        }
        
        void paint(QPainter *painter, const QStyleOptionGraphicsItem *option,
                   QWidget *widget)
        {
            painter->drawRoundedRect(-10, -10, 20, 20, 5, 5);
        }
    };

    boundingRegion(const QTransform &itemToDeviceTransform) const
    返回该item的轮廓区域,返回的区域的坐标系统依赖于参数itemToDeviceTransform
    如果你传递一个Qtransform对象作为参数,那么函数将返回本地坐标系统区域
    返回的区域是item内容可见的一个大概的轮廓,尽管计算起来很浪费空间和时间
    但是比boundingRect()更精准,而且当重绘时候,它还能避免不必要的重绘
    对像线或者简单的多边形来说非常有效

    childItems() const
    返回孩子item的一个链表,这些items按照栈顺序排列,考虑了item的插入顺序和Z-values

    childrenBoundingRect() const
    返回这个item的所有子孙items的本地坐标系统轮廓矩形。这个矩形包括了这个item所有的子孙item,如果这个item不含有子孙item,这个函数将返回一个空的矩形。

    clearFocus()
    去除item的光标,如果原来有光标焦点,当焦点失去时候,事件focus out event会发送给这个item,提示他将会失去焦点。

    clipPath() const
    返回此项目的裁剪路径

    collidesWithItem(const QGraphicsItem *other, Qt::ItemSelectionMode mode = Qt::IntersectsItemShape) const
    如果这个item和另一个item碰撞就返回真,mode是应用于其他item的,默认是Qt::IntersectsItemShape,如果其他的item和这个item相互影响或者包含,被包含于这个item的形状(详见Qt::ItemSelectionMode)
    默认的函数是基于外形相互影响,它调用两个item的shape()函数,这将会花费很大时间,你可以在QgraphicsItem子类中重写这个函数,提供一个简单的算法。这样你可以使用自己item的一些参数,这样可以提高碰撞侦测的效果。例如,两个完全没有转换的圆item的碰撞可以通过对比他们的圆心位置和半径

    collidesWithPath(const QPainterPath &path, Qt::ItemSelectionMode mode = Qt::IntersectsItemShape) const
    如果item按照path碰撞就返回真

    collidingItems(Qt::ItemSelectionMode mode = Qt::IntersectsItemShape) const
    返回碰撞列表,碰撞模式取决于mode

    commonAncestorItem(const QGraphicsItem *other) const
    返回item最近的祖先item,如果other为0,或者没有祖先item,就返回0

    contains(const QPointF &point) const
    如果item包含了点point就返回TRUE,否则返回FALSE,最常用的是在QgraphicsView中调用,来判断这个item是否在光标下面,如果要重写这个函数,那就尽可能的简单。默认的这个函数调用的shape()函数

    deviceTransform(const QTransform &viewportTransform) const
    返回item设备的转换矩阵,使用viewportTransform来从场景到设备影射坐标,这个矩阵可以用来从这个item本地坐标到视图口坐标系统映射坐标或者几何图形,如果要映射视图口坐标到本地坐标,首先应该转换返回的这个矩阵。

    effectiveOpacity() const
    返回item的有效透明度,这个数值在0.0~~1.0之间

    ensureVisible(const QRectF &rect = QRectF(), int xmargin = 50, int ymargin = 50)
    如果项目是场景,项目将会检查鼠标是否处在可见区域的外面并且根据检查的结果移动滚动文本区域

    focusItem() const
    如果子项具有获得焦点,将返回该项指针,否则返回0

    grabKeyboard()
    项目接收键盘事件,直到该项目不可见,从场景移除或删除该项

    grabMouse()
    项目接收鼠标事件,直到该项目不可见,从场景移除或删除该项

    hasCursor() const
    如果该项有一个光标设置返回真,否则为假,默认为假,cursor()返回标准的箭头光标

    hasFocus() const
    项目是活动的,返回真,否则为假

    hide()
    隐藏项目

    installSceneEventFilter(QGraphicsItem *filterItem)
    安装场景事件过滤器

    isAncestorOf(const QGraphicsItem *child) const
    如果项目有子项,返回真

    isBlockedByModalPanel(QGraphicsItem **blockingPanel = Q_NULLPTR) const
    如果项目被模态窗口阻挡,返回真

    isClipped() const
    如果项目被裁剪,返回真

    isObscured(const QRectF &rect = QRectF()) const
    如果被任何碰撞项上面的不透明的形状完全遮蔽该项,返回true

    isObscuredBy(const QGraphicsItem *item) const
    如果这个项目的包围矩形被项目的不透明的形状完全遮蔽,返回true

    isPanel() const
    如果项目是一个面板,返回真

    isUnderMouse() const
    如果光标在项目上,返回真

    isVisibleTo(const QGraphicsItem *parent) const
    如果项目是可见的,返回真

    isWidget() const
    如果项目是控件,返回真

    isWindow() const
    如果项目是QGraphicsWidget,返回真

    itemTransform(const QGraphicsItem *other, bool *ok = Q_NULLPTR) const
    返回QTarnsForm式地图坐标

    mapFromItem(const QGraphicsItem *item, qreal x, qreal y, qreal w, qreal h) const
    项目坐标转换,返回映射的坐标,如果item是0,那么返回和mapFromScene()一样

    mapFromParent(qreal x, qreal y, qreal w, qreal h) const
    这是个父坐标系统转换,返回映射的坐标

    mapFromScene(qreal x, qreal y, qreal w, qreal h) const
    转换为场景坐标系统,返回映射的坐标

    mapRectFromItem(const QGraphicsItem *item, qreal x, qreal y, qreal w, qreal h) const
    转换为项目矩形坐标,返回映射的矩形

    mapRectFromParent(qreal x, qreal y, qreal w, qreal h) const
    转换为父项目坐标系统,返回映射的矩形

    mapRectFromScene(qreal x, qreal y, qreal w, qreal h) const
    转换为场景坐标,返回映射的矩形

    mapRectToItem(const QGraphicsItem *item, qreal x, qreal y, qreal w, qreal h) const
    转换为项目矩形坐标,返回映射的矩形,如果项目是0,这个函数返回的是mapFromScene()相同

    mapRectToParent(qreal x, qreal y, qreal w, qreal h) const
    转换为父项目坐标系统,返回映射的矩形

    mapRectToScene(qreal x, qreal y, qreal w, qreal h) const
    转换为场景坐标,返回映射的矩形

    mapToItem(const QGraphicsItem *item, qreal x, qreal y, qreal w, qreal h) const
    转换为项目坐标,返回映射的坐标

    mapToParent(qreal x, qreal y, qreal w, qreal h) const
    转换为父项坐标,返回映射的坐标

    mapToScene(qreal x, qreal y, qreal w, qreal h) const
    转换为场景坐标,返回映射的坐标

    moveBy(qreal dx, qreal dy)
    相对移动

    opaqueArea() const
    返回不透明形状区域,默认将返回一个空QPainterPath

    panel() const
    如果该项是面板,返回自身,否则如果父项是面板将返回父项,否则返回0

    parentObject() const
    如果父项不是QGraphicsObject,返回0,否则返回父项

    parentWidget() const
    返回父项控件

    removeSceneEventFilter(QGraphicsItem *filterItem)
    移除场景事件过滤器

    resetTransform()
    重置变换矩阵

    rotation() const
    返回顺时针旋转角度

    scene() const
    返回项目的当前场景

    sceneBoundingRect() const
    返回项目的场景的矩形

    scenePos() const
    返回项目在场景的位置

    sceneTransform() const
    返回这个项目的场景转换矩阵

    scroll(qreal dx, qreal dy, const QRectF &rect = QRectF())
    滚动项目,滚动比重绘快

    setAcceptDrops(bool on)
    设置接受拖放

    setAcceptHoverEvents(bool enabled)
    设置接受悬停事件

    setAcceptTouchEvents(bool enabled)
    设置接受触摸事件

    setAcceptedMouseButtons(Qt::MouseButtons buttons)
    设置该项目接受鼠标事件的鼠标按钮

    setActive(bool active)
    设置项目是否活动

    setBoundingRegionGranularity(qreal granularity)
    调节轮廓区域的粒度,默认的粒度是0,这时候item的区域和轮廓矩形一样的

    setCacheMode(CacheMode mode, const QSize &logicalCacheSize = QSize())
    设置缓存模式

    setCursor(const QCursor &cursor)
    设置光标形状

    setData(int key, const QVariant &value)
    设置自定义数据

    setEnabled(bool enabled)
    设置启用项目

    setFiltersChildEvents(bool enabled)
    设置过滤子项事件

    setFlag(GraphicsItemFlag flag, bool enabled = true)
    设置标志

    setFlags(GraphicsItemFlags flags)
    设置所有标志

    setFocus(Qt::FocusReason focusReason = Qt::OtherFocusReason)
    设置焦点

    setFocusProxy(QGraphicsItem *item)
    将该项目设置为焦点代理

    setGraphicsEffect(QGraphicsEffect *effect)
    设置效果

    setGroup(QGraphicsItemGroup *group)
    设置项目组

    setInputMethodHints(Qt::InputMethodHints hints)
    设置此项当前输入方法提示

    setOpacity(qreal opacity)
    设置不透明度

    setPanelModality(PanelModality panelModality)
    设置面板模式

    setParentItem(QGraphicsItem *newParent)
    设置父项

    setPos(const QPointF &pos)
    设置位置

    setRotation(qreal angle)
    设置旋转角度

    setScale(qreal factor)
    设置场景

    setSelected(bool selected)
    设置选择

    setToolTip(const QString &toolTip)
    设置提示

    setTransform(const QTransform &matrix, bool combine = false)
    设置变换

    setTransformOriginPoint(qreal x, qreal y)
    设置变换原点

    setTransformations(const QList<QGraphicsTransform *> &transformations)
    设置旋转列表

    setVisible(bool visible)
    设置可见

    setX(qreal x)
    setY(qreal y)
    设置坐标

    setZValue(qreal z)
    设置Z值

    shape() const
    返回形状,用于碰撞检测,命中测试等,默认返回矩形

    show()
    显示

    stackBefore(const QGraphicsItem *sibling)
    堆叠兄弟项目,项目必须是兄弟项

    toGraphicsObject() const
    返回转换为QGraphicsObject,如果本来是图像对象,返回0


    topLevelItem() const
    返回顶级项目,如果没有父项,返回自己

    topLevelWidget() const
    返回一个指向该项目的顶级控件,如果祖先不是控件,返回0,如果没有顶级控件,返回自己

    type() const
    返回类型

    ungrabKeyboard()
    释放键盘事件

    ungrabMouse()
    释放鼠标事件

    unsetCursor()
    从项目中清楚光标

    update(const QRectF &rect = QRectF())
    更新

    window() const
    返回项目的窗口,或0


    Static Public Members

    Type
    重载设置项目类型

    UserType

    最低项目类型值


    Protected Functions


    contextMenuEvent(QGraphicsSceneContextMenuEvent *event)
    上下文菜单事件

    dragEnterEvent(QGraphicsSceneDragDropEvent *event)
    拖拽输入事件

    dragLeaveEvent(QGraphicsSceneDragDropEvent *event)
    拖拽离开事件


    dragMoveEvent(QGraphicsSceneDragDropEvent *event)
    拖拽移动事件

    dropEvent(QGraphicsSceneDragDropEvent *event)
    拖拽事件

    focusInEvent(QFocusEvent *event)
    焦点事件

    focusOutEvent(QFocusEvent *event)
    取消焦点事件

    hoverEnterEvent(QGraphicsSceneHoverEvent *event)
    悬停进入事件

    hoverLeaveEvent(QGraphicsSceneHoverEvent *event)
    悬停离开事件

    hoverMoveEvent(QGraphicsSceneHoverEvent *event)
    悬停移动事件

    inputMethodEvent(QInputMethodEvent *event)
    输入法事件

    inputMethodQuery(Qt::InputMethodQuery query) const
    输入法查询事件

    itemChange(GraphicsItemChange change, const QVariant &value)
    项目改变

    keyPressEvent(QKeyEvent *event)
    按下按键

    keyReleaseEvent(QKeyEvent *event)
    释放按键

    mouseDoubleClickEvent(QGraphicsSceneMouseEvent *event)
    双击事件

    mouseMoveEvent(QGraphicsSceneMouseEvent *event)
    鼠标移动事件


    mousePressEvent(QGraphicsSceneMouseEvent *event)
    鼠标单击事件


    mouseReleaseEvent(QGraphicsSceneMouseEvent *event)
    鼠标是否事件

    prepareGeometryChange()
    改变包围矩形

    sceneEvent(QEvent *event)
    场景事件

    sceneEventFilter(QGraphicsItem *watched, QEvent *event)
    场景事件过滤

    updateMicroFocus()
    焦点更新

    wheelEvent(QGraphicsSceneWheelEvent *event)
    滚轮事件

    qgraphicsitem_cast(QGraphicsItem *item)
    返回给定项目类型





    英语渣渣必有错误,如有发现,欢迎留言

    展开全文
  • QTableWidgetItem

    千次阅读 2017-11-03 15:30:22
    The QTableWidgetItem class provides an item for use with theQTableWidget class.表项(Table items)被用来为表格(table widget)保存不同片段的信息。项(Items)通常包含有文本(text),图标(icons),多选按钮...

    The QTableWidgetItem class provides an item for use with theQTableWidget class.


    表项(Table items)被用来为表格(table widget)保存不同片段的信息。项(Items)通常包含有文本(text),图标(icons),多选按钮(checkboxes)。


    QTableWidgetItem类是在Qt 3中替换QTableItem类的一个方便类。它提供了一个用于QTableWidget类的项(a item)。


    (top-level)顶级的项(items)是在没有父类的情况下创建的,然后通过一对值row和column,将创建的项插入到指定的位置.

    QTableWidgetItem *newItem = new QTableWidgetItem(tr("%1").arg(pow(row,column+1)));
    tableWidget->setItem(row,column.newItem);

    每一个创建的项(item)都可以通过函数setBackground()设置属于自己的背景刷(background brush)。设置的背景属性,可以通过函数background()得到。
    每一个项的文本标签(text label)也可以设置自己的字体(font)和刷子(brush),通过函数setFontsetForeground()设置属性,通过函数font()foreground()获取属性。


    默认情况下,items的属性是激活的(enabled),items可以被编辑(editable),可以被选择(selectable),可校验(checkable),并且可以作为拖动操作的来源,和拖动操作的释放目标。
    每一个项的标识(flag)都可以通过给函数setFlag()适当的参数改变。校验(checkable)属性可以通过setCheckState()操作。对应的checkState()函数指示当前检查的项的状态。

    展开全文
  • RecyclerView 获取item,删除item的坑

    千次阅读 2017-03-07 15:11:32
    场景:点击子布局中的imageview替换其图片,可以对imageview进行点击事件...获取item自定义ViewHolderpublic class ViewHolder extends RecyclerView.ViewHolder { private Context mContext; private View mItemV
  • recycleView实现item点击更改该item颜色,其它item颜色变回项目中需要横向滚动效果,按照以前的思路,我会写一个ScrollView,里边加一个LinearLayout,在代码中动态加入控件,然后动态删除或者改变颜色,现在android...
  • 常见的 QGraphicsItem

    万次阅读 多人点赞 2016-11-07 19:47:51
    简述QGraphicsItem 类是 QGraphicsScene 中所有 item(图元)的基类。它提供了一个轻量级的基础,用于编写自己的自定义 item。其中包括:定义 item 的几何形状、碰撞检测、绘制实现、以及通过其事件处理程序进行 ...
  • Teamcenter Item

    千次阅读 2015-06-25 17:18:22
    Teamcenter中Item通常用来存储制造数据,如总装配、零件、子装配、成品以及工具、工装等,这些数据包含了3D模型、2D图纸以及物料清单等。 刚接触这个概念的人可能理解不了,你可以这样理解: 1、Item就是一个包,...
  • 如上面这个界面 ,添加一个自定义 item(第一行) 1. 自定义item  // 在item中添加一个lable 和 按钮 QWidget *widget1 = new QWidget(ui-&gt;listWidget); QHBoxLayout *layout = new QHBoxLayout(widget1); ...
  • QGraphicsItem 分组

    千次阅读 2016-12-07 21:22:08
    QGraphicsItem 支持很多特性,例如:鼠标、键盘事件、拖放、分组、碰撞检测等。通常在演示工具中使用分组,当用户想要将多个较小的 items 组合成一个大的 item 时,以简化 items 的移动和复制。
  • python的item和pytorch的item

    千次阅读 2019-05-09 09:56:49
    python的.item()用于将字典中每对key和value组成一个元组,并把这些元组放在列表中返回 例如 person={‘name’:‘lizhong’,‘age’:‘26’,‘city’:‘BeiJing’,‘blog’:‘www.jb51.net’} for key,value in ...
  • 基于Item Template,导入Item数据

    千次阅读 2012-07-16 14:02:53
    基于Item Template,导入Item数据1.查找到TEMPLATE_IDSELECT * FROM MTL_ITEM_TEMPLATES_B b,MTL_ITEM_TEMPLATES_TL tl WHERE b.TEMPLATE_ID = tl.TEMPLATE_ID AND tl.TEMPLATE_NAME LIKE 'Purchased Item%';2.基于...
  • Android中ListView组件的Item拖动(Item改变顺序)

    万次阅读 热门讨论 2011-04-25 18:30:00
    Android中ListView组件的Item拖动实现。
  • 自定义QGraphicsItem

    千次阅读 2019-07-04 09:04:35
    QGraphicsItem 是场景中 item 的基类。图形视图提供了一些典型形状的标准 item,例如:矩形 ( QGraphicsRectItem )、椭圆 ( QGraphicsEllipseItem ) 、文本项 ( QGraphicsTextItem )。当这些不满足需求时(例如:...
  • 1.recyclerview item内部控件没有点击事件 在recyclerview item内部控件不存在点击事件的情况下。...//为item添加触摸事件监听OnItemTouchListener 的相应定义/**处理类*/ private class ItemTouchHelper
  • Item Categories

    千次阅读 2013-04-15 15:32:52
    Category是把具有相似特性的物料分配到一个类别里。...The complete set up of item categories is done in below 5 steps in sequence.Related TablesMTL_CATEGORIES_B is the code combinations table for ite
  • itemAt(x,y) 是屏幕像素坐标 item(x,y)=itemAt(y*单元格高,x*单元格宽) 原文地址:item文本和判断item是否为空" style="text-decoration:none; color:rgb(9,67,130)">关于获取QTableWidget item文本和判断...
  • 使用item获取item所在的文件夹(folder)

    千次阅读 2014-03-10 18:19:23
    这个方法通过item的url属性,获取item所在的文件夹对象: public static SPFolder GetFolderByItem(SPListItem item) { SPFolder folder = null; if (item != null && item.Folder != null) //如
  • 现在要做一个需要在父item上添加控制点(子item)来调整父item形状的功能。 关键是子item移动之后,要把自己的位置信息交给父item,让父item更新自己的形状。 查看了很久Qt的document,需要在父ITEM中用...
  • Adapter:自定义一个继承RecyclerView.Adapter的适配器,作用:将数据与每一个item绑定 LayoutManager:布局管理器,确定每一个item的摆放形式,展示和隐藏 a: LinearLayoutManager :垂直或水平滚动列表样式显示...
  • 昨天接到个需求,要求功能列表的Item点击后(即选中后)要变大(像智能电视选中那样)。突出选中效果。 一开始打算用动态布局来实现。尝试了一番,不行。没有效果。 随即Google,百度一顿操作,发现基本全是自定义...
  • itemCF算法

    千次阅读 2019-02-15 13:55:53
    什么是itemCF算法? itemCF:ItemCollaborationFilter,基于物品的协同过滤   算法的核心思想:给用户推荐那些和他们之前喜欢的物品相似的物品   那么如何判断物品的是否相似呢? 该算法认为,喜欢物品A的用户...
  • RecyclerView的ItemItem内的控件点击处理

    千次阅读 热门讨论 2017-12-01 15:55:51
    需求场景:RecyclerView的Item需要点击,或者Item中的某个控件需要点击,或者两者同时需要点击处理。 一、adapter代码如下: package com.ldw.adapter; import android.content.Context; import android....
  • 如上面这个界面 ,添加一个自定义 item(第一行) 1. 自定义item // 在item中添加一个lable 和 按钮 QWidget *widget1 = new QWidget(ui->listWidget); QHBoxLayout *layout = new QHBoxLayout(widget1); QLabel...
  • Android可拖拽的GridView,item交换动画效果

    千次下载 热门讨论 2014-05-06 13:19:56
    Android 可拖拽的GridView,item的实时交互,已经具有交换动画效果,项目详情http://blog.csdn.net/xiaanming/article/details/17718579
  • 怎么实现一个横向的ListView,每屏显示3个Item并且中间的Item放大显示?
  • QListView自定义Item

    千次阅读 2018-11-21 15:56:06
      QListWidget和QListView都能实现,先说一下两者的区别吧,QListWidget和QListView的主要区别在于QListView是基于Model,而QListWidget是基于Item,QListWidget继承于QListView。也就是说QListWidget插入数据的话...
  • 老板给布置了个任务让我爬取公司职员名单及照片,通过scrapy可以很轻易的分别完成这两样工作,然而我想要在一个scrapy项目中完成这两个项目遇到了些麻烦,一是使用imagepipeline需要额外定义item中的image_url ...

空空如也

1 2 3 4 5 ... 20
收藏数 570,474
精华内容 228,189
关键字:

item