QT开发,需要的一些知识点
1.构造函数 拷贝构造函数 赋值函数 析构函数
2.继承----派生类得构造函数
3.命名空间 引用
命名空间:
using namespace std;
class A
{
namespace n1
{
void f(){}
}
。。。。。
cout << "hello"<<endl;
}
或者 无命名空间则 std::cout<< “hello”<<std::endl;
g++ file.cpp –Wall 编译C++程序
5.C++中类内的成员函数默认为私有。。。私有只能类内函数使用
6.申明一个类的对象(实例)来调用函数。。。或者将函数加一个 static申明为静态函数,就可以直接类名调用
定义一个类,即产生了一个新的数据类型,类中隐含一个this指针,是本类对象的地址
例如:A *p = &a; this相当于*p ,只不过this是类内隐含的,而p是人为声明的
7.引用:
int &n = m; 其中的n 就是 m 的引用。之后n和m的地址和值都相同。
作用:传参方便 不需要开销
void f(const int &n) //int &n = m;
8.构造函数:无返回值,函数名与类名相同,参数可有可无,函数的重载
当产生对象时,自动调用构造函数。
A()
{
cont <<""<<endl;
}
A(const A &other)
{
cont <<""<<endl;
}
A b(a);或者 A b=a; 或者定义一个变量 int c = 10; int j (c)则调用第二个构造函数
9.QT
对话框
创建可重用的软件模式
接口:类内的共有的方法。客户调用程序可能使用到的标识符
实现:
QT
类库 已经实现好的函数
Gnome ----GDK----C
KDE-----QT------C++
QT优点:优良的跨平台特性,面向对象,丰富的API,大量的开发文档。
信号槽:实现空间通信···
对象树:
A *P = new A;// new的两个作用,分配内存空间和调用构造函数
delete p;// 调用了析构函数 堆上的空间回收 不调用则不析构
p = NULL;
10.配置QT环境变量
将QT安装包中的3个bin目录路径添加到物品的电脑的path中,分号隔开。
手动书写一个helloword程序:
① 写一个helloword.cpp文档程序
②qmake -progject 生成一个工程文件
③qmake 生成一个makefile 为民间
④执行mingw32-make
⑤debug\hello.cpp执行程序
11.QT的类的派生图
12.信号由moc产生,无需在.cpp中实现方法;moc ----Meta object compiler原对象编译器
13.插槽:是普通的C++成员函数,可以被正常调用。插槽函数也分为三种,public slots、private slots和protected slots
i信号与槽的关联: QOject::connect(const QBject *sender, const char *signal , const QBject *receiver, const char *member);
ii当信号被发射时,与其相关联的槽将被立即执行。
14.自己定义一个信号处理
①头文件中
signals:
void changedValue(const QString &text);
②定义一个槽
private slots:
void changedText(const QString &text); //方法实现在cpp中
③cpp文件中
QObject::connect(this,SIGNAL(changeValue(QString)),
this,SLOT(changeText(QString)));
④接收到信号后的处理
void SlotWindow::changeText(const QString &text)
{
ui->lineEdit->setText(text);
}
//发送信号
void SlotWindow::on_horizontalSlider_valueChanged(int value)
{
QString s = QString::number(value);
emit this->changeValue(s);
}