**1.给窗口类设置标题:setWindowTitle
2.头文件名即类名
3.给按钮设置标题:setText
4.如果不指定父对象,对象与对象(窗口与窗口)之间是没有联系的,独立的;
5.指定父对象有两种方法:1)setParent
2)通过构造函数传参
6.给子窗口定位置: move
1) 主窗口,相对于屏幕而言(起点:左上角)
2)子窗口,相对于主窗口(起点:左上角)
7.光标放到指定位置按F1 查看帮组文档
8.信号和槽(重点)
connect(&a1,&QPushButton::released,this,&MyWidget::mysolt);
&a1:信号发出者 类型是指针
&QPushButton::released: 处理的信号 ,&发送者的类名: 信号名字
this:信号接收者
&MyWidget::mysolt:槽函数,处理信号的函数
9.自定义槽函数(任意的成员函数,普通全局函数,静态函数)
槽函数需要与信号一致(函数类型)
信号都没有返回值,所以槽函数一定没有返回值
10.自定义信号
信号必须有signals 来声明
信号没有返回值,但是可有参数
信号就是函数的声明,只需声明,无需定义
信号可以重载(会产生二义性,利用函数指针即可解决(void (*P)()=函数名(要加作用域)))
11.信号:短信
槽函数:接受短信的手机
(按钮只是触发回调函数(槽函数),槽函数发出信号(一般是主窗口))
12.有时候打开别人的程序时,需要删除路径
13.QDebug 打印
14.qDebug<<int类型 <<QString类型(str)
str->toUtf8 -> 字节数组QByteArray
…data ->QByteArray -> char*
(str.toUtf8().data())
15.Lambda 表达式
c++11 新特性
QPushButton*s=new QPushButton(this);
s->setText(“jay”);
int a=12;
int b=20;
connect(s,&QPushButton::pressed,
= mutable //mutable 可变的(=:是值铺获(外部所有的局部变量和类中的所有成员),不能修改。
this:类中的所有成员以值传递
& :外部的局部变量,引用传递
{
a=b=45;
s->setText("JAY_CHOU");
qDebug()<<"Jay"<<a<<b;
});
16.垃圾回收机制:指定父对象后(必须直接或间接继承QObject),子对象如果动态分配空间,不需要手动释放,系统会自动释放
17.菜单栏 QMenuBar 菜单 QMenu
18.text() 获取内容
19.QString 字符串列表 QCompleter str 对象模型 可以存储QString 的对象
20. Labeal
setText 设置内容
setPixmap 设置图片(要设置资源,读取图片)
setCaseSensitivity 让label图片自动适应大小
Qmovie 动画的对象 设置动画 (创建动画->设置动画->启动动画(start))
21. 数码管 display 设置内容
22. 进度条 设定最小值和最大值
setMaximum
setMinmum
23.定位机制: 绝对定位和布局定位
水平,垂直,网格
24.qt样式表
设置前景色:color (用于绘制文本)
ui->label->setStyleSheet(“QLabel{color:rgb(200,23,0);}”);
ui->pushButton->setStyleSheet(“QPushButton{color:red;}”);
设置背景色 :backgroud-color(用于绘制部件填充矩形)
ui->label->setStyleSheet(“QLabel{color:red;”
“background-color:blue;”
“}”);
设置背景图片:background-image
ui->label->setStyleSheet(“QLabel{color:red;”
“background-color:blue;”
“background-image:url(:/new/prefix1/image/53.jpg)”
“}”);
25.鼠标事件
void Mylabel::mousePressEvent(QMouseEvent *ev)
{
int i=ev->x();///
int j=ev->y();
QString text=QString(“
Mouse Press:(%1,%2)
.arg(i).arg(j);
if(ev->button()==Qt::LeftButton)
{
qDebug()<<“left”;
}
if(ev->button()==Qt::RightButton)
{
qDebug()<<“right”;
}
if(ev->button()==Qt::MidButton)
{
qDebug()<<“mid”;
}
this->setText(text);
}
void Mylabel::mouseMoveEvent(QMouseEvent *ev)
{
int i=ev->x();
int j=ev->y();
QString text=QString(“
Mouse Move:(%1,%2)
.arg(i).arg(j);
this->setText(text);
}
void Mylabel::mouseReleaseEvent(QMouseEvent *ev)
{
int i=ev->x();
int j=ev->y();
QString text=QString(“
Mouse Release:(%1,%2)
.arg(i).arg(j);
this->setText(text);
}
26.绘图事件
如果在窗口绘图,必须放在绘图事件里面
绘图事件自动调用,窗口需要重绘的时候(窗口改变的时候)
更新中。。。。。
**