




已阅读5页,还剩90页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
QT学习笔记(初识)2009-05-21 11:13QT学习笔记(初识)查看RedHat自带QT库路径:/usr/lib/qt-3.1,查看目录qt3-1下是否有13个文件,若没有,则需要安装。主菜单-系统设置-添加程序-选中KDE软件开发-更新。在Linux下做一个五子棋的小游戏。在/home/下创建目录qt,编写一个小程序hello.cpp的C+文件。下面介绍hello.cpp源程序:#include #include /窗口类的头文件#include /按键类的头文件int main(int argc,char *argv)QApplication a(argc,argv);QWidget mainwindow; /定义主窗口对象mainwindow.setMinimumSize(20,10); /设置最小尺寸mainwindow.setMaximumSize(200,100); /设置最大尺寸QPushButton helloworld(Hello World!,&mainwindow); /调用了/QPushButton的第二个构造函数,/指定副部件为mainwindowhelloworld.setGeometry(20,20,160,60); /此函数是由其父类继承来的a.setMainWidget(&mainwindow); /设置mainwindow为主部件mainwindow.show(); /显示窗口return a.exec(); /存在一个while循环,等待用户发命令窗口(类)QWidget 按钮(类) QPushButton特性 可关闭 可点击共性 可设大小 可设大小两个类是从可视类派生来的,例如函数setGeometry是设置几何尺寸的,窗口和按钮两类都可调用,设置尺寸大小函数也是由其父类继承来的,两类都可以用。经编译:g+ hello.cpp o hello lqt,编译器会报错,未发现所用到的头文件。分析错误原因:提示中说未找到程序中所用到的头文件,当编译程序时,编译器首先到特定目录下寻找原文件的头文件和函数库:头文件目录:/usr/include库文件目录:/lib/ , /usr/lib/但QT库存放在目录/usr/lib/qt-3.1下,此文件里有三个重要的目录:/bin/;/lib/;/include/./bin里存放的是QT库的使用手册;/lib下存放的是库文件,即由原库文件生成目标文件*.o;/include下存放的是各库文件的声明。因此,在编译时,编译器找不到正确的文件,所以必须对环境变量做修改。方法一:敲入命令,这样可以暂时修改环境变量,设定其查找路径,但并不能保存修改,在下一次开机后,需要重新设置。1) #g+ hello.cpp o hello lq t I/usr/lib/qt-3.1/include2) #export CPLUS_INCLUDE_PATH=/usr/lib/qt-3.1/include#g+ hello.cpp o hello lqt以上两种方法等价。再次编译后仍旧有错,找不到库文件。指定库路径:1) #g+ hello.cpp o hello lqt L/usr/lib/qt-3.1/lib2)#export LIBRARY_PATH=/usr/lib/qt-3.1/lib#g+ hello.cpp o hello lqt最终生成可执行文件hello。其中,-lqt是连接QT库的参数语句,-lqt等价于-libqt.so,它是一个动态库,它包含了众多库文件,链接时只会把所需库文件链接进来,这样就不会使最终生成的文件过大。知识点:gcc -I +头文件路径-L +库文件路径-l +链接库方法二:将环境变量添加到/etc/profile/内,它是一个类似脚本的文件,每次开机都会执行里面的语句,即系统在开机时自动执行改变路径的命令,来修改环境变量。添加内容:CPLUS_INCLUDE_PATH=/usr/lib/qt-3.1/includeLIBRARY_PATH=/usr/lib/qt-3.1/libexport CPLUS_INCLUDE_PATH LIBRARY_PATH编译C+常用命令:(源文件hello.cpp)#qmake v 可查看qt版本#qmake project 产生一个工程文件#qmake 产生Makefile文件Makefile#make 生成目标文件和可执行文件hello.o、qt。生成的Makefile缺少句子:LIBS:缺少-lqt,可手工加上。Qt学习笔记(Qt3库)上2009-05-21 11:21/*3.1创建第一个主部件创建主部件的方法是基于QWidget或QDialog类创建一个用户类。可以使用用户类通过公有继承派生于QWidget类,在其中调用一些成员函数来定义窗口外观。题目要求:创建一个空的窗口,并显示在屏幕上。大小为200*120.窗口大小不可调整。源程序:3-1.cpp#include #include #include #include /在类的声明里,我们只/需要包含新的成员。其它的/方法都从QWidget类中继承来:class MyMainWindow:public QWidgetQPushButton *b;QLabel *l;public:MyMainWindow();MyMainWindow:MyMainWindow()/设置窗口的最大、最小尺寸/我们不需要添加this指针,/因为C+默认是现在的类setMinimumSize(400,300);setMaximumSize(400,300);b=new QPushButton(hello world!,this);b-setGeometry(20,20,160,80);l=new QLabel(label,this);l-setGeometry(100,90,160,93);int main(int argc,char *argv)/创建要求的应用类对象aQApplication a(argc,argv);/创建MyMainWindow类的对象,/并设置其为主视图MyMainWindow w;a.setMainWidget(&w);/显示主窗口对象,并且/它的子视图也会显示到屏幕w.show();/等待用户命令a.exec();/*QT库与用户的交互方式,例如按钮、滑块,是通过使用信号和槽。信号和槽是相互关联的函数题目要求:添加退出按钮3-5.cpp#include #include #include #include /在类的声明里,我们只/需要一个新的构造函数。/其它的成员都是从类QWidget中继承来的:class MyMainWindow:public QWidgetQPushButton *b;QLabel *l;public:MyMainWindow();MyMainWindow:MyMainWindow()setGeometry(100,100,200,170);/setMinimumSize(400,300);/setMaximumSize(400,300);b=new QPushButton(Quit!,this);b-setGeometry(20,20,160,80);b-setFont(QFont(Times,18,QFont:Bold);l=new QLabel(this);l-setGeometry(10,110,180,50);l-setText(If you click the button above,nthe whole program will exit);l-setAlignment(AlignCenter);/这里按钮b的clicked()信号与qApp的槽quit()链接,当点击按钮时,将产生QPushButton:clicked()信号,导致qApp的quit()槽被执行,从而程序退出。那么,什么是qApp呢?qApp是Qt的一个内置指针。它总是指向程序中的QApplication对象(这里指a)。/connect(b,SIGNAL(clicked(),qApp,SLOT(quit();int main(int argc,char *argv)QApplication a(argc,argv);MyMainWindow w;a.setMainWidget(&w);w.show();return a.exec();/*信号和槽的使用题目要求:利用滑块来改变LCD显示的值4-1.cpp#include #include #include #include #include #include /在类的声明里,我们只/需要一个新的构造函数。/其它的成员都是从类QWidget中继承来的:class MyMainWindow:public QWidgetQPushButton *b;QLCDNumber *lcd;QSlider *slider;public:MyMainWindow();MyMainWindow:MyMainWindow()setGeometry(100,100,300,200);/setMinimumSize(400,300);/setMaximumSize(400,300);b=new QPushButton(Quit!,this);b-setGeometry(10,20,80,40);b-setFont(QFont(Times,18,QFont:Bold);lcd=new QLCDNumber(2,this);lcd-setGeometry(100,10,190,180);slider=new QSlider(Vertical,this);slider-setGeometry(10,60,80,130);/下面一行代码,使点击按键1,程序退出connect(b,SIGNAL(clicked(),qApp,SLOT(quit();/下面一行链接滑块和显示器,使数字随着滑块的移动而改变connect(slider,SIGNAL(valueChanged(int),lcd,SLOT(display(int);int main(int argc,char *argv)QApplication a(argc,argv);MyMainWindow w;a.setMainWidget(&w);w.show();return a.exec();/*用户自定义槽,需另外把自定义类做成声明函数,类中成员函数的实现可放在源函数里。4-3.h(类的声明)#include #include #include #include #include class MyMainWindow:public QWidget/这个宏定义是不可缺少的Q_OBJECT;/用户自定义槽public slots:void SetValue();void ChangeValue();/用户自定义信号signals:void ValueChanged();/定义两个数据成员private:QPushButton *b1;QPushButton *b2;/构造函数public:MyMainWindow();类的函数成员的实现在源程序中4-3.cpp(源程序)#include void MyMainWindow:SetValue()/向自定义信号发送信号emit ValueChanged();void MyMainWindow:ChangeValue()couttest!setGeometry(10,20,80,40);b1-setFont(QFont(Times,18,QFont:Bold);/按键1:设置其标识符Quit,/和坐标位置、几何大小,/第三句设置字体:b2=new QPushButton(Quit!,this);b2-setGeometry(10,80,80,40);b2-setFont(QFont(Times,18,QFont:Bold);/ValueChanged收到信号,就给自定义槽发送信号,ChangeValue则打印字符串connect(this,SIGNAL(ValueChanged(),this,SLOT(ChangeValue();/点击1按键,向自定义槽发送信号connect(b1,SIGNAL(clicked(),this,SLOT(SetValue();/点击2按键,程序退出connect(b2,SIGNAL(clicked(),qApp,SLOT(quit();int main(int argc,char *argv)/定义一个应用类对象QApplication a(argc,argv);/定义一个应用类对象MyMainWindow w;/设置w为主窗口a.setMainWidget(&w);/显示ww.show();return a.exec();Qt学习笔记(Qt3库)下2009-05-21 11:249-1.cpp#include #include #include class MyMainWindow:public QWidgetpublic:MyMainWindow();private:void paintEvent(QPaintEvent *);QPainter *paint;/此函数是由系统调用的,每当第一次生成或被挡住,它都会再次被调用void MyMainWindow:paintEvent(QPaintEvent *)/此句最好做成局部变量的定义,否则将导致重复申请动态内存paint=new QPainter;paint-begin(this);/设置边框颜色、线形和线的宽度paint-setPen(QPen(blue,10,QPen:SolidLine);/设置边框内部颜色全部填充为红色paint-setBrush(QBrush(red,SolidPattern);/绘制矩形paint-drawRect(20,20,160,160);/绘图介绍paint-end();MyMainWindow:MyMainWindow()/设置主窗口坐标位置、大小setGeometry(100,100,200,200);int main(int argc,char *argv)QApplication a(argc,argv);MyMainWindow w;a.setMainWidget(&w);w.show();a.exec();/*对上一个例子做一个扩展,画一个4*4棋盘9-1-1.cpp#include #include #include class MyMainWindow:public QWidgetpublic:MyMainWindow();private:/绘图函数声明void paintEvent(QPaintEvent *);QPainter *paint;void MyMainWindow:paintEvent(QPaintEvent *)int i;int x=20,y=20;paint=new QPainter;paint-begin(this);paint-setPen(QPen(blue,4,QPen:SolidLine);paint-setBrush(QBrush(white,SolidPattern);/画5条横线for(i=0;idrawLine(20,y+80*i,340,y+80*i);/画5条竖线for(i=0;idrawLine(x+80*i,20,x+80*i,340);在棋盘正中做两个红棋子paint-setBrush(QBrush(red,SolidPattern);paint-drawEllipse(100,100,80,80);paint-drawEllipse(180,180,80,80);在棋盘正中做两个蓝棋子paint-setBrush(QBrush(green,SolidPattern);paint-drawEllipse(180,100,80,80);paint-drawEllipse(100,180,80,80);paint-end();MyMainWindow:MyMainWindow()setGeometry(100,100,400,400);int main(int argc,char *argv)QApplication a(argc,argv);MyMainWindow w;a.setMainWidget(&w);w.show();a.exec();/*在主窗口上加一个标签,在标签上做出一个动画。15-1.h#include #include #include #include #include #include #include class MyMainWindow:public QWidget/宏定义Q_OBJECT;public:MyMainWindow(char *);QMovie movie; /定义动画的对象public slots:void UnPause(); /继续播放void Pause(); /暂停void addSpeed(); /加速动画的播放速度void decSpeed(); /减慢动画的播放速度private:unsigned long num;QLabel *label;QPushButton *b1;QPushButton *b2;QPushButton *b3;QPushButton *b4;QPushButton *b5;15-1.cpp#include 15-1.hvoid MyMainWindow:UnPause()movie.unpause(); /继续播放void MyMainWindow:Pause()movie.pause(); /暂停播放void MyMainWindow:addSpeed()num+=20;movie.setSpeed(num); /以20%增加速度void MyMainWindow:decSpeed()num-=20;movie.setSpeed(num); /以20%减少/str里存放动画的文件名MyMainWindow:MyMainWindow(char *str):movie(str) setGeometry(100,100,300,280);num=100; /初始速度为100b1=new QPushButton(Continue!,this);b1-setGeometry(130,20,120,40);b1-setMinimumSize(40,20);b1-setFont(QFont(Times,18,QFont:Bold);b2=new QPushButton(Pause!,this);b2-setGeometry(130,70,120,40);b2-setMinimumSize(40,20);b2-setFont(QFont(Times,18,QFont:Bold);b3=new QPushButton(Hurry!,this);b3-setGeometry(130,120,120,40);b3-setMinimumSize(40,20);b3-setFont(QFont(Times,18,QFont:Bold);b4=new QPushButton(Slow!,this);b4-setGeometry(130,170,120,40);b4-setMinimumSize(40,20);b4-setFont(QFont(Times,18,QFont:Bold);b5=new QPushButton(Quit!,this);b5-setGeometry(130,220,120,40);b5-setMinimumSize(40,20);b5-setFont(QFont(Times,18,QFont:Bold);label=new QLabel(this);label-setGeometry(10,10,120,60);label-setMovie(movie);QVBoxLayout *vbox=new QVBoxLayout(this);vbox-addWidget(label);vbox-addWidget(b1);vbox-addWidget(b2);vbox-addWidget(b3);vbox-addWidget(b4);vbox-addWidget(b5);connect(b1,SIGNAL(clicked(),this,SLOT(UnPause();connect(b2,SIGNAL(clicked(),this,SLOT(Pause();connect(b3,SIGNAL(clicked(),this,SLOT(addSpeed();connect(b4,SIGNAL(clicked(),this,SLOT(decSpeed();connect(b5,SIGNAL(clicked(),qApp,SLOT(quit();int main(int argc,char *argv)QApplication a(argc,argv);/给构造函数发送动画名,并且文件必须使.gif格式MyMainWindow w(trolltech.gif); a.setMainWidget(&w);w.show();a.exec();在Qt程序窗口上点击任意区域移动窗体在Qt程序窗口上点击任意区域移动窗体 方法是截取组件Widget的鼠标事件函数,自己处理鼠标点击和移动的事件. Void MyWidget:mouseMoveEvent(QmouseEvent *e) Qpoint newpos=e-globalPos();/获得鼠标相对于屏幕坐标系的位置 Qpooint upLeft=pos0+newpos-last;Move(upLeft); /选定区域 Void MyWidget:mousePressEvent(QmouseEvent *e) last=e-globalPos();/获得鼠标相对于屏幕坐标系的位置 pos0= e-globalPos()-e-pos(); 解释: e-globalPos(); /获得鼠标相对于屏幕坐标系的位置 e-pos(); /鼠标相对于窗体左上角的位置 pos0; /窗体左上角的位置 upLeft; /新的窗体左上角的位置这里,我们取得的鼠标位置是绝对位置,即相当于窗口的位置,同时也记录下窗体左上角的位置,当鼠标移动时,取得新的绝对位置,则窗口做上角的新位置应该时原来位置与鼠标移动的位置之差. - 在Qt中创建无边框窗口 首先要设置窗体组件的Wflags是WstyleNoBorder,无边框窗口要求对整个窗口使用图像掩码. 具体方法如下: 设置Qpixmap类型成员变量m_pixmapBack; 在构造函数中书写: m_pixmapBack.load(“bg.bmp”); Qbitmap bitmaptmp(“bg.bmp”);/作为掩码的位图,白色部分透明,黑色部分保留. setMask(bitmaptmp); setBackgroundPixmap(m_pixmapBack); -对QPixmap对象进行缩放在Qt中进行绘图操作的时候我们常常需要对位图进行缩放,利用QWMatrix类 就可以很轻松的完成此功能,示例代码如下: QPixmap pm ; / do something to pm if ( !pm.isNull() ) QWMatrix m;/创建一个QWMatrix类的对象 m.scale(0.5f, 0.5f);/设立一个进行缩小到1/2的变换矩阵 pm = pm.xForm(m);/进行变换操作 -Qt系统对话框中文化 1.安装Qt4.5的目录为/opt/qtsdk-2009.03/qt/translations/,在此目录下有*_zh_CN.ts 和 *_zh_CN.qm 把它们拷贝到你的工程目录下。2.在主文件加入下列代码:QTranslator translator(0); translator.load(qt_zh_CN.qm);QApplication app(argc, argv);app.installTranslator(&translator);别忘了头文件包含QTranslator3.编译运行你的程序,就可以实现中文化了。 Qt: 绘图基础QPainter 能绘制: point, line, rectangle, ellipse, arc, chord, polygon, pie segment, Bezier curve, QPixmap, QImgeQt支持的高级特性: antialising, alpha blending, gradient fill, vector path.QPaint在什么上绘制呢? 在paint device: QWidget, QPixmap, QImage, QSvgGenerator, 连接QPrinter来打印和生成PDF文档.通常在protected void paintEvent(QPaintEvent *event)中进行绘制.protected:virtualvoidpaintEvent(QPaintEvent*event)QPainterpainter(this);/Pointerofthepaintdevice.QPainter的3个主要设置是: pen, brush, font. painter.setPen(QPen(.);painter.setBruch(QBrush(.);painter.setFont(QFont(.);painter.setRenderHint(QPainter:Antialiasing, true);设置了bursh之后, 画的是效果即fill.QPainter的属性影响绘制的图形.通常使用painter.paintXXX(.)来绘制图形.-Qt: 给Widget设置背景图片1.在要换背景的类的构造函数中装载一个图片,变量要为全局的,接下来会用到 backgroundImage.load(:image/bg.png); setAutoFillBackground(true);2.实现resizeEvent函数,在里面画背景void Example:resizeEvent(QResizeEvent *event)QWidget:resizeEvent(event);QPalette pal(palette();pal.setBrush(QPalette:Window,QBrush(backgroundImage.scaled(event-size(), Qt:IgnoreAspectRatio,Qt:SmoothTransformation);setPalette(pal); QtWidget: 给widget加上背景图关键使用widget的palette的brush. int main(int argc, char *argv) QApplication a(argc, argv); QWidget *widget = new QWidget(); widget-setAutoFillBackground(true); / 这句要加上, 否则可能显示不出背景图. QPalette palette = widget-palette(); palette.setBrush(QPalette:Window, QBrush(QPixmap(1.png).scaled( / 缩放背景图. widget-size(), Qt:IgnoreAspectRatio, Qt:SmoothTransformation); / 使用平滑的缩放方式 widget-setPalette(palette); / 至此, 已给widget加上了背景图. QHBoxLayout *layout = new QHBoxLayout(); layout-addWidget(widget); QWidget *mw = new QWidget(); mw-setLayout(layout); mw-resize(500, 500); /mw-setWindowFlags(Qt:FramelessWindowHint); mw-show(); return a.exec();-Qt: 如何创建QT使用的DLL如何创建QT使用的DLL(.so)以及如何使用此DLL(.so)答:创建DLL时其工程使用lib模板Quote:TEMPLATE=lib而源文件则和使用普通的源文件一样,注意把头文件和源文件分开,因为在其它程序使用此DLL时需要此头文件在使用此DLL时,则在此工程源文件中引入DLL头文件,并在.pro文件中加入下面配置项:Quote:LIBS += -Lyourdlllibpath -lyourdlllibnameWindows下和Linux下同样(Windows下生成的DLL文件名为yourdlllibname.dll而在Linux下生成的为libyourdlllibname.so。注意,关于DLL程序的写法,遵从各平台级编译器所定的规则。-QtWidget: 设置QTextEdit的各种颜色Widget:Widget(QWidget *parent) : QWidget(parent), ui(new Ui:Widget) ui-setupUi(this); connect(ui-button, SIGNAL(clicked(), this, SLOT(setColor(); QPalette p = palette(); p.setColor(QPalette:Text, QColor(0, 255, 0); setPalette(p); / 注意这里, 修改了widget的调色板, 子窗口ui-lineEdit的颜色变化.Widget:Widget() delete ui;void Widget:setColor() QPalette palette = ui-lineEdit-palette(); const QColor &color = QColorDialog:getColor(palette.color(QPalette:Background), this); if (color.isValid() palette.setColor(QPalette:Highlight, color); ui-lineEdit-setPalette(palette); palette.setColor(QPalette:Highlight, color);此处:QPalette:Highlight / 被选中后文字的背景色.QPalette:HighlightText / 被选中后文字的前景色.QPalette:Text / 文字的前景色QPalette:Base / QTextEdit的背景色, 默认是白色的.Role: Qt中会有一组数据, 当取得这些数据时, 使用同样的方法去获取, 为了指明是取得哪种数据, 所以就定义了Role这种概念, 来指明要获取的数据的类型, 例如在View中, 如有显示的文字, 图标, 真正有用的数据(可能没有显示出来, 而是在内部存储着), 取得这些数据都是用同一个方法data(), 通过指明数据的角色来获得.所有Qt窗口部件都拥有一个QPalette, 并使用它绘制自己. 应用程序还有一个调色板, 通过QApplication:palette()来获得. 修改一个窗口部件的调色板, 只影响这个窗口部件以及子窗口部件(不包含子窗口, 如只是以他作为父对象来管理内存, 而不在他里面显示), 而修改应用程序的调色板, 会影响到该应用程序的所有窗口部件-Qt: signal/slot的三种调用方式signal/slot目前有三种调用方式1.DirectConnection和以前一样,在emit处直接invoke你的slot函数,一般情况是sender,receiver在同一线程e.g. emit currentRowChanged(.);2.QueuedConnection将发送Event给你的receiver所在的线程postEvent(QEvent:MetaCall,.)slot函数会在receiver所在的线程的event loop中进行处理,一般情况是sender,receiver不在同一线程3.BlockingQueuedConnection调用sendEvent(QEvent:MetaCall,.),在receiver所在的线程处理完成后才会返回;只能当sender,receiver不在同一线程时才可以-QtWidget: 自定义不规则窗体与按钮关键是使用 void QWidget:setMask ( const QBitmap & bitmap )void QWidget:setMask ( const QRegion & region )void QWidget:setMask ( const QRegion & region )Causes only the parts of the widget which overlap region to be visible. 只有widget与region重叠的地方才会显示出来. 自己构造一个QRegion就行了.void ShapedClock:resizeEvent(QResizeEvent * /* event */) int side = qMin(width(), height(); QRegion maskedRegion(width() / 2 - side / 2, height() / 2 - side / 2, side, side, QRegion:Ellipse); setMask(maskedRegion);void QWidget:setMask ( const QBitmap & bitmap )Causes only the pixels of the widget for which bitmap has a corresponding 1 bit to be visible. If the region in
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 输液反应处理及护理措施
- 健康饮料线上挑战赛与实施创新创业项目商业计划书
- 2025年广安安农发展集团有限公司招聘考试笔试试题(含答案)
- 编程小达人乐园创新创业项目商业计划书
- 保温杯套装创新创业项目商业计划书
- 含油果环保包装材料创新创业项目商业计划书
- 汽车车载导航精准设计创新创业项目商业计划书
- 虚拟现实艺术创作工具创新创业项目商业计划书
- 2025年电商平台售后服务创新模式与客户体验提升研究
- 2025年汽车轻量化材料在汽车轻量化车身制造中的创新应用报告
- 循证医学中常用的统计指标演示
- 生物化学英文版教学课件:Biochemistry-chapter 1(英文1)
- 2023年版企业投资项目可行性研究报告编写参考大纲
- 陕西省中考数学历年(2016-2022年)真题分类汇编专题8四边形及答案
- 沈阳市双倍德化学厂锅炉改造项目环评报告
- GB/T 923-2009六角盖形螺母
- GB/T 35690-2017弱磁材料相对磁导率的测量方法
- JB∕T 13977-2020 液化天然气(LNG)低温潜液泵
- 口咽通气道的使用方法
- 消防火灾自动报警主机更换(增加)施工方案
- 山西省太原市小升初语文试卷(含答案)
评论
0/150
提交评论