Qt 代码: 子窗口调用父窗口(其实就是用指针直接访问)
之前的 Qt 编程大多只涉及简单的多窗口,并未染指窗口间的传值交互,想来还是“涉世未深”,对 Qt 的理解、应用还需殷勤努力。
#ifndef MAINWINDOW_H #define MAINWINDOW_H #include <QMainWindow> namespace Ui {
class MainWindow; } class MainWindow : public QMainWindow {
Q_OBJECT public: explicit MainWindow(QWidget *parent = 0); ~MainWindow(); void setLineText(QString str); private slots: void on_pushButton_clicked(); private: Ui::MainWindow *ui; }; #endif // MAINWINDOW_H |
#include "mainwindow.h" #include "ui_mainwindow.h" #include "dialog.h" #include "ui_dialog.h" MainWindow::MainWindow(QWidget *parent) : QMainWindow(parent), ui(new Ui::MainWindow) {
ui->setupUi(this); } MainWindow::~MainWindow() {
delete ui; } void MainWindow::on_pushButton_clicked() {
Dialog subwin(this); //"this" is very important. subwin.setGeometry(x()-100, y()+100, wifth()-100, height()-100); subwin.exec(); //needed. } void MainWindow::setLineText(QString str) {
ui->lineEdit->setText(str); } |
#ifndef DIALOG_H #define DIALOG_H #include <QDialog> namespace Ui {
class Dialog; } class Dialog : public QDialog {
Q_OBJECT public: explicit Dialog(QWidget *parent = 0); ~Dialog(); private slots: void on_pushButton_clicked(); private: Ui::Dialog *ui; }; #endif // DIALOG_H |
#include "dialog.h" #include "ui_dialog.h" #include "mainwindow.h" #include "ui_mainwindow.h" Dialog::Dialog(QWidget *parent) : QDialog(parent), ui(new Ui::Dialog) {
ui->setupUi(this); } Dialog::~Dialog() {
delete ui; } void Dialog::on_pushButton_clicked() {
MainWindow *ptr = (MainWindow*)parentWidget(); //"parentWidget" very important. 获得父部件指针,同时需要类型强转. ptr->setLineText("i can do it, too.");
close(); } |
http://blog.csdn.net/jan5_reyn/article/details/38955707
Qt 代码: 子窗口调用父窗口(其实就是用指针直接访问)的更多相关文章
- winform子窗口调用父窗口的控件及方法-一般调用
首先新建一个窗体应用程序,在项目属性中点击右键->添加->添加新项,选择Windows窗体->添加. 在Form1和Form2窗口中各添加一个按钮,并双击添加事件处理函数: ...
- JavaScript子窗口调用父窗口变量和函数的方法
在做一个父窗口开启子窗口并且在子窗口关闭的时候调用父窗口的方法,达到局部刷新的目的. 父窗口: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 ...
- js中子窗口调用父窗口中的变量、函数
- iframe里面的页面调用父窗口,左右窗口js函数的方法
iframe里面的页面调用父窗口,左右窗口js函数的方法 实现iframe内部页面直接调用该iframe所属父窗口自定义函数的方法. 比如有A窗口,A内有个IFRAME B,B里面的装载的是C页面 ...
- window.open子窗口获取父窗口的值
//子窗口获取父窗口id的值 window.opener.document.getElementById("id").value; //子窗口调用父窗口的函数 window.ope ...
- JS 在open打开的子窗口页面中调用父窗口页面的JS方法
需求的情景如下: 1:做新增或修改等操作的时候打开一个新的浏览器窗口(使用window.open(参数等)方法) 2:在新增或修改等的页面上有返回按钮.重置按钮.保存按钮,对于返回就直接关闭此窗口(使 ...
- MFC子窗口和父窗口
转载声明: 本文转载自:http://www.cnblogs.com/BeyondTechnology/archive/2011/03/25/1995934.html 感谢BeyondTechnolo ...
- js子窗口修改父窗口内容
在框架中,我用 JavaScript 获取 JSON 数据,组织成 HTML 代码,最后将其填充至上层文档的一个元素中.按照一般的写法,我们需要用到类似如下的语句: 1.window.parent.d ...
- MFC子窗口和父窗口(SetParent,SetOwner)
一.概念和区别 在windows系统中,每个窗口对象都对应有一个数据结构,形成一个list链表.系统的窗口管理器通过这个list来获取窗口信息和管理每个窗口.这个数据结构中有四个数据用来构建list, ...
随机推荐
- Installing perl and writing your first perl program in Ubuntu
Installing perl and writing your first perl program in Ubuntu Installing perl and writing your f ...
- CodeForces 447C DZY Loves Sequences DP
题目:click here 题意:求给定序列更改其中一个元素后的最长连续上升子序列的长度 分析:最长的连续子序列有2种,一种是严格上升(没有更改元素)的长度加1,一种是两段严格上升的加起来. #inc ...
- vs2013出现ISO C++ conformant解决办法
出现:错误 1 error C4996: 'strnset': The POSIX name for this item is deprecated. Instead, use the I ...
- BZOJ 2064: 分裂( 状压dp )
n1+n2次一定可以满足..然后假如之前土地集合S1的子集subs1和之后土地集合S2的子集subs2相等的话...那么就少了2个+操作...所以最后答案就是n1+n2-少掉的最多操作数, 由状压dp ...
- UVa 1658 Admiral(最小费用最大流)
拆点费用流 --------------------------------------------------------------------- #include<cstdio> # ...
- C语言的指针变量
C语言的指针变量 在C语言中,变量是固定范围的存储空间,它存储的是赋给他的值, 比如: ; /* 这里是定义一个整型变量a,并把12这个值存储在a的地址空间上 这个地址空间是系统随机分配的,对用户是透 ...
- eclipse手动添加源码
在开发过程中,有的时候需要我们自已手动去添加一些源码文件,但是由于我们可能在eclipse中安装了jad反编译插件,我们再用“Ctrl + 鼠标左键”的话,会打开已经反编译好的class文件,而不是带 ...
- HDU3496-Watch The Movie
描述: New semester is coming, and DuoDuo has to go to school tomorrow. She decides to have fun tonight ...
- hadoop 主节点存储告警
之前只他调整过dfs 的存储目录到最大配额的目录,其它没有处理(就是在默认的/ 目录下,而这个目录的存储配额只有50G) 运行一周的时间不到,集群开始告警,查看是目录/ 的存储占用超过了60% 再查看 ...
- jquery获取多个checkbox的值异步提交给php
html代码: <tr> <td><input type="checkbox" name="uid" value="&l ...