精华内容
下载资源
问答
  • setitem用法
    2020-07-31 13:21:14
    更多相关内容
  • vue localStorage.setItem

    2022-04-12 15:35:53
    1> sessionStorage是什么 对浏览器来说,使用 Web Storage 存储键值对比存储 Cookie 方式更直观,而且容量更大, 它包含两种: localStorage(长期存储):与 sessionStorage 一样,但是浏览器关闭... 使用方法 s.
    1> sessionStorage是什么
       对浏览器来说,使用 Web Storage 存储键值对比存储 Cookie 方式更直观,而且容量更大,
    它包含两种:
             localStorage(长期存储):与 sessionStorage 一样,但是浏览器关闭后,数据依然会一直存在
             &&
             sessionStorage(临时存储):为每一个数据源维持一个存储区域,在浏览器打开期间存在,包括页面重新加载
    
    2> 使用方法
       sessionStorage 和 localStorage 的用法基本一致,引用类型的值要转换成JSON,所以这里就只列举localStorage
    
    
    
    1 保存
    
    const info = { name:'hou', age: 24, id: '001' }
    
    const str="haha"
    
    localStorage.setItem('hou', JSON.stringify(info))
    
    localStorage.setItem('zheng', str)
    
    
    2 获取
    var data1 = JSON.parse(localStorage.getItem('hou'))
    var data2 = localStorage.getItem('zheng')
    
    3 删除
    //删除某个
    localStorage.removeItem('hou')
    //删除所有
    localStorage.clear()
    
    4 监听
    /**Storage 发生变化(增加、更新、删除)时的 触发,同一个页面发生的改变不会触发,只会监听同一域名下其他页面改变 Storage */
    
    window.addEventListener('storage', function (e) {
    console.log('key', e.key); console.log('oldValue', e.oldValue);
    console.log('newValue', e.newValue); console.log('url', e.url);
    })
    

    展开全文
  • 专栏:使用PyQt开发图形界面Python应用 老猿Python博客地址 QTableWidget表格部件中setItem用于在表格部件QTableWidget创建后,设定指定行和指定列的项为一个QTableWidgetItem实例对象。调用语法如下: setItem(int...

    QTableWidget表格部件中setItem用于在表格部件QTableWidget创建后,设定指定行和指定列的项为一个QTableWidgetItem实例对象。调用语法如下:
    setItem(int row, int column, QTableWidgetItem item)

    注意:
    • 该方法没有返回值,但会触发itemChanged信号
    • 在使用setItem之前,需要确保表格部件的行数和列数已经设置,且参数 row和column在行数和列数的范围内,否则设置不会成功,这也意味着表格部件的行数和列数不能随着项的增加自动增加,必须预定义好
    示例代码:
            for row in range(5):
                for col in range(3):
                    item = QtWidgets.QTableWidgetItem(f"({row},{col})" )
    
                    self.tableWidget.setItem(row,col,item)
    

    老猿Python,跟老猿学Python!

    展开全文
  • } ListWidget::~ListWidget() { } //添加item代码 m_model->setItem(0,0,new QStandardItem(QString::number(it.key()))); m_model->item(0,0)->setTextAlignment(Qt::AlignHCenter|Qt::AlignVCenter); 利用qt本身...

    自己用QTableWidget来记录实时数据时,出现该问题,百度之后发现是因为在最初设置行数处(setRowCount()),设置的行宽不够,在对数据测试时,数据超出了设置行数,在调用相关setText()时,出现空指针导致程序崩掉。网上现存的解决方案中,是对该指针以及后续text进行空指判断,个人觉得这种实现方式治标不治本,所以本文会给出两种该bug的解决方式,以供参考。

     

    空值判断

    // 判断指向该item的指针是否为空 || 判断该item的text是否为空
    if(ui->tableWidget_bsdl->item(i,j)==nullptr || ui->tableWidget_bsdl->item(i,j)->text().isEmpty())  
    {    
    }
    

    该操作原理,可以参考这位博主的文章,讲得十分详细。

    解释:
    (1)因为C++逻辑或和逻辑与采用短路求值策略:对于逻辑或运算,当且仅当左侧运算对象为假时,才对右侧运算对象求值。
    (2)当ui->tableWidget->item(i,j)==nullptr为真时,是空指针,此时左侧运算对象为真,不会对右侧运算对象求值,即,不会用空指针去访问->text(),不会判断ui->tableWidget->item(i,j)->text()是否为空,是安全的。
    (3)当ui->tableWidget->item(i,j)==nullptr为假时,不是空指针,此时才对||的右侧运算对象求值,又因为它不是空指针,所以用它访问->text()是安全的。 

     

     动态设置最大行宽

    static int ROW_COUNT = 20;//设置行宽
    
    if(temp.count() > ROW_COUNT) //此处temp为vector,该vector存放了需要显示的数据
    {
        ROW_COUNT = temp.count();
        this->setRowCount(ROW_COUNT);
    }
    
    //do else

    获取到需要设置的行宽数据,每次保证ROW_COUNT为最大,并设置最大行宽,就不会出现空指针问题了。

     

    利用QTableView实现

    #ifndef LISTWIDGET_H
    #define LISTWIDGET_H
    #include <QTableWidget>
    #include <QTimer>
    #include <DataStructure.h>
    
    class QStandardItemModel;
    class TableView : public QTableView
    {
        Q_OBJECT
    public:
        TableView(QAbstractItemModel *model);
    protected:
        virtual void resizeEvent(QResizeEvent *event) Q_DECL_OVERRIDE;
        virtual QModelIndex moveCursor(CursorAction cursorAction, Qt::KeyboardModifiers modifiers) Q_DECL_OVERRIDE;
        void scrollTo (const QModelIndex & index, ScrollHint hint = EnsureVisible) Q_DECL_OVERRIDE;
    };
    
    
    
    class ListWidget: public QWidget
    {
        Q_OBJECT
    public:
        ListWidget(QTableWidget * parent = nullptr);
        ~ListWidget();
    
    
    private:
    
     
        TableView *m_table_view;
        QStandardItemModel *m_model;
        QStringList headers;
    
    };
    
    #endif // LISTWIDGET_H
    
    #include "ListWidget.h"
    #include <QStringList>
    #include <QTableWidgetItem>
    #include <QHBoxLayout>
    #include <QHeaderView>
    #include <QFont>
    #include <QDebug>
    #include <QStandardItemModel>
    #include <QVBoxLayout>
    #include <QScrollBar>
    
    
    TableView::TableView(QAbstractItemModel *model)
    {
        setModel(model);
        setHorizontalScrollBarPolicy(Qt::ScrollBarAsNeeded);
        setVerticalScrollBarPolicy(Qt::ScrollBarAsNeeded);
        setHorizontalScrollMode(ScrollPerPixel);
        setVerticalScrollMode(ScrollPerPixel);
        //    verticalHeader()->setDefaultSectionSize(25); //配置行宽
        horizontalHeader()->setSectionResizeMode(0,QHeaderView::ResizeToContents);//配置大小模式
        horizontalHeader()->setSectionResizeMode(1,QHeaderView::Stretch);
        horizontalHeader()->setSectionResizeMode(2,QHeaderView::Stretch);
    
        setEditTriggers(QAbstractItemView::NoEditTriggers);
        setStyleSheet("QTableView { border: none;"
                      "selection-background-color: #999}");
    }
    
    
    
    void TableView::resizeEvent(QResizeEvent *event)
    {
        QTableView::resizeEvent(event);
    }
    
    QModelIndex TableView::moveCursor(QAbstractItemView::CursorAction cursorAction, Qt::KeyboardModifiers modifiers)
    {
        QModelIndex current = QTableView::moveCursor(cursorAction, modifiers);
    
        if (cursorAction == MoveLeft && current.column() > 0
                && visualRect(current).topLeft().x() < columnWidth(3) )
        {
            const int newValue = horizontalScrollBar()->value() + visualRect(current).topLeft().x()
                    - columnWidth(0);
            horizontalScrollBar()->setValue(newValue);
        }
        if (cursorAction == MoveLeft)
        {
            const int newValue = horizontalScrollBar()->value() + visualRect(current).topLeft().x();
    
            horizontalScrollBar()->setValue(newValue);
        }
        return current;
    }
    void TableView::scrollTo(const QModelIndex &index, QAbstractItemView::ScrollHint hint)
    {
        if (index.column() >= 0)
            QTableView::scrollTo(index, hint);
    }
    
    ListWidget::ListWidget(QTableWidget *parent) :QWidget(parent)
    {
        m_model=new QStandardItemModel();
    
        headers << "ID" <<"距离"<<"角度";
    
        m_model->setHorizontalHeaderLabels(headers);
        QVBoxLayout *main_layout = new QVBoxLayout();
    
        m_table_view = new TableView(m_model);
        main_layout->addWidget(m_table_view);
        this->setLayout(main_layout);
    
    
        //    this->horizontalHeader()->setStyleSheet("QHeaderView::section{font: 15}");//设置表头背景和字体颜色
        this->setFont(QFont("黑体",8));
    
        m_timer = new QTimer(this);
        m_timer->start(500);//ms
        connect(this->m_timer,SIGNAL(timeout()),this,SLOT(clearListitem()));
    }
    
    ListWidget::~ListWidget()
    {
    
    }
    
    
    //添加item代码
    
    m_model->setItem(0,0,new QStandardItem(QString::number(it.key())));
    m_model->item(0,0)->setTextAlignment(Qt::AlignHCenter|Qt::AlignVCenter);

    利用qt本身的view-model结构来进行实现,这种实现方式,可以避免空指针的问题。

    展开全文
  • sessionStorage.setItem("sb",b1); var b2 = sessionStorage.getItem("sb"); console.log( typeof b2) //string console.log( typeof JSON.parse(b2)) // object console.log( typeof JSON.parse(b2)[2...
  • window.localStorage.setItem的理解与使用

    千次阅读 2021-05-18 15:39:29
    最近接触的一个小项目中频繁看到一个新的面孔: changeTheme () { ... window.localStorage.setItem(`${prefix}navOpenKeys`, JSON.stringify(openKeys)) dispatch({ type: 'app/handleNavOpenKeys',
  • python:__setitem__方法详解

    万次阅读 2018-08-11 18:51:05
    这个方法应该以与键相关联的方式存储值,以便之后能够使用__setitem__来获取。当然,这个对象可变时才需要实现这个方法。 class Tag: def __init__(self): self.change={'python':'This is python', '......
  • sessionStorage本地存储setItem与getItem

    万次阅读 2019-12-19 10:33:55
    sessionStorage.setItem(key, arr[i][key]);//遍历数组,然后遍历对象,设置session键:值 } } } //获取session function sessionGet(arr){ for(var i=0;i;i++){ sessionStorage.getItem(arr[i])//遍历传参的...
  • pb函数setItem()

    万次阅读 2016-03-22 16:12:13
    :integer dwcontrol.SetItem ( long row, integercolumn, any value )  integer dwcontrol.SetItem ( long row, string column, any value)  dwcontrol:要设置数据的数据窗口控件、DataStore或者子数据窗口...
  • 使用localstorage.setItem()存储对象

    万次阅读 多人点赞 2017-09-22 18:03:34
    使用localstorage.setItem()存储对象使用localstorage.setItem(name,value)存储JSON对象时会发现浏览器存储的内容为[object,object],并不是我们想要的内容,这是因为我们在存储的时候没有进行类型转换,因此我们在...
  • 1. python中当调用一个对象的 obj["name"] = "admin" 或者 obj["name"]的时候,说明该对象要么是字典,要么类中实现了__setitem__方法和__getitem__方法 2. 字典 class Foo(dict): pass foo = Foo() foo["name...
  • 城市列表(六)03-控制城市的选中操作——localStorage.setItem 存数据 & localStorage.getItem 取数据 & JSON.stringify- 转换为 JSON 字符串 & JSON.parse-转换为js对象 切换城市 北上广深有数据,...
  • sessionStorage.setItem

    千次阅读 2021-03-31 17:30:57
    记录易错细节 页面临时缓存数据 window.sessionStorage.setItem('myFlag',false) 页面取值缓存 ... 如果页面使用 v-show=‘myFlag’ 会导致数据一直渲染 原因是window.sessionStorage.getItem('myF..
  • 一分钟学会python的__setitem__方法

    千次阅读 2020-04-16 19:56:48
    在python中__setitem__(self,value,key)方法时python魔法方法的一种,这个方法会让类按照一定的方法存储和key映射的value。该值可以使用另一种魔法方法__getitem__(self,key)来获取。 使用场景:当期望定义的类具备...
  • 对原作改变了一下,在未定义子对象属性时__getitem__中使用现成的__setitem__来定义。 ## encoding:utf-8 这个类继承了object, object是Python的最小单元,可以在Python的>>>控制台用dir(objct)或者dir (__...
  • 使用self.tableWidget.setItem时在tableWidget没有显示数据 self.tableWidget.setItem(x, y, QTableWidgetItem(str(data[x][y]))) 我是因为没有设置表头,在Qt Designer中设置好表头即可
  • mui plus.storage.setItem使用注意事项

    千次阅读 2018-09-02 12:16:27
    以前页面传参都是用plus.storage.setItem的(包括数值型),没发现问题, 今天把经纬度作为参数保存时,竟然存不进去, 经过反复测试,最终发现,需要把经纬度作为字符串才能保存成功。 正确格式如下:plus....
  • 返回值: 需要返回长度的整数值 三、代码 举一个简单的例子,简单自定义一个用户列表类,为了使用索引运算符,我们重载了该类的__getitem__和__setitem__方法 class CustomList(object): def __init__(self, *args):...
  • window.localStorage.setItem使用

    千次阅读 2020-03-03 16:48:25
    最近接触的一个小项目中频繁看到一个新的面孔: changeTheme () { dispatch({ type: 'app/switchTheme' }) }, ... window.localStorage.setItem(`${prefix}navOpenKeys`, JSON.stringify(ope...
  • 3,使用方法 创建一个在整个网站上有效的Cookie Cookies.set('name', 'value'); 创建一个从现在起7天后过期的cookie,在整个站点上有效: Cookies.set('name', 'value', { expires: 7 }); 创建一个过期的cookie,...
  • window.localStorage.setItem总结

    千次阅读 2021-08-04 16:34:41
    window.localStorage.setItem(key,value);//设置指定key的数据(JSON格式) window.localStorage.getItem(key);//获取指定key的数据 window.localStorage.removeItem(key);//删除指定key的数据 window....
  • sessionStorage.setItem与getitem
  • 我是参考这个做出来的,我主要是说,这些代码写在那些部分。 我只是以字符串为例子: 在这里插入图片描述 注意看24,25行,这是件字符串保存起来,...我是写在方法里面的,只要是注意一下位置,几乎没有什么错误。 ...
  • sessionStorage 的基本用法

    万次阅读 2018-04-19 11:03:52
    setItem存储value 用途:将value存储到key字段 用法:.setItem( key, value) 代码示例: sessionStorage.setItem("key", "value"); localStorage.setItem("site", "js8.in&...
  • 做UI自动化,某些场景我们需要使用JavaScript的localStorage.setItem()写入token的值。 格式为localStorage.setItem(key,value),value的类型为字符串。 但是如果这样写: token = "eyJ0eXAiOiJKc29uV2ViVG9rZW4...
  • class data: def __init__(self): self.d = {"name": "zhangsan", "age": 18, "sex": "women"} def __len__(self): ... def __setitem__(self, key, value): self.d[key] = value # getitem def
  •  这两种方法的效率我不清楚,但是为什么推荐使用get setItem呢? 1.容易控制,便于动态绑定,尤其在函数抽离和重构中。比如我要存一个复杂类型,每次存的时候都需要做JSON.stringify(object_a),所以我把它抽成...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 37,316
精华内容 14,926
关键字:

setitem用法

友情链接: ex6_AD.rar