文档详情

Qt Creator 计算器.docx

发布:2017-11-14约5.83千字共12页下载文档
文本预览下载声明
安装完以后,在程序集中你就可以选择Qt Creator开始执行?先new一个Qt项目,因为要开发有画面的程序,所以先选择Gui下一步:设定项目名称与位置接着设定函式库,先用预设就好设定项目的类别名称,这边你就可以自行命名了!?建好后,精灵会帮你建好方案档以及相关的资源文件夹在这边比较重要的几个档会是:Forms(应用程序ui),你也可以不用有这个文件,你可以在程序中宣告对象再定义其layout也是可以的。[Application Name].ui - the user interface file created with Qt DesignerHeaders(应用程序类别头文件)[Application Name].h - the definition file for the [Application Name] class,Resources(程序代码档):至少会有下列两个檔main.cpp - the file containing a main() function, with an instance of [Application Name]通常不会更改什么数据,这边的程序会建立一个application的实例[Application Name].cpp - the implementation file for the [Application Name] class注意:Subclassing技巧可以让你写的widget程序再利用(若建立的是widget项目,则自动subclassing到main window之下,这边仅是Win App首先我们通常在IDE的环境中,我们可能会先拉一些控件(qt里面称为widget)。Qt也提供了Designer来提供VS使用Qt项目的控件!叫Qt设计家你只要点击.ui档开启即可。长的如下图,左边是控件的toolbox,使用过vs的就不用再多作说明了!我们做一个简单到不行的计算器,透过输入两个input,然后决定操作数,实时计算出结果所以我们一如往常的把控件拉到窗口画面中!像这样!方便的是他的设计器也可以帮你快速的建立应用程序的基本功能控件,而画面的美观与排列可以透过他的layout设定快速达到有组织的程序接口!范例如下:(官网范例)如何定义应用程序的Layout?1.用UI Designer2.用程序定义QGridLayout *mainLayout = new QGridLayout;?mainLayout-addWidget(nameLabel, 0, 0);?mainLayout-addWidget(nameLine, 0, 1);?mainLayout-addWidget(addressLabel, 1, 0, Qt::AlignTop);?mainLayout-addWidget(addressText, 1, 1);另外你可以透过对象指示器来看到你所拉的结构你可以清楚看到他们的父子关系,而这些控件其实都是从他的函式库由各widget类别所定义的定义好画面以后,我们先记录一下我们有哪一些widget(控件)运算符1:只能为整数????????? input1SpinBox:doubleSpinBox,读取单行box中的double数字操作数,定义加减乘除???????OperatorComboBox:ComboBox,选项有+ – * /,分别对应index 1~4运算符2:只能为整数????????? input2SpinBox:同1运算结果(可以是doulbe)??????lbl_Result:Label,同vs的label控件建好了这些widget,我们必须要给他们加入事件来反应!一般在vs中,我们可以在控件的属性窗口那边去定义一些触发的事件在程序代码中也可以宣告与呼叫function或sub等程序。?在Qt这边是透过Signals与Slots来定义对象的互动因此如何让Qt程序的Widget(按钮)有他们的功能?假如新增了一个按钮,当我们触发了按钮的事件以后例如:Clicked()(代表我们在按钮上click了一下)按键程序就会传出一个Signals讯息讯息必须要有Slots接口来接,因此您必须定义Slots的方法来取得signal的数据!而他们之间的connect建立方式有两种一种是手动的建立connect,在qt中可以透过窗体设计器来透过控件精灵来透过内建的signal事件来找到slot接口不过我们先了解qt的原理后,手动建一次看看应用到我们的程序事件,我们想一想当我们输入数字以后、选择不同的操作数以后,就要马上执行计算!因此我们必须透过widget的事件方法来侦测这些widget的变动!除此之外,我们希望建立一个function,只要当widget一变动
显示全部
相似文档