本系列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的文本改变