Qt嵌入式系统Qt图形界面应用程序开发-课件.ppt

上传人(卖家):三亚风情 文档编号:3592539 上传时间:2022-09-22 格式:PPT 页数:59 大小:3.27MB
下载 相关 举报
Qt嵌入式系统Qt图形界面应用程序开发-课件.ppt_第1页
第1页 / 共59页
Qt嵌入式系统Qt图形界面应用程序开发-课件.ppt_第2页
第2页 / 共59页
Qt嵌入式系统Qt图形界面应用程序开发-课件.ppt_第3页
第3页 / 共59页
Qt嵌入式系统Qt图形界面应用程序开发-课件.ppt_第4页
第4页 / 共59页
Qt嵌入式系统Qt图形界面应用程序开发-课件.ppt_第5页
第5页 / 共59页
点击查看更多>>
资源描述

1、Neusoft Institute of Information2022年7月19日星期二IT Education&Training2022-7-191大连东软信息学院大连东软信息学院 嵌入式系统导论课程组嵌入式系统导论课程组嵌入式系统嵌入式系统Neusoft Institute of Information2022年7月19日星期二IT Education&Training2022-7-192第6章 Qt图形界面应用程序开发 6.1 Qt简介 6.2 Qt4 Designer的应用 6.3 Qt4与数据库 6.4 Qt/EmbeddedNeusoft Institute of Informa

2、tion2022年7月19日星期二IT Education&Training2022-7-1936.1 Qt简介 6.1.1 Qt的介绍 6.1.2 Qt中主要的类 6.1.3 信号和槽 6.1.4 Qt的帮助文档 6.1.5 Qt4的特点和优势 6.1.6 Qt4的安装与配置 6.1.7 Qt4程序结构及示例Neusoft Institute of Information2022年7月19日星期二IT Education&Training2022-7-1946.1.1 Qt的简介Qt是挪威Trolltech公司出品的一个跨平台的C+图形用户界面库。Trolltech公司目前开发两种产品:一种

3、是跨平台的图形界面设计平台,即Qt。一种是提供给嵌入式系统的应用程序开发平台,可以应用到PDA,手机等手持设备上,即Qtopia,是基于FrameBuffer的Qt/Embedded。Neusoft Institute of Information2022年7月19日星期二IT Education&Training2022-7-195Trolltech的双重授权模式 Trolltech公司提供两种授权模式,一种用于商业性质的授权,一种用于免费的开源授权Neusoft Institute of Information2022年7月19日星期二IT Education&Training2022-7

4、-1966.1.1 Qt的简介Qt 同 X Window 上的Motif,Openwin,GTK 等图形界面库,和Windows 平台上的 MFC,OWL,VCL,ATL 是同类型的东西,但是 Qt 具有很多优点。(1)Qt有优良的跨平台性,可支持的操作系统有。(2)Unix、Linux、Solaris、SunOS等X11平台;(3)Windows 95、Windows 98、WindowsNT 4.0、Windows 2000、Windows XP;(4)Mac OSX、HP-UX、QNX、FressBSD等;(5)MIPS、ARM、StrongARM、Motorola 68000、Powe

5、rPC和XScale等支持FrameBuffer的嵌入式处理器上。Neusoft Institute of Information2022年7月19日星期二IT Education&Training2022-7-197Qt特征(一)面向对象Qt具有模块设计和注重软件构件或元素的可重用性的特点 构件支持Qt提供信号(signal)和插槽(slot)概念,并支持对象之间在彼此不知道对方信息的情况下进行合作,这使得Qt非常适合于真正的构件编程 友好的联机帮助Qt提供了大量的联机参考文档,有超文本HTML方式,也有Unix帮助页man手册页和补充说明。对于初学者,其中的指南将一步步介绍如何进行Qt编程

6、Neusoft Institute of Information2022年7月19日星期二IT Education&Training2022-7-198Qt特征(二)便利性由于Qt是一种跨平台的GUI工具包,它对编程者隐藏了在处理不同窗口系统时潜在的问题,Qt定义了一些类来隐藏在不同操作系统上不同处理方式下的细节问题 国际化Qt为本地化应用提供了完全的支持,所有用户界面文本都可以基于消息翻译表被翻译成各国语言,Qt还支持双字节16bit国际字符标准 Neusoft Institute of Information2022年7月19日星期二IT Education&Training2022-7-

7、199Qt特征(三)丰富的API函数Qt为专业应用提供了大量的函数,在Qt的API中含有大约250个C+类,大多数的类都是GUI专有的 可用户化外观Qt支持主题,基于Qt的应用程序能够在Windows外观、Motif外观,以及其它一些用户化外观主题之间切换 完整的一套组件工具Qt编程的基本模块称之为组件,组件是用户界面的组成部分,Qt含有用来创建专业外观的用户界面所需要的所有组件Neusoft Institute of Information2022年7月19日星期二IT Education&Training2022-7-19106.1.2 Qt中主要的类QObjectQObject类是所有能

8、够处理signal、slot和事件的Qt对象的基类,原形如下:QObject:QObject(QObject*parent=0,const char*name=0)在上面的函数中如果parent为0则构造一个无父的对象,如果对象是一个组件,则它就会成为顶层的窗口。Neusoft Institute of Information2022年7月19日星期二IT Education&Training2022-7-1911QObject类(一)class Mandelbrot:public QObjectQ_OBJECT /需要使用需要使用signal和和slotpublic:Mandelbrot(Q

9、Obect*parent=0,const char*name);public slots:void start();signals:void done();private slots:void calculate();private:QTimer timer;;Neusoft Institute of Information2022年7月19日星期二IT Education&Training2022-7-1912QObject类(二)/构造初始化一个Mandelbrot对象Mandelbrot:Mandelbrot(QObject*parent=0,const char*name):QObje

10、ct(parent,name)connect(&timer,SIGNAL(timeout(),SLOT(calculate();Neusoft Institute of Information2022年7月19日星期二IT Education&Training2022-7-19136.1.2 Qt中主要的类2.QApplicationQApplication类负责GUI应用程序的控制流和主要的设置,它包括主事件循环体,负责处理和调度所有来自窗口系统和其他资源的事件处理应用程序的开始、结束以及会话管理。对于一个应用程序来说,建立此类的对象是必不可少的QApplication是QObject类的子

11、类Neusoft Institute of Information2022年7月19日星期二IT Education&Training2022-7-1914函数分组函数分组 系统设置 desktopSettingsAware()、setDesktopSettingsAware()、cursorFlashTime()、setCursorFlashTime()、doubleClickInterval()、setDoubleClickInterval()、wheelScrollLines()、setWheelScrollLines()、palette()、setPalette()、font()、se

12、tFont()、fontMetrics()。事件处理 exec()、processEvents()、enter_loop()、exit_loop()、exit()、quit()。sendEvent()、postEvent()、sendPostedEvents()、removePostedEvents()、hasPendingEvents()、notify()、macEventFilter()、qwsEventFilter()、x11EventFilter()、x11ProcessEvent()、winEventFilter()。图形用户界面风格 style()、setStyle()、polis

13、h()。颜色使用 colorSpec()、setColorSpec()、qwsSetCustomColors()。文本处理 setDefaultCodec()、installTranslator()、removeTranslator()、translate()。窗口部件 mainWidget()、setMainWidget()、allWidgets()、topLevelWidgets()、desktop()、activePopupWidget()、activeModalWidget()、clipboard()、focusWidget()、winFocus()、activeWindow()、wi

14、dgetAt()。高级光标处理 hasGlobalMouseTracking()、setGlobalMouseTracking()、overrideCursor()、setOverrideCursor()、restoreOverrideCursor()。X窗口系统同步 flushX()、syncX()。对话管理 isSessionRestored()、sessionId()、commitData()、saveState()。线程 lock()、unlock()、locked()、tryLock()、wakeUpGuiThread()。杂项 closeAllWindows()、startingU

15、p()、closingDown()、type()。Neusoft Institute of Information2022年7月19日星期二IT Education&Training2022-7-19156.1.2 Qt中主要的类3.QWidgetQWidget类是所有用户接口对象(组建)的基类,它继承了QObject类的属性组件是用户界面的单元组成部分,它接收鼠标、键盘和其它从窗口系统来的事件,并把它自己绘制在屏幕上QWidget类有很多成员函数,但一般不直接使用,而是通过子类继承来使用其函数功能。如,QPushButton、QlistBox等都是它的子类QWidget是QObject类的子

16、类Neusoft Institute of Information2022年7月19日星期二IT Education&Training2022-7-1916上下文上下文 函数函数 窗口函数 show()、hide()、raise()、lower()、close()。顶级窗口 caption()、setCaption()、icon()、setIcon()、iconText()、setIconText()、isActiveWindow()、setActiveWindow()、showMinimized()、showMaximized()、showFullScreen()、showNormal()。

17、窗口内容 update()、repaint()、erase()、scroll()、updateMask()。几何形状 pos()、size()、rect()、x()、y()、width()、height()、sizePolicy()、setSizePolicy()、sizeHint()、updateGeometry()、layout()、move()、resize()、setGeometry()、frameGeometry()、geometry()、childrenRect()、adjustSize()、mapFromGlobal()、mapFromParent()、mapToGlobal()

18、、mapToParent()、maximumSize()、minimumSize()、sizeIncrement()、setMaximumSize()、setMinimumSize()、setSizeIncrement()、setBaseSize()、setFixedSize()。模式 isVisible()、isVisibleTo()、visibleRect()、isMinimized()、isDesktop()、isEnabled()、isEnabledTo()、isModal()、isPopup()、isTopLevel()、setEnabled()、hasMouseTracking()

19、、setMouseTracking()、isUpdatesEnabled()、setUpdatesEnabled()。观感 style()、setStyle()、cursor()、setCursor()、font()、setFont()、palette()、setPalette()、backgroundMode()、setBackgroundMode()、colorGroup()、fontMetrics()、fontInfo()。键盘焦点函数 isFocusEnabled()、setFocusPolicy()、focusPolicy()、hasFocus()、setFocus()、clearF

20、ocus()、setTabOrder()、setFocusProxy()。鼠标和键盘捕获 grabMouse()、releaseMouse()、grabKeyboard()、releaseKeyboard()、mouseGrabber()、keyboardGrabber()。事件处理器 event()、mousePressEvent()、mouseReleaseEvent()、mouseDoubleClickEvent()、mouseMoveEvent()、keyPressEvent()、keyReleaseEvent()、focusInEvent()、focusOutEvent()、whee

21、lEvent()、enterEvent()、leaveEvent()、paintEvent()、moveEvent()、resizeEvent()、closeEvent()、dragEnterEvent()、dragMoveEvent()、dragLeaveEvent()、dropEvent()、childEvent()、showEvent()、hideEvent()、customEvent()。变化处理器 enabledChange()、fontChange()、paletteChange()、styleChange()、windowActivationChange()。系统函数 paren

22、tWidget()、topLevelWidget()、reparent()、polish()、winId()、find()、metric()。这是什么的帮助 customWhatsThis()。内部核心函数 focusNextPrevChild()、wmapper()、clearWFlags()、getWFlags()、setWFlags()、testWFlags()。Neusoft Institute of Information2022年7月19日星期二IT Education&Training2022-7-19176.1.3 信号和槽 信号和槽机制是Qt的一个主要特征,是Qt与其他工具包

23、最不相同的部分。在图形用户界面编程中,经常会出现窗口中的一个部件发生的变化会被通知给另一个部件,在Qt中采用信号和槽来实现对象部件之间的通信。Neusoft Institute of Information2022年7月19日星期二IT Education&Training2022-7-1918Signal和Slot的声明(一)在Qt程序设计中,凡是包含signal和slot的类中都要加上Q_OBJECT的定义,下面的例子给出了如何在一个类中定义signal和slot:class Student:public QObject Q_OBJECTpublic:Student()myMark=0;i

24、nt mark()const return myMark;public slots:void setMark(int newMark);signals:void markChanged(int newMark);private:int myMark;Neusoft Institute of Information2022年7月19日星期二IT Education&Training2022-7-1919Signal和Slot的声明(二)signal的发出一般在事件的处理函数中,利用emit发出signal,在下面的例子中在事件处理结束后发出signalvoid Student:setMark(i

25、nt newMark)if(newMark!=myMark)myMark=newMark;emit markChanged(myMark);Neusoft Institute of Information2022年7月19日星期二IT Education&Training2022-7-1920Signal和Slot的连接(一)在signal和slot声明以后,需要使用connect()函数将它们连接起来。connect()函数属于QObject类的成员函数,它能够连接signal和slot,也可以用来连接signal和signal函数原形如下:bool connect(const QObjec

26、t*sender,const char*signal,const QObject*receiver,const char*slot)其中第一个和第三个参数分别指出signal和slot是属于那个对象或组件Neusoft Institute of Information2022年7月19日星期二IT Education&Training2022-7-1921Signal和Slot的连接(二)在使用connect()函数进行连接的时候,还需要用到SIGNAL()和SLOT()这两个宏,使用方法如下:QLabel*label=new QLabel;QScrollBar*scroll=new QScr

27、ollBar;QObject:connect(scroll,SIGNAL(valueChanged(int),label,SLOT(setNum(int);Neusoft Institute of Information2022年7月19日星期二IT Education&Training2022-7-1922Signal和Slot的连接方式(一)Neusoft Institute of Information2022年7月19日星期二IT Education&Training2022-7-1923Signal和Slot的连接方式(二)同一个信号连接多个插槽connect(slider,SIGN

28、AL(valueChanged(int),spinBox,SLOT(setValue(int);connect(slider,SIGNAL(valueChanged(int),this,SLOT(updateStatusBarIndicator(int);多个信号连接到同一个插槽connect(lcd,SIGNAL(overflow(),this,SLOT(handleMathError();connect(calculator,SIGNAL(divisionByZero(),this,SLOT(handleMathError();Neusoft Institute of Informatio

29、n2022年7月19日星期二IT Education&Training2022-7-1924Signal和Slot的连接方式(三)一个信号连接到另一个信号connect(lineEdit,SIGNAL(textChanged(const QString&),this,SIGNAL(updateRecord(const QString&);取消一个连接disconnect(lcd,SIGNAL(overflow(),this,SLOT(handleMathError();取消一个连接不是很常用,因为Qt会在一个对象被删除后自动取消这个对象所包含的所有的连接Neusoft Institute of

30、 Information2022年7月19日星期二IT Education&Training2022-7-19256.1.4 Qt的帮助文档Neusoft Institute of Information2022年7月19日星期二IT Education&Training2022-7-19266.1.5 Qt4的特点和优势Qt4较以前的版本,有了较大的改进,具体特点及优势如下:Qt4中,所有的头文件(.h)存放位置更规范,按照分类形式,放到QtCore,QtDBus,QtGui,QtNetwork,QtOpenGL,QtSql等子文件夹下,而不像之前的版本,所有的头文件都放在一起。Qt4增加了

31、很多新的控件,但是对之前版本中的控件也有保留,只不过在命名上在类名前面加上Qt3。Qt4中界面的设计与逻辑功能分开,界面设计的头文件中不再包含任何用户自己写的代码,逻辑功能的实现在用户自己重新定义的类中实现,而这个重新定义的类是完成界面设计类的继承类。当用QtDesigner修改界面布局后,只需用uic工具直接生成新的界面头文件覆盖原来的文件即可。Neusoft Institute of Information2022年7月19日星期二IT Education&Training2022-7-19276.1.6 Qt4的安装与配置1 解压压缩包 rootlocalhost home#tar zx

32、vf qt-x11-opensource-src-4.3.2.tar.gz 2 配置并编译rootlocalhost home#cd qt-x11-opensource-src-4.3.2rootlocalhost qt-x11-opensource-src-4.3.2#./configure -no-opensslrootlocalhost qt-x11-opensource-src-4.3.2#gmakeNeusoft Institute of Information2022年7月19日星期二IT Education&Training2022-7-19286.1.6 Qt4的安装与配置3安

33、装库文件rootlocalhost qt-x11-opensource-src-4.3.2#surootlocalhost qt-x11-opensource-src-4.3.2#gmake installQt默认被安装的路径为:/usr/local/Trolltech/Qt-4.3.2。如果安装的时候需要更改安装的路径,可以加上-prefix 参数来指定安装路径。4设置环境变量 如果需要直接用Qt命令,那么需要设置环境变量PATH。具体操作为,如果你的shell是bash,ksh,zsh或sh,那么在.profile或.bash_profile文件中加上下面的信息。PATH=/usr/loc

34、al/Trolltech/Qt-4.3.2/bin:$PATHexport PATH Neusoft Institute of Information2022年7月19日星期二IT Education&Training2022-7-19296.1.7 Qt4程序结构及示例【程序6.5】helloworld.cpp文件内容。#include#include int main(int argc,char*argv)QApplication app(argc,argv);QLabel*label=new QLabel(Hello World!);label-show();return app.exe

35、c();Neusoft Institute of Information2022年7月19日星期二IT Education&Training2022-7-1930编译及运行 建立一个文件夹helloworld,把helloworld.cpp放到文件夹下 qmake project qmake make./helloworldNeusoft Institute of Information2022年7月19日星期二IT Education&Training2022-7-19316.2 Qt4 Designer的应用 6.2.1 Qt Designer的应用 6.2.2 Qt中的控件及对话框类 6

36、.2.3 基于Qt Designer程序设计流程 6.2.4 Qt应用程序实例Neusoft Institute of Information2022年7月19日星期二IT Education&Training2022-7-19326.2.1 Qt Designer的应用 Qt提供了非常强大的GUI编辑工具Qt Designer,它的操作界面类似于Windows下的Visual Studio,而且它还提供了相当多的部件资源。在编译Qt源码的时候,也同时生成了可执行程序designer。rootlocalhost sunjm#designerNeusoft Institute of Inform

37、ation2022年7月19日星期二IT Education&Training2022-7-1933Neusoft Institute of Information2022年7月19日星期二IT Education&Training2022-7-19346.2.2 Qt中的控件及对话框类Qt提供了很多控件和常用的对话框,可以用在很多地方。主窗口控件:QMenuBar,QToolBar,QStatusBar布局相关的控件:QSplitter,QScrollArea四种方式按钮:QPushButton,QToolButton,QCheckBox,和 QRadioButton容器类控件:QFrame

38、,QToolBox,QLabel。滚动条:QAbstractScrollArea,是视图类和其他滚动控件的基类。显示信息的控件:QLabel,QTextBrowser。数据输入的控件:QLineEdit,QTextEdit。QLineEdit只可输入许可器允许的字符。QTextEdit是QAbstractScrollArea的子类,可以输入多行文本。程序的进行状态控件:QProgressDialog,QProgressBar。QInputDialog可以方便的让用户输入一行文本或者数字。Qt中还可以自定义控件,并集成到Qt Designer中。Neusoft Institute of Info

39、rmation2022年7月19日星期二IT Education&Training2022-7-19356.2.3 基于Qt Designer程序设计流程1.创建和初始化子部件2.设置子部件布局3.设置Tab键次序(不是必须)4.建立信号与插槽的连接Neusoft Institute of Information2022年7月19日星期二IT Education&Training2022-7-19366.2.3 基于Qt Designer程序设计流程1.创建并布置部件2.对部件使用布局管理4.建立信号与插槽的连接3.设置Tab键次序Neusoft Institute of Informatio

40、n2022年7月19日星期二IT Education&Training2022-7-19376.2.3 基于Qt Designer程序设计流程 编辑两个部件之间信号与插槽之间的连接方式Neusoft Institute of Information2022年7月19日星期二IT Education&Training2022-7-19386.2.3 基于Qt Designer程序设计流程Qt4 Designer将工程文件组织成.ui的文件以使用Qt Designer为例 通过designer设计并保存工程为*.ui文件由.ui文件生成ui_*.h文件2.手工编写一个main.cpp文件3.手工编

41、写*.cpp和*.h文件。4.使用qmake工具生成.pro工程文件qmake-project 5.生成makefile文件qmake6.编译makeNeusoft Institute of Information2022年7月19日星期二IT Education&Training2022-7-1939Qt Designer 功能框图Neusoft Institute of Information2022年7月19日星期二IT Education&Training2022-7-19406.2.4 Qt应用程序实例 QT应用程序实例应用程序实例计算器计算器 保存为test.ui文件,放到test

42、文件夹下Neusoft Institute of Information2022年7月19日星期二IT Education&Training2022-7-1941生成ui_test.h头文件 uic o ui_test.h test.ui具体代码参见ui_test.h代码Neusoft Institute of Information2022年7月19日星期二IT Education&Training2022-7-1942编写test.h文件#include#include ui_test.hclass Dialog:public QDialog,public Ui:DialogQ_OBJEC

43、Tpublic:Dialog(QDialog*parent=0);private slots:void val1();void val2();void val3();void add();void ok();private:double num1;double num2;bool flag;Neusoft Institute of Information2022年7月19日星期二IT Education&Training2022-7-1943编写test.cpp文件#include#include test.hDialog:Dialog(QDialog*parent)setupUi(this)

44、;num1=0;num2=0;flag=0;connect(Button1,SIGNAL(clicked(),this,SLOT(val1();connect(Button2,SIGNAL(clicked(),this,SLOT(val2();connect(Button3,SIGNAL(clicked(),this,SLOT(val3();connect(Button_add,SIGNAL(clicked(),this,SLOT(add();connect(Button_ok,SIGNAL(clicked(),this,SLOT(ok();Neusoft Institute of Infor

45、mation2022年7月19日星期二IT Education&Training2022-7-1944编写main.cpp#include#include#includetest.hint main(int argc,char*argv)QApplication app(argc,argv);Dialog *dialog=new Dialog;dialog-show();return app.exec();Neusoft Institute of Information2022年7月19日星期二IT Education&Training2022-7-1945编译及执行 cd test qmak

46、e project qmake make./testNeusoft Institute of Information2022年7月19日星期二IT Education&Training2022-7-19466.3 Qt4与数据库 6.3.1 Qt4与数据库的连接 6.3.2 执行SQL命令 6.3.3 SQL模型Neusoft Institute of Information2022年7月19日星期二IT Education&Training2022-7-1947Qt4连接数据库的原理#include Qt4中提供了QtSql模块。为访问数据库提供了平台和相应的接口 提供模型视图体系,来完成可

47、视化的信息输入Neusoft Institute of Information2022年7月19日星期二IT Education&Training2022-7-19486.3.1 Qt4与数据库的连接Qt SQL模块中连接并处理数据库被分成三个层次。第一层是数据库的驱动程序。第二层是数据库的连接层。实现对数据库的连接,对数据库操作结果、错误信息的进行处理。第三层是用户接口层。提供了一套模型视图体系来完成对数据库的可视化操作。Neusoft Institute of Information2022年7月19日星期二IT Education&Training2022-7-1949驱动程序Qt4中为

48、多种数据库提供了本地驱动程序,见下表:DriverDatabaseQDB2IBM DB2 version7.1 and laterQIBASEBorland InterBaseQMYSQLMySQLQOCIOracle(Oracle Call Interface)QODBCODBC(includes Microsoft SQL server)QPSQLPostgreSQL version 6.x and 7.xQSQLITESQLite version 3 and laterQSQLITE2SQLite version 2QTDSSybase Adaptive ServerNeusoft In

49、stitute of Information2022年7月19日星期二IT Education&Training2022-7-19506.3.1 Qt4与数据库的连接Qt4与与MySQL数据库的连接数据库的连接#include 用QSqlDatabase类通过驱动程序建立起和数据库的连接 设置hostName,databaseName,username,password等属性 打开数据库 操作数据库 关闭数据库Neusoft Institute of Information2022年7月19日星期二IT Education&Training2022-7-1951QSqlDatabase db=

50、QSqlDatabase:addDatabase(“QMYSQL”);db.setHostName(“localhsot”);db.setDatabaseName(“testmysql.db”);db.setUserName(“user”);db.setPassword(“password”);if(!db.open())qDebug()db.lastError();qFatal(“Failed to connect.”);6.3.1 Qt4与数据库的连接Qt4与与MySQL数据库的连接数据库的连接Neusoft Institute of Information2022年7月19日星期二IT

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 办公、行业 > 各类PPT课件(模板)
版权提示 | 免责声明

1,本文(Qt嵌入式系统Qt图形界面应用程序开发-课件.ppt)为本站会员(三亚风情)主动上传,163文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。
2,用户下载本文档,所消耗的文币(积分)将全额增加到上传者的账号。
3, 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(发送邮件至3464097650@qq.com或直接QQ联系客服),我们立即给予删除!


侵权处理QQ:3464097650--上传资料QQ:3464097650

【声明】本站为“文档C2C交易模式”,即用户上传的文档直接卖给(下载)用户,本站只是网络空间服务平台,本站所有原创文档下载所得归上传人所有,如您发现上传作品侵犯了您的版权,请立刻联系我们并提供证据,我们将在3个工作日内予以改正。


163文库-Www.163Wenku.Com |网站地图|