11 2024 档案
摘要:void MyWidgets::setWindowTopFixStyle(QString title, QWidget * widget) { widget->setWindowTitle(title); widget->setWindowFlags(windowFlags() & ~Qt::Win
阅读全文
摘要:基于形状轮廓的模板匹配 https://www.cnblogs.com/ybqjymy/p/14445887.html // 基于形状的模板匹配 https://blog.csdn.net/weixin_45672157/article/details/134998447 // Halcon 模板匹
阅读全文
摘要:Demo: class Animal { public: Animal() { cout << "animal..." << endl; } virtual ~Animal() { cout << "~animal..." << endl; } virtual void ShowAnimal() =
阅读全文
摘要:class CatBase { public: CatBase() { show1(); } ~CatBase() { } //virtual void show1() = 0; // 如果不实现,运行时会错误 virtual void show1() { cout << "cat base ...
阅读全文
摘要:可以自定义一个类QtImageLabel继承于QLabel,重写paintEvent事件划线,写文字等。如果用 ui 设计,将 QLabel 控件提升为 QtImageLabel 类型即可。 QtImageLabel.h protected: void paintEvent(QPaintEvent
阅读全文
摘要:一般这样子: // 跟随比例变化 ui->label->setScaledContents(true); QPixmap pixmap("./01.jpg"); //pixmap.load("./01.jpg"); // 让图片大小适应控件大小, 如果不需要,可以直接显示原图 QPixmap s_i
阅读全文
摘要:给子窗口设置以下属性: setAttribute(Qt::WA_QuitOnClose,false); 参考: https://blog.csdn.net/qq_40754866/article/details/109217799
阅读全文
摘要:执行字符集: #pragma execution_character_set("utf-8")
阅读全文
摘要:以+运算符重载为例: #include <iostream> #include <string> // 前置声明是必须的 namespace mydog { class Dog; } namespace myadd { mydog::Dog operator+(const mydog::Dog do
阅读全文
摘要:int retVal(int &&v) { cout << "右值引用:"; return v; } int retVal(int &v) { cout << "左值引用:"; return v; } int retVal(const int &v) { cout << "const 左值引用:";
阅读全文
摘要:既有拷贝构造又有移动构造 这个比较好理解,普通的函数匹配规则就可以。右值移动,左值拷贝。 ——《C++ Primer》 P477 我们不能隐式地将一个右值引用绑定到一个左值。 有拷贝构造但没有移动构造 这种情况,右值也会被拷贝。 如果一个类没有移动构造函数,函数匹配规则保证该类型的对象会被拷贝,即使
阅读全文
摘要:若有多个信号绑定同一个槽: QCheckBox *ckb = new QCheckBox(this); connect(ckb, &QCheckBox::clicked, this, &MyWidget::ckb_clicked); 槽函数中判断发送者对象: void MyWidget::ckb_c
阅读全文
摘要:1)单通道图像的绘制 draw_circle (WindowHandle, Row, Column, Radius) gen_circle (Circle, Row, Column, Radius) paint_region (Circle, Image, ImageR, 0, 'fill') pa
阅读全文
摘要:▲ https://blog.csdn.net/m1059247324/article/details/116228823
阅读全文
摘要:#include<iostream> using namespace std; template<typename Head, typename ...Tail> double Max(Head first, Tail... rest) { double Maxnum = 0; Maxnum = M
阅读全文
摘要:两个例外规则 假定 i 是一个 int 对象,我们可能认为像 f3(i) 这样的调用是不合法的。毕竟,i是一个左值,而通常我们不能将一个右值引用绑定到一个左值上。但是,C++语言在正常绑定规则之外定义了两个例外规则,允许这种绑定。这两个例外规则是move 这种标准库设施正确工作的基础。 第一个例外规
阅读全文
摘要:与非模板函数一样,我们在一次调用中传递给函数模板的实参被用来初始化函数的形参。如果一个函数形参的类型使用了模板类型参数,那么它采用特殊的初始化规则。只有很有限的几种类型转换会自动地应用于这些实参。编译器通常不是对实参进行类型转换,而是生成一个新的模板实例。 与往常一样,顶层 const(参见 2.4
阅读全文
摘要:// template.hpp template<typename T> class Dylan { public: Dylan(T t); T m_data; }; // template.cpp #include "template.hpp" template<typename T> Dylan
阅读全文
摘要:这两天写了个Dll,要导出普通类中的模板函数,稍微查了一下,没查到具体资料。自己根据C++模板的编译原理,推断出应该要源码放在头文件中直接导出,查了下接触的Open Source项目,确实如此。这里记录一下,方便下次查阅。 1、宏定义说明: #ifdef DLL_PROJECT #define TE
阅读全文
摘要:MyDelegate.h #pragma once #include <typeinfo.h> #include <list> #include <vector> namespace Delegate { // IDelegate 提供接口的基类 template<typename ReturnTy
阅读全文
摘要:当编写模板时,代码不能是针对特定类型的,但模板代码通常对其所使用的类型有一些假设。例如,我们最初的compare 函数中的代码就假定实参类型定义了<运算符。 WARNING 保证传递给模板的实参支持模板所要求的操作,以及这些操作在模板中能正确工作,是调用者的责任。 ▲ 《C++ Primer》 P5
阅读全文
摘要:第一个阶段是编译模板本身时。在这个阶段,编译器通常不会发现很多错误。编译器可以检查语法错误,例如忘记分号或者变量名拼错等,但也就这么多了。 第二个阶段是编译器遇到模板使用时。在此阶段,编译器仍然没有很多可检查的。对于函数模板调用,编译器通常会检查实参数目是否正确。它还能检查参数类型是否匹配。对于类模
阅读全文
摘要:项目属性使用预编译 一个预编译.h对应一个预编译.cpp,cpp 中只包含一句 #include "stdafx.h" 右键 'stdafx.cpp' 选 'Yc/创建' 源文件中包含 #include "stdafx.h" 参考: https://www.cnblogs.com/foundwant
阅读全文