Qt自定义控件走过的坑

1.本想着当一个控件resizeEvent触发时将控件里的一切坐标都设置好,后来发现是我太天真了。事实就是第一次resizeEvent触发根本获取不到子控件的任何参数(坐标和大小),目前像这种自定义控件最好在showEvent中将一切设置好。

   今天showevent中QTableWidget大小获取错误不知道为什么

2.写圆形的这种控件要求直径必须是个圆 这就要求长和宽要是偶数 且两个都取最小的那个数值

 

3.这个是c++问题 考虑编译的问题 不要在还没有声明 类的情况下 就调用 同一个文件中 类的声明顺序要注意

 

4.为了重写qpaintevent我写了一个类继承自QLabel 但是显示不出来 发现调用它的构造函数时 未正确传值给父类

Qt自定义控件走过的坑_第1张图片

然后就造成了基类调用QLabel的默认构造且父窗口是null 但是子类父窗口却使用了自己设置的窗口,造成了矛盾

但是我猜测内部还是以父类里的参数作为父窗口的

 

5 2019.7.5:自己写了个类继承了QLabel重写了其中的QPainterEvent 然后setText(xx)死活显示不出来了

思考了一下结论:QLabel的SetText本身就是通过他自身的QPainterEvent实现了 重写了这个所以没有了这个功能。

 

6 2019 7.11  qpainter not active Painter无效 图画不出来 检查了一下 之前QPainter painter(this); 没有参数 日了狗

7QWidget设置为模态窗口 网上人讲的都不到位,多一句,少一句的,在widget构造函数里加

    //模态
    setWindowFlags(Qt::FramelessWindowHint | Qt::Dialog);
    setWindowModality(Qt::WindowModal);
即可 重点是上面那句

8 2019.9.6  设置矩形参数 先设置点再设置长和宽 不然不正确

    QRect rect;
    rect.setX(10);
    rect.setY(10);
    rect.setWidth(150);
    rect.setHeight(150);

9.QDialog或者继承自QDialog的窗口设置父类就不模态了

10.2020.3.25 仔细考虑过为了灵活运动 依然需要将该设置的参数全部设固定值再uodate 而不是一味的将接口做简单全部通过程序内部判断

你可能感兴趣的:(qt)