Qt Creator简介

先拉过来一句很很......常见的话,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.还没学............
}

猜你喜欢

转载自blog.csdn.net/shuiyihang0981/article/details/81943547
今日推荐