![](https://img-blog.csdnimg.cn/20190927151124774.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
Qt
Qt的技术分享专栏
Qiuchh
这个作者很懒,什么都没留下…
展开
-
Qt隐式共享
Qt的容器类的隐式共享原创 2022-12-13 17:04:43 · 723 阅读 · 1 评论 -
QT scrollArea控件背景透明,但不影响子控件的方法
类选择器格式.类名 { 属性: 值; }ui.scrollArea->viewport()->setStyleSheet(".QWidget{background-color:transparent;}");原创 2022-08-18 14:40:17 · 1441 阅读 · 0 评论 -
Qt 日志重定向
Qt自带的日志重定向机制非常简单好用,自从用了以后再也不用什么断点调试啥的了,在需要的地方支持qdebug输出对应的信息,而且发布程序以后也可以开启调试日志将其输出查看等原创 2022-07-29 16:05:10 · 562 阅读 · 0 评论 -
vs下编译qt插件 出现Error: Undefined interface 错误
在编写插件的时候,实现类加上宏Q_INTERFACES(IMTModuleCreateService)会报如下错误原创 2021-06-17 21:15:52 · 1935 阅读 · 0 评论 -
常用的正则表达式
熟练的掌握正则表达式,能够帮助程序员以最快的速度写出最优雅的代码。冰河在多年的编程工作中,对使用过的正则表达式进行了梳理和总结,这些正则表达式能够帮助你节省很多的编码时间,往往一个简单的正则表达式就能够省略大量的if...else...代码。这次,冰河向小伙伴们公开了自己平时经常使用的正则表达式,希望能够为小伙伴们带来实质性的帮助。冰河常用正则整数或者小数^[0-9]+\.{0,1}[0-9]{0,2}$只能输入数字^[0-9]*$1只能输入n位的数字^\d{n}$1只能.原创 2021-06-02 11:16:59 · 546 阅读 · 0 评论 -
QT QWidget设置窗体透明度方法汇总
1、设置窗体的背景色在构造函数里添加代码,需要添加头文件qpalette或qguiQPalette pal = palette();pal.setColor(QPalette::Background, QColor(0x00,0xff,0x00,0x00));setPalette(pal);通过设置窗体的背景色来实现,将背景色设置为全透。效果:窗口整体透明,但窗口控件不透明,QLabel控件只是字显示,控件背景色透明;窗体客户区完全透明。2、使用函数setAttribu...原创 2021-06-02 10:57:57 · 3529 阅读 · 1 评论 -
QT 基本图形绘制
1. 绘制图形protected: void paintEvent(QPaintEvent *);void Widget::paintEvent((QPaintEvent *event){ QPainter painter(this); //this为绘图设备,即表明在该部件上进行绘制 painter.drawLine(QPaint(0, 0), QPaint(100, 100));}QPainter painter(this); // 会立即开始在设备上绘制,...原创 2021-05-19 18:10:41 · 421 阅读 · 0 评论 -
QT QTableWidget 调用removeRow、clearContents、clear删除单元格
当widget,通过setCellWidget加入到了QTableWidget后,调用removeRow、clearContents、clear都会自动调用单元格widge的析构函数,不需要使用者再将单元格取出来delete。写一个例子 ui->tableWidget->setColumnCount(4); ui->tableWidget->setRowCount(4); for(int i = 0 ; i < 4; i++) { ...原创 2021-04-26 10:16:10 · 5121 阅读 · 0 评论 -
Qt之调用外部DLL
声明: 事先我已经自己动手写了一个简单的dll文件(myDLL.dll),C版接口的。首先,从dll中导出了导入库(.lib)文件,dll中有两个函数,原型如下: void HelloWorld(); //函数内部调用Win32 API,功能是弹出一个helloworld提示框 int add(int a,int b); //实现两个数相加,并返回结果 下面分别通过显示调用和隐式...转载 2018-02-08 18:01:51 · 855 阅读 · 0 评论 -
C++之DLL学习
DLL的优点1) 节省内存。同一个软件模块,若是以源代码的形式重用,则会被编译到不同的可执行程序中,同时运行这些exe时这些模块的二进制码会被重复加载到内存中。如果使用dll,则只在内存中加载一次,所有使用该dll的进程会共享此块内存(当然,像dll中的全局变量这种东西是会被每个进程复制一份的)。2) 不需编译的软件系统升级,若一个软件系统使用了dll,则该dll被改变(函数名不变)时,系统升级只...转载 2018-02-08 18:02:45 · 429 阅读 · 0 评论 -
qt+vs2015生成的应用程序图标和窗口图标设置方法
1.窗口图标选择资源,然后再选择对应图标。如果是第一次添加资源,需要将资源文件导入,如下图所示2.应用程序图标选择导入后,在弹窗中选择对应的ico文件,接着保存,重新生成应用程序就可以发现应用程序图标变化了...原创 2019-01-24 15:42:17 · 2857 阅读 · 0 评论 -
Qt 窗口非激活状态获取键盘事件
在多个窗口一起存在时,其中一个窗口需要一直获取键盘事件:可以在这个窗口中捕获键盘事件,即grabKeyboard(); 这样这个窗口可以一直获取键盘事件。即使这个窗口不在激活状态下依然可以获取键盘事件。同时激活状态的窗口是获取不到任何键盘事件的,直到捕获了键盘事件的窗口释放键盘事件releaseKeyboard(),才能获取键盘事件。grabKeyboard() //捕获键盘事件...原创 2019-03-20 10:46:11 · 1312 阅读 · 0 评论 -
qt pro工程转换成sln工程
1.打开vs2017,点击qt vs tool,打开pro文件,如下图所示2.接着就可以看到输出的vc工程文件。问题:1.找不到mingw解决方案:下载mingw并且配置path。mingw的下载配置见https://blog.csdn.net/QIUCHUNHUIGE/article/details/89177834...原创 2019-04-10 11:26:30 · 2500 阅读 · 0 评论 -
Q_INIT_RESOURCE
Q_INIT_RESOURCE是Qt的资源机制(resourcemechanism),它使程序在编译时将图片存储在.cpp文件中,运行时连接它。这要求你建立一个Qt资源文件***.qrc,在***.qrc中指定图片位置。编译时编译器将***.qrc中指定的图片以二进制数的形式存储到Qt自动建立的名为qrc_***.cpp的文件中,这里的***就是你建立***.qrc时的名字,而你在main()函...转载 2019-07-12 10:03:54 · 660 阅读 · 0 评论 -
QT:QMessageBox的简单使用
QMessageBox::NoIcon 没有任何图标QMessageBox::Information 消息图标QMessageBox::Warning 警告消息QMessageBox::Critical 严重按钮变量QMessageBox::NoButton 无图标QMessageBox::Ok 确定QMessageBox::Cancel 取消QMessageB转载 2017-12-07 14:13:36 · 2445 阅读 · 0 评论 -
基于Qt的SocketIO客户端实现 【一】开源代码的选择
Socket.IO 实现了实时双向的基于事件的通讯机制。旨在让各种浏览器与移动设备上实现实时app功能,模糊化各种传输机制。socket.io解决了实时的通信问题,适合用于消息推送、聊天程序等需要服务器端与客户端实时传输数据的环境。socket.io的官网上有一份教程,介绍了socket.io的服务器搭建以及web端的实现。那篇教程上并没有介绍除web以外的其他平台的客户端程序的写法(如C#,Qt转载 2017-11-23 08:54:41 · 3124 阅读 · 0 评论 -
基于Qt的SocketIO客户端实现 【二】向服务器发送请求
第一部分:服务器端的程序与第一部分用的相同,这里就不单列出了。这个第二部分主要介绍编写socket.io客户端程序并向1.x版本服务器发送请求的方法 第二部分 向服务器发送请求1.首先下载这个开源代码https://github.com/socketio/socket.io-client-cpp2.下载并解压缩完成后,把src这个文件夹里面的所有文件转载 2017-11-23 08:57:26 · 2829 阅读 · 2 评论 -
基于Qt的SocketIO客户端实现 【三】发送与接收
第一部分:http://blog.csdn.net/qiuchunhuige/article/details/78610289第二部分:http://blog.csdn.net/qiuchunhuige/article/details/78610306服务器端的程序与第一部分用的相同,这里就不单列出了。 示例程序下载地址:https://pan.baidu.com/转载 2017-11-23 09:00:59 · 1509 阅读 · 0 评论 -
qt学习之sender
当某一个Object emit一个signal的时候,它就是一个sender,系统会记录下当前是谁emit出这个signal的,所以你在对应的slot里就可以通过 sender()得到当前是谁invoke了你的slot,对应的是QObject->d->sender.有可能多个Object的signal会连接到同一个signal(例如多个Button可能会connect到一个slot函数onCl转载 2017-08-24 10:47:14 · 630 阅读 · 0 评论 -
qt之输出日志到文件中
描述 助手中在C++ API changes中提到:Qt::qDebug()、Qt::qWarning()、Qt::qCritical()、Qt::qFatal()被改变为宏来跟踪源代码的消息来源。被打印的信息可以被配置(用于缺省消息处理程序),通过设置该新的环境变量QT_MESSAGE_PATTERN。Qt::qInstallMsgHandler()已过时,因此建议使用Qt::qIns原创 2017-08-28 16:03:08 · 2587 阅读 · 0 评论 -
QT的exe文件移植到其他机器非png图片操作问题
生成的exe文件,默认只支持png格式的图片。如果程序中使用了gif,jpg等格式的文件是显示不出来的。我们需要将Qt安装目录下的qt/plugins/目录中的imageformats文件夹拷贝到exe文件目录下,即与可执行文件放在同一个目录下(使用inno setup需要打包imageformats文件夹下的相关库)。而imageformats文件夹中的文件不需要全部保留,只需要保留你需要的原创 2017-08-31 12:41:19 · 357 阅读 · 0 评论 -
QString、string和C字符串相互转换
//1. std::string转换成QStringstring std_str("abc");QString q_str = QString::fromStdString(std_str);//2. QString转换成std::stringQString q_str("abc");string ss = q_str.toStdString();//3.原创 2017-08-31 15:15:06 · 557 阅读 · 0 评论 -
QThread: Destroyed while thread is still running
在qt开发过程中,win10下运行没有发生此警告,win7下运行发现了此警告。后来查阅资料发现问题如下:如果一个线程运行完成,就会结束。可很多情况并非这么简单,由于某种特殊原因,当线程还未执行完时,我们就想中止它。不恰当的中止往往会引起一些未知错误。比如:当关闭主界面的时候,很有可能次线程正在运行,这时,就会出现如题提示。解决方法:一、第一种原创 2017-09-18 19:46:01 · 3198 阅读 · 0 评论 -
qt 通过http获取网络图片并且显示
通过HTTP来获得网页上的图片,在MFC中主要是通过类CInternetSession类完成,在QT中则是通过三个类来完成,QNetworkAccessManager,QNetworkRequest,QNetworkReply,三个类的详细用法还需自己多看文档,这里就不多解释了,下面直接贴代码,别忘了在Qt工程中加入 QT += core network.附上代码和效果图:void原创 2017-09-01 17:47:50 · 4874 阅读 · 0 评论 -
Qt5解决中文乱码问题的方法
第一种:在公司代码里看到的方法,先将对应的cpp文件用windows自带的记事本打开,另存为UTF-8格式,然后在代码中,遇到中文字符,使用QStringLiteral("中文")进行修饰这种方式每次新建一个class就要切出去用记事本编辑一下实在麻烦,而且每个中文字符串都要用QStringLiteral来修饰,实在麻烦后来有找到了个方法第二种:在头文件申明中加上原创 2017-09-12 12:44:41 · 297 阅读 · 0 评论 -
QProcess 进程类—调用外部程序
QProcess进程类 Qt提供了一个QProcess类用于启动外部程序并与之通信,启动一个新的进程的操作非常简单,只需要将待启动的程序名称和启动参数传递给start()函数即可.先上个例子:_process = new QProcess();connect(_process, SIGNAL(finished(int, QProce原创 2017-09-15 18:14:09 · 651 阅读 · 0 评论 -
qt学习笔记之qss
使用Qt StyleSheet 借用css 的灵感, Qt也支持Qt自己的css, 简称qss。同css 相似,qss的主要功能与最目的都是能使界面的表现与界面的元素分离,即质与形的分离,就如同一个人可以在不同的时候穿上不同的衣服一样,css机制的引入,使得设计一种皮肤与界面控件分离的软件成为可能,应用程序也能像web界面那样随意地改变外观。 1, QSS语法同css一样,他也转载 2017-10-27 11:11:20 · 462 阅读 · 0 评论 -
the file contains top level spacers. They will not be saved.Perhaps you forgot to create a layout
如果碰到如题的提示,可以右键QWidget,选择布局。添加布局成功后,可以看到LoginUi新增了layout属性原创 2017-10-26 09:13:19 · 12898 阅读 · 0 评论 -
qt creator各个部件显示图片总结
在工作中,UI设计经常需要显示各式各样的图片,下面就总结了qt如何在一些部件中显示图片的方式一、QFrame或者QWidget显示图片在属性stylesheet中填写:#loginBoxFrame{border-image: url(../../icon/login/login_box.png)}二、label显示图片在属性pixmap中选中需要显示的图片原创 2017-10-26 09:42:00 · 2618 阅读 · 0 评论 -
图片自适应label大小
代码示例:自定义显示图片大小和位置*//*QPixmap pix = QPixmap(fileName);pix = pix.scaled(QSize(236, 236), Qt::KeepAspectRatio);//调整图片大小ui.label_pix->setAlignment(Qt::AlignCenter);//居中显示ui.label_pix->setPix原创 2017-09-05 09:40:48 · 3537 阅读 · 0 评论