当前位置 博文首页 > liuguangshibei的博客:QT学习——day2

    liuguangshibei的博客:QT学习——day2

    作者:[db:作者] 时间:2021-08-13 12:55

    QT学习——day2

    #include "mywidget.h"
    #include "ui_mywidget.h"
    #include "testwidget.h"
    #include "testdialog.h"
    #include "testmainwindow.h"
    
    Mywidget::Mywidget(QWidget *parent) :
        QWidget(parent),
        ui(new Ui::Mywidget)
    {
        ui->setupUi(this);
        //b2=new QPushButton("hellow");
        //b2->show();
    #if 0
        //显示当前窗口的时候,显示另外一个窗口TestWidget
        //创建窗口对象,没有给w指定父对象
        //在QT中显示窗口必须调用show()方法
        //在创建窗口中如果有父窗口就可以不需要用show(0方法
        TestWidget *w =new TestWidget;
        w->show();
    #else
         TestWidget *w =new TestWidget();
         w->show();
         //MainWindow类型不能依附与父窗口显示,只能单独显示
         TestMainWindow *win= new TestMainWindow();
         win->show();
    
    #endif
    #if 0
         //创建对话框窗口,show()进行非模态显示
         TestDialog *dlg=new TestDialog();
         dlg->show();
    #else
         TestDialog *dlg=new TestDialog();
         //Dialog窗口不能依附父窗口实现,只能单独显示
         //模态,exec()阻塞程序的执行,进行模态显示
         dlg->exec();
    #endif
    }
    
    
    Mywidget::~Mywidget()
    {
        delete ui;
    }
    
    

    this指针指向的是当前的主窗口,往哪一级嵌套,就将指针指向哪一级(父窗口)。

    QT中的坐标体系

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-71qOdbbB-1612277130663)(C:\Users\流光拾贝\AppData\Roaming\Typora\typora-user-images\image-20210120112340584.png)]

    每一个子窗口的以左上角的顶点决定窗口的位置,左上角顶点的坐标参照与其父窗口,以此类推。

    QT的内存回收机制

    在qt中的Qwidget与Qobject中的构造函数里都有一个指向父对象的指针形参,故若继承与这两个类的子类,在定义对象时可以执行此构造函数与其父对象进行绑定,从而在其父对象执行结束的时候,它也随之结束,调用析构函数析构回收内存。

      TestDialog *dlg=new TestDialog(this);
    
     dlg->exec();
    

    如上:添加this指针以后关闭主窗口其也随之关闭,若不加this指针,则关闭主窗口其不会随之关闭,而需单独关闭。

    Qdebug的输出机制

     qDebug()<<"fwefwef"<<"fwefweaf";
    

    单独关闭。

    Qdebug的输出机制

     qDebug()<<"fwefwef"<<"fwefweaf";
    

    若要在控制台输出而不是终端则在.pro文件后加console;

    cs
    下一篇:没有了