QT编程基础篇QT入门之Hello qt及信号与槽

QT框架式有奇趣科技公司开发的,不过现在被诺基亚收购了, QT是一个跨平台面向对象的图形用户界面框架,现在已发展到4.8版本。

本系列QT教程主要在Windows系统下以QT的IDE软件Qt Creator 学习开发 从基础到高级、网络、界面、数据库、嵌入式等等开发。

Qt以及Qt Creator的安装这里呢我们就不讲解了,大家可以到 http://qt.nokia.com/www.it165.net这里下载Windows完整安装版,安装完毕后无需设置,可直接打开Qt Creator进行编译。

首先我们先来创建一个Hello Qt程序

\

然后设置我们的工程名称 HelloQt,点击下一步
 

\
 

点击完成后,我们可以点击编译运行按钮,这样一个QT的界面程序就建立成功了。

 

\

 

现在我们来看一下他得源代码:

main.cpp

#include <QtGui/QApplication>
#include "helloqt.h"

int main(int argc, char *argv[])
{
    QApplication a(argc, argv);
    helloqt w;
    w.show();
    
    return a.exec();
}


第1-2行:是包含了QApplication类喝helloqt的头文件。
第5行:里面创建了一个QApplication对象,主要是用来管理整个应用程序所用到的资源,在多线程当中呢,他是作为主线程运行,这个我们以后会讲解。
第6行:helloqt这个类主要是界面类,每当程序运行时会首先显示helloqt这个类的界面,他的基类是QT的Widget类,声明并显示程序的主界面。

那么我们如何在主窗体中创建其他的控件呢。

首先我们在主窗体中创建一个文本显示的控件 QLabel 用来在主窗体中显示 Hello Qt文本。

我们打开helloqt.cpp文件,这是主窗体的程序文件。

在helloqt::helloqt(QWidget *parent) :
    QDialog(parent),
    ui(new Ui::helloqt)

代码里面输入以下代码:

QLabel * text = new QLabel(this);
    text->setText("Hello Qt");
    text->show();


第1行:在主窗体中创建一个 QLabel指针对象(后面的this为主窗体指针)。
第2行:设置QLabel::setText属性。
第3行:将QLabel显示在主窗体中。

记住不要忘记在头文件中插入#include <QLabel>

\
 

在主窗体中我们会看到显示Hello Qt文本的QLabel对象。那么在简单的例程当中,我们如何创建一个按钮,然后点击按钮来改变其显示的文本那,这就是我们要介绍的信号与槽。

信号与槽也是QT当中特有的强大的图形用户界面编程规范。

QT信号:(signal)

QT主要是通过用户界面发射信号,来表明用户在操作程序时的动作,以及状态的改变,例如一个按钮,当用户点击按钮时QT便会发射一个信号,连接到相应函数(Qt这里称作槽)来执行一个动作。

QT槽:(slot)

槽主要是接受QT发过来的信号,来执行槽函数内的程序代码。

下面我们在主窗体中显示一个按钮(QPushButton),然后通过点击按钮来改变QLabel的文本显示。

helloqt::helloqt(QWidget *parent) :
    QDialog(parent),
    ui(new Ui::helloqt)
{
    ui->setupUi(this);
    text = new QLabel(this);
    bt = new QPushButton(this);
    QRect rc(100,50,80,28);
    bt->setGeometry(rc);
    bt->setText("Click me");
    text->setText("Hello Qt");
    text->show();
    bt->show();
}


上面是显示一个按钮的代码,QRect类似MFC的CRect这里不多讲了,只是设置一个x坐标,y坐标,宽度,高度  在主窗体显示的位置。
setGeometry属性来设置QPushButton在主窗体的位置。

Qt利用QObject::connect来连接信号与槽的,首先我们设置一个槽函数

private slots:
    void SetLabelText();


void helloqt::SetLabelText()
{
    text->setText("It is here");
}


在helloqt.h的private slots:里声明槽函数。并在CPP文件里实现函数体。现在我们将按钮的Click信号与我们声明的槽函数SetLabelText相连接:

QObject::connect(bt,SIGNAL(clicked()),this,SLOT(SetLabelText()));

通过点击按钮来实现对QLabel的文本改变

\

\

 

本片文章源码下载:
http://files.it165.net/pro/201204/0428helloqt.rar

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值