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

公司建设网站属于什么科目有没有专门做平铺素材的网站

公司建设网站属于什么科目,有没有专门做平铺素材的网站,重庆网约车哪个平台最好,网站建设的仿站一、Qt核心#xff1a;元对象系统 1、Qt核心特点 Qt对标准C进行了扩展#xff0c;引入了一些新的概念和功能元对象编译器#xff08;MOC#xff09;是一个预处理器#xff0c;先将Qt的特性程序转为标准C程序#xff0c;再由标准C编译器进行编译Qt为C语言增加的特性在Qt…一、Qt核心元对象系统 1、Qt核心特点 Qt对标准C进行了扩展引入了一些新的概念和功能元对象编译器MOC是一个预处理器先将Qt的特性程序转为标准C程序再由标准C编译器进行编译Qt为C语言增加的特性在Qt Core模块中实现由Qt的元对象系统实现。包括信号与槽机制、实行系统、动态类型转换等。使用信号与槽机制只有添加Q_OBJECT宏moc才能对类中的信号与槽进行预处理。 2、元对象系统 QObject类是所有使用元对象的类的基类在一个类的private部分声明private Q_OBJECT宏MOC元对象编译器为每个QObject的子类提供必要代码。 二、Qt核心属性系统、信号与槽 1、属性系统 Q_PROPERTY宏定义一个返回类型为type名称为name的属性.Q_PROPERTY(type nameREAD getFunction[WRITE setFunction][RESET resetFunction][NOTIFY notifySignal][DESIGNABLE bool][SCRIPTABLE bool][STORED bool][USER bool][CONSTANT][FINAL])1创建属性 class QMyWidGet public QWidget {Q_OBJECTQ_PROPERTY(bool focus READ hasFocus)Q_PROPERTY(bool enabled READ isEnabled WRITE setEnabled)Q_PROPERTY(QCursor cursor READ cursor WRITE SetCursor RESET unsetCursor) public:explicit QMyWidget(QWidget *parent nullptr); };1使用属性 setProperty可以在运行时为类定义一个新的属性称之为动态属性。QPushButton *button new QPushButton; QObject *object button; object-setProperty(flat, true); bool isFalt object-property(flat);2、类的附加信息 Q_OBJECT Q_CLASSINFO(author, ZhangSan) Q_CLASSINFO(compay, XXX) Q_CLASSINFO(version 1.1.1)QMyWidget *myWidget new QMyWidget; QDebug()myWidget-metaObject()-classInfo(0).name(); QDebug()myWidget-metaObject()-classInfo(0).value(); QDebug()myWidget-metaObject()-classInfo(1).name(); QDebug()myWidget-metaObject()-classInfo(1).value();3、信号与槽 1原型 static QMetaObject::Connection connect(const QObject *sender, const char *signal,const QObject *receiver, const char *member, Qt::ConnectionType Qt::AutoConnection);static QMetaObject::Connection connect(const QObject *sender, const QMetaMethod signal,const QObject *receiver, const QMetaMethod method,Qt::ConnectionType type Qt::AutoConnection);inline QMetaObject::Connection connect(const QObject *sender, const char *signal,const char *member, Qt::ConnectionType type Qt::AutoConnection) const;最后一个参数Qt::ConnectionType表示信号与槽之间的关联方式Qt::AutoConnection默认值自动确定关联方式Qt::DirectConnection信号被发射时槽立即执行槽函数与信号在同一个线程Qt::QueuedConnection事件循环回到接受者线程后执行槽槽与信号在不同线程Qt::BlockingQueuedConnection信号线程会被阻塞直到槽函数执行完毕当槽函数与信号在同一个线程会导致死锁。 2使用 // 如果信和槽函数都带有参数需要注明参数类型 connect(spinFontSize, SIGNAL(valueChanged(int)), this,SLOT(on_spinBoxFontSize_valueChanged(int))); // 当信号名称包括参数唯一时可以使用以下绑定 connect(spinFontSize, QSpinBox::valueChanged, this,MainWindow::on_spinBoxFontSize_valueChanged);3自定义信号 在槽函数里使用QObject::sender()可以回去信号发射者的指针QSpinBox *spinbox qobject_castQSpinBos*(sender());class QPersen : public QObject {Q_OBJECT private:int m_age 10; public:voud incAge(); signals:void ageChanged(int value); // 信号函数 }; void QPerson::incAge() {m_age;emit ageChanged(m_age); //发射信号 }信号函数必须无返回值但可以由输入参数信号函数无需实现只需要在某些条件下发射信号。三、元对象系统特性测试 1、创建项目基于QWidget 2、添加UI 3、添加QPerson类基于QObject #ifndef QPERSON_H #define QPERSON_H#include QObjectclass QPerson : public QObject {Q_OBJECTQ_CLASSINFO(author, liutt)Q_CLASSINFO(compay, XXX)Q_CLASSINFO(version, 1.1.1)// 添加属性Q_PROPERTY(unsigned age READ age WRITE setAge NOTIFY ageChanged)Q_PROPERTY(QString name MEMBER m_strName) //MEMBER 绑定变量Q_PROPERTY(int score MEMBER m_nScore)private:unsigned int m_nAge 10;QString m_strName;int m_nScore 79;public:explicit QPerson(QString strName, QObject *parent nullptr);unsigned int age();void setAge(unsigned int value);void incAge();signals:void ageChanged(unsigned int value);public slots: };#endif // QPERSON_H #include qperson.hQPerson::QPerson(QString strName, QObject *parent) : QObject(parent) {m_strName strName; }unsigned int QPerson::age() {return m_nAge; }void QPerson::setAge(unsigned int value) {m_nAge value;emit(ageChanged(m_nAge)); }void QPerson::incAge() {m_nAge;emit(ageChanged(m_nAge)); } 4、添加信号与槽功能 #ifndef WIDGET_H #define WIDGET_H#include QWidget #include qperson.hnamespace Ui { class Widget; }class Widget : public QWidget {Q_OBJECTpublic:explicit Widget(QWidget *parent nullptr);~Widget();private:void on_ageChanged(unsigned int value);private slots:void on_btnBoyInc_clicked();void on_btnGirlInc_clicked();void on_btnClassInfo_clicked();void on_spin_valueChanged(int value);private:Ui::Widget *ui;QPerson *boy;QPerson *girl;};#endif // WIDGET_H#include widget.h #include ui_widget.h#include QMetaClassInfoWidget::Widget(QWidget *parent) :QWidget(parent),ui(new Ui::Widget) {ui-setupUi(this);ui-spinBoxBoy-setProperty(isBoy, true);ui-spinBoxGirl-setProperty(isBoy, false);boy new QPerson(小乐);boy-setProperty(score, 60);boy-setProperty(age, 12);boy-setProperty(sex, boy);connect(boy, QPerson::ageChanged, this, Widget::on_ageChanged);girl new QPerson(小美);girl-setProperty(score, 70);girl-setProperty(age, 11);girl-setProperty(sex, girl);connect(girl, QPerson::ageChanged, this, Widget::on_ageChanged);ui-spinBoxBoy-setValue(12);ui-spinBoxGirl-setValue(11);connect(ui-spinBoxBoy, SIGNAL(valueChanged(int)), this, SLOT(on_spin_valueChanged(int)));connect(ui-spinBoxGirl, SIGNAL(valueChanged(int)), this, SLOT(on_spin_valueChanged(int))); }Widget::~Widget() {delete ui; }void Widget::on_spin_valueChanged(int value) {Q_UNUSED(value)QSpinBox *spinBox qobject_castQSpinBox*(sender());if(spinBox-property(isBoy).toBool()) {boy-setAge(spinBox-value());}else {girl-setAge(spinBox-value());} }void Widget::on_ageChanged(unsigned int value) {Q_UNUSED(value)QPerson *pPerson qobject_castQPerson*(sender());QString strName pPerson-property(name).toString();QString strSex pPerson-property(sex).toString();unsigned int nAge pPerson-age();ui-plainTextEdit-appendPlainText(strName,strSexQString::asprintf(,年龄%d, nAge)); }void Widget::on_btnBoyInc_clicked() {boy-incAge(); }void Widget::on_btnGirlInc_clicked() {girl-incAge(); }void Widget::on_btnClassInfo_clicked() {const QMetaObject* meta boy-metaObject();ui-plainTextEdit-clear();ui-plainTextEdit-appendPlainText(类元对象信息);ui-plainTextEdit-appendPlainText(QString(类名称%1).arg(meta-className()));ui-plainTextEdit-appendPlainText(property: );for (int i meta-propertyOffset(); i meta-propertyCount(); i) {QMetaProperty prop meta-property(i);const char *propName prop.name();QString strPropValue boy-property(propName).toString();ui-plainTextEdit-appendPlainText(QString(属性名称%1属性值%2).arg(propName, strPropValue));}ui-plainTextEdit-appendPlainText(classInfo: );for (int i meta-classInfoOffset(); i meta-classInfoCount(); i) {QMetaClassInfo classInfo meta-classInfo(i);ui-plainTextEdit-appendPlainText(QString(类信息名称%1类信息值%2).arg(classInfo.name(), classInfo.value()));} }四、Qt全局定义 1、Qt全局定义 QtGlobal头文件包含了Qt类库的一些全局定义基本函数类型函数宏 1Qt数据类型 typedef signed char qint8; /* 8 bit signed */ typedef unsigned char quint8; /* 8 bit unsigned */ typedef short qint16; /* 16 bit signed */ typedef unsigned short quint16; /* 16 bit unsigned */ typedef int qint32; /* 32 bit signed */ typedef unsigned int quint32; /* 32 bit unsigned */ typedef long long qint64; /* 64 bit signed */ typedef unsigned long long quint64; /* 64 bit unsigned */2宏定义 QT_VERSION 数值版本 QT_VERSION_CHECK() // QT_VERSION_CHECK(5,0,0) Q_BYTE_ORDER // 系统内存字节序 Q_BIG_ENDIAN // 大端字节序 Q_LITTLE_ENDIAN // 小端字节序 Q_DECL_IMPORT // 共享库导入 Q_DECL_EXPORT // 共享库导出 Q_DECL_OVERRIDE // 用于重载虚函数没有被重载则报错 Q_DECL_FINAL // 虚函数定义为最终级别不能被重载 Q_UNUSED(name) // 在函数中定义不在函数中使用的参数 foreach(variable, container) // 用于容器遍历 forever //构造一个无线循环 qDebug(const char* message, ...) // 输出日志格式化五、容器类 1、Qt容器 Qt的容器类比STL中的容器类更轻巧安全和易用顺序容器QList下标索引QLinkKedList不支持下标索引QVectorQStackQQueue 关联容器QMapQMultiMqpQHashQMultiHashQSet 2、STL类型迭代器 容器类只读迭代器迭代器QList,QQueueQList::const_iteratorQList::iteratorQLinkedListQLinkedList::const_iteratorQLinkedList::iteratorQVector,QStackQVector::const_iteratorQVector::iteratorQSetQSet::const_iteratorQSet::iteratorQMapKey,Value,QMultiMapKey,ValueQMapKey,Value::const_iteratorQMapKey,Value::iterator 五、Qt类库的模块 Qt类的模块可以分为几大类Qt基本模块Qt Essentials提供了Qt的所有平台的基本功能Qt附加模块Qt Add-Ons实现一些特定功能的提供附加价值的模块增值模块Value-AddModules单独发布的提供额外价值的模块或工具技术预览模块Technology Preview Modules一些处于开发阶段但是可以最为技术预览使用的模块Qt工具Qt Tools帮助应用程序开发的一些工具 1、Qt基本模块 Qt Core 其他模块都用的核心非图形类 Qt GUI 设计GUI界面的基础类包括OpenGL Qt Multimedia 音频、视频、摄像头和广播功能的类 Qt Multiply Widgets 实现多媒体的界面租界类 Qt Network 实现网络编程更简单和轻便的类 Qt QML 用于QML和JavaScript语言的类 Qt Quick 英语构建具有定制用户界面的动态应用的声明框架 Qt Quick Controls 创建桌面样式用户界面基于Qt Quick的用户界面控件 Qt Quick Dialogs 用于Qt Quick的系统对话框类型 Qt Quick Layouts 用于Qt Quick2界面元素的布局项 Qt SQL 使用SQL数据库操作 Qt Test 用于应用程序的库进行单元测试的类 Qt Widgets 用于构建GUI界面的C图形组件类qmake构建时Qt GUI模块时自动被加入项目的如果项目不适用GUI功能使用以下指令取消QT-gui其他模块一般不会被自动加入在项目使用到某个模块可以在项目配置中添加QTsql QTmultimedia multimediawidgets2、Qt工具 Qt Designer 用于扩展Qt Designer的类 Qt Help 在应用程序中继承在线文档 QtUI Tools 操作Qt Designer生成的窗体的类
http://www.pierceye.com/news/166494/

相关文章:

  • 做网站会提供源代码吗朝阳网站制作设计
  • 企业做网站找谁有什么建筑网站
  • 自己做的网站显示iis7游戏网站怎么建设
  • 淘宝联盟怎么做自已的网站什么叫利用网站做蜘蛛池
  • 做网站要多少带宽镇江网站建设联系思创
  • 唐朝网站的地址软件设计师报考条件
  • seo网站建设刘贺稳营销专家a西宁市网站建设多少钱
  • 上海哪家公司做网站最好网站建设服务合同 付款方式
  • 做网站需要源码吗软件代理商招募
  • 陕西省西安市制作网站上海云建站模板
  • wordpress注册审批汕头网站优化
  • 想招代理去什么网站做网站seo优化的公司
  • 网站制作是什么公司建设企业官方网站的流程
  • 深圳哪家网站建设公司好门户网站制作平台
  • 互联网网站模版工作室网站开发
  • 现在从事网站开发如何销售团队
  • 公司网站设计素材淘宝官网首页
  • 建设公司网站的目的seo推广软件下载
  • 排名好的成都网站建设十堰网络销售
  • 网站qq号获取网站运营与建设作业
  • 网站建设要经历哪些步骤建设银行官网学生交费网站
  • 如何注册网站平台怎么免费搭建一个网站
  • 淘宝客网站建设平台怎么获取网站数据做统计数据
  • 做网站找外包公司要要搞清楚什么抖音开放平台是干嘛的
  • 可以中英切换的网站怎么做四川住房建设厅官方网站
  • 网站制作网站设计优客工场 网站开发
  • 微网站建设开发用系统建购物网站
  • 小说网站建立浙江省和住房建设厅网站
  • 网站去掉后缀html代码运行框wordpress6
  • 做问卷的几个网站石家庄建站源码