1.杂项
1.字符串显示可能会乱码,解决:
//str.toUtf8() 转换成 QByteArray
//QByteArray.date() 转换成 char * 显示
QString str;
str.toUtf8().data();
2.对象树(见第一篇文章)要求:
(1).动态分配空间 new
(2).指定了父对象
(3).祖宗类是QObiect
3.信号和槽的重载二义性(见第一篇文章)
2.注意Qt4和Qt5的区别,Qt4我用在ARM上,区别如下:
1.connect用法: connect(b2,SIGNAL(pressed()),this,SLOT(subslot()));
3.Qt4示例代码:
1.主子窗口:
sub.h:
#ifndef SUB_H
#define SUB_H
#include <QWidget>
#include <QPushButton>
class sub : public QWidget
{
Q_OBJECT
public:
explicit sub(QWidget *parent = 0);
signals:
void subsignal();
public slots:
void subslot();
private:
QPushButton *b2;
};
#endif // SUB_H
sub.cpp:
#include "sub.h"
sub::sub(QWidget *parent) :
QWidget(parent)
{
b2 = new QPushButton("switch to main",this);
b2->setFixedSize(100,100);
connect(b2,SIGNAL(pressed()),this,SLOT(subslot()));
}
void sub::subslot()
{
emit subsignal();
hide();
}
day.h
#ifndef DAY_1_H
#define DAY_1_H
#include <QWidget>
#include <QPushButton>
#include "sub.h"
class day_1 : public QWidget
{
Q_OBJECT
public:
day_1(QWidget *parent = 0);
~day_1();
private:
QPushButton *b1;
sub * s;
public slots:
void do_sub();
};
#endif // DAY_1_H
day.cpp
#include "day_1.h"
day_1::day_1(QWidget *parent)
: QWidget(parent)
{
b1 = new QPushButton("switch to son",this);
b1->setFixedSize(100,100);
s =new sub(this);
s->setFixedSize(400,400);
connect(b1,SIGNAL(pressed()),this,SLOT(do_sub()));
connect(s,SIGNAL(subsignal()),this,SLOT(show()));
}
void day_1::do_sub()
{
hide();
s->show();
}
day_1::~day_1()
{
}
main.cpp
#include <QApplication>
#include "day_1.h"
int main(int argc, char *argv[])
{
QApplication a(argc, argv);
day_1 w;
w.setFixedSize(400,400);
w.show();
return a.exec();
}