Qt_2 小部件是GUI的基本元素。它也称为UI控件。它接受来自底层平台的不同用户事件,如鼠标和键盘事件(以及其他事件)。我们使用不同的小部件创建UI。曾经有一段时间,所有的GUI控件都是从头开始编写的。Qt小部件通过开发具有现成的GUI控件的桌面GUI来缩短时间,并且Qt广泛使用继承的概念。所有小工具都继承自QObject。QWidget是一个基本小部件,是所有UI小部件的基类。它包含描述小部件所需的大多数属性,以及几何图形、颜色、鼠标、键盘行为、工具提示等属性。让我们看看下图中的QWidget继承层次结构: 大多数Qt小部件名称都是不言而喻的,因为它们以q开头,所以很容易识别。下面列出了...

  3dygdw7fVgD7   2024年05月18日   46   0   0 C++

Qt_1 QtCreator是Qt公司生产的IDE。它集成了多个工具,包括代码编辑器、图形UI(GUI)设计器、编译器、调试器、Qt设计器、Qt快速设计器和Qt助手等。 QtDesigner帮助设计基于小部件的GUI,而QtQuickDesigner提供了在设计模式下创建和编辑基于QML的GUI的UI。Qt助手是一个集成的文档查看器,只需按F1键即可打开与给定Qt类或函数相关的内容。 您可以在UI中看到以下GUI部分: IDE菜单栏:这为用户提供了一个在窗口中查找大多数特定于应用的功能的标准位置。这些功能包括创建项目、打开和关闭文件、开发工具、分析选项、帮助内容以及退出程序的方式。 模式...

  3dygdw7fVgD7   2024年05月04日   61   0   0 C++

类模板应用 explicit explicit是一个关键字,用于指定该构造函数是显式构造函数。在C中,当一个类的构造函数只有一个参数时,它可以被用于隐式类型转换,这可能会导致意想不到的行为和潜在的错误。为了避免这种情况,可以使用explicit关键字来声明该构造函数,表示禁止隐式类型转换,只能显式地调用该构造函数来创建对象。 include<iostream> classMyClass{ public: explicitMyClass(intx){ std::cout<<"Explicitconstructorcalledwith"<<x<<s...

  3dygdw7fVgD7   2024年05月02日   56   0   0 C++

class_template 类模板和函数模板的定义和使用类似,我们已经进行了介绍。有时,有两个或多个类,其功能是相同的,仅仅是数据类型不同。类模板用于实现类所需数据的类型参数化 template<classNameType,classAgeType> classPerson { public: Person(NameTypename,AgeTypeage) { this->mName=name; this->mAge=age; } voidshowPerson() { cout<<"name:"<<this->mNa...

  3dygdw7fVgD7   2024年04月26日   44   0   0 C++

C_template c提供了函数模板(functiontemplate.)所谓函数模板,实际上是建立一个通用函数,其函数类型和形参类型不具体制定,用一个虚拟的类型来代表。这个通用函数就成为函数模板。凡是函数体相同的函数都可以用这个模板代替,不必定义多个函数,只需在模板中定义一次即可。在调用函数时系统会根据实参的类型来取代模板中的虚拟类型,从而实现不同函数的功能。 c提供两种模板机制:函数模板和类模板 类属:类型参数化,又称参数模板 函数模板 函数模板是C中的一种特性,它允许你编写一个通用的函数,能够处理不同类型的数据,而不需要针对每种类型编写多个函数。通过函数模板,你可以编写一次代码,然...

  3dygdw7fVgD7   2024年04月19日   38   0   0 C++

系统调用 系统调用,顾名思义,说的是操作系统提供给用户程序调用的一组“特殊”接口。用户程序可以通过这组“特殊”接口来获得操作系统内核提供的服务,比如用户可以通过文件系统相关的调用请求系统打开文件、关闭文件或读写文件,可以通过时钟相关的系统调用获得系统时间或设置定时器等。 从逻辑上来说,系统调用可被看成是一个内核与用户空间程序交互的接口——它好比一个中间人,把用户进程的请求传达给内核,待内核把请求处理完毕后再将处理结果送回给用户空间。 系统服务之所以需要通过系统调用来提供给用户空间的根本原因是为了对系统进行“保护”,因为我们知道Linux的运行空间分为内核空间与用户空间,它们各自运行在不同的级...

  3dygdw7fVgD7   2024年04月15日   47   0   0 C++

dynamic_memory 首先通过一段代码来引入动态内存分配的主题。一个名为StringBad的类以及一个功能更强大的String类。 include<iostream> ifndefSTRNGBAD_H_ defineSTRNGBAD_H_ classStringBad{ private: charstr; intlen; staticintnum_strings; public: StringBad(constchars); StringBad(); StringBad(); friendstd::ostream&operator<<(s...

  3dygdw7fVgD7   2024年03月25日   102   0   0 C++

list 链表是一种物理存储单元上非连续、非顺序的存储结构,数据元素的逻辑顺序是通过链表中的指针链接次序实现的。链表由一系列结点(链表中每一个元素称为结点)组成,结点可以在运行时动态生成。每个结点包括两个部分:一个是存储数据元素的数据域,另一个是存储下一个结点地址的指针域。相较于vector的连续线性空间,list就显得负责许多,它的好处是每次插入或者删除一个元素,就是配置或者释放一个元素的空间。因此,list对于空间的运用有绝对的精准,一点也不浪费。而且,对于任何位置的元素插入或元素的移除,list永远是常数时间。 List和vector是两个最常被使用的容器。List容器是一个双向链表。 ...

  3dygdw7fVgD7   2024年03月19日   32   0   0 C++

deque Vector容器是单向开口的连续内存空间,deque则是一种双向开口的连续线性空间。所谓的双向开口,意思是可以在头尾两端分别做元素的插入和删除操作,当然,vector容器也可以在头尾两端插入元素,但是在其头部操作效率奇差,无法被接受。 Deque容器和vector容器最大的差异,一在于deque允许使用常数项时间对头端进行元素的插入和删除操作。二在于deque没有容量的概念,因为它是动态的以分段连续空间组合而成,随时可以增加一段新的空间并链接起来,换句话说,像vector那样,”旧空间不足而重新配置一块更大空间,然后复制元素,再释放旧空间”这样的事情在deque身上是不会发生的。...

  3dygdw7fVgD7   2024年03月17日   106   0   0 C++

stack&queue stack stack是一种先进后出(FirstInLastOut,FILO)的数据结构,它只有一个出口,形式如图所示。stack容器允许新增元素,移除元素,取得栈顶元素,但是除了最顶端外,没有任何其他方法可以存取stack的其他元素。换言之,stack不允许有遍历行为。 有元素推入栈的操作称为:push,将元素推出stack的操作称为pop. stack没有迭代器 Stack所有元素的进出都必须符合”先进后出”的条件,只有stack顶端的元素,才有机会被外界取用。Stack不提供遍历功能,也不提供迭代器。 stack构造函数 stack stkT;//st...

  3dygdw7fVgD7   2024年03月17日   42   0   0 C++

vector vector的数据安排以及操作方式,与array非常相似,两者的唯一差别在于空间的运用的灵活性。Array是静态空间,一旦配置了就不能改变,要换大一点或者小一点的空间,可以,一切琐碎得由自己来,首先配置一块新的空间,然后将旧空间的数据搬往新空间,再释放原来的空间。Vector是动态空间,随着元素的加入,它的内部机制会自动扩充空间以容纳新元素。因此vector的运用对于内存的合理利用与运用的灵活性有很大的帮助,我们再也不必害怕空间不足而一开始就要求一个大块头的array了。 Vector的实现技术,关键在于其对大小的控制以及重新配置时的数据移动效率,一旦vector旧空间满了,如果...

  3dygdw7fVgD7   2024年03月11日   89   0   0 C++

STL STL提供了六大组件,彼此之间可以组合套用,这六大组件分别是:容器、算法、迭代器、仿函数、适配器、空间配置器。 数据结构和容器管理:STL提供了多种数据结构和容器,如向量(vector)、链表(list)、集合(set)、映射(map)等。这些容器可以帮助程序员方便地存储和管理数据,根据需求进行动态调整和操作。 算法和数据处理:STL中提供了大量的算法,如排序、查找、遍历等,这些算法可以直接应用于不同类型的容器,帮助程序员高效地对数据进行处理和操作。 迭代器和访问控制:STL中的迭代器提供了统一的访问接口,使得程序员能够方便地遍历容器中的元素并进行读写操作。迭代器可以灵活地控制访问...

  3dygdw7fVgD7   2024年03月07日   33   0   0 C++

polymorphism 静态联编和动态联编 多态性(polymorphism)提供接口与具体实现之间的另一层隔离,从而将”what”和”how”分离开来。多态性改善了代码的可读性和组织性,同时也使创建的程序具有可扩展性,项目不仅在最初创建时期可以扩展,而且当项目在需要有新的功能时也能扩展。 c支持编译时多态(静态多态)和运行时多态(动态多态),运算符重载和函数重载就是编译时多态,而派生类和虚函数实现运行时多态。 静态多态和动态多态的区别就是函数地址是早绑定(静态联编)还是晚绑定(动态联编)。如果函数的调用,在编译阶段就可以确定函数的调用地址,并产生代码,就是静态多态(编译时多态),就是说地址...

  3dygdw7fVgD7   2024年03月05日   68   0   0 C++

Class_memory 接上一篇末尾虚拟继承的简单介绍之后,这篇来详细讲一下这个内存大小是怎么分配的。 使用cl cl是MicrosoftVisualStudio中的C/C编译器命令。通过在命令行中键入cl命令,可以调用VisualStudio的编译器进行编译操作。cl命令提供了各种选项和参数,用于指定源文件、编译选项、输出目标等信息,从而进行编译过程。 cl/d1reportSingleClassLayoutBigBaseuseclub.cpp这是我们要查看内存使用的命令,具体的语法是 cl/d1reportSingleClassLayoutSSSSMMMM.cpp SSSS代表的是你想...

  3dygdw7fVgD7   2024年03月02日   67   0   0 C++

inheritance 在C中,继承是一种面向对象编程的特性,允许一个类(称为子类或派生类)从另一个类(称为基类或父类)那里继承属性和行为。通过继承,子类可以获得父类的数据成员和成员函数,从而可以重用父类的代码并扩展其功能。这样可以提高代码的复用性和可维护性,同时也符合面向对象编程的封装和抽象特性。 一个B类继承于A类,或称从类A派生类B。这样的话,类A成为基类(父类),类B成为派生类(子类)。 派生类中的成员,包含两大部分: 类是从基类继承过来的,一类是自己增加的成员。 从基类继承过过来的表现其共性,而新增的成员体现了其个性。 简单的类派生 CLUB.h ifndefCLUB_H def...

  3dygdw7fVgD7   2024年03月01日   24   0   0 C++

operator 运算符重载,就是对已有的运算符重新进行定义,赋予其另一种功能,以适应不同的数据类型。 在c中,可以定义一个处理类的新运算符。这种定义很像一个普通的函数定义,只是函数的名字由关键字operator及其紧跟的运算符组成。差别仅此而已。它像任何其他函数一样也是一个函数,当编译器遇到适当的模式时,就会调用这个函数。 定义重载的运算符就像定义函数,只是该函数的名字是operator@,这里的@代表了被重载的运算符。函数的参数中参数个数取决于两个因素。 运算符是一元(一个参数)的还是二元(两个参数); 运算符被定义为全局函数(对于一元是一个参数,对于二元是两个参数)还是成员函数(对于一...

  3dygdw7fVgD7   2024年02月27日   123   0   0 C++

friend_function 成员变量和函数的存储 c实现了封装,数据和处理数据的操作(函数)是分开存储的。 c中的非静态数据成员直接内含在类对象中,就像c语言的struct一样。 成员函数并不会出现在对象中,而是作为类的一部分存储在代码段中,需要通过对象或对象指针进行调用。成员函数可以访问类的所有成员变量和成员函数,包括私有成员,但不能直接访问静态变量,需要使用类名或对象来访问。 每一个非内联成员函数(non-inlinememberfunction)只会诞生一份函数实例. classRegina02{ public: inta; }; classRegina03{ public:...

  3dygdw7fVgD7   2024年02月21日   92   0   0 C++

inline_func 在c中,预定义宏的概念是用内联函数来实现的,而内联函数本身也是一个真正的函数。内联函数具有普通函数的所有行为。唯一不同之处在于它在编译时会被直接插入到调用它的地方,而不是像普通函数那样在运行时被调用。这样,内联函数可以避免函数调用的开销,提高代码执行效率,所以不需要函数调用的开销。因此应该不使用宏,使用内联函数。 C中的宏函数是一种使用预处理器定义的函数宏。它们是一种在编译阶段进行简单文本替换的机制,可以将代码中的宏函数调用替换为相应的文本。宏函数通常使用define指令来定义。 预处理宏的缺陷 宏函数的定义格式如下: define宏函数名(参数列表)替换文本 这里的...

  3dygdw7fVgD7   2024年02月19日   100   0   0 C++

class_1 什么是接口? 类就是一种公共接口,公众(public)是使用类的程序,交互系统由类对象组成,而接口由编写类的人提供的方法组成。接口让程序员能够编写与类对象交互的代码,从而让程序能够使用类对象。例如,要计算string对象中包含多少个字符,您无需打开对象,而只需使用string类提供的size()方法。类设计禁止公共用户直接访问类,但公众可以使用方法size()。 oop风格 OOP(面向对象编程)是一种编程范式,它将程序组织为相互交互的对象。这种编程风格基于对象的概念,其中对象是通过封装数据和操作数据的方法(即类中的成员函数)来表示的。 OOP风格的编程主要关注以下几个核心概念...

  3dygdw7fVgD7   2024年02月19日   131   0   0 C++

class_2 构造函数 构造函数是一种特殊的成员函数,用于创建和初始化类的对象。它的名称与类的名称相同,没有返回值,也不需要显式调用。在C中,每个类都必须至少有一个构造函数。 当我们创建一个类的对象时,编译器会自动调用构造函数来初始化该对象的成员变量。构造函数可以执行一些操作,如初始化成员变量、申请资源、打开文件等。上一篇当中提到的Stock类,如果直接运行 Stockregina; //regina.acquire("ivanlee",20,12.5); //regina.show(); regina.buy(20,12.7); regina.show(); 股票份额由于没有...

  3dygdw7fVgD7   2024年02月19日   83   0   0 C++
关注 更多

空空如也 ~ ~

粉丝 更多

空空如也 ~ ~