QT中常见的技巧和易错的地方

来源:互联网 发布:轩辕剑神臂进阶数据 编辑:程序博客网 时间:2024/05/16 19:41

<1>QT常用的数据库有MySQL和SQLLite,所以在写之前,一定要在工程文件(.pro)结尾的那个文件中加入如下的关键字:

连数据库的话要加上“sql”            QT += core gui sql  

做网络程序(如socket)的时候要加上"network" QT += core gui network

不加会有没有找到驱动的错误。

<2>一般使用另一个类的时候,都是如下的操作,我们那一个简单的工程来说:

.

如上所示:我们自己的类myclass,在mainwindows.cpp中使用的时候,通常是先在mainwindows.h文件中声明一个私有的指针;

如:在mainwindows.h中 代码 MyClass  *myclass;然后再在mainwindows.cpp中对这个成员初始化,this->myclass = new MyClass(this);

<3>对于要设计折叠效果时,我们用的是GroupBox控件,关键代码如下:

    1. ui->groupBox_2->hide();
    2. this->layout()->setSizeConstraint(QLayout::SetFixedSize);
    3. ui->pushButton_More->setCheckable(true);
    4. QObject::connect(ui->pushButton_More,SIGNAL(toggled(bool)),
    5.        ui->groupBox_2,SLOT(setVisible(bool)));

<4>QT中类的设计

关于QT中类的设计,我们到底是在我们的工程中,新建一个我们自己封装的类,还是直接用QT库中的类,完全取决于,我们实现的功能的复杂情况.工程中对一个已经做好的类使用时,切记:如果你定义的是指针,那么请一定要注意,要在他被使用前初始化。

<5>QT有些函数是虚函数

如:在QTcpSocket类中的虚函数incomingConnect();还有一些是静态函数(即我们直接拿类名来调用就行),如:QObject::Connect().

<6>QT中两个类之间的传值。

通过构造函数来传值。所以要在设计类的时候就要考虑好要传递那些参数

<7>在QTcpSocket类中的一些信号只会发送一次。我们不能通过信号判断一些条件.