当前位置: 首页 > news >正文

现在做网站一般做多宽济南建站模板

现在做网站一般做多宽,济南建站模板,建设银行的网站是多少,网站生成手机端前言#xff1a; 在Qt中#xff0c;有一种回调技术的替代方法#xff1a;那就是信号和槽机制。当特定事件发生时#xff0c;会发出一个信号。Qt的小部件中有许多预定义的信号#xff0c;但我们可以将小部件子类化#xff0c;向它们添加自定义的信号。槽是响应特定信号的…前言 在Qt中有一种回调技术的替代方法那就是信号和槽机制。当特定事件发生时会发出一个信号。Qt的小部件中有许多预定义的信号但我们可以将小部件子类化向它们添加自定义的信号。槽是响应特定信号的函数。 一、QPushButton Class的创建 按钮控件头文件#includeQPushButton #include mywidget.h #includeQPushButtonmyWidget::myWidget(QWidget *parent): QWidget(parent) {//创建一个按钮QPushButton * btn new QPushButton;//btn-show();//show以顶层方式弹出窗口控件//让btn对象 依赖在myWidget窗口中btn-setParent(this);//显示文本btn-setText(第一个按钮);}myWidget::~myWidget() { } #include mywidget.h #includeQPushButtonmyWidget::myWidget(QWidget *parent): QWidget(parent) {//创建第二个按钮,按照控件大小创建窗口QPushButton * btn2 new QPushButton(第二个按钮,this);//移动btn2按钮btn2-move(100,100);//重置窗口大小resize(600,400);//设置固定窗口大小setFixedSize(600,400);//设置窗口标题setWindowTitle(窗口); }myWidget::~myWidget() { } 二、对象树 当创建的对象在堆区时候,如果指定的父亲是object派生下来的类或者.QObject子类派生下来的类可以不用管理释放的操作将对象会放入到对象树中。一定程度上简化了内存回收机制   1.创建  2. mypushbutton.h #ifndef MYPUSHBUTTON_H #define MYPUSHBUTTON_H#include QPushButtonclass MyPushButton : public QPushButton {Q_OBJECT public:explicit MyPushButton(QWidget *parent nullptr);~MyPushButton(); signals:};#endif // MYPUSHBUTTON_H3. mypushbutton.cpp #include mypushbutton.h #include QDebugMyPushButton::MyPushButton(QWidget *parent) : QPushButton(parent) {qDebug() 我的按钮类构造调用; }MyPushButton ::~MyPushButton() {qDebug() 我的按钮类析构; }4.mywidget.cpp #include mywidget.h #include QPushButton #include mypushbutton.h #include QDebugmyWidget::myWidget(QWidget *parent): QWidget(parent) {//创建一个自己按钮的对象MyPushButton * myBtn new MyPushButton;myBtn-setText(我自己的按钮);myBtn-move(200,0);myBtn-setParent(this); //设置到对象树中 }myWidget::~myWidget() {qDebug() myWidget的析构调用; } 5.运行结果  三、QT坐标系  坐标系 以左上角为原点00X向右增加   Y向下增加 其坐标相对于父窗口而言 *四.信号和槽 connect(信号的发送者发送的具体信号信号的接受者信号的处理槽)) 信号槽的优点 松散耦合﹐信号发送端和接受端本身是没有关联的通过connect连接将两端耦合在一起 1.点击按钮关闭窗口 参数1   信号的发送者   参数2   发送的信号函数的地址   参数3   信号的接受者     参数4   处理的槽函数函数的地址 #include mywidget.h #include QPushButton #include mypushbutton.h #include QDebugmyWidget::myWidget(QWidget *parent): QWidget(parent) {//创建一个自己按钮的对象MyPushButton * myBtn new MyPushButton;myBtn-setText(我自己的按钮);myBtn-move(200,0);myBtn-setParent(this); //设置到对象树中//需求 点击我的按钮关闭窗口//参数1 信号的发送者 参数2 发送的信号函数的地址 参数3 信号的接受者 参数4 处理的槽函数//connect(myBtn,MyPushButton::clicked,this,myWidget::close);connect(myBtn,QPushButton::clicked,this,QWidget::close); }myWidget::~myWidget() {qDebug() myWidget的析构调用; } 2.自定义信号和槽 1自定义信号 写到signals下 返回void 需要声明不需要实现 可以有参数可以重载 2自定义槽函数 返回void 需要声明也需要实现 可以有参数,可以重载 写到public slot下或者public或者全局函数。 3当定义信号和槽出现重载 需要利用函数指针明确指向函数地址 void(Teacher:: *teacherSignal)(QString) Teacher::hungry; void(Student:: *studentSlot)(QString) Student::treat; connect(zt,teacherSignal,st,studentSlot); QsString ----》char *先转成OByteArray(.toUtf8())再转char *() 4信号连接信号 无参信号和槽的连接 void(Teacher:: *teacherSignal2)(void) Teacher::hungry; void(Student:: *studentSlot2)(void) Student::treat; connect(zt,teacherSignal2,st,studentSlot2); 信号连接信号 connect(btn,QPushButton::clicked,zt,teacherSignal2);5断开信号   disconnect(zt,teacherSignal2,st,studentSlot2); 3.代码实现 1student.h #ifndef STUDENT_H #define STUDENT_H#include QWidgetclass Student : public QWidget {Q_OBJECT public:explicit Student(QWidget *parent nullptr);signals:public slots://早期qt版本 必须写到public slots高版本可以写到public或者全局下//返回值 void需要声明也需要实现//可以有参数可以发生重载void treat(); };#endif // STUDENT_H2teacher.h #ifndef TEACHER_H #define TEACHER_H#include QObjectclass Teacher : public QObject {Q_OBJECT public:explicit Teacher(QObject *parent nullptr);signals://自定义信号 写到signals下//返回值是void只需要声明不需要实现//可以有参数可以重载void hungry();};#endif // TEACHER_H3widget.h #ifndef WIDGET_H #define WIDGET_H#include QWidget #include teacher.h #include student.hQT_BEGIN_NAMESPACE namespace Ui { class Widget; } QT_END_NAMESPACEclass Widget : public QWidget {Q_OBJECTpublic:Widget(QWidget *parent nullptr);~Widget();private:Ui::Widget *ui;Teacher * zt;Student * st;void classIsOver();}; #endif // WIDGET_H4student.cpp #include student.h #include QDebug.h Student::Student(QWidget *parent) : QWidget(parent) {}void Student::treat() {qDebug()请老师吃饭;} void Student::treat(QString foodName) {//QsString ----》char *先转成OByteArray(.toUtf8())再转char *()qDebug()请老师吃饭老师要吃foodName.toUtf8().data(); }5teacher.cpp #include teacher.hTeacher::Teacher(QObject *parent) : QObject(parent) {}6widget.cpp #include widget.h #include ui_widget.h #include QPushButton//Teacher 类 老师类 //Student 类 学生类 //场景下课后老师触发一个信号饿了学生响应信号 请客吃饭Widget::Widget(QWidget *parent): QWidget(parent), ui(new Ui::Widget) {ui-setupUi(this);//创建一个老师对象this-zt new Teacher(this);//创建一个学生对象this-st new Student(this);// //老师饿了学生请客的连接 // connect(zt,Teacher::hungry,st,Student::treat);// //调用下课函数 // classIsOver();//连接带参数的信号和槽//指针---》地址//函数指针----》函数地址void(Teacher:: *teacherSignal)(QString) Teacher::hungry;void(Student:: *studentSlot)(QString) Student::treat;connect(zt,teacherSignal,st,studentSlot);//调用下课函数classIsOver();//点击一个 下课的按钮再触发下课QPushButton * btn new QPushButton(下课,this);//重置窗口大小this-resize(600,400);//点击按钮触发下课//connect(btn,QPushButton::clicked,this,Widget::classIsOver);//无参信号和槽的连接void(Teacher:: *teacherSignal2)(void) Teacher::hungry;void(Student:: *studentSlot2)(void) Student::treat;connect(zt,teacherSignal2,st,studentSlot2);//信号连接信号connect(btn,QPushButton::clicked,zt,teacherSignal2);//断开信号//disconnect(zt,teacherSignal2,st,studentSlot2);}void Widget::classIsOver() {//下课函数调用后触发老师饿了的信号//emit zt-hungry();emit zt-hungry(鱼香肉丝);} Widget::~Widget() {delete ui; } 4.Lambda表达式  C11中的Lambda 表达式用于定义并创建匿名的函效对象以简化编程工作。[]  标识符   匿名函数 值传递 引用传递 ()  参数     {}  实现体 mutable   修饰  值传递变量可以修改拷贝出的数据改变不了本体 返回值  []()  -  int {} 最常用   [](){} //利用Lambda表达式实现点击按钮关闭窗口QPushButton *btn2 new QPushButton;btn2-setText(关闭);btn2-move(100,0);btn2-setParent(this);connect(btn2,QPushButton::clicked,this,[](){ // this-close(); // emit zt-hungry(鱼香肉丝);btn2-setText(AAAAA);}); 5.整体框架
http://www.hkea.cn/news/14458386/

相关文章:

  • 西安网站推广公司电话做结构图的网站
  • 网站名后台修改后 前台不显示wordpress 写文章 插件
  • 惠州做网站建设网站建设自查及整改报告
  • 创建网站的app慈溪app开发公司
  • 长沙网站优化技巧徐州seo管理
  • 福州网站建设服务上海龙元建设网站
  • 潜江网站建设兼职青岛制作公司网站
  • 宿迁市区建设局网站网站开发基本要求
  • 百度网站大全首页自己搭建网络培训平台
  • diy网站腾讯云做的网站会被拦截么
  • 网站开发的教学网站网站页面外链怎么做
  • 网站有哪些推荐爱站seo查询软件
  • 定制网站建设创意3d模型代做网站
  • 验证码平台网站开发做ppt封面的网站
  • 网站点击量统计企业响应式网站建设报价
  • 免费好用的网站制作网站联盟广告
  • 做的好的手机网站有哪些内容营销型网站托管
  • 做阿里巴巴网站有什么用html免费素材
  • 整形网站源码网上工伤做实网站
  • 深圳网站建设三把火凤阳县建设局网站
  • 大连 网站维护昆明网络推广公司
  • 石家庄市住房和城乡建设局官方网站餐饮加盟网站建设案例
  • 门户网站建设对策及建议自己做的动画买给网站
  • 服装销售 网站建设论文装潢设计公司
  • 网站设计公司哪家好易语言可以做网站吗
  • 达内网站开发培训遵义做网站
  • 外观设计网站贵池区城乡与住房建设网站
  • 阿里手机网站开发框架广告公司名字 三个字
  • wordpress 做下载站店面布置效果图大全
  • 做app和网站哪个比较好用四会市城乡规划建设局网站