ubuntu下qt开发界面程序

开发环境ubuntu16

zhao@zhao:~$ qmake -version
QMake version 3.0

Using Qt version 5.6.2 in /home/zhao/anaconda3/lib

程序的执行效果如下:

程序实现步骤如下:

1、打开Qt Creator->新建项目-> 选择Qt Widgets Application


2、编辑项目名称并且选择创建项目的目录


3、接下来全部选择默认设置,完成新建项目后进入文件编辑界面。

其中.pro是项目文件,其余文件夹分别存放着头文件、源文件和界面文件。(配置工程都在这个文件中哦)


注:每个qt项目都有ui文件,可以使用它开发(简单方便,点击添加槽函数会生成对应的类,然后重写方法),也可以不适用它(直接写函数窗口就好),前一种方法产生的界面比较粗糙,在真正的应用界面上还是用的第二种办法。

4、选中界面文件文件夹,双击其中的.ui文件,进入设计应用窗口界面

直接从左边拖选需要使用的控件到主界面上,需要Display Widgets中的2个Label、一个Input Widgets中的Line Edit以及Buttons中的Push Button,将它们分别放在合适的位置,并双击修改它们的名字。


把其中的label_2frameShapeframeShadow属性分别设置为PanelSunken

5、接下来就为Button控件添加单击响应

1)右击“计算”按钮选择“转到槽”选择第一个clicked()函数

  注意GUI 程序除了要绘制控件,还要响应系统和用户事件,例如重绘、绘制完成、点击鼠标、敲击键盘等。当事件发生时,UI 会产生相应的变化,让用户直观地看到。
大部分编程(例如Win SDK、Web前端)中使用回调函数来响应事件,而 Qt 却独创了信号和槽机制。所谓回调函数,就是程序员提前定义一个函数,当事件发生时就调用该函数。
信号和槽是Qt的核心,它让两个互不相干的对象连接起来,当一个对象的状态改变时,可以通知另一个对象。


最后需要在槽函数,添加如下代码,用这种方法会自动把按键和参函数进行关联:稍后介绍下一篇文章中实现手动connect

void MainWindow::on_pushButton_clicked()

{

    bool ok;

    QString tempStr;

    QString valueStr=ui->lineEdit->text();  //从文本中获取字符串值

    int valueInt=valueStr.toInt(&ok);  //自带字符串转整型

    double area=valueInt*valueInt*3.14159;

    ui->label_2->setText(tempStr.setNum(area));  //写回   

}

如果想生成可以独立运行的程序,可以设置成发布模式!



这样在命令行窗口可以直接运行






  • 6
    点赞
  • 32
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
用c++/qt写的项目,项目都经测试过,真实可靠,可供自己学习c++/qtQt是一个用标准C++编写的跨平台开发类库,它对标准C++进行了扩展,引入了元对象系统、信号与槽、属性等特性,使应用程序开发变得更高效。 Qt类库中大量的类以模块形式分类组织的,包括基本模块和扩展模块等。一个模块通常就是一个编程主题,如数据库、图表、网络等。 一、Qt核心特点 1.1.概述 Qt本身并不是一种编程语言,它本质上是一个跨平台的C++开发类库,是用标准C++编写的类库,它为开发GUI应用程序和非GUI应用程序提供了各种类。 Qt对标准C++进行了扩展,引入了一些新概念和功能,例如信号和槽、对象属性等。Qt的元对象编译器(Meta-Object Compiler,MOC)是一个预处理器,在源程序被编译前先将这些Qt特性的程序转换为标准C++兼容的形式,然后再由标准C++编译器进行编译。这就是为什么在使用信号与槽机制的类里,必须添加一个Q_OBJECT宏的原因,只有添加了这个宏,moc才能对类里的信号与槽的代码进行预处理。 Qt Core模块是Qt类库的核心,所有其他模块都依赖于此模块,如果使用qmake来构建项目,Qt Core模块则是被自动加入的。 Qt为C++语言增加的特性就是在Qt Core模块里实现的,这些扩展特性由Qt的元对象系统实现,包括信号与槽机制、属性系统、动态类型转换等。 1.2.元对象系统 Qt的元对象系统(Meta-Object-System)提供了对象之间通信的信号与槽机制、运行时类型信息和动态属性系统。 元对象系统由以下三个基础组成: 1.QObject类是所有使用元对象系统的类的基类; 2.在一个类的private部分声明Q_OBJECT宏,使得类可以使用元对象的特性,如动态属性、信号与槽。 3.MOC(元对象编译器)为每个QObject的子类提供必要的代码来实现元对象系统的特征。 构建项目时,MOC工具读取C++源文件,当它发现类的定义里有Q_OBJECT宏时,它就会为这个类生成另外一个包含有元对象支持代码的C++源文件,这个生成的源文件连同类的实现文件一起被编译和连接。 除了信号和槽机制外,元对象还提供如下一些功能。 1.QObject::metaObject()函数返回类关联的元对象,元对象类QMetaObject包含了访问元对象的一些接口函数,例如QMetaObject::className()函数可在运行时返回类的名称字符串。 QObject obj=new QPushButton; obj->metaObject()->className(); 2.QMetaObject::newInstance()函数创建类的一个新的实例。 3.QObject::inherits(const charclassName)函数判断一个对象实例是否是名称为className的类或QObject的子类的实例。 1.3.属性系统 1.属性定义 Qt提供一个Q_PROPERTY()宏可以定义属性,它也是属于元对象系统实现的。Qt的属性系统与C++编译器无关,可以用任何标准的C++编译器编译定义了属性的Qt C++程序。 2.属性的使用 不管是否用READ和WRITE定义了接口函数,只要知道属性名称,就可以通过QObject::property()读取属性值,并通过QObject::setProperty()设置属性值。 3.动态属性 QObject::setProperty()函数可以在运行时为类定义一个新的属性,称之为动态属性。动态属性是针对类的实例定义的。 动态属性可以使用QObject::property()查询,就如在类定义里用Q_PROPERTY宏定义的属性一样。 例如,在数据表编辑界面上,一些字段是必填字段,就可以在初始化界面时为这些字段的关联显示组件定义一个新的required属性,并设置值为“true"。 4.类的附加信息 属性系统还有一个宏Q_CLASSINFO(),可以为类的元对象定义”名称——值“信息。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值