【QT】在子窗体中控制父窗体

【背景说明】我的主窗体的名字叫做MainWindow,其子窗口是一个叫subDialog的类。我现在想做的是在子窗口的函数中调用父窗口。

在父窗口中打开子窗口

    //弹出对话框确定变换的参数
    subDialog *dialog = new subDialog(this);//这个地方this非常重要
    dialog->setModal(true);
    dialog->show();

在上面的代码当中,通过this把父窗口的指针传到了子窗口当中,因此在子窗口中可以使用这个传递的指针控制父窗口做一些事情。

子窗口中的操作:

    MainWindow *ptr = (MainWindow*)parentWidget();//这句话非常重要,将获取的父窗体的指针拿来使用
    ptr->test();//已经成功转到主对话框的test函数中去了
    parentWidget()->show(); //显示父窗体
    delete this; //删除自身
时间: 2024-08-04 13:23:39

【QT】在子窗体中控制父窗体的相关文章

c#如何将子窗体显示到父窗体的容器(panel)控件中

如何将一个窗体显示到一个容器控件中,刚开始想的比较简单,用窗体容器控件添加一般控件的方法,试了一试,代码如下: Form2 frm = new Form2(); this.panel1.Controls.Add(frm); frm.Show(); 但是提示了一个错误:无法将顶级控件添加到控件. 原来窗体是一个顶级控件,是无法将一个顶级控件添加到一个容器中来的.最后在网上找了相关资料,只需要将代码改下即可,还是原来的思路,代码如下: Form2 frm = new Form2(); frm.Top

子窗体控制父窗体的内容

//父窗体 using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Windows.Forms; namespace WindowsFormsApplication1 { public partial class Fo

jquery中ifram子窗体调用父窗体方法、父窗体调用子窗体方法

//调用子窗体中的方法. var childWindow = $("#AddFrame")[0].contentWindow;//获取子窗体的window对象 childWindow.subForm(); //调用父窗体中的方法 window.parent.afterAdd();

【转】C# 子窗体如何调用父窗体的方法

网络上有几种方法,先总结如下: 调用窗体(父):FormFather,被调用窗体(子):FormSub. 方法1: 所有权法       //FormFather:        //需要有一个公共的刷新方法       public void Refresh_Method()        {                //...        }        //在调用FormSub时,要把FormSub的所有者设为FormFather        FormSub f2 = new

Winform 子窗体设置刷新父窗体

方法1:所有权法 父窗体:Form1    子窗体:Form2 //Form1:窗体代码 //需要有一个公共的刷新方法 public void Refresh_Method() { //... } //在调用Form2时,要把Form2的所有者设为Form1 Form2 f2 = new Form2() ; f2.Owner = this; f2.ShowDialog() ; //Form2:窗体代码 //在需要对其调用者(父)刷新时 Form1 f1 ; f1 = (Form1)this.Ow

关闭子窗体时刷新父窗体

父窗体:NoticeList.aspx:子窗体:NoticeInfo.aspx, 1.NoticeList.aspx中有按钮btnAdd,点击后弹出窗口NoticeInfo.aspx. 弹出窗体代码:1:新增弹出:javascript:window.open(NoticeInfo.aspx');: 2:编辑弹出:<a href=NoticeInfo.aspx?PID=<%#Eval("NewsID") %>' target="_blank">

WPF用ShowDialog()弹出窗体时控制该窗体的显示位置,并传值回父窗体

原文:http://blog.csdn.net/kiss0622/article/details/5852153 1.父窗口代码 Window1.xaml.cs private void Button_Click(object sender, RoutedEventArgs e) { Window2 w2 = new Window2(this.Top, this.Left);//this.Top,this.Left 作用是将当前父窗体的位置传给子窗体 if (w2.ShowDialog()==t

Js/Jquery获取iframe中的元素 在Iframe中获取父窗体的元素方法

在web开发中,经常会用到iframe,难免会碰到需要在父窗口中使用iframe中的元素.或者在iframe框架中使用父窗口的元素 js 在父窗口中获取iframe中的元素  1. 格式:window.frames["iframe的name值"].document.getElementByIdx_x("iframe中控件的ID").click(); 实例:window.frames["ifm"].document.getElementByIdx_

C#定义委托函数实现在别的窗体中操作主窗体中的SerialPort控件

1.在主窗体(含有serialPort的窗体)中 //先定义委托 public delegate void OpenPort(); public delegate void ClosePort(); //同样在主窗体中实现添加 public void ClosePort()//关闭串口,供委托调用 { try { serialPort1.Close(); } catch (System.Exception) { } } public void OpenPort()//打开串口,供委托调用 { t