
Qt
文章平均质量分 61
GreenArrowMan
这个作者很懒,什么都没留下…
展开
-
QT常见面试题,基础知识偏多
自定义控件:应该做过吧?能举几个例子吗?还有其他的吗?你觉得自定义控件的方法主要是哪些?答:从外观设计上:QSS、继承绘制函数重绘、继承QStyle相关类重绘、组合拼装等等从功能行为上:重写事件函数、添加或者修改信号和槽等等QSS:QSS平时使用的多吗?能举几个例...原创 2021-12-08 16:43:10 · 18919 阅读 · 2 评论 -
SetTimer如何修改间隔时钟uElapse
在进行Windows程序开发时,经常会用到Windows的API,SetTimer是Windows API中提供的定时器,在C++开发中使用起来还是比较方便的。这篇文章主要介绍下修改SetTimer的间隔时钟的方法:在SetTimer时给定时钟3s触发一次,如果我们现在想修改为间隔2s触发一次,该如何做呢?我用QT做了一个简单的例子,去实现了一个简单的demo,界面上有个按钮,点击按钮可以切换SetTimer的间隔时间。运行结果如下:主要思路是:调用SetTimer的时候会返回一个.原创 2021-12-07 15:27:40 · 650 阅读 · 0 评论 -
QT/C++复习要点
这是我前段时间(上半年)找工作时,着重复习的点,当然可能不是很全面,但是在面试时也覆盖了大部分,如果可以再练习下LeetCode上的习题就更好了,我就是吃了算法的亏。完整的文章发布在公众号,可以关注公众号查看完整文章,关注公众号,请扫描下面的二维码。“请扫码关注我,后续还有很多这些年保留的资源会慢慢放出来。”...原创 2019-10-30 23:14:36 · 656 阅读 · 0 评论 -
QT实现优快云上传资源管理助手Demo之(5)功能总结
QT实现优快云上传资源管理助手Demo之(5)功能总结此程序是针对优快云资源管理设计的,功能没有完全实现:下载资源功能有些复杂,没有仔细研究;下载资源、专辑等页面没有进行抓取和解析,下面是已经实现的功能:登录界面:模拟登录网站,输入账号和密码可以登录成功优快云网站主界面、获取用户信息:获取当前积分、等级、资源数等信息;获取上传的资源首页原创 2017-10-26 12:04:34 · 740 阅读 · 0 评论 -
QT实现优快云上传资源管理助手Demo之(4)请求网络图片SVG并显示
QT实现优快云上传资源管理助手Demo之(4)请求网络图片SVG并显示要显示SVG图片,并且显示网络图片,需要先请求图片数据,转为QPixmap,然后使用QLabel进行显示。首先请求网络图片数据,和请求网页数据差不多,并请数据转为QPixmap:QPixmap QtResourceAssistant::loadInternetImage(QString strUrl){ QEv原创 2017-10-25 12:03:56 · 623 阅读 · 0 评论 -
QT实现优快云上传资源管理助手Demo之(3)请求上传资源页面并解析
QT实现优快云上传资源管理助手Demo之(3)请求上传资源页面并解析请求自己上传的资源页面,只需要请求http://download.youkuaiyun.com/my/uploads/就可以了。在请求结果中解析自己的账户相关的信息,比如等级和分数。发起请求:void QtResourceAssistant::downloadInfoRequest(int Page){ connect(原创 2017-10-25 11:38:33 · 825 阅读 · 0 评论 -
QT实现优快云上传资源管理助手Demo之(2)模拟登录优快云网站
QT实现优快云上传资源管理助手Demo之(2)模拟登录优快云网站在登录页面抓包分析Http请求协议内容可以得到具体细节:可以得到请求的网址,请求的方法(POST或者Get)、协议内容、请求成功后的跳转路径、请求的附加参数,如下图所示:从附加的请求参数子串可以看到除了账号和密码外,还有三个字段:lt、execution、_eventId,其中_eventId是固定的,而前两个原创 2017-10-25 10:46:23 · 574 阅读 · 0 评论 -
QT实现优快云上传资源管理助手Demo之(1)抓包分析HTTP协议
QT实现优快云上传资源管理助手Demo之抓包分析HTTP协议使用客户端模拟登录网站和请求链接,都需要知道HTTP请求的协议内容,否则肯定是被拒绝的。而分析HTTP协议的详细内容,就需要抓包。常用的抓包工具HttpWatch、Fiddler、WireShark等,当然一些浏览器也是可以进行抓包分析的。:比如Google浏览器、搜狗浏览器等等。抓包的方法也很简单,在这里使用Google浏原创 2017-10-25 09:44:11 · 1358 阅读 · 0 评论 -
QT安装包的下载
1.可以去官网下载,官网地址:http://download.qt.io/。但是官网有可能有些人可能会打不开或者下载不下来。2.可以去“清华大学开源软件镜像站”下载,有很多开源软件的镜像,其中QT的下载地址是:https://mirrors.tuna.tsinghua.edu.cn/qt/原创 2017-09-28 11:45:48 · 4176 阅读 · 0 评论 -
QComboBox中QAbstractItemView宽度设置
在开发时遇到需要将QComboBox显示Item的View宽度增加,使其宽于QComboBox本身,否则Item中的文本显示不全。设置方法有两种,一是使用styleSheet,而是直接访问QAbstractItemView设置。详细请参见代码:#pragma once#include class QComboBoxEx : public QComboBox{ Q_OB原创 2017-03-13 17:44:32 · 5278 阅读 · 0 评论 -
Qt 侧边栏
通过QToolButton来实现侧边栏,或者说侧边工具栏,可以通过接口直接自由添加按钮,可以设置工具按钮对应的QWidget,进而点击不同的按钮可以显示不同的QWidget。实现代码:#ifndef QSIDEBAR_H#define QSIDEBAR_H#include #include #include #include #include class QSid原创 2016-10-23 13:36:13 · 8060 阅读 · 0 评论 -
Qt之局域网UDP通讯
创建两个QUdpSocket对象,一个用来发送数据,一个用来接收数据。发送数据的QUdpSocket需要绑定本机IP和端口,要不然是收不到数据的。界面最上面的IP输入框是发送到的对方IP地址。中间是显示收到数据。下面的输入框是用来发送数据的。在虚拟机中和本机通讯:Qt没有IP输入框,需要自己去封装,也可以网上下载。我前面也发了一个自己封装的IP输入框,功能大部分和Windows原创 2016-09-12 17:51:26 · 2538 阅读 · 13 评论 -
Qt圆角功能和状态组合按钮,可以显示颜色或者图片
使用两个按钮和一个Label封装了一个功能和状态圆角组合按钮,Label用来显示颜色或者图片。实现的效果如下:显示图片:显示红色:其中颜色或者图片是通过函数设置进去的。两个按钮:前一个是状态按钮,可以Check,表示使用此项功能;后一个按钮是功能按钮,可以Check,表示跳转到此功能对应的选项。两个按钮都有信号,可以通过信号进行连接你需要的槽函数。具体实原创 2016-06-18 16:23:19 · 4595 阅读 · 0 评论 -
Qt 获取CPU信息
在Qt中调用Windows APIGetSystemInfo可以获取CPU的相关信息,使用Qt的界面控件显示在界面上。在实现的过程中遇到了一个问题,就是显示地址信息在界面控件上。试了好几种方法,都不能显示,最后想到了格式化函数sprintf,将地址转为char类型的数组或者指针,再转为字符串就可以正常显示了。如果有人有更好的方法来显示地址,欢迎交流。完整代码:#pragm原创 2016-06-02 15:57:57 · 11077 阅读 · 6 评论 -
Qt 获取Windows内存信息
通过调用Windows API来获取Windows 内存信息,并显示在界面上,通过与Windows 内存管理器对比可以看到结果是正确的。实现的小工具的界面效果与内存管理器对比如下:实现的完整代码:#pragma execution_character_set("utf-8")#ifndef QMEMORYINFO_H#define QMEMORYINFO_H#inclu原创 2016-06-02 11:04:46 · 5811 阅读 · 1 评论 -
Qt 获取硬盘可用字节
在Windows上,Qt 不能直接获取硬盘字节数,以及可用字节数。需要调用Windows API来获取。获取方法很简单,只需要调用GetDiskFreeSpaceEx API就可以得到我们想要的结果。void QVolumeFreeSpace::getVolumeFreeSpace(const QString &path){ std::wstring wPath = path.toSt原创 2016-05-30 11:33:55 · 3254 阅读 · 0 评论 -
Qt实现IP输入框
Qt作为界面框架,已经非常完善了。但是,也不是尽善尽美,IP输入框作为开发中使用很频繁的一个控件,Qt竟然没有实现,也是醉了。不过,我们自己也可以实现,并不是很复杂。先来看下最终实现的效果:使用起来还算顺手,实现了以下一些方便的操作:1.连续输入;2.连续删除;3.任意位置插入;4.自适应大小变化。5.正则匹配,每个值不大于255。设置IP值时,有正则进行验证是原创 2016-05-09 15:36:26 · 20678 阅读 · 6 评论 -
Qt应用程序以管理员身份启动
在做程序的时候,有时候我们需要我们的应用程序拥有管理员权限,这样就可以做一些设置,而且可以防止没有权限修改导致程序出错。编译好的程序,是没有管理员权限的,我们使用的话,需要右键,以管理员身份启动,很麻烦。因为如果没有这样操作,就可能出问题。那么我们怎样使我们的程序每次都以管理员运行呢?其实也不麻烦,只需要设置一些VS就可以了。在工程右键,选择属性:在linker里面原创 2016-05-07 21:15:08 · 10167 阅读 · 0 评论 -
Qt之添加应用程序图标
Qt编译生成的exe,是没有图标的。很是不好看,如下图:主界面,以及任务栏上程序的显示都没有图标:那么如何给应用程序添加图标呢?其实并不复杂:首先,准备一张图片,须是.ico格式的;其次,在工程右键,选择new item,在窗口选择.rc文件,输入名称,创建;再次,在.rc文件中输入:IDI_ICON1 ICON "icon.ico",保存文件;最后原创 2016-05-07 18:50:13 · 8343 阅读 · 0 评论 -
Qt 实现系统托盘,托盘菜单,托盘消息
Qt 实现系统托盘,托盘菜单,托盘消息 系统托盘就是运行的某个程序在电脑右下角的小图标,相信大家都很熟悉。QT 提供了QSystemTrayIcon类用于实现程序的托盘。QT提供了托盘示例,在examples文件夹下面,大家可以自行研究。 下面是我自己进行实现的一个示例,主要实现的功能: 1.托盘显示,托盘图标添加; 2原创 2016-05-05 15:51:04 · 20782 阅读 · 4 评论 -
Qt之拖放
拖放是应用程序内或者应用程序之间数据传递的一种方式。通常是提供数据的复制和移动。拖放主要包括拖动和放下。有些窗口可能只需要提供拖动功能,有些窗口可能只需要放下,有些窗口可能两者功能都需要具备。原创 2016-05-04 17:00:36 · 9050 阅读 · 4 评论 -
给QPushButton添加二级菜单
给QPushButton添加菜单的示例四种方式:Qt学习之给QPushButton添加菜单ActionsContextMenu方法Qt学习之给QPushButton添加菜单CustomContextMenu方法Qt学习之给QPushButton添加菜单DefaultContextMenu方法QPushButton下拉式菜单(是否取消下拉三角,是否check)原创 2016-04-22 17:40:54 · 6853 阅读 · 2 评论 -
QPushButton下拉式菜单(是否取消下拉三角,是否check)
给QPushButton添加菜单的示例,前面已经有了三种方式:Qt学习之给QPushButton添加菜单ActionsContextMenu方法Qt学习之给QPushButton添加菜单CustomContextMenu方法Qt学习之给QPushButton添加菜单DefaultContextMenu方法今天再提供一种方式,就是给QPushButton添加下拉式菜单原创 2016-04-22 11:40:08 · 20736 阅读 · 10 评论 -
Qt(QLabel)实现滚动字幕
滚动字幕,也叫跑马,就是动态显示一行字符。前面实现是使用QTimer控制,直接在槽函数中截取字符串进行显示,只控制字符串在控件的一端显示,超出控件的部分并没有从控件的另一端循环显示出来。于是我重新实现了一种方法,或者说完善了前面的不足吧。使用QTimer控制显示的节奏,在paintEvent中进行截取显示。从左端被截掉的部分会从右端显示出来。难点在于,我们需要依据控件的宽度,控制字符串的显原创 2016-04-21 18:55:40 · 31037 阅读 · 16 评论 -
QT QLabel右跑马显示文字
开发中可能会需要加一些跑马的效果,会使界面看起来很炫,而且可以达到提醒用户的作用。简单实现了右跑马的效果,使用的是QLabel显示的文字,利用QTimer来控制跑马的速度:效果如图:示例代码:#ifndef TEXTTICKER_H#define TEXTTICKER_H#include #include class TextTicker :原创 2016-04-21 11:58:34 · 7696 阅读 · 0 评论 -
Qt QLabel左跑马显示文字
开发中可能会需要加一些跑马的效果,会使界面看起来很炫,而且可以达到提醒用户的作用。简单实现了左跑马的效果,使用的是QLabel显示的文字,利用QTimer来控制跑马的速度:#ifndef TEXTTICKER_H#define TEXTTICKER_H#include #include class TextTicker : public QWidget{ Q_OBJECT原创 2016-04-21 11:23:29 · 3226 阅读 · 0 评论 -
VS 下Qt工程不能生成moc文件的解决方法
选择要moc的类的头文件,鼠标右键,选择property->Item Type:将此项改为Custom Build Tool,然后看到左边会变成Custom Build Tool:选择Custom Build Tool->General:类比其他头文件添加指令和输出路径。原创 2016-03-30 14:29:21 · 10574 阅读 · 0 评论 -
Qt学习之解决QListWidgetItem有重叠时,点一下全部选中的问题
QListWidget在QListView::IconMode模式下,当条目可以移动时,如果发生部分或者全部重叠,那么点击其中一个QListWidgetItem,会同时选中重叠的QListWidgetItem,问题如下图:但是我只想同时选择我点击的那个,解决这个问题,没有找到很好的方法。通过继承mousePressEvent事件来进行处理:void ListWidget::mous原创 2016-03-22 14:49:33 · 5282 阅读 · 0 评论 -
Qt学习之QListWidget删除Item
将QListWidgetItem从QListWidget列表中删除有两种方法可以做到,但也要根据自己的需要进行选择。第一种是QListWidgetItem *takeItem(int row);使用此方法需要知道删除的是第几个Item,并且返回删除的Item指针。第二种是inline void removeItemWidget(QListWidgetItem *item);需要知道删除原创 2016-03-21 10:38:48 · 33328 阅读 · 3 评论 -
Qt学习之QListWidget添加Item
QListWidget是经常使用的,因为可以显示成一行一行的,可以自动显示滚动条,可以很直观的显示条目。QListWidget里面的每一个条目是QListWidgetItem,向QListWidget里面添加QListWidgetItem有两种方式:一种是使用addItems,可以一次性添加多个条目;另一种是使用addItem一个一个的添加。原创 2016-03-19 21:11:06 · 13855 阅读 · 1 评论 -
Qt学习之给QPushButton添加菜单DefaultContextMenu方法
本篇以QPushButton为例实现添加右键菜单,使用DefaultContextMenu方式进行实现。大体思路和前面两篇添加菜单的方式还是差不多的。虽然是以QPushButton为例进行实现,但是对于所有QWidget添加右键菜单都是适合的。不同的是菜单策略,DefaultContextMenu需要继承contextMenuEvent事件,void contextMenuEvent(QC原创 2016-03-19 13:48:32 · 6058 阅读 · 0 评论 -
Qt学习之给QPushButton添加菜单CustomContextMenu方法
上篇也说了,题目虽然说是给QPushButton添加鼠标右键菜单,其实对于所有的QWidget都是适用的。之所以说QPushButton,是以QPushButton为例进行实现,写的类继承自QPushButton。上篇是说使用ActionsContextMenu,现在换一种方法来实现给QWidget添加右键菜单。下面的方法是使用CustomContextMenu方式来实现。使用CustomCo原创 2016-03-19 12:58:55 · 18565 阅读 · 2 评论 -
Qt学习之给QPushButton添加菜单ActionsContextMenu方法
给QPushButton添加右键菜单,其中ActionsContextMenu相对比较方便实现。说是给QPushButton添加右键菜单,其实对于所有的QWidget都是可以的,也就是说这种方法适合给所有的QWidget添加右键菜单。只需要继承QPushButton,然后设置使用Actions Context菜单,创建自己需要的QAction,addAction并且将对应的槽函数和action连接起来,就可以实现了。原创 2016-03-18 10:44:43 · 13149 阅读 · 4 评论 -
Qt学习之QSplitter分割窗口
在Qt开发中,QSplitter是比较常用到的,也就是分割窗口。并且窗口分割处也就是QSplitter的handle是可以随意拖动的。这样,每个窗口的大小就可以按照自己的需要进行调整。QSplitter可以容纳其他Widget,具有布局一样的特性,但是又可以动态调整,可以说是动态布局特性,其内部的Widget可以自由伸缩。原创 2016-03-17 16:50:06 · 16787 阅读 · 8 评论 -
VS201x+Qt5开发,中文乱码解决
VS201x+Qt5开发,中文乱码解决原创 2016-01-10 13:59:34 · 924 阅读 · 0 评论 -
QFiledialog添加控件
继承QWidget,按照自己的需要实现布局,将QFiledialog作为一个子控件,将需要添加的其他控件加入到界面。原创 2015-12-19 14:52:53 · 1237 阅读 · 0 评论 -
QFiledialog添加控件
一种方法(我使用的):http://www.cnblogs.com/foohack/p/3914164.html。至于点击按钮窗口关闭的问题:使用信号去连接一个自己的槽。另一种方法(担心Qt升级导致要重新修改代码,没有使用):QFileDialog* f = new QFileDialog(); f->setOption(QFileDialog::DontUseNat原创 2015-11-23 12:09:45 · 2125 阅读 · 0 评论 -
QSlider QSS设置样式
volumeSlider->setStyleSheet("QSlider{background-image: url(:images/volumeslider.png);}" "QSlider::groove:vertical{image: url(:images/volumeslider.png);}"原创 2015-11-18 16:06:20 · 2502 阅读 · 0 评论 -
QSlider:groove背景图片随QSlider伸缩而伸缩
项目中使用了QSlider,继承后,给groove和handle都添加了各自的图片。 窗口比较小的时候,QSlider尺寸也正常,没有什么问题。但是当QWidget窗口伸缩变大的时候,因为groove背景图片的尺寸并没有那么大,导致handle可以移动到图片外面去,看起来很别扭。在网上查了很久都只是添加背景图片并没有谈到QSlider伸缩问题。因为我对QSS目前并不是原创 2015-11-06 18:29:06 · 2168 阅读 · 0 评论 -
This application failed to start because it could not find or load the Qt platform plugin
使用QT编译生成的EXE,把需要的依赖库.dll都放在同一目录下面后,点击运行,出现:然后把Qt\Qt5.3.1\Tools\QtCreator\bin目录下面的\plugins文件夹拷贝过去,删掉除了platforms的其他文件夹。。platforms里面删除除了qwindows.dll的其他文件。还是同样的问题。然后去百度,看了很久,试了好几种方法还是没有解决。原创 2014-12-03 17:56:48 · 16820 阅读 · 3 评论