2指定父对象

手动创建

添加一个空项目

选择【choose】进行下一步。设置项目名称和路径 —> 选择编译套件 --> 修改类信息 --> 完成(步骤同上),生成一个空项目。在空项目中添加文件:在项目名称上单击鼠标右键弹出右键菜单,选择【添加新文件】

弹出新建文件对话框

在此对话框中选择要添加的类或者文件,根据向导完成文件的添加。

.pro文件

QT+=widgets          //确保QT5版本使用

main.cpp文件

#include <QApplication>

#include <QWidget>

int main(int argc,char *argv[])

{

QApplication App(argc,argv);

QWidget w;

w.setWindowTitle("QT");      //设置窗口名称

w.show();

return App.exec();

}

添加按钮控件

添加头文件:#include <QPushButton>后在main函数中添加以下代码:

QPushButton push;

push.setText("QT");

push.show();

此时发现,添加按钮控件并不在窗口中。

指定父对象

目的:使按钮控件作为窗口的子对象,在窗口中显示。如果不指定父对象,对象和对象(窗口与窗口)之间相互独立,没有关系。

A指定b为它的父对象,那么a将放在b的上面

方式:

  1. 利用setParent()函数。
  2. 通过构造函数传参。

注意:指定父对象,只需要父对象显示,上面的子对象自动显示。

代码如下:

//方法一:利用setParent指定父窗体

QPushButton push;

push.setParent(&w);

push.setText("QT");     //按钮内容

push.move(100,100);     //按钮位置

push.show();

//方法二:在构造函数中指定父窗体

/*

QPushButton push(&w);

push.setText("QT");

push.move(100,100);

push.show();

*/

结果图,可以看到按钮在窗口中,坐标为(100,100)。注意:若不指定坐标则默认为(0,0)。即靠近做上角

Main文件源代码:

#include <QApplication>

#include <QWidget>

#include <QPushButton>

int main(int argc,char *argv[])

{

QApplication App(argc,argv);

QWidget w;

w.setWindowTitle("QT");

//方法一:利用setParent指定父窗体

QPushButton push;

push.setParent(&w);

push.setText("QT");     //按钮内容

push.move(100,100);     //按钮位置

//方法二:在构造函数中指定父窗体

/*

QPushButton push(&w);

push.setText("QT");

push.move(100,100);

*/

w.show();     //显示窗口,自动显示子对象内容,即不需要push.show()

return App.exec();

}

原文地址:https://www.cnblogs.com/gd-luojialin/p/9215678.html

时间: 2024-10-31 21:07:12

2指定父对象的相关文章

Qt那点事儿(三) 论父对象与子对象的关系

第三回 父与子 70后的道友都应该看过这么一部片子叫做<<父子情深>>.讲述的是一个小男孩患了绝症,父亲为了满足他的愿望,让已关门的游乐园为他们父子俩重新开放.在游乐园尽情地玩耍后,最后小孩子在父亲的怀中安详地闭上了眼睛.缓缓转动的摩天轮,配着淡淡忧伤的曲调,这一刻哥泪流满面.谁说世上只有妈妈好,父爱也顶半边天.此时台下的众多男道友热泪盈眶,不约而同地起立鼓掌.史上最大的冤屈,终于得以昭雪. 但是人世间这种真挚的父爱也存在于Qt中吗? 对此,从小缺乏父爱的张无忌小友给出了自己的答案

CSS中父对象的内边距是否对子对象的外边距造成影响

CSS中父对象的内边距是否对子对象的外边距造成影响:建议:尽可能的手写代码,可以有效的提高学习效率和深度.有时候可能有这样的疑问,父对象的内边距padding是否会对子对象的外边距margin产生影响.下面就来通过实例代码的表现来说明这个问题.实例代码如下: <!DOCTYPE html> <html> <head> <meta charset=" utf-8"> <meta name="author" cont

自己实现简单的AOP(二)引入Attribute 为方法指定增强对象

话续前文 : 自己实现简单的AOP(一)简介 在第一篇文章中,对AOP的实现方式做了一个简单介绍.接下来,引入Attribute 为方法指定增强对象,由此实现一个简单的AOP. 注意:指定的是增强对象,“对象”,也就是说Attribute标记,标记的其实是一个对象.由此.使用多态便可轻松实现增强的扩展. 自定义的Attribute /// <summary> /// 为方法标记指定的增强对象 /// <para>指定的增强,可通过代理 DelayProxy 织入</para&

借用鼠标指定的对象实现动态显示和隐藏菜单

<!DOCTYPE html> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>     <title></title>     <style type="text/css

[ jquery 选择器 :even ] 此方法选取指定jquery对象中的偶数对象

此方法选取指定jquery对象中的偶数对象: 实例: <!DOCTYPE html> <html lang='zh-cn'> <head> <title>Insert you title</title> <meta http-equiv='description' content='this is my page'> <meta http-equiv='keywords' content='keyword1,keyword2,k

[Quick-x]移动CCEditbox的父对象导致输入框位置偏移问题

CCEditbox对象添加到某个layer,当layer移动时候,editbox输入状态下输入光标保持在原位,看起来就是光标发生了偏移 如果开始时添加的editbox不在屏幕内的话,光标会出现在屏幕边缘 参看了一下这篇文章 http://www.cnblogs.com/lan0725/p/3210963.html 输入光标的位置"只在setPosition 和 onEnter 两个方法里边调用" 既然这样的话只需要在began的时候加入设置位置的方法即可 local pointX =

javascript --- 子对象访问父对象的方式

在传统面向对象的编程语言里,都会提供一种子类访问父类的特殊语法,引文我们在实现子类方法往往需要父类方法的额外辅助.在这种情况下,子类通常会调用父类中的同名方法,最终以便完成工作. javascript虽然没有类似上述的特殊语法,但我们可以造一个啊! function her(){}; her.prototype.name = 'Anna'; her.prototype.toString = function(){ var const = this.constructor; return cons

__x__(69)0926第十一天__ JavaScript 指定函数对象的 this 上下文对象

指定函数对象的 this 上下文对象 即调用函数对象的 .call() 或者 .apply() 方法 指定 this 指向指定的对象. function myFun(){ document.write("我是"+this.name); } var sun = {name:"孙悟空"}; var zhu= {name:"猪八戒"}; .call(); myFun.call(sun); // 我是孙悟空 .apply(); myFun.apply(z

解决 堆栈 出现的父对象和子对象相关联的问题 (深拷贝)

// 解决 堆栈 出现的父对象和子对象相关联的问题 function dishesStackHandle(p, c) { var c = c || {}; for (var i in p) { if (typeof p[i] === 'object') { if (i == 'null' || i == null || p[i] == null) { c[i] = {}; } else { c[i] = (p[i].constructor === Array) ? [] : {}; } dish