精华内容
下载资源
问答
  • 实例QT程序: 在QTableWidget表格的单元格中添加和删除控件。 编译可以直接运行。 运行环境WIN10 Qt5.9.7 。 资源为源码压缩包:TableWidgetCellWidget.rar 相关文章链接如下: ...
  • Listview动态增加与删除控件条目,条目内容可编辑
  • 主要介绍了GridView控件实现数据的显示和删除,以新闻网站为例,实现对新闻数据的操作,了解各种数据源控件与数据绑定控件的类型和作用,需要的朋友可以参考下
  • 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++;
    }
    

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

    展开全文
  • 动态添加控件删除

    千次阅读 2018-05-22 15:31:38
     //保证如何在删除和添加时能释放资源(即可以紧跟在显示的控件后面显示)  cl.Controls.Clear();  DisposeControls(cl);  //释放资源  cl.Dispose();  }  //在清空控件时如何释放资源  private void ...

    方法1:

            int i = 0;
            List<PhoneTextBox> list = new List<PhoneTextBox>();      
            private void btnAdd_Click(object sender, EventArgs e)
            {           
                if (i >= 9)//只能添加9个(看自己需求)
                {
                    return;
                }
                else
                {
                    i = i + 1;
                    PhoneTextBox txtPhone = new PhoneTextBox();


                    txtPhone.Name = "txtPhone" + i;


                    txtPhone.Location = new Point(textBox4.Location.X, textBox4.Location.Y + textBox4.Height + txtPhone.Height * (i - 1) + 4);


                    txtPhone.BTNdel.Click += txtPhone_Click;              
                   
                    panel5.Controls.Add(txtPhone);


                    panel6.Location = new Point(panel6.Location.X, panel6.Location.Y + txtPhone.Height);
                    int n = txtPhone.Height;
                    list.Add(txtPhone);
                    //保证复制后的控件都在原控件下方显示
                    txtPhone.BringToFront();
                }         
            }
          
            private void txtPhone_Click(object sender, EventArgs e)
            {
                Control c = (Control)sender; 
                string name = c.Parent.Name;

                int nIndex = GetControlsName(c.Parent.Name);
              
                for (int n = nIndex + 1; n < list.Count; n++)
                {               
                      list[n].Location = new Point(list[n].Location.X, list[n].Location.Y - list[n].Height);
                }
                list.RemoveAt(nIndex);
                this.panel6.Location = new Point(this.panel6.Location.X, this.panel6.Location.Y - c.Height);
                int b = c.Height;
                panel5.Controls.Remove(c.Parent);
                BindClick(c);
                i = i - 1;
            }
            //根据控件名称找控件索引
            public int GetControlsName(string name)
            {
                int nIndex = 0;
                for (int i = 0; i < list.Count; i++)
                {
                    if (list[i].Name == name)
                    {
                        nIndex = i;
                        break;
                    }
                }
                return nIndex;
            }


            //绑定删除控件事件的代码
            private void BindClick(Control cl)
            {
                //保证如何在删除和添加时能释放资源(即可以紧跟在显示的控件后面显示)
                cl.Controls.Clear();
                DisposeControls(cl);
                //释放资源
                cl.Dispose();
            }
            //在清空控件时如何释放资源
            private void DisposeControls(Control cParent)
            {
                foreach (Control c in cParent.Controls)
                {
                    //DisposeControls(c);
                    c.Controls.Clear();
                    c.Dispose();
                }

            }

    设计视图和运行结果如图

                                                                                                         

    方法2:

    在窗体加一个flowLayoutPanel1控件还有一个button按钮

      private void btnadd_Click(object sender, EventArgs e)
            {
                string controlMark = Guid.NewGuid().ToString();
                TextBox txt1 = new TextBox();
                txt1.Name = "txt_" + controlMark;          
                txt1.Width = 120;
                flowLayoutPanel1.Controls.Add(txt1);


                Button btnDel = new Button();
                btnDel.Name = "del_" + controlMark;
                btnDel.Text = "删除";
                btnDel.Click += new EventHandler(delControl);
                flowLayoutPanel1.Controls.Add(btnDel);
            }


            ///点击删除按钮删除生成的控件
            public void delControl(object sender, EventArgs e)
            {
                Button btnAction = sender as Button;
                string id = btnAction.Name.Split('_')[1];
                foreach (Control c in this.flowLayoutPanel1.Controls)
                {
                    if (c.Name == "txt_" + id)
                    {
                        flowLayoutPanel1.Controls.Remove(c);
                    }
                }
                foreach (Control c in this.flowLayoutPanel1.Controls)
                {
                    if (c.Name == "del_" + id)
                    {
                        flowLayoutPanel1.Controls.Remove(c);
                    }
                }
               
            }


    展开全文
  • NPOI本身是没有操作Word文档中的Bookmark标签以及内容控件的接口,我通过研究NPOI中Word文档的数据结构,实现了替换标签内容(包括删除标签)、给内容控件赋值的方法,本资源内有调用demo,解决方案是用VS2017创建的...
  • ”为 EditText 赋值时,可能这个自定义组合控件还未初始化完成,getWidth 得到的值会为0,建立的删除按钮就会不可见。那么为什么不在创建 EditText 的时候创建呢?我本着不浪费资源的原则,就要在我需要的时候才创建...
  • 别人发给自己一份word模板,基于统一性,里面包含了很多“内容控件”,一般情况下,只需要根据内容控件进行编辑即可,但如果想对内容控件本身做编辑操作,例如删除等。 操作: 单击 文件>选项>自定义功能...
    场景:
    别人发给自己一份word模板,基于统一性,里面包含了很多“内容控件”,一般情况下,只需要根据内容控件进行编辑即可,但如果想对内容控件本身做编辑操作,例如删除等。
    操作:
        单击 文件>选项>自定义功能区。
    
        在选项卡,在 自定义功能区 下的列表中,选择 开发工具 框中,然后单击 确定。
    
        执行下列操作之一:
    
            若要添加的控件,您要在其中添加它,在文档中单击,然后单击您想要添加 设计 选项卡上的控件。
    
            若要设置控件的属性,或更改现有控件,在 开发工具 选项卡的 控件 组中,单击 属性。

    删除的话,选中控件,右键->删除内容控件

    问题来了:右键点击后,如果没有“删除内容控件”的选择项,这种情况下,很可能是这个内容控件的属性被设置为"不可删除"了。只需要将“不可删除”属性取消即可,如下:

    下面是官网的链接:

    https://support.office.com/zh-cn/article/%e5%9c%a8-word-%e4%b8%ad%e5%88%9b%e5%bb%ba%e7%94%a8%e6%88%b7%e5%a1%ab%e5%86%99%e6%88%96%e6%89%93%e5%8d%b0%e7%9a%84%e7%aa%97%e4%bd%93-040c5cc1-e309-445b-94ac-542f732c8c8b?ui=zh-CN&rs=zh-CN&ad=CN

     

     

    转载于:https://www.cnblogs.com/cnblogszs/p/8666482.html

    展开全文
  • 内容索引:VB源码,界面编程,控件,按钮 VB动态增加删除窗体控件元素,比如本实例在窗体上动态添加一个按钮,同时还可以删除它,方法很简单,但是挺有用的功能,有必要掌握哦。
  • 本文主要总结删除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

    展开全文
  • MFC中,动态添加、删除树形控件的节点,获取树形控件的选中项,绝对经典 !希望对你有所帮助!
  • C#数据表格控件的应用,包括使用text标签与butten标签的组合以及Dataviewgrid表格将数据库的数据显示并且可以进行删除插入更新
  • //删除子项加1 行内容 m_pTableWidget -> removeRow ( row ) ; } /*5. 删除Map中的记录*/ m_mapLog . remove ( sigBtn ) ; /*6.刷新序号列编号*/ int nNum = 1 ; for ( int i = 0 ; i...
  • C# 动态添加与删除控件

    千次阅读 2016-12-08 11:07:50
    C#.NET中动态添加与删除控件       数组为共享公用功能的一组控件一起工作提供了便捷的途径。例如,一组控件可能用于显示相关的数据,或者在被点击时提供相关的行为。C#本身并不支持控件数组的建立,但是你...
  • MFC中删除控件的操作

    万次阅读 2016-12-16 17:30:31
    主要是按钮: 1.首先确定控件有哪些相关的变量和函数;...3.打开对话框源文件,找到控件定义的处理函数,将其删除(也可在最开始时双击控件按钮找到定义函数进行删除) 4.在BEGIN_MESSAGE_MAP()消息
  • QString 部分用来存放 tab的 文本内容,方便后面查找 widget 存放对应的窗口 删除 tab通过 1> removeTab(int index) 删除部分 2> clear()删除全部 同理 QVBoxLayout QHBoxLayout QGridLayout 添加: addWidg.
  • qt删除布局中的所有控件

    千次阅读 2020-04-08 20:30:33
    最近一个项目开发,需要动态的添加/删除控件,下面记录一下方法,该方法参考了网上的方法,但是没有针对layout中嵌套layout的做处理: void deleteAllitemsOfLayout(QLayout* layout){ QLayoutItem *child; while ...
  • 实例QT程序 —— QTableWidget 表格清空带控件的单元格 编译可以直接运行。 运行环境WIN10 Qt5.9.7 。 资源为源码压缩包: TestTableFuncDemo01.rar 相关文章链接如下: ...
  • 动态添加和删除控件

    千次阅读 2017-09-12 15:14:40
    其实思路很简单,将一行信息用div标签(div1)包住,再添加一个div标签(id设为Div)把所有动态添加的内容包住;当点击加号按钮时,响应js函数,函数的主要任务是获取id为div1的对象,利用clonenode函数复制一份,并...
  • WPF 无刷新删除Grid控件/数据

    千次阅读 2016-07-21 15:49:36
    WPF 动态删除Grid控件内容
  • android通过代码动态添加和删除控件

    万次阅读 多人点赞 2018-05-13 20:07:45
    1.概述android开发当中有可能会碰到以下这种情况,某个页面,...本文实现了一个动态添加和删除控件的简单例子!先上截图:2.代码实现(1)布局文件activity_main.xml[html] view plain copy&lt;RelativeLayout...
  • iOS通过代码动态添加和删除控件

    千次阅读 2015-01-20 10:03:12
    iOS开发时,有时候不知道该有多少个控件,需要动态添加或删除,比如:发帖页面。本文将讲解一个动态添加和删除控件的例子。
  • Qt布局上控件添加和删除

    千次阅读 2020-04-08 18:47:58
    但是当界面控件需要根据实时数据进行增删时,往往不得其法,在这里列一下布局上控件的增删,已备后续使用。 1.遍历水平/垂直布局内控件 for(intcol=2;col<ui->horizontalLayout->count()-1;col++) { ...
  • 一个折磨了我好久好久...首先,在不知道layout中控件的情况下,要删除所有的子控件,可采用以下方法: for i in range(verticalLayout_3.count()): print(verticalLayout_3.count()) verticalLayout_3.itemAt(i...
  • C#.NET中动态添加与删除控件

    千次阅读 2016-06-14 22:13:37
    C#.NET中动态添加与删除控件       数组为共享公用功能的一组控件一起工作提供了便捷的途径。例如,一组控件可能用于显示相关的数据,或者在被点击时提供相关的行为。C#本身并不支持控件数组的建立,但是你...
  • 使用RAD Studio XE8删除控件的时候有时候会出现无法删除的问题: Selection contains a component, ,introduced in an ancestor and cannot be deleted. 肯定是你View没有选择Master,如图:
  • 帆软 控件内容 清除

    千次阅读 2018-01-09 16:47:00
    我们找到控件的名称代码 widgetname="P_SAFETY" 获取控件信息 var xxID = this.options.form.getWidgetByName("P_SAFETY");  得到之后清除控件 xxID.reset(); . . . 泛用版清空方式代码 $.each( this ....

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 143,220
精华内容 57,288
关键字:

如何删除内容控件