欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

记录自己的QT学习之路(9)

程序员文章站 2022-05-22 19:20:45
...

记录一下前几日的学习笔记(最近比赛的事情太忙啦)

  1. 虚函数virtual
    C++中的虚函数的作用主要是实现了多态的机制。关于多态,简而言之就是用父类型别的指针指向其子类的实例,然后通过父类的指针调用实际子类的成员函数。

  2. QString的arg()函数
    QString("[%1, %2]").arg(x, y);
    QString的arg()函数可以自动替换掉QString中出现的占位符。其占位符以 % 开始,后面是占位符的位置,例如 %1,%2 这种

  3. 键盘事件
    if (event->type() == QEvent::KeyPress) //键盘事件
    {QKeyEvent *keyEvent = static_cast<QKeyEvent *>(event); //使用Qt提供的QKeyEvent接口
    if (keyEvent->key() == Qt::Key_Space) { //空格键

    return true;
    }

  4. 迭代器的使用
    for(auto it = s.begin(); it != s.end() && !isspace(*it); ++it)
    *it = toupper(*it);//大写字母

  5. 使用迭代器访问对象成员
    (*it).empty()
    需要注意的是,(*it).empty()这个括号是必须的。 否则,点操作符直接作用于it。因此,*it.empty()是错误的。为了简化这种表示,语言定义了箭头操作符(->),它把解弓|用和成员访问组合为一个符号,即it->empty()。

  6. keypress的用法
    记录自己的QT学习之路(9)

  7. 如果子类重新申明父类的属性,如Qpoint start.x(),那么在调用的时候
    只会调出父类的属性。
    记录自己的QT学习之路(9)

  8. 几何的计算,判断一点是否在线段上
    判断条件:
    (1)(Q-P1)*(P1-P2)=0 //即三点共线。
    (2)Q点的横纵坐标是否在P1和P2的横纵坐标范围之内。

int judge(){   	
	if(((q.x-p1.x)*(p1.y-p2.y))==((p1.x-p2.x)*(q.y-p1.y))
        && (q.x>=min(p1.x,p2.x) && q.x<=max(p1.x,p2.x))
        &&  ((q.y>=min(p1.y,p2.y))&&(q.y<=max(p1.y,p2.y)))) 
        return 1;   
        return 0;
        }
  1. 属性的初始化可以直接在构造函数里写
    如初始化了矩形的长和宽,那么需要在构造函数里写面积才能将面积属性初始化。

  2. lineEdit接收到回车键信号则触发槽函数
    connect(ui.lineEdit, SIGNAL(returnPressed()), this, SLOT(change()));
    connect(ui.lineEdit, SIGNAL(editingFinished()), this, SLOT(change()));

  3. 修改QPoint类的对象的x和y值
    通过 setX()和setY函数进行设置 如start.setX(1)

  4. 尚未解决的lineEdit的缓冲区的问题
    lineEdit似乎有个缓冲区,比如我设置了点击图像则讲图像的属性输出至lineEdit但若有两个图像,我依次点击第一个和第二个图像,都能正常显示,如果第三次再次点击第一个图像,这是lineEdit不会change成图像一的属性。

相关标签: qt qt5