一、编译相关
建议用qmake !!!,cmake坑点太多!!!
1.自定义控件识别不了
cmakelist加上
include_directories(${PROJECT_SOURCE_DIR}/你自定义控件的相对路径)
2.添加模块(以QCharts为例)
find_package(QT NAMES Qt6 Qt5 REQUIRED COMPONENTS Widgets Charts LinguistTools)
find_package(Qt${QT_VERSION_MAJOR} REQUIRED COMPONENTS Widgets Charts LinguistTools)
二、c++相关
1.头文件
invalid use of incomplete type ‘***‘
没引入头文件,例如QMouseEvent没引入《QmouseEvent>,就会报错,而且自动不全不了QMouseEvent相关的东西
2.继承
xxx is inaccessible in this context
继承的时候没public ,例如:
class A : public QWidget//这样外界是可以访问到QWidget的方法的
但是
class A: QWidget//这样就不行!!!
ndefined reference to `MyButton::mousePressEvent
mousePressEvent是父类的虚方法,子类要实现的话要先声明。在头文件加上
protected:
void mousePressEvent(QMouseEvent *event);
void mouseMoveEvent(QMouseEvent *event);
即可
三、UI相关
1.自定义的控件没法设置背景色
找个QWIdget当这个自定义控件的父级,设定QWidget的背景即可
参考:
QT中的 容器(container)-大全_qt 容器-CSDN博客
c++和QT子类调用父类同名方法_qt 子类调用父类方法-CSDN博客
使用C 库函数 - sprintf()对QString进行Format(格式化)_qstring format-CSDN博客
使用C 库函数 - sprintf()对QString进行Format(格式化)_qstring format-CSDN博客
QString字符串操作_qstring format-CSDN博客
【Qt 学习之路】QSerialPort处理串口通信-CSDN博客
QConsoleWidget.cpp · 学艺不精的安东/QConsoleWidget - Gitee.com
【项目六】基于QPlainTextEdit的模拟控制台IO的Qt控件_qpaintextedit 实现teminal-CSDN博客
Qt学习笔记9——P30-33. 自定义控件封装,鼠标事件,定时器 - 我会变强的 - 博客园 (cnblogs.com)QT控制界面鼠标_qt鼠标事件 只绑定控件-CSDN博客