你做网站群好朋友的作文,唯品会网站建设的目的,wordpress关注公众号可见,淘宝客建站需要多少钱目录 引出CAD/CAE/CAM几何引擎-软件概述 郝建兵CADCAECAM 几何模型内核ACIS 两个老大之一Open CascadeParasolid 两个老大之一Autodesk的内核 总结其他自定义信号和槽1.自定义信号2.自定义槽3.建立连接4.进行触发 自定义信号重载带参数的按钮触发信号触发信号拓展 lambda表达式… 目录 引出CAD/CAE/CAM几何引擎-软件概述 郝建兵CADCAECAM 几何模型内核ACIS 两个老大之一Open CascadeParasolid 两个老大之一Autodesk的内核 总结其他自定义信号和槽1.自定义信号2.自定义槽3.建立连接4.进行触发 自定义信号重载带参数的按钮触发信号触发信号拓展 lambda表达式返回值mutable修饰案例 引出
讲座学习截图——《CAD/CAE/CAM几何引擎-软件概述》一 https://www.bilibili.com/video/BV18j411z7mA/?spm_id_from333.788vd_source826d5f626e7c248ff07419b116e3d87c
CAD/CAE/CAM几何引擎-软件概述 郝建兵
CAD CAE CAM 几何模型内核 国内用的大多是 Open CASCADE但是技术比较老了 ACIS 两个老大之一 3D ACIS Modeler | Spatial Open Cascade Parasolid 两个老大之一 Autodesk的内核 总结
讲座学习截图——《CAD/CAE/CAM几何引擎-软件概述》一 其他
自定义信号和槽
1.自定义信号
写到signals下 返回void 需要声明不需要实现 可以有参数可以重戟 2.自定义槽
返回void 需要声明也需要实现 可以有参数可以重载 写到public slot下或者public或者全局函数 3.建立连接 // 老师饿了学生请吃饭
connect(te,Teacher::hungry,st,Student::treat);4.进行触发 自定义信号重载
当自定义信号和槽出现重载 8.1 需要利用还数指针明确指向函数的地址· 8.2void(Teacher::tsignal )QString )Teacher::hungry; 8.3 QString转成char * 8.3.1.ToUtf80转为QByteArray 8.3.2.Data0转为Char * 8.4信号可以连接信号 8.5断开信号disconnect
带参数的 void (Teacher::*teacherSignal)(QString) Teacher::hungry;void (Student::*StudentSlot)(QString) Student::treat;void Student::treat(QString foodName){// QString - char * 先转成QByteArray(.toUtf8()) 再转成Char* ()qDebug() 请老师吃。。。 foodName.toUtf8().data();
}按钮触发 // 用一个按钮调用下课QPushButton *btn new QPushButton(下课了,this);// 重置窗口daxiaothis-resize(600,400);connect(btn,QPushButton::clicked,this,Widget::classIsOver);信号触发信号 // 无参的信号和槽连接void (Teacher::*teacherSignal2)(void) Teacher::hungry;void (Student::*StudentSlot2)(void) Student::treat;connect(te,teacherSignal2,st,StudentSlot2);// 信号连接信号connect(btn,QPushButton::clicked,te,teacherSignal2);断开信号disconnect
拓展
1、信号是可以连接信号 2、一个信号可以连接多个槽函数 3、多个信号可以连接同一个糟函数 4、信号和槽函数的参数必须类型一一对应 5、信号和槽的参数个数是不是要一致信号的参数个数可以多余槽函数的参数个数 connect(信号的发送者发送的信号signal信号)信号接受者槽函数SLOT) 优点参数直观 缺点编译器不会检测爸数类型
lambda表达式 [](){btn-setText(aaa);}();返回值 int ret []()-int{return 1000;}();qDebug() ret ret;mutable修饰 QPushButton *myBtn1 new QPushButton(this);QPushButton *myBtn2 new QPushButton(this);myBtn1-move(100,100);int m 10;connect(myBtn1,QPushButton::clicked,this,[m]()mutable {m10010;qDebug() m;});connect(myBtn2,QPushButton::clicked,this,[](){qDebug()m;});qDebug() m;案例 QPushButton * btnClose new QPushButton;btnClose-setText(close);btnClose-move(100,0);btnClose-setParent(this);connect(btnClose,QPushButton::clicked,this,[](){btnClose-setText(关闭);emit te-hungry(娃哈哈);
// this-close();});