甄文超

TNT 数字生活

Technology Technology Category


Qt QlineEdit

概述:QLineEdit 类代表编程框,它可以让用户输入一个单行文本。类似于登录窗口中的账号和密码的输入框(行编辑)1,构造函数: QLineEdit (QWidget *parent = 0); QLineEdit(const QString &contents, QWidget *parent = 0); 其中 contents 表示编辑框中显示的内容。2,属性(1)alignment 属性表示显示文本的对齐方式,相关成员函数如下: int maxLength() const; // 获取最大输入长度 void setMaxLength(Qt::Alignment flag) const; // 设置对齐方式 void setMaxLength(int len); // 设置最大输入长度 它的含义与 QLabel 类的 alignment 属性相同。maxLength 属性表 …

QT

Qt Qlabel

概述:QLabel是QT界面中的标签类,它从QFrame下继承,QLabel 类代表标签,它是一个用于显示文本或图像的窗口部件。构造函数QLabel 类支持以下构造函数: QLabel(QWidget *parent = 0, Qt::WindowFlags f = 0); QLabel(const QString &text, QWidget *parent = 0, Qt::WindowFlags f= 0); 其中第二个构造函数能够同时通过参数 text 给出要显示的文本,因此是最常用的构造方式。属性QLabel 对象的显示内容可以通过属性获取或修改,相关成员函数如下: QString text() const; // 获取显示的文本 void setText(const QString &text); // 设置显示的文本,这是一个槽 const QPixmap * …

QT

QT Creator 快捷键

F1使用方法:选中某一类或函数,按下F1,出现帮助文档  F2使用方法:选中某一类或函数,按下F2,迅速定位到该类或函数声明的地方或被调用的地方  Ctrl+鼠标滚轮的使用方法:按住Ctrl,使鼠标滚轮旋转,可调整字体的大小  Ctrl+F使用方法:(作用:查找当前文档)选中你想选的内容之后,按下Ctrl+F,会列出所有和你选的内容一样的语句  F4使用方法:在*.cpp和*.h之间切换  Ctrl+1,2,3,4,5,6使用介绍:在Welcome,Edit,Debug,Projects,Help,Output几种模式之间切换  F3作用:查找下一个你选的内容  Shift + F3作用:查找上一个你选的内容  Ctrl + Shift + F作用:弹出查找对话框  F5的作用:调试  F5: continue  shift + F5: stop debug  step over: F10 …

QT

Qt常用知识点

1、Qt获取当前时间日期或时间戳QDateTime 获取系统时间 QDateTime timeCur = QDateTime::currentDateTime();//获取系统现在的时间 设置显示格式 QString timeStr = timeCur.toString("yyyy-MM-dd hh:mm:ss ddd"); //秒 设置显示格式 QString timeStr = timeCur.toString("yyyy-MM-dd hh:mm:ss.zzz"); //毫秒 获取时间戳(毫秒) QString timestamp = QString::number(QDateTime::currentMSecsSinceEpoch()) 获取时间戳(秒) int timeT = time.toTime_t(); //将当前时间转为时间戳 2、QString与char* …

QT

qt 线程同步-互斥量(Qmutex)

在多线程应用程序中,由于多个线程的存在,线程之间可能需要访问同一个变量,或一个线程需要等待另外一个线程完成某个操作后才产生相应的动作,这时候就需要做线程同步。所以,需要线程同步情况:         1)多个线程之间访问同一个变量;         2)一个线程需要等待另外一个线程完成某个操作后才产生相应的动作。 问题引入:         示例1,使用了信号与槽机制,在产生新的骰子之后使用信号通知主线程读取新数据。如果不使用信号与槽,就需要主线程进行查询。 1、基于互斥量的线程同步         QMutex和QMutexLocker是基于互斥量的线程同步类,QMutex定义的实例是一个互斥量, QMulex主要提供3个函数。         •lock():锁定互斥量,如果另外一个线程锁定了这个互斥量,它将阻塞执行直到其他线程解锁这个互斥量。         •unlock():解锁 …

QT

QMutex更好的用法QMutexLocker类的使用

QMutexLocker简化了锁定和解锁操作。 头文件: #include <QMutexLocker> QMutexLocker类是一个方便类,简化了锁定和解锁互斥。 在复杂函数和语句或异常处理代码中锁定和解锁QMutex容易出错且难以调试。QMutexLocker可用于此类情况,以确保始终定义好互斥的状态。 QMutexLocker应在需要锁定QMutex 的函数中创建。创建QMutexLocker 时,互斥器将被锁定。您可以使用 和 解锁和重新锁定静音。如果锁定,当QMutexLocker 被销毁时,将解锁互不可用。unlock()relock() 例如,此复杂函数在进入函数时锁定QMutex,并在所有出口点解锁互斥: int complexFunction(int flag) { mutex.lock(); int retVal = 0; …

QT

C++ 异常处理

异常是程序在执行期间产生的问题。C++ 异常是指在程序运行时发生的特殊情况,比如尝试除以零的操作。 异常提供了一种转移程序控制权的方式。C++ 异常处理涉及到三个关键字:try、catch、throw。 throw: 当问题出现时,程序会抛出一个异常。这是通过使用 throw 关键字来完成的。 catch: 在您想要处理问题的地方,通过异常处理程序捕获异常。catch 关键字用于捕获异常。 try: try 块中的代码标识将被激活的特定异常。它后面通常跟着一个或多个 catch 块。 如果有一个块抛出一个异常,捕获异常的方法会使用 try 和 catch 关键字。try 块中放置可能抛出异常的代码,try 块中的代码被称为保护代码。使用 try/catch 语句的语法如下所示: try { // 保护代码 }catch( ExceptionName e1 ) { // …

C++

C++ 接口(抽象类)

C++ 接口(抽象类) 接口描述了类的行为和功能,而不需要完成类的特定实现。 C++ 接口是使用抽象类来实现的,抽象类与数据抽象互不混淆,数据抽象是一个把实现细节与相关的数据分离开的概念。 如果类中至少有一个函数被声明为纯虚函数,则这个类就是抽象类。纯虚函数是通过在声明中使用 "= 0" 来指定的,如下所示: class Box { public: // 纯虚函数 virtual double getVolume() = 0; private: double length; // 长度 double breadth; // 宽度 double height; // 高度 }; 设计抽象类(通常称为 ABC)的目的,是为了给其他类提供一个可以继承的适当的基类。抽象类不能被用于实例化对象,它只能 …

C++

C++ 数据封装

C++ 数据封装 所有的 C++ 程序都有以下两个基本要素: 程序语句(代码):这是程序中执行动作的部分,它们被称为函数。 程序数据:数据是程序的信息,会受到程序函数的影响。 封装是面向对象编程中的把数据和操作数据的函数绑定在一起的一个概念,这样能避免受到外界的干扰和误用,从而确保了安全。数据封装引申出了另一个重要的 OOP 概念,即数据隐藏。 数据封装是一种把数据和操作数据的函数捆绑在一起的机制,数据抽象是一种仅向用户暴露接口而把具体的实现细节隐藏起来的机制。 C++ 通过创建类来支持封装和数据隐藏(public、protected、private)。我们已经知道,类包含私有成员(private)、保护成员(protected)和公有成员(public)成员。默认情况下,在类中定义的所有项目都是私有的。例如: class Box { public: double …

C++

C++ 数据抽象

C++ 数据抽象 数据抽象是指,只向外界提供关键信息,并隐藏其后台的实现细节,即只表现必要的信息而不呈现细节。 数据抽象是一种依赖于接口和实现分离的编程(设计)技术。 让我们举一个现实生活中的真实例子,比如一台电视机,您可以打开和关闭、切换频道、调整音量、添加外部组件(如喇叭、录像机、DVD 播放器),但是您不知道它的内部实现细节,也就是说,您并不知道它是如何通过缆线接收信号,如何转换信号,并最终显示在屏幕上。 因此,我们可以说电视把它的内部实现和外部接口分离开了,您无需知道它的内部实现原理,直接通过它的外部接口(比如电源按钮、遥控器、声量控制器)就可以操控电视。 现在,让我们言归正传,就 C++ 编程而言,C++ 类为数据抽象提供了可能。它们向外界提供了大量用于操作对象数据的公共方法,也就是说,外界实际上并不清楚类的内部实现。 例如,您的程序可以调用 sort() 函数,而不需要知道函数 …

C++