Qt实践
分享工作中遇到的问题(Qt方面)
Eosin_Sky
软件工程专业,现在开始把遇到的问题和总结的一些东西都写入博客!
展开
-
Qt避免多次connect操作之后一个信号触发多个槽
偶尔会遇到一个对象的在某些情况下会被多次connect的情况,本文记录了如何顺利处理。原创 2022-06-07 11:25:31 · 756 阅读 · 0 评论 -
Qt6.0.4解决在在高清屏幕下按钮渲染有问题的情况
使用Qt6.0.4时,在能开启HIGH DPI屏幕的windows系统上运行时渲染的按钮会有错误(莫名其妙多一条白线)经测试需要在QApplication加一个标记ClientApplication::setAttribute(Qt::AA_EnableHighDpiScaling); ClientApplication::setHighDpiScaleFactorRoundingPolicy(Qt::HighDpiScaleFactorRoundingPolicy::RoundPreferFl原创 2021-09-26 14:48:33 · 578 阅读 · 0 评论 -
使用QML制作超链接并打开超链接
使用QML中的Text来实现超链接并打开代码如下:import QtQuick 2.3import QtQuick.Window 2.2Window { visible: true MouseArea { anchors.fill: parent onClicked: { Qt.quit();原创 2017-04-26 10:39:18 · 2126 阅读 · 1 评论 -
QML界面与Qt/C++代码进行数据交互
QML界面与Qt/C++代码进行数据交互主要实现2点: 1,c++ 数据传递到QML界面使用2,QML界面的数据传递到c++代码使用为了方便说明,我使用QML创建了一个ListView视图,用于展示商品名字和价格(name, value)。一开始的时候这个界面没有任何数据,截图如下:这个视图的QML代码如下:import QtQuick原创 2017-05-04 11:06:17 · 10159 阅读 · 3 评论 -
QTextEdit 当中添加图片的几种方式
http://stackoverflow.com/questions/3254652/several-ways-of-placing-an-image-in-a-qtextedit(1)I think this is a very simple question, but when I copy an image I can't paste it in a QTextEdit? Past转载 2017-05-17 20:26:29 · 5286 阅读 · 0 评论 -
QWidget嵌入QML窗口中
<!- 2018年2月26日修改:由于很多小伙伴没看懂所以在结尾加入另外一个示例来说明><!- 2018年9月5日修改:评论有人提到可能显卡驱动原因导致程序崩溃,结尾处例举了一个可能的处理方案>------------------------------------------------------------------------------------...原创 2017-05-19 13:52:24 · 17332 阅读 · 31 评论 -
QTextEdit添加文本对象(将N个文字结合成一个整体)
在处理文字的时候我们有时候不得不这样做:“当输入譬如:@人民日报 这样的标记的时候,我希望 [@人民日报] 这几个字符是一个整体, 不能对其中的任意一个字符进行修改要改也只能改整体。” 类似于QQ群的 @ 功能。原创 2017-06-07 11:26:50 · 2815 阅读 · 0 评论 -
QTextEdit 的一些总结
QTextEdit 总结关于Qt的富文本处理, 可以参考文档: Rich Text Processing该文档有人翻译了一下(本来我想翻译- -!), 参考Rich Text Processing富文本处理 QTextEdit的组成比较复杂, 最好看看文档了解一下Rich Text Document Structure1. HTML形式操纵Qtextedit转载 2017-06-09 17:15:33 · 14180 阅读 · 0 评论 -
Qml实现自定义右键菜单
先上效果图吧:在正式开始之前大致阐述一下思路:结构,对于每一个菜单而言,其实就是一个菜单项的列表。而每一个菜单项都可以包含自己的子菜单项。所以用可以这样简单的描述一个菜单:typdef struct _item_s{QString textQList subItem}Item;typedef struct{QLis原创 2017-06-27 10:02:33 · 3239 阅读 · 0 评论 -
使用QWebView与所加载的HTML页面进行通信
#include <QWebView>class CWebInterface: public QWebView{ Q_OBJECTpublic: CWebInterface(QWidget* p=NULL);signals: void pushData(const QString& data);private slots: voi...原创 2018-02-08 10:52:52 · 744 阅读 · 0 评论 -
在Qt中将QWindow或者QWidget嵌入到别的进程中的窗口中(windows)
前提:必须知道另外一个进程的窗口句柄示例(这里用QWidget举例,QWindow也一样的):1、首先创建一个进程,创建一个顶级窗口“Proc 1 Window”并运行#include "mainwindow.h"#include <QApplication>#include <QDebug>int main(int argc, char...原创 2018-02-08 10:58:30 · 30822 阅读 · 43 评论 -
QWindow自绘制(类似于QWidget的PaintEvent)
很多人使用了QWindow之后不知道要怎么去绘制成自己想要的样子。这里提供了一个简单的例子来帮组实现QWindow的自绘:首先定义一个测试的QWindow对象PaintWindow:#ifndef PAINTWINDOW_H#define PAINTWINDOW_H#include <QBackingStore>#include <QWindow>class P...原创 2018-03-01 13:27:52 · 2232 阅读 · 0 评论 -
Qt实现SAX2方式解析XML文件(简单有效、老少皆宜,200MB大小4-7层的XML解析只需要30s)
Qt解析XML文件,我这个案例可以说非常实用了,而且解说相当于是手把手教了,不管是老手还是新手都能轻易掌握的。原创 2018-02-09 17:47:16 · 862 阅读 · 4 评论 -
使用Qt在Window下捕获并屏蔽Alt + F4窗口消息
方法:重载QWindow 或者QWidget的nativeEvent信号,并处理WM_KEYDOWN和WM_SYSKEYDOWN两个case,如下:bool COriginalDialog::nativeEvent(const QByteArray &eventType, void *message, long *result){ if (eventType == "window...原创 2018-05-07 20:00:44 · 2835 阅读 · 0 评论 -
使用QProcess启动外部exe可能启动失败的解决方案
在使用QProcess启动外部程序的失败有可能启动失败为了保险起见,在启动的时候传入的exe路径需要用\"包起来例如:QString tagDir = "D:/te st/tag.exe"QProcess:startDetached(tagDir)由于tagDir中有空格,所以启动失败。换成这样的方式就能正确启动:QString tagDir = "D:/te ...原创 2018-05-30 20:40:20 · 11898 阅读 · 2 评论 -
QWebView为什么时而会崩溃
Qt4.8.5 QtWebKit QWebView 用户栈检查崩溃问题的思考最近在项目中,发现在使用Qt4.8.5 提供的QWebView与网页交互的时候,m_pWebView->page()->mainFrame()->evaluateJavaScript(tmp);QtWebKitd4.dll模块偶尔会出现崩溃,如图 中断查看调用堆栈(加载QtWebkitd4.pdb 才可...转载 2018-06-11 16:51:23 · 2200 阅读 · 1 评论 -
使用Qt无线网络模块时在Windows下可能网络波动(WIFI打开的情况下)
使用WIFI的时候,Qt的Wifi模块默认每隔10s会检测WIFI模块的运行情况,在Windows下这样的检测会导致网络波动。解决方案是将Qt的默认10s改成-1s也就是不检测能显著消除网络波动。设置环境变量以解决问题:qputenv("QT_BEARER_POLL_TIMEOUT", QByteArray::number(-1));Qt QNetworkAccessManager causing...翻译 2018-06-13 17:33:57 · 1620 阅读 · 0 评论 -
Qt实现截取屏幕小程序
[注]:本程序在Windows下实现,按理来说在其他平台也可用(只需要改一下CCuter的某个函数,文中红字标注)先上效果图(我两个显示屏整张图太大,只截关键部分上传):以下是代码,两个部分:一个是CCuter截图选择器,一个是CScreenShoot截图程序CCuter.h#ifndef CCUTER_H#define CCUTER_H#include <QWi...原创 2018-09-25 11:55:35 · 798 阅读 · 0 评论 -
Qt使用Sqlite
在Qt的sql中自带了sqlite3以及之前版本的sqlite,默认是sqlite3了。首先随意建一个Qt程序,在.pro文件中加入sql模块:执行qmake接下来就可以使用sqlite了,看代码示例:#include <QDebug>#include <QSqlDatabase>#include <QSqlDriver>#inclu...原创 2018-09-26 16:24:20 · 2379 阅读 · 0 评论 -
如何使用QAbstractItemModel定制自己想要的数据模型(使用TreeView模型讲解)
本例和大家交流如何使用QAbstractItemModel定制自己想要的数据模型.比如,突然想做一个类似QQ一样的好友界面:该怎么弄?先别慌,一步步来,今天就和大家交流如何简单快捷的弄出一个类似的玩意儿。(直接上代码,相关说明已经注释在代码中。)CFriendViewModel.h#ifndef CFRIENDVIEWMODEL_H#define CFRIENDVI...原创 2019-09-02 20:46:20 · 2950 阅读 · 0 评论