甄文超

TNT 数字生活

QT


QLineEdit 编辑框左侧添加小图标

方法 使用action的方法添加图标 //一、新建action QAction* userAction = new QAction(ui-nameEdit); QAction* passwordAction = new QAction(ui-numEdit); //二、给action添加icon userAction-setIcon(QIcon(":/password.png")); passwordAction-setIcon(QIcon(":/num.png")); //三、给空间添加action ui-nameEdit-addAction(userAction,QLineEdit::LeadingPosition); ui-numEdit-addAction(passwordAction, …

QT

qt 移动窗体

一般情况下,当去掉窗体标题栏时,按住鼠标左键就无法实现拖动窗体;当去掉窗体标题栏时,窗体四周的边框也去掉了,此时按住鼠标左键拖动窗体四周边沿,无法实现鼠标拖动改变窗体大小。如下为Qt实现去掉窗体标题栏的代码: setWindowFlag(Qt::FramelessWindowHint); // 去掉标题栏 现在的问题是:   在去掉窗体标题栏的情况下,如何在窗体上按住鼠标左键,实现移动窗体? 2.实现方法 Qt中有个QSizeGrip类,可以很好解决1节提到的问题,关于该类的具体用法,参见Qt Assistant。   代码:   private: //virtual void mousePressEvent(QMouseEvent *e) override; void mouseReleaseEvent(QMouseEvent *e) override; …

QT

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