找到動態創建的控件

QT 实现类似 Tool Box 抽屉控件同时展开多个代码 QT 使用 Tool Box时, 发现只能展开一个不符合需求。 我想实现类似效果抽屉控件,动态创建添加,而且可以同时展开多个。找到了实现的代码,修改一下放在项目里使用,效果如下: 简单使用代码: lockerwidget.h lockerwidget.cpp... 阅读详情

     本來以為動態創建控件很容易,比如,

               TTabSheet *NewGroupPage[10];

               for( int Page = 0; Page < A;++page )

               {

            NewGroupPage[Page] = new TTabSheet(this);
                    NewGroupPage[Page]->PageControl
                                                           = MainContainer;
                     NewGroupPage[Page]->Caption
                                                           = "Page " + IntToStr(Page+1);

                      TLabel *ALabel;
                      ALabel                          = new TLabel(this);
                      ALabel->Parent            = NewGroupPage[Page];
                      ALabel->Caption          = "A: ";
                      ALabel->Font->Size     = 12;
                      ALabel->Left                 = 7;
                      ALabel->Top                 = 5;
                      ALabel->Width              = 145;
                      ALabel->Height             = 24;

                      TLabel *BLabel;
                      BLabel                           = new TLabel(this);
                      BLabel->Parent             = NewGroupPage[Page];
                      BLabel->Caption           = "B : ";
                      BLabel->Font->Size      = 12;
                      BLabel->Left                  = 167;
                      BLabel->Top                  = 5;
                       BLabel->Width              = 145;
                       BLabel->Height             = 24;

                       TEdit *AEdit;
                       AEdit                              = new  TEdit(this);
                       AEdit->Parent                = NewGroupPage[Page];
                       AEdit->AutoSize             = false;
                       AEdit->Font->Size          = 8;
                       AEdit->Left                     = 8;
                       AEdit->Top                     = 34;
                        AEdit->Width                 = 145;
                        AEdit->MaxLength         = 10;

                        TEdit *BEdit;
                        BEdit = new  TEdit(this);
                        BEdit->Parent                = NewGroupPage[Page];
                        BEdit->AutoSize            = false;
                        BEdit->Font->Size         = 8;
                        BEdit->Left                     = 168;
                        BEdit->Top                    = 34;
                        BEdit->Width                  = 145;
                        BEdit->MaxLength          = 10;

                  }

       玩了半天回來,時間不多了,趕緊寫一段自動寫數到剛自動創建的Edit中:

       for( int Page = 0; Page < A;++Page )

        {

                dynamic_cast < TEdit*>
                (
                        MainContainer->Pages[Page]->Controls[0]
                 )->Text = "A";       // 寫第一個Edit

                dynamic_cast < TEdit*>
                (
                        MainContainer->Pages[Page]->Controls[1]
                 )->Text = "B";       // 寫第二個Edit

        } 

        運行。 啊?怎麼沒有東西呢?

  搗弄了半天,還是不對,只好先下班。

  下午接著干,不敢再大意,仔細閱讀了一下Controls的含意。原來,作怪的是,TLabel也占了一個位,要正確地找到TEdit,必須遍歷整個Container.

        找到了原因,解決很容易,如:

       for( int Page = 0; Page < A;++Page )

        {

                int Count;
                Count
                        = dynamic_cast< TWinControl* >
                           (
                                     MainContainer->Pages[ Page ]
                           )->ControlCount;

                for( int i = 0; i < Count;++i )

                { 

                        if(     dynamic_cast < TEdit*>
                                (
                                        MainContainer->Pages[Page]->Controls[i]
                                 ) != NULL 

                        {

                                // 此處省略了分別存取各個元件的判別,

         //只籠統地在TEdit填入數字,具體地,可加計數器。

                                dynamic_cast < TEdit*>
                                (
                                         MainContainer->Pages[Page]->Controls[i]
                                 )->Text = "A";       
                        

                       }

                }

        }

        //-------------------------------------------------------------------------------------

       終於搞定.   

            

      

     

MFC动态创建CEdit控件 在项目开发时,可能遇到动态创建控件的情况。如根据当前用户的数量,动态创建控件显示用户信息等情况,需要动态常见静态文本框和编辑框等。 此时,利用控件类中Create()函数进行动态创建,默认是显示状态。如: 头文件定义:CStatic *p_MyStatic; CPP中实现: p_MyStatic = new CStatic(); p_MyStatic->Create("静态文本框 阅读详情

相关推荐

MFC中动态创建控件

本篇文章介绍了在MFC中怎么动态创建各种控件,以及添加相应的响应事件。 放置静态控件时必须先建立一个容器,一般是对话框,这时我们在对话框编辑窗口中,从对象窗口中拖出所需控件放在对话框中即可,再恰当批改控件ID,设置控件属性,一个静态控件就创建好了,当对话框被显示时,其上的控件也会显示。 静态控件不须要调用Create()函数来创建。 动态控件是指在须要时由Create()创建的控件,这与

penpenandtongtong的专栏 4934

自动创建控件

这个是摘自网上的,var         a:   Tedit;     begin         a   :=   TEdit.create(self);         a.parent   :=   form1;         a.left   :=   0;         a.top     :=   0;         a.Text   :=   test;      

563

MFC动态创建控件

动态控件是指在需要时由Create()创建的控件,这与预先在对话框中放置的控件是不同的。     一、创建动态控件:  1.建立控件ID号:     ID号是控件的标识,创建控件前必须先为它设置一个ID号。     打开资源中的“String Table”,在空白行上双击鼠标,这时会弹出一个ID属性对话框,在其中的ID编辑框中输入ID,如:IDC_MYBUTTON,在Caption中输入

q5512049的博客 2427

动态创建控件和取值

//原帖:http://topic.youkuaiyun.com/t/20051019/11/4336067.html//我只摘下了,对我有用的东西。//学习动态创建控件和取值的方法  代码如下:         for(int   i=0;i  {     TextBox   tbcz=new   TextBox();     tbcz.ID="cz"+i;     this.Panel2.Contro

wood's blog 1390

动态创建TabCtrl控件的用法

TabCtrl控件可以通过对话框方式直接采用控件静态添加,但是有时候需要去动态创建一个TabCtrl控件,本文是在CFormView上动态创建TabCtrl控件: 1、添加CTabCtrl类的对象: CTabCtrl m_tabCtrl; 2、为TabCtrl控件添加页面,本文创建两个对话框: CDialog1 m_page1; CDialog2 m_page2; 3、在资源视

xdhywj的专栏 1万+

VB中动态创建控件

创建数据驱动窗体所谓数据驱动窗体就是根据所请求的数据的不同生成相应的窗体。举例来讲,假设你现在有一个数据库,其中有些字段必须根据登录者的身份加以显示,授权级别高的用户可以浏览并修改这些字段的内容;授权级别一般的用户只能浏览这些字段中的数据;授权级别低的用户则不能浏览这些字段中的内容。要做到这一点就得利用VB动态添加控件的功能。动态创建控件无论你想要创建何种类型的数据驱动窗体,你必须知道如何在运行时

yzmml的专栏 1313

PowerBuilder中动态创建OLE对象心得

        由于PB语言本身的特性,一般很少会在编程时使用第三方控件的。但是一旦使用还真不像VB那么方便。日前在编写一段程序时,就遇到了一点问题。写出来与大家分享心得。        这段程序其实很简单,就是使用第三方提供的加密锁来实现密码或其它用户个人信息的存储。根据其提供的Demo程序,我们知道它有一个控件是用来读写加密锁指定地址数据的,至于其内在逻辑就不用管了,关键是如何调用的问题。

2365

DEM边界数值爆炸?用ArcGIS空间分析工具链搞定异常值过滤全流程

本文针对DEM数据处理中常见的边界数值爆炸问题,提供了一套完整的ArcGIS空间分析解决方案。文章深入剖析了异常值产生的根源,并详细介绍了从诊断、定位到使用栅格计算器、重分类等工具进行精准过滤与修复的全流程工作流,帮助用户彻底解决由插值误差、数据拼接及坐标系转换引发的数值异常。

weixin_29269441的博客 149

.net web动态生成指定控件 并且在.cs中找到他们

动态生成指定控件CheckBox,RadioButton,TextBox HTML控件

badhou的专栏 1411

【毕设】基于LoRa的物联网控制器:从原理图到PCB的完整硬件设计指南

本文提供了一份完整的基于LoRa的物联网控制器硬件设计指南,涵盖从系统框图、原理图设计到PCB布局布线的全流程。详细讲解了电源电路、单片机最小系统、信号接口以及LoRa无线模块等核心模块的设计要点与抗干扰技巧,并分享了实用的调试心得,旨在帮助电子、物联网专业学生顺利完成毕业设计,掌握低功耗远距离物联网节点的硬件开发实践。

weixin_42126677的博客 307

Maxwell个人初学经验及资料分享

前段时间学习了课题组基于Maxwell所建立的模型,因为以前从来没有使用过,只是按照一步一步记忆了操作,但总觉得不熟悉,我想是缺乏对这个软件整体的了解,真正想上手只会这一个模型也没有办法扩展。但是我感觉这些有限元分析软件学习起来应该有一些共性,基于以前对COMSOL学习的一点经验,我就在官网和其他网站找了一些学习资源构成一条基础入门之路,也可能有更好的资源,仅代表个人观点做一下分享。以上就是本人对该软件初步学习的一点理解,跟着这样的操作不到一个星期就能初步的掌握。...

怎么又是萝卜的博客 5643

WPF动态创建Image的显示问题

原文:WPF动态创建Image的显示问题 最近学习WPF,看到一篇教程讲解如何动态创建Image控件,自己练手时候无论如何也显示不出图片。刚开始以为是图片的路径有问题,可后来将图片的路径设为相对路径或者绝对路径都没有解决问题。于是开始在网上搜索资料,直到发现一篇问答《WPF用Image显示图片失误(为...

weixin_34419326的博客 714

MounRiver避坑实录:手把手迁移CH32V307 EVT工程到自定义目录

本文详细记录了将沁恒CH32V307的EVT工程迁移到自定义目录的完整流程与避坑指南。针对MounRiver Studio的虚拟链接机制,重点讲解了如何清理旧配置、重新设置头文件路径、链接脚本等关键步骤,帮助开发者创建独立、可维护的MCU项目工程。

uber9的博客 244

动态控件的状态问题(2)

在完成Page_Load中动态生成试卷的部分后,遇到一个新问题在button事件中,如此引用先前的RadioButtonList控件时,protected void Button_submit_Click(object sender, EventArgs e)...{        //为说明,下面只是列出类似操作的语句        RadioButtonList tmpRad = (R

Johnny_Depp的专栏 722

R语言机器学习:XGBoost线性回归模型的SHAP值

SHAP(SHapley Additive exPlanations)值是一种基于博弈论Shapley值的机器学习模型解释方法,能够解释任何模型的预测结果。其主要用途包括:1)提高模型的可解释性,帮助非技术用户理解模型预测;2)识别对模型预测最重要的特征,辅助特征选择;3)调试模型,发现预测中的异常;4)评估模型公平性,避免偏见。SHAP值的计算方法包括初始化、迭代计算、归一化和解释,常用工具如Python的shap库支持多种计算方式(如TreeSHAP、KernelSHAP等)。本文还提供了基于R语言计算

专注生信领域 3444

EPO: Hierarchical LLM Agents with Environment PreferenceOptimization

长期决策和规划任务依然是基于大型语言模型(LLM)的智能体面临的一大挑战(Valmeekam 等,2023;Liu 等,2023;Silver 等,2024)。这些任务需要智能体进行多步骤的规划,同时保持行为的一致性和目标导向,这对于通常被设计用于即时和局部预测的大型语言模型来说颇为困难。此外,针对具身智能体的大型语言模型微调面临的一个关键难题是大规模标注数据的需求(Reed 等,2022)。

qq_52053775的博客 143

【已解决】C++ QT动态页面如何为一组checkBox赋值(两种方法)

笔者动态创建页面,动态创建了checkBox,想要动态管理它们,比如给他们赋值一下呀之类的,但是思考了很久,始终不能如愿,大约花了一个多小时。最终成功实现。这里解释两种方法。下面的方法,如果报错,请第一时间考虑头文件包含,在这里也会罗列,包含的头文件。

执念斩长河 737

7.29华为OD机试真题 新系统 - 能量对撞 (Java/Py/C/C++/Js/Go)

7.29华为OD机试真题 新系统 - 能量对撞 (Java/Py/C/C++/Js/Go)

算法大师! 1327

在DELPHI中动态创建控件以及控件的事件

     在DELPHI中我们经常要动态的创建控件以及控件的事件。例如,我们可能想根据程序需要动态的创建一些Tshape组件来创建某个图形,并使得在鼠标移动上去之后可以完成某些操作。这一般需要需要三步: 生成一个制定组件类的实例 为这个实例付初值 在使用完毕后,释放资源    下面将通过一个例子来演示,例子的功能是动态创建一个Tshape的实例MyShap

1万+

浏览器解析HTML的过程及编程实现

需要注意的是,上述示例代码只是简化的演示,并未涵盖浏览器解析HTML的所有细节和复杂性。实际上,浏览器的HTML解析引擎还会处理一系列的特殊情况、错误容错和性能优化等方面的内容,以确保能够正确解析各种类型的HTML代码。HTML(超文本标记语言)是构建网页的基础语言,浏览器负责将HTML代码解析并渲染成可视化的网页。本文将详细介绍浏览器解析HTML的过程,并提供相应的编程示例代码。希望以上内容能帮助您理解浏览器解析HTML的过程,并通过提供的示例代码更好地了解如何在编程中实现这一过程。

ByteJolt的博客 322

SAP B1中文培訓教材_SDK

公司内部培训资料,对开发工具 ,DIAPI, UIAPI,Add-ON有详细解说

WPF 后台动态创建控件

一、基本控件: 1、 Grid 2、 StackPanel 3、 Border 4、 Button 5、 CheckBox 6、 ComboBox 7、 DataGrid 8、 Image 9、 Label 10、 ListBox 11、 RadioButton 12、 Rectangl

qq_31971935的博客 1万+

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

(32)uniGUI for Delphi下如何动态创建控件

(中行雷威2019.5.30) (同一个世界,同一个梦想,交流学习C++Builder and Delphi XE10,传承c++builder and Delphi的魅力!欢迎各地朋友加入我的QQ群484979943、860634510、299497712,进群密码“BCB”,同时也请将该群号广为宣传,希望能够广集各方高手,共同进步。如需下载开发工具及源代码请加入我的QQ群。) 【阅读倡议...

路在脚下 3031

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

lwip-2.0.3

lwip是瑞典计算机科学院(SICS)的Adam Dunkels 开发的一个小型开源的TCP/IP协议栈。实现的重点是在保持TCP协议主要功能的基础上减少对RAM 的占用。

VB窗体动态创建控件及控件事件

VB窗体动态创建较少,今天,试着弄一个,专为解答之用。 首先创建一个空白窗体,调整大小,修改名称,双击窗体进入代码编辑界面: Public Class VB解答专用窗体 Dim 数据列表 As DataGridView Dim 输入框 As TextBox Private Sub VB解答专用窗体_Load(sender As Object, e As EventAr...

浤济的专栏 4829

【wpf】05 几种容器动态创建控件的对比

从上面代码实现的效果来看,对于动态生成的控件可以分成两种可能性:一是固定数量和种类的控件生成;二是不固定数量和种类的控件生成。从上面的实现效果可以明显看出,不固定数量的控件生成很容易超出容器范围,从而无法看到,那这里能够胜任此功能的只有使用ScrollViewer和其他容器的组合实现,效果是比较好的。如下:wpf中控件的灵活组合,还有很多值得深入学习的地方,在使用的过程中,逐渐进步。

kewaqi618的博客 2096

7、DuiLib动态创建控件

在实际业务场景中,并不是所有界面元素都可以通过 XML 预先定义好的,有时候我们需要根据数据库或者服务器返回的数据动态的在界面上创建一些控件。本文将介绍两种方式来动态创建控件的方法,一种是使用纯代码方式,另外一种是使用已经构建好的 XML 来动态创建控件。之前创建控件的方式都是在 XML 写好,设置好显示位置,运行程序后就自动显示出来了。实际一个控件对应的就是 DuiLib 中的一个类,我们只需要在代码中实例化一个控件类对象,设置好显示位置和控件的样式,并插入到指定的容器内就可以显示出来了。假设我们要在窗口

森明帮大于黑虎帮的博客 1435
上一篇: AnsiString 原來是一個字符數組.
下一篇: 根據細表中的主表ID,不重復地列出主表中的字段
tree2000
博客等级 码龄26年 6粉丝 6原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值