5、qt中lambda表达式与信号配合使用、坐标系统
1、使用例子,传递参数、传值方式
b4.setParent(this); b4.setText("1111111"); b4.move(200,200); int a=10,b = 20; connect(&b4,&QPushButton::pressed, /* []:没有访问外部变量的权限 * [=]: 在本类中,外部所有的局部变量、类中的成员以值传递的方式传递进来 * [this]:类中所有的成员以值传递方式传递进来 * [&]:已引用得方式引用外部所有局部变量 * 以上只有只读权限,没有修改权限 需要修改添加关键字mutable * ()中可以传递信号的参数 */ [=]() mutable { qDebug()<<"111111"; b4.setText("1234"); qDebug()<<a<<b; } );
2、坐标系统相对于屏幕
主窗口相对于屏幕坐标系统:左上角(0,0)坐标,X往右递增,Y往下递增;
可以使用move()移动主窗口的位置,设置主窗口的大小resize()
控件相对于主窗口空白区域坐标系统;
可以使用move()移动控件的位置,设置控件的大小resize()
子坐标系统,相对于父类的位置,来确定的
3、内存回收机制
qt内部根据,当前的控件所指向的父类,创建对象树,在释放方的时候,会自动释放所分配的内一层,根据对象树一层一层网上查找;
C++语法在没有调用到delate()函数的时候,肯定不会调用析构函数;
那么给子对象分配内存后,可以不需要释放内存;
这个必须要直接或者间接继承QObject
指定父对象;
 
                    
                     
                    
                 
                    
                
 
                
            
         
         浙公网安备 33010602011771号
浙公网安备 33010602011771号