• qt初学(doing)


    1.	跟随教程安装qt
    2.	创建项目,并配置编译器(注意gcc,g++,cmake的安装与其地址,一般安装qt时一起安装在qt/qt5.14.2/Tools下,另外注意配置环境变量),此时应该已经能编译一个空窗口了
    3.	使用qt Creator会自动帮你创建一个从QWidget上继承过来的派生类,一开始编译便可输出一个空窗口(当然可能要先初始化窗口大小等数据)
    4.	初始化窗口大小 setFixedSize(640,1000);
    设置标题 setWindowTitle("xxx");
    5.	资源导入
    导入到qrc 
    创建一个.qrc文件
    将图片等资源导入到.qrc文件中
    CmakeLists.txt中添加该.qrc文件,具体为
    file(GLOB_RECURSE QRC_SOURCE_FILES
    ${CMAKE_CURRENT_SOURCE_DIR}/*.qrc)
    	set(RCC_FILES resource.rcc)
    find_package(Qt5 COMPONENTS Widgets REQUIRED)
    qt5_add_resources(QRC_FILES ${QRC_SOURCE_FILES})
    
    add_executable(xxx项目名
    	 ${QRC_FILES}
    )
    	
    导入到rcc//rcc为二进制文件,比qrc文件小,运行更快
        先添加出.qrc文件
        把qt中自带安装好的rcc.exe文件添加到环境变量
        命令行运行”rcc -binary xxx.qrc -o xxx.rcc” 将qrc文件转化成rcc文件
    	  将产生的.rcc文件放到qt中一个为该项目的deug的文件夹下(实际上文件在此处执行,要放到这里面才能被调用
        在主程序中添加
    #include<QResource>
    QResource::registerResource("./xxx.rcc");//main函数中
    6.	添加图标(调用外部资源 .qrc/.rcc)
       Include<QIcon>
       setWindowIcon(QIcon(":/resource/xxx.ico"));//窗口对象的构造函数中,注意”:”开头表示虚拟路径,即.qrc/.rcc中所记录的路径
    7.	可以考虑创建一个配置文件config.h记录一些通用的数据,如背景高度和宽度等
    注意当新建了一个.h/.cpp文件之后要在CMakeLists.txt通过add_executable()中添加新的可执行文件(实际上添加的可执行文件不需要包括库,但加上也没错,且只有在其中加上后,qt Creator中才会显示该.h文件)
    可以考虑在.h文件中定义需要的class及其中所需的函数,而在同名的.cpp文件中进行相应代码的实现
    8.	设置定时器
       #include<qtimer.h>      //这个库中包含了定时器
       QTimer m_timer;         //创建一个定时器对象
       m_timer.setInterval(10);   //设置定时器间隔,单位为ms
    m_timer.start();         //启动定时器
    connect(&m_timer,&QTimer::timeout,[=](){
    …
    …//更改各种系数 
            update();//Qwidget类自带函数,可以更新一些数据,包括调用paintEvent(),mouseMoveEvent()
            //update()和Qtimer一起使用可以做到实时更新数据
    }); //此处为timer使用方法,每隔一段时间执行lambda表达式
    //(通过connect的一种写法,其格式基本为connect(槽(操作对象),信号,lambda表达式)
    9.	图像输出方法
       在派生类中创建一个void paintEvent (QPaintEvent *event){}   
    (它是Qwidget类中的虚函数,一般负责输出到屏幕,每次调用update()都会调用它)
    #include<qpainter.h> //这个库包含了画家
    在该函数中调用
        QPainter painter(this);//重建一个画家,把它和这个Qwidget窗口联系起来,通过它画出图片
        painter.drawPixmap(x,y,Map);
    //其中x,y为int(像素),代表画出位置。Map为QPixmap类型,代表要画出的像素图(注: (0,0)在左上角,x是横轴,y是纵轴
        painter.drawPixmap(x,y,Map);//多个drawPixmap为依次画出
    10.	监视鼠标方法
       在派生类中创建一个void Mainscene::mouseMoveEvent(QMouseEvent *event){}
    (它也是Qwidget类中的虚函数,一般监控鼠标信息,每次调用update()都会调用它)
    在该函数中调用
        int x=event->x();
        int y=event->y();
       即可获取当前鼠标点击位置。即每次update()时调用它,event->x/y()可以返回最近鼠标点击位置,当timer的间隔足够小时,即可看做实时点击位置
    11.	设置背景
    #include<Qpixmap>   //该库中包含Qpixmap
    Qpixmap map1;        //创建一个Qpixmap的对象
    map1.load(":/resource/xxx.webp");  //将外部图片导入转化成像素图存在map1中
    接着只需要在paintEvent()函数中执行
    painter.drawPixmap(0,0,map1);//在实时输出
    注:可以把该map1封装到class background中
    如要设置背景滚动可以通过调整x,y参数在printEvent()中实时更新背景(可以考虑插入两个相同的背景),(注:x,y可以为负数 or 超过屏幕宽度/高度,但超出部分不显示
    12.	创建一个可以跟随鼠标点击位置移动的对象(图片)
         创建一个class,其中包含一个Qpixmap对象map1,load它,并在paintEvent()中执行输出(跟背景设置类似)
         为了实现跟随鼠标点击位置的效果,可以通过mouseMoveEvent()函数实时获取当前鼠标点击位置,并对该图片位置参数进行调整,在paintEvent()中依据该位置参数进行屏幕绘画
    
  • 相关阅读:
    Excel-单条件和多条件匹配搜索
    Excel-条件判断
    Excel-常用快捷键
    EXCEL-批量下拉填充
    Excel-数据分列的多种方法实现
    Excel-统一小括号格式(中文小括号,英文小括号)
    在WEB网页上模拟人的操作(批量操作)
    EXCEL-常用函数总结
    C语言学习——bsmap-2.74_main.cpp
    Linux --- awk
  • 原文地址:https://www.cnblogs.com/zhongzero/p/16163237.html
Copyright © 2020-2023  润新知