QT 笔记 信号槽 定时器

信号-槽
两个对象是QOBJECT类型或者其子类型

不是所有的信号 和 所有的槽 都能直接进行连接
1 采用自定义槽函数 在自定义的槽函数
调用和信号不匹配的槽函数
信号和槽 参数的类型 个数 顺序 匹配
2 自定义槽函数 结合自定义信号
connect (a, SIGNAL(clikck()), this, SLOT(z());
在z()槽函数中 没有访问目标的槽函数
而是发射了信号 这个信号是自定义的 和 目标槽函数是匹配的
关联自定义信号 和 目标的槽函数

设计器的使用:
简化了界面相关代码
1 设计UI界面
2 如何使用UI界面
a使用uic 把 ui转成 .h
b 写自己的头文件,使用.h中的类,定义界面指针
c 写实现文件:创建界面 加载界面
d 测试代码

QTCreator"关键字补全":
工具->选项->键盘->completethis->Alt+/

槽函数中判断对象:
((QPushButton*)sender())->objectName == “控件名称”

绘制图像:
绘制事件处理函数
public:
void paintEvent(QPaintEvent*);// 系统自动调用,绝对不能拼错
QImage img;

#include
qsrand(QTime::currentTIme(), msec());// 构造函数中,随机数产生种子

#include
void Yaojiang::paintEvent(QPaintEvent*)
{
QPainter qp(this);// 指定画的位置
qp.drawLine(0,0,400,600);
// 显示图片
int imgid=(qrand()%5)+1;
QString imgstr = “:/images/”;
imgstr += QString::number(imgid);
imgstr += “.jpg”;
img.load(imgstr);//随机播放
// 图像缩放,按照固定大小缩放
img = img.scaled(320,480);
//
qp.drawImage(40,40,img);// 图像大小不一致,太大
qp.drawImage(40,40,img,0,0,320,480);
// (40,40)图像所在控件的位置
// (0,0,320,480)图像的起始位置和图像画的大小

}

定时器:
#include
定时发出 timeout() 信号
//槽函数repaint(),定时重画界面
public slots:
void my;
// 定时器指针 用来定时发出timeout()信号
QTimer* timer;

timer = new QTimer();
timer->setInterval(200);
timer->start();
connect(timer,SiGNAL(timeout()),this,SLOT(repaint()));

你可能感兴趣的:(QT,qt)