Qt与QML知识总结

Qt中的设计模式

中间滑动的slider

2. doubleSpinBox

3. iSet新建项目的两种模式ListWidget、选中状态设置为图标模式

4.QTreeWidget 框架、表头、样式表、代理

Qt QTreeWidget树形控件用法详解_qtreewidget用法_睿科知识云的博客-CSDN博客

2. Qt大模块

1. Qt DP指针

2. 视图模型机制

3. 视图框架

4. QStyle 高度自定义实现

5. 元对象与信号槽机制

6.构建系统

7.QInvokeMethod

8.国际化

3. Qt细节

1. 基础控件

2. Undo操作

3. svg操作

4. Qt不在对象树的工具汇总

5.Qt中有有用的宏:Q_LIKELY

6.paint在install中绘制

4. Qt锦上添花

1. 动画知识

2. 拖拽

3. 插件机制

4.模块化构建

5. Qt中的设计模式

1. 单例模式

2. 责任链模式

3. 接口模式

4. 适配器模式

5.观察者模式, 线程观察、时间压缩

6.全局信号单例转发类

1
2
3
4
5
6
7
8
MAINOPERATIONVIEW_EXPORT bool MainOperationView_Init(IISetWidget ** ppWidget, QWidget * parent)
{
if (ppWidget == nullptr || parent == nullptr)
return false;

*ppWidget = new CMainOperationView(parent);
return true;
}

6. C++知识

c++11新特性,所有知识点都在这了! - 知乎 (zhihu.com)

this_thread

++ lambda的坑

1
2
3
4
5
for(int id = enCoef9_Rr ; id <= enCoef9_Bb ;id++){
connect(m_spinBoxs[id],QOverload<double>::of(&QDoubleSpinBox::valueChanged),this,[&](double value){
OnCoefMatrixSlot(id,value);
});
}

id 恒等于 0

多继承与QOBject

private 虚继承

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
class CBase{
private:
virtual void virtualPrivateFuntion(){
std::cout<<"base virtualPrivateFuntion";
}
};

class CSub :public CBase{
private:
virtual void virtualPrivateFuntion() override{
std::cout<<"sub virtualPrivateFuntion";
}
}

int main(){
CBase* pObject = new CSub();
pObject->virtualPrivateFuntion();
}

//结果:sub virtualPrivateFuntion,
//结论:子类继承父类的private virtual可以重写

可变参数、变参模板

函数包装器

std::shared_ptr

reset、make_shared

右值引用

C++反射

元编程

Metaprogram is a program about a program.

7.杂项

QStatusBar

插件机制解耦

快捷键

ISet7.0 接口设计 MVC

8.轮子

1.单例

2.工作线程封装

3.stl 迭代器模式和适配器模式

报错整理:

  1. QMenu 没有添加Action时,不能直接visible或这exec;
  2. setGeometry: Unable to set geometry 的一种解决办法是重写sizehint,而不是使用setFixedSize;

工具使用

AddressSanitizer(不适用与MinGW)

[AddressSanitizer 定位嵌入式c/c++内存错误 - 知乎 (zhihu.com)](https://zhuanlan.zhihu.com/p/436177229#:~:text=AddressSanitizer (又名 ASan)是 C%2FC%2B%2B 的内存错误检测器。 AddressSanitizer 由 google,的一部分,而从 4.8 版开始逐渐成为 GCC 的一部分。 这也意味着如果交叉编译器版本低于 4.8 ,是无法使用的。)

Qt 拾遗 008 在 Qt 中使用 Address Sanitizer - 简书 (jianshu.com)

在Qt中使用gcc 4.8.0的地址消毒剂(Address Sanitizer)

MTuner软件

【精选】基于MTuner软件进行qt的mingw编译程序的内存泄漏检测_mtuner怎么使用_yantuguiguziPGJ的博客-CSDN博客


本站由 Zane Jiang 使用 Stellar 1.33.1 主题创建,一款很棒的 Hexo 主题!

总访问 次 || 本页访问
总访客 人 || 本页访客