QT基础知识1

  1. “.pro文件” 含一个项目解决方案的文件,包含当前QT版本、项目所有文件信息、调用的各模块组件
  2. QT += core gui 为基础组件,core是QT的内核,封装了C++库、图形库等,属于基础窗体;gui为一个固件,代表一个具体窗体(网页、按键等)。
  3. .pro.user 文件是当前QT编译的目录结构及环境变量,不同主机下编译的均不一样,会有差异,因此要是拿别人代码来用,首先删除该文件,QT重新加载时会生成新的该文件,符号我们使用的环境变量。
  4. 新建项目 Application->QT Widgets Application ,该类一般设计较简单的页面布局,即通过拖拉控件自动生成代码进行设定布局,而QT Quick Appliaction用于自定义布局,通过HTML等语言对页面进行设计,较复杂。
  5. 构建模式。debug为调试版(较大、包含调试组件等)、release为发布版(较小,不能含有打印语句)
    不同平台的文件由构建工具决定,arm上运行的需用arm的构建工具。
  6. 编译过程 qt code ------(qmake)-----> c++ code ------(g++)------->a.out
    由于经过两次的代码编译转换,当使用多进程时可能出现修改qt code时编译后不能及时更新c++ code生成a.out。可以通过右键项目名点击清除,删除所有中间编译的文件,在重新进行构建。
  7. linux下显卡接口:OPENGL 而win下的为
  8. 类名即为头文件名,可通过光标定位头文件按F1查看帮助文档,函数参数可用双引号占位,在光标定位到函数名,同样按F1查看帮助文档。
  9. 手动编译QT代码步骤:
    qmake -project;
    添加QT组件;
    qmake;
    make;
  10. 将ui文件编译为头文件:uic编译工具
  11. QT信号与槽
    产生者(按钮)->绑定connect->槽函数
  12. qt字符串常用操作
    构造函数:[ * ]转换为QString
    append:字符串拼接
    arg:字符串格式化拼接
    chop:字符串倒位剔除
    contains:包含某个字符串
    count:字符串统计
    replace:查找替换
    split:分隔字符串
    toxxx:类型转换
    QString::number:其他类型转换为QString类型
    insert:插入指定位置
    取字符串中的某一个字符:(QString(b.at(1)).toLatin1())[index]
    字符对象数组:QStringList;对应行为insert向数组中插入字符对象
  13. 定时器的使用
    #include
    myTimer = new QTimer(this);
    connect(myTimer, SIGNAL(timeout()), this, SLOT(doProgressTimeOut())); //绑定超时槽函数
    行为:myTimer ->start(ms); myTimer ->stop();
  14. 进度条
    progressBar->setValue(num); //num = 100 表示进度已满
  15. textEdit的操作
    文本格式:设置setText();获取toPlainText()
    html格式:设置setHtml();获取toHtml()
  16. checkbox复选框
    setCheckable, 每次点击将返回布尔类型true/false传递给槽函数,用于判断。
  17. radio button单选框
  18. toolbutton 设置菜单
    在这里插入图片描述
    #include
    ui->toolButton->setIcon(QIcon(“F:/QT5.9/project/wife.jpg”));//设置按钮图片
    ui->toolButton->setIconSize(QSize(100,100));//设置图片大小
    QMenu *menu = new QMenu(this);//设置菜单栏
    menu->addAction(QIcon(“F:/QT5.9/project/husband.jpg”), “选项名”, this, 处理函数);//选项信息
    ui->toolButton->setMenu(menu);//设置
  19. 随机数种子:qsrand
    #include
    //设置随机数种子,以0时0分0秒达到现在的秒数为种子
    qsrand(QTime(0,0,0).secsTo(QTime::currentTime()));
    num = qrand()%100; //取两位数
  20. 窗体的操作:
    show();//显示窗体
    hide();//隐藏窗体
  21. 多窗体切换
    若每次点击都分配内存则每次都会生成一个新子窗体。(新对象指针 = new 新对象(this))若分配内存时继承与父类this则子窗体在父窗体重叠显示,并且只能对子窗体进行操作,内存由父类释放。若全局,只能生成一个子窗体,子窗体中内容覆盖显示。
    设置信号属性,signals: void 信号名(自定义参数);
    发送信号:emit 信号名(自定义参数); //一般在按钮事件中使用
    在目标窗体类中设置信号发送者对象指针并分配内存,绑定发送者对象所产生的信号处理函数
    connect(发送者对象, SIGNAL(信号名(自定义参数)), this, SLOT(信号处理函数));
  22. 多窗体静态公共方法
    使用注意:对于公共部分头文件,坚决不放入.h头文件中,应该放到.cpp文件,否则只能引入一次。
    定义多一个C++文件,头文件声明静态属性及静态方法,静态属性初始化为0,静态方法中给静态属性分配内存并继承于某基类。在main函数中直接通过类名直接调用静态方法分配内存。在main中的子函数体中均可使用类名加静态对象进行操作。
    C++文件:
    static 基类 *静态属性对象;
    基类 *作用域::静态属性对象指针 = NULL;//初始化
    main:
    静态属性对象指针 = new 基类();
    main的子函数体:
    类名::静态属性对象->行为();
  23. gif图的显示(label控件):
    QMovie *movie = new QMovie(“gif文件路径”);//生成对象
    movie->start();//开始播放
    ui->label_2->setMovie(movie);//设置播放文件
    ui->label_2->setScaledContents(true);//设置缩放内容

你可能感兴趣的:(QT,QT基础知识1)