zoukankan      html  css  js  c++  java
  • QListWidget加入小控件

    在写一个简单的文件浏览器时,遇到一个问题。想实现新建目录时能像一般的文件管理器那样,目录图标以下有一个编辑框提示用户给目录命名(例如以下图),可是不知道怎么给单元项QListWidgetItem加入QLineEdit控件。查了好久Qt帮助文档,最终发现了QListWidget::setItemWidget(),就试了一下。成功加入了,还算惬意。大家假设有更好的方法请告诉我。

    这里写图片描写叙述

    void QListWidget::setItemWidget(QListWidgetItem * item, QWidget * widget)

    设置在给定项目中显示的小部件。


    此功能仅可用于在列表小部件项目的位置显示静态内容。假设你想显示自己定义的动态内容或运行自己定义编辑器部件,使用qlistview和子类化QItemDelegate取代。
    这个功能介绍Qt 4.1。

    关键代码:

    //图片换成目录图标就能够
    int main(int argc,char* argv[])
    {
        QApplication  app(argc,argv);
    
        QListWidget  *listWidget = new QListWidget();
        listWidget->setSpacing(10);
        listWidget->setViewMode(QListView::IconMode);
        listWidget->setIconSize(QSize(100,100));
        QPixmap pix1(QString(":/list/image/1.jpg"));
        QPixmap pix2(":/list/image/2.jpg");
        QListWidgetItem *item1 = new QListWidgetItem(QIcon(pix1.scaled(QSize(100,100))),"picture1");
        QListWidgetItem *item2 = new QListWidgetItem(QIcon(pix2.scaled(QSize(100,100))),"picture2");
    
        QLineEdit*   line = new QLineEdit; //创建部件
    
    
        listWidget->addItem(item1);
        listWidget->addItem(item2);  //先加入项目   
        item1->setSizeHint(QSize(100,120));
        item2->setSizeHint(QSize(100,120));
    
        listWidget->setItemWidget(item2,line); //加入部件
    //  listWidget->removeItemWidget(item2);
        listWidget->show();
        app.exec();
        return 0;
    }
    

    这里写图片描写叙述

    void QListWidget::removeItemWidget(QListWidgetItem * item)

    用于移除加入的部件

  • 相关阅读:
    csrf攻击 xss区别
    同源策略
    JavaScript中数组的排序——sort()
    箭头函数
    bind(),call(),apply()
    异步操作
    slice(), splice(),split(),indexOf(),join(),replace()
    04-Linux系统编程-第01天(文件IO、阻塞非阻塞)
    03-Linux命令基础-第03天(makefile、静态库、动态库、gdb调试工具)
    02-Linux命令基础-第02天(压缩包管理、服务器搭建与使用、vim)
  • 原文地址:https://www.cnblogs.com/jhcelue/p/7337283.html
Copyright © 2011-2022 走看看