问题引入:在Widget中创建Button等控件时,如果不指定Button等控件的父对象,就会产生相关控件无法再此Widget窗口中显示。因此当一些控件需要在当前Widget窗口中显示的时候就需要为控件添加父对象。
指定父对象方式
- setParent(&w)
- 通过构造函数传参
Note:指定父对象之后,父对象显示,子对象将自动显示
代码展示
int main(int argc, char *argv[])
{
QApplication a(argc, argv); //固定框架,有且只有一个应用程序类的对象
myWidget w;
w.setWindowTitle("吉林大学"); //最多可以写6个中文字符,否则编译不通过
/*指定父对象方式*/
/*1.setParent(&w)*/
/*2.通过构造函数传参*/
/*Note:指定父对象之后,父对象显示,子对象将自动显示*/
QPushButton button;
button.setParent(&w); // 通过setParent()指定父对象
button.setText("点我");
button.move(100,100);
//button.show(); //button已经指定父对象,因此可以不用再写show方法
QPushButton button2(&w); //通过构造函数传参指定父对象
button2.setText("Click me");
button2.move(200,200);
w.show(); //窗口创建默认是隐藏的,因此需要show显示
return a.exec(); //a.exec()是等待用户操作,也就是等待事件发生
}