保留现场
手动执行update()
或者repaint()
都不能执行paintEvent
函数。
探究原因
如果是代码new
出来的控件,检查是否正确显示,比如有没有加入到layout
中。或者有没有设置父窗口(可能被其他空间遮挡)。
检查控件width
或者height
大小是否不为 0。如果为 0,也不会出出发paintEvent
。
解决方法
参考 QT 在构造函数中写的控件不显示
手动执行update()
或者repaint()
都不能执行paintEvent
函数。
如果是代码new
出来的控件,检查是否正确显示,比如有没有加入到layout
中。或者有没有设置父窗口(可能被其他空间遮挡)。
检查控件width
或者height
大小是否不为 0。如果为 0,也不会出出发paintEvent
。
参考 QT 在构造函数中写的控件不显示