以HelloQt为例,介绍如何建立一个Qt工程1QLabel例程 QLabel用来显示文本和图片,它继承自QFrame(QFrame继承自QWidget)1。1HelloQt 1和2标明头文件,也可用一个总的来代替:include 6创建QApplication类对象,配合11使整个程序进入事件循环状态,等待用户的动作 8创建QLabel对象label并赋初值HelloQt!,接着9显示出该对象。includeQApplicationincludeQLabelintmain(intargc,charargv〔〕){QApplicationapp(argc,argv);QLabellabel(HelloQt!);label。show();returnapp。exec();} 自动生成的工程配置文件。pro如下:QTcoreguigreaterThan(QTMAJORVERSION,4):QTwidgetsTARGETHelloQtTEMPLATEappSOURCESmain。cpp 支持HTML风格QLabellabel(h2iHelloifontcolorredQt!fonth2); 1。2智能指针 下面程序因为简短,关闭后,操作系统会负责回收内存,但是这种new了之后不delete的方式是不推荐的QLabellabelnewQLabel(HelloQt!);labelshow();1)Qt的智能指针 如果使用指针,可以考虑Qt中的智能指针QScopedPointerQScopedPointerQLabellabel(newQLabel(HelloQt!));2)c的智能指针 也可使用c中的智能指针std::uniqueptr,注意包含头文件includestd::uniqueptrQLabellabelstd::makeuniqueQLabel(HelloQt!);2QPushButton例程 使用QPushButton类,新建一个按钮指针btn,设置其父窗口为window,这样当window被销毁,就会自动删除btn,这其实是Qt中特有的拥有权问题,它可使编程中new了不用delete connect将信号clicked()和槽函数quit()连接了起来,当点击按钮时,clicked()信号被发出,接着槽函数被执行,于是程序退出。这称为信号槽机制。includeQtWidgetsintmain(intargc,charargv〔〕){QApplicationapp(argc,argv);QWidgetwindow;window。resize(200,150);window。setWindowTitle(Button);window。show();QPushButtonbtnnewQPushButton(Quit,window);QObject::connect(btn,SIGNAL(clicked()),app,SLOT(quit()));btnmove(50,50);btnshow();returnapp。exec();} 界面如下: 3QSpinBox和QSlider 实现如下界面,包含spinbox和slider两个控件,且二者的数值互相关联。 14包含所需头文件,10和11新建窗口部件,作为顶层窗口(toplevel),1316新建spinbox和slider控件指针,取值范围0130; 18和19将二者连接起来,使得spinbox和slider的数值保持实时同步;22新建layout布局管理器指针; 23和24将两个控件加入布局管理器layout中,26在窗体部件上安装布局管理器layout,此时QHBoxLayout以及它包含的QSpinBox和QSlider会自动重新定义父窗口,QWidget会取得它们的所有权,这也是它们在创建时没有设置父窗口的原因;27显示出整个窗体部件。includeQApplicationincludeQtWidgetsincludeQHBoxLayoutincludeQSpinBoxincludeQSliderintmain(intargc,charargv〔〕){QApplicationapp(argc,argv);QWidgetwindow;window。setWindowTitle(EnterYourAge);QSpinBoxspinnewQSpinBox;QSliderslidernewQSlider(Qt::Horizontal);spinsetRange(0,130);slidersetRange(0,130);QObject::connect(spin,SIGNAL(valueChanged(int)),slider,SLOT(setValue(int)));QObject::connect(slider,SIGNAL(valueChanged(int)),spin,SLOT(setValue(int)));spinsetValue(35);QHBoxLayoutlayoutnewQHBoxLayout;layoutaddWidget(spin);layoutaddWidget(slider);window。setLayout(layout);window。show();returnapp。exec();} Qt中有三个布局管理器类,分别是水平布局管理器(QHBoxLayout),垂直布局管理器(QVBoxLayout),以及网格布局管理器(QGridLayout) 这些布局管理器,可以为加入其中的控件自动分配位置和尺寸大小,省却了手动布局画图的繁琐。 【领QT开发教程学习资料,点击下方链接莬费领取,先码住不迷路】 点击这里:链接