qt
文章平均质量分 56
廊桥一梦
这个作者很懒,什么都没留下…
展开
-
Qt通过正则表达式筛选出字符串中的手机号
用户需要聊天记录中含有11位的手机号码进行提醒的功能,所以需要在收到聊天消息后匹配查看是否存在手机号。里面有一个demo可以通过正则表达式筛选字符串中的数字字符,通过一个循环保存到QStringList里面。嘻嘻138830978901333五。在Qt Assistant中查找。原创 2023-10-10 15:46:21 · 587 阅读 · 0 评论 -
vs2019更新后添加Qt类编译提示error C2653: “XXX”: 不是类或命名空间名称
一、问题描述vs2019更新完16.7.3版本后在工程添加Qt类,编译如下提示:知道是”stdafx.h“的位置不对,但是不清楚默认生成的moc文件怎么会把stdafx.h放在第二句,如下所示:二、分析和解决以前老的工程文件是可以编译通过的。但是这次新的不成。所以逐个比对.h文件的属性设置。发现在强制包含(force Include)里面老的包含两个路径,新的只有”stdafx.h“.将%(Filename)%(Extension)添加进去后解决。三、反思怀疑是qt的插件没有随着vs版本原创 2020-09-12 15:09:59 · 2729 阅读 · 1 评论 -
qt工程编译提示error 1: moc (D:\Qt\Qt5.12.3\5.12.3\msvc2017\bin\moc.exe)
一、问题描述在git导入VS2017+Qt的工程后编译如下报错:Parse error at "IID"error 1: moc (D:\Qt\Qt5.12.3\5.12.3\msvc2017\bin\moc.exe)二、问题分析导入的项目在另外电脑上是可以编译的,也就是说可能配置有问题。代码是没错误的。极有可能是项目属性设置的问题。一开始以为缺少qt的依赖库目录。但是在属性里面手动添加后没有反应。还是提示moc错误。和另外一个工程属性进行了比较,发现属性里面默认有Qt project Se原创 2020-05-13 00:07:37 · 8312 阅读 · 2 评论 -
QTableView实现鼠标悬浮(hover)行高亮显示
QTableView实现鼠标悬浮(hover)行高亮显示需要实现QTableview鼠标悬浮时当前行高亮显示。但是实现的过程中发现一开始的方案不能用,必须捕捉鼠标的move事件通过Delegate自己绘制背景实现。一开始想通过重载Delegate里面的editorEvent捕捉。后面发现鼠标的move事件可以捕捉的到,但是leave事件获取不到,这样就会造成鼠标移出表格始终又一行高亮。后面只能通...原创 2019-11-29 16:41:24 · 11859 阅读 · 2 评论 -
QComboBox实现复选功能
今天介绍一下一个小东西 — 如何让QComboBox实现复选功能?需求:下拉列表有复选功能不可编辑显示所有选中项关于QComboBox的复选功能有几种方案:QStandardItemModel + QStandardItemQListWidget + QListWidgetItemModel/View +转载 2014-12-11 17:22:14 · 4553 阅读 · 0 评论 -
QT 调用 DLL 方法
Qt调用DLL方法一:使用Win32 API 在显式链接下,应用程序必须进行函数 调用以在运行时显式加载 DLL。为显式链接到 DLL,应用程序必须:? 调用 LoadLibrary(或相似的函 数)以加载 DLL 和获取模块句柄。? 调用 GetProcAddress,以获 取指向应用程序要调用的每个导出函数的函数指针。由于应用程序是通过指针调用 DLL 的函数,编译器不生成外部引转载 2015-01-16 16:44:53 · 2728 阅读 · 0 评论 -
QMimeData类和实例
QMimeData类提为数据提供一个容器,用来记录关于MIME类型数据的信息QMimeData常用来描述保存在剪切板里信息,或者拖拽原理QMimeData对象把它所保存的信息和正确的MIME类型连接起来来保证信息可以被安全的在应用程序之间转移,或者在同一个应用程序之间拷贝QMimeData对象通产雇佣new来创建,并且支持QDrag和QClipboard对象,这可以使QT管理他转载 2015-01-12 10:07:27 · 5092 阅读 · 1 评论 -
Qt中处理布局管理器之间的距离
一般的要让控件容器和子控件没有空隙, 有两种情况: (确保控件容器的margins设置成0)1. 子控件大小固定, 则控件容器大小也得固定, 确保没有空隙产生;2. 子控件大小动态变化, 则将其大小变化设置成扩展(expanding), 随控件容器变化;那么,为了确保frame与内部控件一样高,我设置其最大高度:titleFrame->setMaximumHeight(16);同时却出现了意想转载 2014-10-21 17:53:54 · 3943 阅读 · 0 评论 -
Qt QLineEdit QLabel添加clicked事件
做Qt开发的会知道QLineEdit,QLabel是默认没有clicked事件的,但是Qt有很好的一套信号/槽机制,而且Qt是基于C++面向对象的思想来设计的,那么我们就很容易通过自己定义一些类,重写QLineEdit或者QLabel的一些方法去实现没有的方法,比如clicked事件.本人就以QLineEdit QLabel添加clicked事件来说明.Qt里面有个关键字emit,转载 2014-11-15 21:43:51 · 3122 阅读 · 0 评论 -
QT中定时器的使用方法
QT中定时器的使用方法(1)重载timerEvent(QTimerEvent *)函数,然后再在类的构造函数中设置时间间隔 startTimer(50);//单位为毫秒(2)在类的构造函数中设定如下: QTimer *timer=new QTimer(this); connect(timer,SIGNAL(timeout()),this,SLOT(timeoutsl转载 2015-01-16 11:48:14 · 2245 阅读 · 0 评论 -
Qt实现登录密码框
Qt做登录框,用户名的登录一般用QCOmbobox来实现,密码框一般用QLineEdit,但是用户名的输入和密码的输入都有规定的字符,这就需要我们用正则表达式去筛选字符。对于密码框,还有一点就是密码不能明文显示和选中的问题,下面就提供一些方法解决这些问题。关于输入字符的筛选,我们要用到正则表达式,下面是一则例子:QRegExp regx("[a-zA-Z0-9]*");//正则表达式原创 2014-12-12 10:16:16 · 12536 阅读 · 0 评论 -
Qt中各个widget前后位置的设置
在Qt中,所有问题都要一分为二,讨论两种不同的情况:一个是最常用的QWidget体系,而另外一个则是QGraphicsWidget体系。 ①:在常用的QWidget体系中,设置前后位置是主要是用raise(),underStack(),hide()函数。 理论为:在Qt中每个widget窗口都维持着自己的一个创建栈(widget's stack.),栈里边存放的转载 2015-01-22 09:22:50 · 3236 阅读 · 0 评论 -
QGraphicsView类
QGraphicsView提供一个显示QGraphicsScene内容的窗口,该窗口可以滚动,可以在构造时候把场景对象作为参数,或者之后使用setScene()来设置view的场景,然后调用了show()函数后,view就可以默认的在场景的中心,显示item,例如QGraphicsScene scene;scene.addText("Hello, world!");QGraphic转载 2015-01-05 11:40:47 · 2018 阅读 · 0 评论 -
QMutexLocker
QMutexLocker用来简化互斥量的锁定和解锁操作。在复杂函数或者异常处理代码中互斥量的锁定和解锁容易出错和难以调试。QMutexLocker就可以应用于这些情况,确保互斥量状态总是定义明确。应该在程序中QMutex需要被锁定处创建QMutexLocker。当QMutexLocker被创建后,互斥量就锁定了。你可以使用unlock()和relock()来解锁和再次锁定互斥量。如果互转载 2015-03-02 11:55:24 · 820 阅读 · 0 评论 -
外部进程嵌入到Qt进程界面
有时候需要做框架集成的东西,需要把其他客户端像组件一样集成到一个客户端中,类似于一个软件集成的平台客户端,统一用一个中心管理的客户端做类似于控制面板一样的东西去调用不同的软件。此时就必须相应不同的点击图标的事件去嵌入到主界面里面。下面简单的对windows平台上面Qt的界面中嵌入系统自带的计算机程序做简单的说明。一、首先是获取计算机程序的窗口类名称,只要利用的是VS中的Spy++工具,在vs菜原创 2017-11-14 20:49:19 · 21097 阅读 · 11 评论 -
QtableWidget和QTableView实现选中行的冻结——scrollTo
QtableWidget和QTableView实现选中行的冻结在Qt列表的使用过程中,有一个列表是按照时间先后顺序瀑布流一样的刷新列表。如果并发量过大,可能列表刷新速度很快,用户如果想点击某条事件查看详情,一瞬间就被刷到界面之外了。为了解决这个问题,需要用户点击时实现列表还是在刷新,但是页面中一直存在用户点击选项这样的功能。一、目标后台数据一直刷新。用户点击列表某行数据后实现行的冻结,点...原创 2019-03-30 11:24:56 · 8956 阅读 · 0 评论 -
Qt中QObject::sender()的用法
QObject::Sender()返回发送信号的对象的指针,返回类型为QObject *示例代码:QTimeEdit *editor = qobject_cast(sender()); 此时可以对editor进行进一步的处理了。转载 2014-10-10 17:23:12 · 26797 阅读 · 2 评论 -
QT窗体Widget使用的若干问题
这里介绍的是widget 窗体的属性最完整的属性请查看qt自带的帮助文档,这里之拿了一部分做说明窗体属性:object name:物件名称qwidget:enable 使能本部件geometry:窗口位置和大小设置sizepolicy:1. Fixed: 大小不能改变2. Minimum: 已经转载 2014-10-23 11:22:48 · 1438 阅读 · 0 评论 -
关于QWidget和QDialog窗体居中的问题
最近开发中,遇到原创 2014-10-23 11:25:37 · 14165 阅读 · 0 评论 -
QDrag简介
拖放提供了一种用户可以在应用程序之间或之内传递信息的一种简单视觉效果机制。(在术语中,这被称为“直接操作模型”。)拖放和剪贴板的剪切和粘贴的机制相似。拖动放下剪贴板拖放操作添加新的拖放类型增强的拖放和其它应用程序之间的操作对于拖放的实例,请参考(随着复杂度的增加的顺序):qt/examples/iconview/simple_dd、qt/examples/dragdrop和qt/e翻译 2014-08-19 22:38:32 · 2820 阅读 · 0 评论 -
QList介绍
FROM:http://apps.hi.baidu.com/share/detail/33517814 今天做项目时,需要用到QList来存储一组点。为此,我对QList类的说明进行了如下翻译。QList是一种表示链表的模板类。QList是Qt的一种泛型容器类。它以链表方式存储一组值,并能对这组数据进行快速索引,还提供了快速插入和删除等操作。QList、QLinkedLis转载 2014-08-11 09:36:20 · 829 阅读 · 0 评论 -
qt的pos()和globalpos()
参考:http://www.cppblog.com/izualzhy/archive/2011/03/21/142408.html 原文粘贴:新建一个窗口程序,然后创建一个QMenu对象。在构造函数里初始化menu = new QMenu("menu", this); //menu在头文件声明QAction *action = new QAction(tr("1111"), t转载 2014-08-24 17:03:33 · 14034 阅读 · 0 评论 -
QList介绍
FROM:http://apps.hi.baidu.com/share/detail/33517814 今天做项目时,需要用到QList来存储一组点。为此,我对QList类的说明进行了如下翻译。QList是一种表示链表的模板类。QList是Qt的一种泛型容器类。它以链表方式存储一组值,并能对这组数据进行快速索引,还提供了快速插入和删除等操作。QList、QLinkedLis转载 2014-08-26 21:14:43 · 424 阅读 · 0 评论 -
memory ordering
Memory OrderingBackground 很久很久很久以前,CPU忠厚老实,一条一条指令的执行我们给它的程序,规规矩矩的进行计算和内存的存取。 很久很久以前, CPU学会了Out-Of-Order,CPU有了Cache,但一切都工作的很好,就像很久很久很久以前一样,而且工作效率得到了很大的提高。 很久以前,我们需要多个CPU一起工作,于是出现了传说中的SMP系统,每个转载 2014-08-13 10:22:40 · 522 阅读 · 0 评论 -
如何获得 Qt窗口部件在主窗口中的位置--确定鼠标是否在某一控件上与在控件上的位置
用Qt Creator 设计程序时,最方便的就是ui设计器,可以很容易的得到想要的布局。但是这样自动布局带来的后果是很难知道窗口中某一部件在主窗口中的相对位置。在处理子窗口鼠标事件时变的很麻烦。主窗口有菜单、工具条等,想用鼠标绘图,把鼠标轨迹映射到窗口部件上,这些问题。其实最主要的是获得窗口部件的起始点相对主窗口的位置。例如:在主窗口拖入转载 2014-08-25 17:04:09 · 2240 阅读 · 0 评论 -
QT多线程程序设计
QT 多线程程序设计QT通过三种形式提供了对线程的支持。它们分别是,一、平台无关的线程类,二、线程安全的事件投递,三、跨线程的信号-槽连接。这使得开发轻巧的多线程Qt程序更为容易,并能充分利用多处理器机器的优势。多线程编程也是一个有用的模式,它用于解决执行较长时间的操作而不至于用户界面失去响应。在Qt的早期版本中,在构建库时有不选择线程支持的选项,从4.0开始,线程总是有效的。线程转载 2014-08-15 10:05:56 · 683 阅读 · 0 评论 -
QThread使用简介
QThread昨晚看Qt的Manual,突然发现下一个版本的Qt中(Qt4.7.4、Qt4.8等)增加了一个特赞的介绍多线程的文章 :Thread Basics注意:该链接以后会失效,但是 到时候你直接看Qt自带Manual就行了本文不是严格的翻译 dbzhang800 2011.06.18使用线程基本上有种使用线程的场合:通过利转载 2014-08-15 09:44:16 · 706 阅读 · 0 评论 -
Qt事件机制
Qt事件机制Qt程序是事件驱动的, 程序的每个动作都是由幕后某个事件所触发.。Qt事件的发生和处理成为程序运行的主线,存在于程序整个生命周期。Qt事件的类型很多, 常见的qt的事件如下:键盘事件: 按键按下和松开.鼠标事件: 鼠标移动,鼠标按键的按下和松开.拖放事件: 用鼠标进行拖放.滚轮事件: 鼠标滚轮滚动.绘屏事件: 重绘屏幕的某些部分.定时事件: 定时器到转载 2014-08-15 23:50:31 · 552 阅读 · 0 评论 -
如何将QString转换为char *或者相反
先看看官方是如何说的:How can I convert a QString to char* and vice versa?(trolltech)Answer:In order to convert a QString to a char*, then you first need toget a latin1 representation of the string by call转载 2014-09-11 10:17:03 · 400 阅读 · 0 评论 -
Qt 的几个核心机制总结之 布局
1.Qt布局的作用Qt的布局是通过布局管理器来实现的,布局管理器负责在父类窗口部件区域构建子窗口部件,使得放置在窗体中的每个窗口部件都有一个适合的大小和位置,并且能够随着应用程序本身的变化而变化从而达到不改变整体的布局的结构的效果。相对于通过设定绝对位置来搭建界面的方法来讲有如下优点1.1.父窗口改变的时候,子窗口不能作出相应的调整。1.2.不用人工计算这些位置和大小2.Qt中的布转载 2014-08-15 15:27:39 · 746 阅读 · 0 评论 -
Qt 之 show,hide,setVisible,setHidden,close 等小结
目录(?)[+]不知道标题该怎么取了,文中就简单整理一下下面几个函数吧。因为不断有网友问到此类问题(包括相关问题),所以,自己整理一下,也算学习小结了。 这些函数分两类,一类是用来删除对象的(从内存中干掉),一类是用来隐藏窗口的(从界面上干掉) 0QObject::deleteLater()delete obj;析构对转载 2014-08-15 14:51:21 · 1357 阅读 · 0 评论 -
QSettings 简介
用户对应用程序经常有这样的要求:要求它能记住它的settings,比如窗口大小,位置,一些别的设置,还有一个经常用的,就是recentfiles,等等这些都可以通过Qsettings来实现。 我们知道,这些settings一般都是存在系统里的,比如windows一般都写在系统注册表或者写INI文件,mac系统一般都在XML文件里,那么按照一般的标准来说,许多应用程序是用INI文件来实现的。转载 2014-08-31 17:01:34 · 572 阅读 · 0 评论 -
QGridLayout中addwidget的参数设置
QGridLayout::addWidget ( QWidget * widget, int row, int column, Qt::Alignment alignment = 0 )row:行位置column:列位置alignment;对齐方式转载 2014-09-03 21:29:34 · 28759 阅读 · 0 评论 -
Qt QLabel::setBuddy函数简介
label = new QLabel(tr("Find &what:"));lineEdit = new QLineEdit;label->setBuddy(lineEdit);label 的快捷键是 "ALT+w",按下快捷键时,输入焦点自动跳到label的buddy——lineEdit上转载 2014-09-03 21:14:43 · 2366 阅读 · 0 评论 -
QStandardItemModel简介
类QabstractItemModel,QabstractListModel,QAbstractTableModel不保存数据,用户需要从这些类派生出子类,并在子类中定义某种数据结构来保存数据。与此不同,类QStandardItemModel负责保存数据,每个数据项被表示为类QStandardItem的对象。我们首先阐述如何使用类QStandardItem保存一个数据项,再阐述如何使用类QStan转载 2014-09-03 22:41:01 · 3040 阅读 · 0 评论 -
QList介绍
FROM:http://apps.hi.baidu.com/share/detail/33517814 今天做项目时,需要用到QList来存储一组点。为此,我对QList类的说明进行了如下翻译。QList是一种表示链表的模板类。QList是Qt的一种泛型容器类。它以链表方式存储一组值,并能对这组数据进行快速索引,还提供了快速插入和删除等操作。QList、QLinkedLis转载 2014-08-18 21:43:53 · 502 阅读 · 0 评论