先拉过来一句很很......常见的话,Qt Creator 是一个跨平台,完整的集成开发环境(IDE)。
QT Creator 基本功能
{
NO.1基础控件
{
1.QPushbutton 按键
2.container 容器
{
1.Widget //容器
2.stacked widget//窗口切换
}
3.Input 输入
{
1.line Edit //行编辑
2.text Edit //文本编辑框
3.spin Box //下拉选择框
}
4.display 显示
{
1.label //标签
2.LCD Number //数码管显示
3.Progress bar//进度条
}
}
NO.2布局
{
1.水平布局
2.垂直布局
3.网格布局
}
NO.3信号与槽 signal-slot
{
connect(信号发生者,信号,接收者,动作函数);
}
NO.4事件
{
1.鼠标,键盘事件
{
1.鼠标事件
{
MouseButtonPress //鼠标按下
MouseButtonRelease//鼠标释放
MouseButtonDblClick//双击
QEvent::MouseMove//鼠标移动
}
2.键盘事件
{
}
}
2.定时器事件
{
1.类:QTime
id1= startTimer(1000);//设置1S中断一次
void MyWidget::timerEvent(QTimerEvent *event)
{
killTimer(id1);//关闭定时器
};//中断服务函数
2.类:QTimer
QTimer *time;
time->start(1000);//设置1S中断一次
connect(time,&QTimer::timeout,
[=]()
{
数据处理();
});
}
3.画布事件
{
QPainterEvent
系统自动调用适应窗口变化
}
}
NO.5绘图与动画
{
1.绘图
QPainter,QPen,Qpixmap,QPicture,QMove
QPainter painter(this);
QPen pen;
pen.setColor(Qt::black);
pen.setWidth(4);//设置画笔样式
painter.setpen(pen);//交付画笔
p.drawpixmap(起始点X,起始点Y,终止点X,终止点Y);
/////////////////////////////////////////////////////////
2.动画
QMove move(this);
move.setFileName("//同一目录下Gif名字");
ui->label->setMove(&move);//选择放置位置
move.start();//开始
move.stop();//动画结束
}
NO.6文件输入输出
{
1.输入-写文件
{
Qstring path=QFileDialog::getSaveFileName(this,"Title","../");//弹出对话框,获取文件路径
QFile file(path);//指定文件父对象
bool mark=file.open(QIODevice::WriteOnly);//只写方式打开,返回是否成功打开
quint64 len=file.write(Qstring(str).toutf8);//写入数据,返回写入长度
file.close();//关闭文件
}
2.输出-读文件
{
Qstring path=QFileDialog::getOpenFileName(this,"Title","../");//弹出对话框,获取文件路径
bool mark=file.open(QIODevice::ReadOnly);//只写方式打开,返回是否成功打开
Qstring str=file.readAll();//一次性读完,不建议使用
QFileInfo info(path);
Qfilename=info.fileName();//文件名字
Qfilesize=info.size();//文件大小
}
}
NO.7网络通信UCP,TCP
{
1.UCP:像写信一样通信,只需要IP地址和端口
{
1.服务器
{
QUCPSocket//通信套接字
QUCPSocket socket;
socket.bind((uint)端口);//自身标明身份绑定端口
socke.WriteDatagram(字符串,IP地址,端口Port);//向某个地址写信件
}
2.客户端
{
与服务器一样;
}
}
2.TCP:像打电话一样通信,适合文件传输
{
1.服务器
{
QTCPserver//监听套接字
QTCPSocket//通信套接字
QTCPserver *tcpserver;
QTCPSocket *tcpSocket;//需要动态分配空间New//
tcpserver->listen(QHostAddress::Any,端口Port);//监听某个端口
connect(tcpServer,&QTcpServer::newConnection,
[=]()
{
tcpSocket=tcpServer->nextPendingConnection();
}
connect(tcpSocket,&QTCPSocket::readyread,[=]()
{
有数据发送,准备接受;
});
);
}
2.客户端
{
QTCPSocket *socket;//需要动态分配空间New//
socket=new QTcpSocket(this);
connect(socket,&QTCPSocket::readyread,[=]()
{
有数据发送,准备接受;
});
}
}
}
NO.8线程
{
1.
QThread thread(this);
重载虚函数Run();
thread.start();//启动线程
thread.stop();//结束线程
2.
{
1.创建自定义类Mythread,继承QObject;
2.自定义类里定义任务1和信号;
3.
{
1.Mythread *mythr=new Mythread;//不能指定父对象
2.主窗口创建线程Qthread *thread =new Qthread(this);
3.mythr->moveToThread(thread);//把自定义线程加入线程
4.触发
{
thread->start();
emit 信号1;
}
5.connect();接收到信号1,进入任务1,任务1中发生信号2,connect();执行主线程任务;
}
}
}
NO.9程序发布
{
1.设置图标
{
1.创建.ico文件作为图标
2.在工程文件同一级目录下添加mycom.rc
{
1.使用记事本创建mycom.rc
2.输入以下内容保存并退出:IDI_ICON1 ICON DISCARDABLE "mycom.ico"
}
3.在.pro中加入RC_FILE = mycom.rc
}
2.打包程序
{
1.把release中.exe文件单独拷贝至某一文件夹下
2.使用CMD命令,cd/,打开文件所在目录
3.使用CMD命令,windeployqt ***.exe;自动复制生成所需文件
}
}
NO.10数据库
1.还没学............
}