QT中如何在当前打开的所有窗体中,关闭指定的objectName的窗体。

QT中如何在当前打开的所有窗体中,关闭指定的objectName的窗体。

qt

4个回答

QWidgetList FormList=QApplication::allWidgets();
for(int i=0;i!=FormList.count();++i)
{
QWidget *tmp=FromList.at(i);
if(tmp->objectName=="xxxx")
{
tmp->close();
}
}

这样写可不可以?因为要反复调用这个方法,执行效率会不会很低。

在网上查询,QApplication::allWidgets()必须用new来申请内存,然后手动释放,否则会造成内存泄露,是不是要改成:
QWidgetList *FormList=new QWidgetList(QApplication::allWidgets());
for(int i=0;i!=FormList->count();++i)
{
QWidget *tmp=FromList->at(i);
if(tmp->objectName=="xxxx")
{
tmp->close();
}
}

这样是不是避免了内存泄露的问题 本人小白 希望大牛们帮助一下

上面忘了 delete FormList;

你得首先用setObjectname()设置各个窗口的名字

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
其他相关推荐
如何在Form_load中关闭当前窗体?
有两个窗体Form1和Form2,Form1的一个Button的Click事件代码如下:rnDim fm as Form2 = New Form2()rnfm.ShowDialog()rnForm2的Form_load事件中有如下代码:rn.....rnIf ... Thenrn Me.Close()rn Exit SubrnEnd Ifrnrn可是代码执行过Me.Close()和Exit Sub之后,窗体仍然打开了,如果换作fm.Show(),fm就可以正常关闭,不知道怎么回事?怎么来解决呢?
如何在一个窗体中关闭指定的窗体
在程序运行过程中打开一个FrmList,然后在另一个窗体frmCustomer中关闭FrmList.rnSystem.Diagnostics.Process[] ps = System.Diagnostics.Process.GetProcessesByName("FrmList");rnps[0].CloseMainWindow();rn但运行后,提示错误:数组索引超出范围。rnFrmList窗体确实是运行着的啊,有没有什么解决方法啊?
如何在MDI窗体中 关闭其他所有窗体?
如何在MDI窗体中 关闭其他所有窗体?rn1 如何关闭所有窗体rn2 如何检测所有已打开的窗体
如何在窗体中打开另一个窗体?
新建两个窗体:FORM1,FORM2;rn在FORM1中有一个Button Button1,单击Button后出现另一个窗体FORM2。rn在Button1的单击事件处理函数中如何编写代码?谢谢!!
c#中如何在窗体打开之前关闭窗体
在打开一个窗体时,我想在它可见之前,将它关闭,如何做?
如何在当前窗体中刷新另一个窗体中的datagridview
在三层结构中,我做了两个窗体,form1中有一个datagridview控件,用于显示数据库表中的信息,当双击datagridview的单元格时,弹出另一个窗体form2,并将单元格的相关信息传递给form2的相关控件进行修改。修改完成后点击form2的保存按钮保存修改。然后在不关闭form2的情况下如何让form1的datagridview控件刷新,将保存进去的信息显示出来。我用泛型集合对datagridview进行数据源绑定的。rn米少,给不了多少!在这里先谢谢各位前辈了!
C# 关闭当前窗体打开另一窗体?
两个窗体form1,form2.打开form1之后,点button1 关闭它 ,然后显示form2;我的代码是:rnthis.hide();rnform2 f2=new form2();rnf2.show();rn//问题是this.hide();是把form1隐藏了,仍然驻留在内存中.rn那么请问:怎样才能把form1彻底释放掉,再打开form2呢??rn
c#.net 中如何在一个窗体中关闭另一个窗体?
c#.net 中如何在一个窗体中关闭另一个窗体?
如何在打开的窗体中操作另一个打开的窗体?
rn  如何在打开的窗体中操作另一个打开的窗体?吃饭回来结贴!!!!!
如何在asp.net中关闭一个窗体!!!
想在asp.net中通过写java脚本将当前窗体关闭,却总关不上,代码如下:rnrn private void button1_click(object sender,Exception e)rnrn Respone.write(" ");rnrnrnrn望高手帮忙!
如何在主窗体中关闭子窗体??
请问如何在主窗体中创建和关闭子窗体??rn我用的是rnform1=new tForm1rndelete Form1rn但有问题rn当子窗体在两个以上的时候会出错
如何在指定窗体中运行外部程序?
程序有一个MDI窗体,现在要求在这个窗体中执行外部exe程序,即外部程序的窗体只能是MDI的子窗体,怎么办?谢谢先!
如何用JS在当前窗体中打开新窗体?
rnrn上面那样是打开一个新窗口,要怎么改一下才能在当前窗体中打开?
如何在指定的位置打开窗体。
大家好:rn 请问如何控制一个Form的大小,并将其在指定的位置打开。rn 谢谢!
如何在所有窗体打开同一子窗体?
因为项目中涉及到硬件访问,如何实现一个多个子窗体调用同一个子子窗体,而子子窗体只需要实例化一次,并且关闭子窗体时子子窗体不被释放?rnrnrn在测试过程中发现,如果子窗体关闭,子窗体加载的子子窗体会被资源释放(子子窗体!=null,但是子子窗体.IsDisposed=true)。rnrn如何实现关闭子窗体子子窗体不被释放?多个子窗体同一时刻只加载1个!
如何在一个新建的窗体中关闭原来的窗体!急呀~
如何在一个新建的窗体中关闭原来的窗体!急呀~
如何在窗体的FormActivate中关闭本窗体?
想在FormActivate事件中的某个判断语句中关闭本窗体,用了浑身解数,就是不行。请问除了放个TIMER一类的东西外,还能怎么关闭这个窗体?
如何在Sub Main()中打开窗体?
我在sub main()中用form1.show打开窗体怎么就一闪就没了,同时如何打开有模,无模窗体?
如何在的函数中打开窗体?
用TfrmTest.Create为何不行?
如何在窗体中打开浏览器呢?
是不是要加控件呢?应该怎么么做?谢谢
如何在窗体OnShow事件中关闭窗体?急!
我在窗体OnShow事件中初始化数据,或出错则需要关闭本窗口,但我在OnShow和OnActive事件中调用Close都不起作用,请问如何解决。
请问如何在窗体的create和active 事件中关闭窗体
我是一个新手,我在create中调用查询,想关闭窗体,在上两个事件中用close;不好使,请问用什么命令。rn
如何在窗体A中捕获窗体B的关闭事件
窗体A中点击按钮ShowDialog()显示窗体B,双击窗体B中的datagridview的一行获取了需要的数值,并关闭窗体B。如何在关闭窗体B的时候将获得的数值ADD到窗体A中的datagridview中,在哪个事件中ADD???
如何在窗体ONSHOW事件中关闭本窗体???
-
如何在窗体的close事件中中断窗体的关闭
如题
如何在新窗体中打开
[code=HTML] rnrn提交[/code]rn不影响原来的页面的情况下在新的页面中打开result.html,不能是在新选项卡中打开。而且要求result.html没有菜单栏、状态栏、地址栏等等,还要设定result.html的大小。
如何在窗体load的时候关闭窗体?
如何在窗体load的时候关闭窗体?
如何在关闭一个窗体时打开另一个窗体
如何在关闭一个窗体时打开另一个窗体,最好要全部源代码!谢谢啊!上次有人说简音的在frame1的关闭事件里写上 frame2.setVisle(true);但由于frame1,frame2属于两个不同的类,frame1所属的类中的闭闭监听器代码中,又不能访问frame2,怎么处理。哪位帮我?rn 或帮我做一个这样的东东,就是frame1上有一个菜单项假设叫showGirl吧,当击该菜单项时,要求frame1隐藏,同时显出一个frame2,当关闭frame2时,frame1又显出来!谢谢啊!我出50 分!
如何在打开窗体的同时关闭另一个窗体
比如说我在按FORM1的按钮时打开FORM2并且关闭FORM1
C#如何在关闭一个窗体之后打开另一个窗体
假设登入窗体Frm_Login;主窗体Frm_Main;rn在program里面写:Application.Run(new Frm_Main());rn接着在Frm_Main的Load事件中写:rnFrm_Login frm_login=new Frm_Login();rnfrm_login.showdialog();rn这样就基本OK了;
如何在打开一个窗体的同时,关闭另一个窗体。
我用的是,form2.showDialog()rn form1.close()rn结果form2打开了,form1却没有关闭。
如何在打开一个新窗体的同时关闭老的窗体?
在发贴之前,搜索到大部分关于此问题的解决方案推荐为用rn,然后调用closes.click(),但是我使用的时候,页面弹出一个警告框,提示说“仅在HTML帮助文档中才有此功能”,请问如何能够实现关闭父窗体?
如何在关闭一个窗体的同时打开另一个窗体
在窗体A写代码,把本身关闭,同时打开窗体B
如何在VC#中打开一个新的窗体,关闭窗体以及窗体间的数据传递???????????
各位兄台,请问如何以Visusal C# .Net 中的主窗体中打开一个新窗体,以及如何把在新窗体中输入的数据传给主窗体? 反正所有相关窗体的操作都指点一下,好吗? 谢谢!
如何在form窗体中嵌入新打开的窗体??
让一个窗体作为主界面,其他的窗体打开之后,就嵌入到新窗体里面,而不是另外打开一个界面,具体点,我菜鸟!
如何在非MDI窗体中打开MDI窗体?
如何在非MDI窗体中打开MDI窗体?rnrn
请问如何在 MDI 窗体中打开多个窗体
请问如何在 MDI 窗体中象 Word 那样打开多个窗体(只引用一个 From )!rnrnrnrnrn急rnrnrnrnrn请尽快回复
如何在一个普通窗体中打开另外一个窗体?
如何在一个普通窗体中打开另外一个窗体?
如何在一个窗体中打开另一个窗体
谢谢
如何在MSFORM窗体中使得打开的窗体只有一个?
如何在MSFORM窗体中使得打开的窗体只有一个?
相关热词 c#检测非法字符 c#双屏截图 c#中怎么关闭线程 c# 显示服务器上的图片 api嵌入窗口 c# c# 控制网页 c# encrypt c#微信网页版登录 c# login 居中 c# 考试软件