精华内容
下载资源
问答
  • ListView视图动态增加与删除控件条目,内容

       Listview动态增加与删除控件条目,条目内容可编辑,实现如下效果:

    1、按+则增加控件条目,按x删除控件条目

    2、编辑内容可保存,如下所示:


    从网上找到一些代码不能用或有缺陷,现在将代码整理OK如下;

    MainActivity代码(比较简单):

    package com.example.listviewasitem;
    import android.app.Activity;
    import android.os.Bundle;
    import android.view.View;
    import android.widget.AdapterView;
    import android.widget.ListView;
    import android.widget.Toast;

    public class MainActivity extends Activity {
     private ListView myList; // ListView控件
     private AddNumberBaseAdpater addNumberBaseAdpater;
     
     public void onCreate(Bundle savedInstanceState) {
      super.onCreate(savedInstanceState);
      setContentView(R.layout.activity_main);
      addNumberBaseAdpater=new AddNumberBaseAdpater(getApplicationContext());
      myList = (ListView) findViewById(R.id.listview1);
      myList.setAdapter(addNumberBaseAdpater);
      
         
       
     }
    }

    AddNumberBaseAdpater代码:

    package com.example.listviewasitem;
    import java.util.ArrayList;
    import android.content.Context;
    import android.text.Editable;
    import android.text.Selection;
    import android.text.SpannableStringBuilder;
    import android.text.TextWatcher;
    import android.util.Log;
    import android.view.LayoutInflater;
    import android.view.View;
    import android.view.ViewGroup;
    import android.widget.BaseAdapter;
    import android.widget.EditText;
    import android.widget.ImageButton;
    import android.widget.TextView;
    public class AddNumberBaseAdpater extends BaseAdapter {
     private LayoutInflater mInflater;
     private ArrayList<String> text;
     int tindex = 0;
     String temp;
     int sp;
     public AddNumberBaseAdpater(Context context) {
      text = new ArrayList<String>();
      text.add("第1个自定义控件条目");// 默认只加载1个Item
      this.mInflater = LayoutInflater.from(context);
     }
     public int getCount() {
      // TODO Auto-generated method stub
      return text.size();
     }
     public Object getItem(int position) {
      return text.get(position);
     }
     public long getItemId(int position) {
      // TODO Auto-generated method stub
      return position;
     }
     public View getView(final int position, View convertView, ViewGroup parent) {
      // TODO Auto-generated method stub
      // final ViewHolder holder = new ViewHolder();
      final ViewHolder holder;// 新建holder一定要放在if内
      if (convertView == null) {
       holder = new ViewHolder();// 新建holder一定要放在if内
       convertView = mInflater.inflate(R.layout.addnumber, null);
       holder.btnOpen = (ImageButton) convertView
         .findViewById(R.id.ibtnAddNumber);
       holder.editText = (EditText) convertView
         .findViewById(R.id.editNumber);
       convertView.setTag(holder);
      } else {
       // Log.d("getView","getView called convertView !== null ");
       holder = (ViewHolder) convertView.getTag();
      }
      //
      switch (position) {// 不要以为XML文件中是2个按钮,其实只有一个
      case 0:
       holder.btnOpen
         .setBackgroundResource(android.R.drawable.ic_input_add);// 第一项按钮则显示加号图片
       // holder.editText.setText(text.get(tindex));
       break;
      default:
       holder.btnOpen.setBackgroundResource(android.R.drawable.ic_delete);// 超过了一项则显示减号图片,可以删除
       break;
      }
      holder.editText.setText(text.get(position));
      holder.ref = position;
      // //
      //添加EditText文本输入并保存到text.
      holder.editText
        .setOnFocusChangeListener(new View.OnFocusChangeListener() {
         @Override
         public void onFocusChange(View v, boolean hasFocus) {
          // TODO Auto-generated method stub
          holder.editText.getText();
          text.remove(position);
          text.add(position, holder.editText.getText().toString());
         }
        });
      holder.btnOpen.setOnClickListener(new View.OnClickListener() {// 添加按钮
         public void onClick(View v) {
          if (position == 0) {
           // text.add("xxx");// 添加一项控件
           tindex = tindex + 1;
           text.add("第" + String.valueOf(tindex + 1)
             + "自定义控件条目:");// 添加一项控件
          } else if (position > 0) {// 始终留一项不能删除
           text.remove(position);// 删除选定按钮
           // text.remove(text.size() - 1);// 删除最后一个按钮
           tindex = tindex - 1;
          }
          notifyDataSetChanged();
         }
        });
      return convertView;
     }
     private class ViewHolder {
      public EditText editText;
      public ImageButton btnOpen;
      int ref;
     }
    }

    布局文件比较简单,就不传了。原代码下载地址:http://download.csdn.net/detail/xiaozenbin/9747532

    展开全文
  • 本文主要总结删除QWidget中的控件和清空QTableView表格内容用法,下面将详细讲述这两种用法的实现方式。1.1删除QWidget中的控件(函数removeWidget())要删除QWidget中的控件,可以现在QWidget用QVBoxLayout布局,...

    本文主要总结删除QWidget中的控件和清空QTableView表格内容用法,下面将详细讲述这两种用法的实现方式。

    1.1删除QWidget中的控件(函数removeWidget())

    要删除QWidget中的控件,可以现在QWidget用QVBoxLayout布局,然后用QVBoxLayout::removeWidget(QWidget*)函数删除指定名称的控件,删除后要用delete释放空间,否则不会显示出来。

            QVBoxLayout *m_VBoxLayout = new QVBoxLayout(this);
            QPushButton *m_button = QPushButton(QStringLiteral("按钮"));
            m_VBoxLayout->addWidget(m_button);
            
            if(!m_VBoxLayout->isEmpty())                         //如果垂直布局器中有控件,则执行删除控件
            {
                m_VBoxLayout->removeWidget(m_button);           //删除按钮控件
                delete m_button;                                //释放控件
                qDebug()<<m_VBoxLayout->isEmpty();              //判断垂直布局是否为空
            }

    1.2清空表格控件QTableView(函数clear())

    要清空表格控件QTableView,只需要清空模型项QStandItemModel的对象就行。只要用到函数QStandItemModel::clear()就可以了。下面代码是一个清空QTabView表格的简单用法。

        //初始化
        QTableView m_TableView = new QTableView;
        QStandardItemModel *m_StandItemModel = new QStandardItemModel;
        m_TableView.setModel(m_StandItemModel);
        m_StandItemModel->clear();          //清空模型时,对应表格的内容会同步清空

    1.3清空QTabView表格用法同样适用于列表控件QListView、树形控件QTreeView。


    总结:

    需要清空QWidget布局管理器中的控件,只需要用到函数QVBoxLayout::removeWidget(QWidget*)。

    要清空表格控件QTableView的内容,只需要用到函数QStandItemModel::clear()。



    参考内容:

    https://blog.csdn.net/supervictim/article/details/52679863

    https://bbs.csdn.net/topics/390993164

    展开全文
  • WPF 无刷新删除Grid控件/数据

    千次阅读 2016-07-21 15:49:36
    WPF 动态删除Grid控件内容

    最近做项目遇到个问题,需要把检索到数据手动进行删除操作,显示部分是Grid做的

    <Grid  Name="dataGrid">
            <Grid.RowDefinitions>
              <RowDefinition Height="2"/>
                <RowDefinition Height="Auto"/>
                <RowDefinition Height="*"/>
            </Grid.RowDefinitions>
            <Grid.ColumnDefinitions>
                <ColumnDefinition Width="80"/>
                <ColumnDefinition Width="*"/>
                <ColumnDefinition Width="80"/>
              <ColumnDefinition Width="2"/>
            </Grid.ColumnDefinitions>

    网上尝试了好多方式都不能很好实现动态无刷新的删除整个Grid控件操作:界面不显示,数据库删除此记录,删除事件是绑定在Grid下一列上的删除图标上的

          <WrapPanel x:Name="lb_Delete" Margin="2,2,0,2"   Grid.Row="1" Grid.Column="2" >
          <Image    Width="40" Height="40"   Name="Img_Delete" Source="delete.jpg" MouseLeftButtonDown="Image_MouseLeftButtonDown_Delete"/>
          </WrapPanel>
    <strong><span style="font-size:14px;">最后在此类问题的评论下面找到方法</span></strong>
    <pre name="code" class="csharp">       /// <summary>
            /// 手动删除结果
            /// </summary>
            /// <param name="sender"></param>
            /// <param name="e"></param>
            private void Image_MouseLeftButtonDown_Delete(object sender, MouseButtonEventArgs e)
            {
                Boolean isDelete = false;
                BaseDataEntity dataEntity = new BaseDataEntity();
                dataEntity.TableName = this.TableName;
                dataEntity.SetParamValue(dataEntity.KeyDEFName,this.RowId);
                 isDelete= SqlLiteHelper.DeleteById(dataEntity);
                //this.dataGrid.Children.RemoveAt(1);//删除定义行,此方法不适用删除整个Grid控件
                 if (isDelete)
                 {
                     this.dataGrid.Children.RemoveRange(0, 4);//因为定义的Grid是4列
    
                 }
                 else
                 {
                     MessageBox.Show("删除失败!");
                 
                  }
            }

     
    
    注意:

    this.dataGrid.Children.RemoveAt(1);//删除定义行,此方法不适用删除整个Grid控件,单纯删除Grid控件下得某一行可以使用此方法进行删除

    this.dataGrid.Children.RemoveRange(0, 4); 删除整个Grid控件内容可以使用此方法进行

    具体使用哪种方法进行需要根据具体项目数据装载在哪个控件决定。

    这个问题花了不少时间解决,做下笔记希望能够给同样遇到问题的一个参考

    展开全文
  • Qt 动态添加控件,并删除指定控件

    千次阅读 2019-09-18 11:21:41
    2、实现每个模块的单独删除。 3、实现数值、功能的交互功能。如按钮等。 代码内容 话不多说,直接上代码。因为是顺手写的,注释不多,自己领会吧,工程文件放在文末。 mainwindow.h #ifndef MAINWINDO...

    最近在修改一个软件的过程中,把Qt控件进行了重写,重写之后,布局更加简单、合理,如此使得出现bug的概率降低。

    实现的功能

    1、将零散的小控件打包成一个模块,进行整模块的添加。
    2、实现每个模块的单独删除。
    3、实现数值、功能的交互功能。如按钮等。

    代码内容

    话不多说,直接上代码。因为是顺手写的,注释不多,自己领会吧,工程文件放在文末。
    mainwindow.h

    #ifndef MAINWINDOW_H
    #define MAINWINDOW_H
    
    
    #include <QMainWindow>
    #include <testform.h>
    #include <QDebug>
    #include <QMessageBox>
    
    
    namespace Ui {
    class MainWindow;
    }
    
    
    class MainWindow : public QMainWindow
    {
        Q_OBJECT
    
    
    public:
        explicit MainWindow(QWidget *parent = nullptr);
        ~MainWindow();
        QGridLayout *m_gLayout;
        QList<testForm *>mtestForms;
        int count;
        void delete_Layout();
    
    
    private slots:
        void on_add_btn_clicked();
    
    
        void mdel_btn_clicked();
    
    
    private:
        Ui::MainWindow *ui;
    signals:
        void add_info(int num);
    };
    
    
    #endif // MAINWINDOW_H
    

    mainwindow.cpp

    #include "mainwindow.h"
    #include "ui_mainwindow.h"
    
    
    MainWindow::MainWindow(QWidget *parent) :
        QMainWindow(parent),
        ui(new Ui::MainWindow)
    {
        ui->setupUi(this);
        m_gLayout=new QGridLayout;
        ui->widget->setLayout(m_gLayout);
        count=0;
    }
    
    
    MainWindow::~MainWindow()
    {
        delete ui;
    }
    
    void MainWindow::on_add_btn_clicked()
    {
        if(ui->lineEdit->text()!=""){
            count=mtestForms.size();
            testForm *mtestForm=new testForm();
            mtestForms.append(mtestForm);
            mtestForm->setEdit(ui->lineEdit->text());
            connect(mtestForm,SIGNAL(mdel()),this,SLOT(mdel_btn_clicked()));
            m_gLayout->addWidget(mtestForm);
        }else{
            QMessageBox::information(this,"warming","请输入类别");
        }
    }
    
    
    void MainWindow::mdel_btn_clicked()
    {
        testForm *tf = qobject_cast<testForm *>(sender()); //这一步能够判断你点击的是哪一个控件
        m_gLayout->removeWidget(tf);
        tf->deleteLater();
    }
    

    testfom.h

    #ifndef TESTFORM_H
    #define TESTFORM_H
    #include <QWidget>
    #include <QGroupBox>
    #include <QHBoxLayout>
    #include <QLabel>
    #include <QLineEdit>
    #include <QPushButton>
    #include <QTimer>
    #include <QDebug>
    class testForm:public QWidget
    {
        Q_OBJECT
    public:
        testForm();
    
    
        QPushButton *m_btn_start;
    
    
        QPushButton *m_btn_delete;
    
    
        QLabel *m_label_Name;
    
    
        QLabel *m_label_Count;
    
    
        QLineEdit *m_lineEidt;
    
    
        QHBoxLayout *m_hlayoutLabel;
    
    
        QTimer *ask_COM_Timer;
    
    
        void setEdit(QString type);
    
    
        int count;
    private slots:
        void del_btn_click();
    
    
        void startTimer();
    
    
        void printcount();
    signals:
        void mdel();
    };
    
    
    #endif // TESTFORM_H
    

    testfom.cpp

    #include "testform.h"
    
    
    
    
    
    
    
    
    testForm::testForm()
    {
        m_btn_start=new QPushButton();
        connect(m_btn_start,SIGNAL(clicked()),this,SLOT(startTimer()));
        m_btn_start->setText("启动");
    
    
        m_btn_delete=new QPushButton();
        connect(m_btn_delete,SIGNAL(clicked()),this,SLOT(del_btn_click()));
        m_btn_delete->setText("删除");
    
    
        ask_COM_Timer=new QTimer(this);
        ask_COM_Timer->setInterval(1000);
        connect(ask_COM_Timer,SIGNAL(timeout()),this,SLOT(printcount()));
    
    
        m_label_Name=new QLabel();
        m_label_Count=new QLabel();
        m_lineEidt=new QLineEdit();
        m_hlayoutLabel=new QHBoxLayout;
    
    
        m_hlayoutLabel->addWidget(m_btn_start,0,nullptr);
        m_hlayoutLabel->addWidget(m_lineEidt,1,nullptr);
        m_hlayoutLabel->addWidget(m_label_Name,2,nullptr);
        m_hlayoutLabel->addWidget(m_label_Count,3,nullptr);
        m_hlayoutLabel->addStretch(4);
        m_hlayoutLabel->addWidget(m_btn_delete,5,nullptr);
    
    
        this->setLayout(m_hlayoutLabel);
        QSizePolicy policy = this->sizePolicy();
        policy.setHorizontalPolicy(QSizePolicy::Preferred);
        policy.setVerticalPolicy(QSizePolicy::Fixed);
        this->setSizePolicy(policy);
    }
    
    
    void testForm::del_btn_click()
    {
        emit mdel();
    }
    void testForm::setEdit(QString type)
    {
        m_lineEidt->setText(type);
        m_label_Name->setText(type);
    }
    void testForm::startTimer()
    {
        count=0;
        if(m_btn_start->text()=="启动"){
            ask_COM_Timer->start();
            m_btn_start->setText("停止");
        }else if(m_btn_start->text()=="停止"){
            ask_COM_Timer->stop();
            m_btn_start->setText("启动");
        }
    
    
    }
    void testForm::printcount(){
        qDebug()<<m_lineEidt->text()+"  "+QString::number(count);
        m_label_Count->setText(QString::number(count));
        count++;
    }
    

    工程文件下载:动态增减控件代码

    展开全文
  • GRID控件删除之前确认

    2009-06-25 18:04:57
    GRID控件删除之前确认GRID控件删除之前确认GRID控件删除之前确认GRID控件删除之前确认GRID控件删除之前确认GRID控件删除之前确认GRID控件删除之前确认
  • 如何删除ActiveX控件

    万次阅读 2010-09-05 11:41:00
    Windows 下查看和删除ActiveX控件
  • 销毁或删除TinyMCE控件

    千次阅读 2014-07-20 12:45:20
    如果我们想重新初始化tinymce控件内容,需要先销毁,然后重新初始化。
  • 手动卸载删除ActiveX控件

    千次阅读 2017-10-13 14:42:06
    手动删除视频插件,仅供参考。  1、管理员身份运行“命令提示符”窗体。  2、找到安装ActiveX控件的文件夹。 双击查看加载控件的详细信息。  3、进入到安装ActiveX控件的文件夹。使用...
  • qt 动态添加控件(删除控件)

    千次阅读 2020-04-28 11:14:11
    首先删除原来界面下的子控件 QList<QPushButton*> btns= this->scrollArea->findChildren<QPushButton*>(); //可根据自己的需要更改控件 foreach (QPushButton* btn, btns) { delete btn; }...
  • IE控件管理程序,可以查看和删除在IE中所安装的所有控件,包括流氓插件。
  • 正常调用removeWidget()方法删除控件,但是删不干净,需要调用sip.delete()再删一下才能彻底清除。 如何彻底删除控件?布局移除控件方法。
  • Python3 tkinter删除指定控件

    万次阅读 2018-11-30 14:21:43
    删除控件类似的还有grid_forget(),grid_remove() ,grab_release(),place_forget(), 如果想销毁控件,不在创建该控件的话可以用destroy() * 下拉框:选择exe并执行(这里没写) Open:删除Upgrade创建的文本框,...
  • 动态添加、删除控件的节点,获取树形控件的选中项
  • 删除控件removeWidget() 之后需要 sip.delete() import sip self.gridlayout.removeWidget(self.F) sip.delete(self.F) # 此时 self.F 控件已删除,增加回来需要重新实例化 self.F = MyFigu...
  • MFC通过类向导删除控件

    千次阅读 2017-02-10 10:09:25
    1.打开.rc文件;找到欲删除的控件;选中控件后按右键;选择“类向导”;在类向导页面找到控件对应的... 此时在源文件里变量的定义声明、数据交换函数的相关语句、消息映射中的信息都被注释了。 2.在对话框内删除控件
  • C# Excel插入和删除表单控件

    千次阅读 2017-12-01 18:02:44
    表单控件是与Excel早期版本兼容的原始控件,通过表单控件,用户可以...本文将介绍如何使用C#和Free Spire.XLS组件给Excel表格添加常见的表单控件例如文本框、单选按钮、复选框和组合框,以及如何删除现有的表单控件
  • QString 部分用来存放 tab的 文本内容,方便后面查找 widget 存放对应的窗口 删除 tab通过 1> removeTab(int index) 删除部分 2> clear()删除全部 同理 QVBoxLayout QHBoxLayout QGridLayout 添加: addWidg.
  • Flutter侧滑删除控件

    千次阅读 2019-06-23 21:45:21
    在android实现类似微信的侧滑删除比较复杂,需要使用到ViewDragHelper,各种手势判断。而在flutter中实现却很简单,几种控件组合起来就可以实现,先看一下效果图。 使用方法: @override Widget build(Build...
  • C# winform 删除某个控件上的子控件

    千次阅读 2012-11-24 11:41:10
    现在要删除panel控件里的所有子控件,郁闷了两小时 第一:原本以为直接调用Clear方法就可以了,但实际上不行的,调试的时候,调用完Clear后,查看其子控件是显示为0,但窗体上还是保留着,还没立即释放,要等窗体...
  • iOS开发时,有时候不知道该有多少个控件,需要动态添加或删除,比如:发帖页面。该例子工程实现了动态添加和删除一组控件(包含UITextView和UIButton按钮)。实现逻辑比较简单,希望有所帮助!
  • android 程序中动态添加删除控件或布局,设置大小,位置
  • react中复制和删除控件

    千次阅读 2018-01-30 11:45:57
    为了实现检索中,输入框的复制效果,思前想后,想到了一种用数组存放控件,对控件的复制和删除便可通过操作数组来实现了。 1、通过+和-控制控件的添加和删除 1.1 演示效果 1.2 核心代码 下面的...
  • 在官网文档中也未提及,大家都不删除控件吗? 代码我给简化了一下: ``` #-*-coding:utf-8-*- import tkinter as tk top = tk.Tk() filename = 'D:\\python34\\1.png' img = tk.PhotoImage(file = ...
  • C#实现动态添加和删除控件

    千次阅读 2014-03-11 14:36:22
    最近弄一个项目,需要动态添加控件和删除控件.原始界面如下:   如上图操作添加按钮,则下面自动增加一行GROUPBOX控件,操作删除则自动删除最后一行开始的BROUPBOX控件. 实现步骤如下: 1)定义一个记录行数的全局变量 ...
  • 怎样删除MSHFlexGrid控件中指定的记录

    千次阅读 热门讨论 2013-11-30 21:28:55
    做机房收费系统不免要遇到这个问题,那就是删除MSHFlexGrid控件里指定的记录,这也是前几天我一直纠结的一个问题,不知道该怎么做,现在学会了,我要把它记录下来,因为这是我的成长记录,呵呵。 我们不仅要删除...
  • Flutter 左滑删除控件

    千次阅读 2019-05-30 20:44:57
    child: ListView.builder( itemBuilder: (context, i) { if (i == _dataList.length) { return _addItemWidget(); } else { return Dismissible( ...
  • C#窗体应用程序中,删除一个控件,直接delete会导致程序出错,但是与控件相关的代码太多,一行一行的删太费时,怎么办?
  • Android仿微信侧滑删除控件

    千次阅读 2018-04-04 17:03:49
    代码见GitHub:仿微信侧滑删除控件 首先看一下效果图: 基本思路是自定义一个ViewGroup作为RecyclerView中的条目,通过手势侧滑拉出删除按钮,动态改变删除按钮的宽度。 在网上也看了很多类似的实现,大多非常...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 234,920
精华内容 93,968
关键字:

删除内容控件是什么