Qt
文章平均质量分 67
一路初心向前
这个作者很懒,什么都没留下…
展开
-
Qt中使用QFileDialog中选择文件夹/目录
设置选择模式 QFileDialog *fileDialog = new QFileDialog(this); fileDialog->setFileMode(QFileDialog::Directory); fileDialog->exec(); auto selectDir = fileDialog->selectedFiles(); if (selectDir.size()>0) { qDebug() << "Dir Path:" <&l原创 2021-03-27 09:09:38 · 9111 阅读 · 0 评论 -
QCustomPlot配置
安装在 https://www.qcustomplot.com/index.php/download 下载压缩包。qcustomplot.h和qcustomplot.cpp即为需要使用的文件。然后自己新建一个QWidget,要么继承自QCustomPlot这个类,要么做提升。备注 笔者使用环境是Windows 7 . 编译器是Vistual Studio 2015(构建套件是vs2013)部分类说明QCPGraph图表 通过调用 QCPGraph的setData设置绘图需要的数据 添加一.原创 2021-03-20 19:18:38 · 2397 阅读 · 2 评论 -
QML学习二
定位器QML中有一些放置元素对象的元素被称为定位器。在QML中提供了Row,Column,Grid和Flow四种定位器。ColumnColumn(列)元素将它的子对象通过顶部对齐的列方式进行排列。spacing属性用来设置每个元素之间的间隔大小(类似于QVBoxLayout)import QtQuick 2.12import QtQuick.Window 2.12Window{ id:testA visible:true width:100 heigh.原创 2021-03-20 11:07:51 · 393 阅读 · 0 评论 -
QML学习一
import QtQuick 2.12 //import 声明导入了一个指定的模块版本import QtQuick.Window 2.12Window{ id:testA visible:true//是否可见 height:200//高度 width:height * 2//宽度 title: qsTr("Hello World")//标题 property int times:15//自定义属性}语法使用// 可以进行单行注释 /**..原创 2021-03-16 21:52:47 · 270 阅读 · 0 评论 -
在QTableWidget中使用自定义委托组件
使用步骤1.自定义委托组件2.将委托设置给QTableWidget自定义委托组件1.继承自QItemDelegate类2.重写以下函数virtual QWidget* createEditor(QWidget *parent, const QStyleOptionViewItem &option, const QModelIndex &index) const//创建委托显示的控件 virtual voidsetEditorData(QWidget *editor.原创 2021-03-14 00:45:54 · 865 阅读 · 0 评论 -
Qt实现自定义标题头
描述在很多时候都需要自定义标题头的样式。在Qt里面。如果去掉了系统自带的标题头。那么很多属性也就会消失。例如没法拖拽窗体。没法通过鼠标拉伸窗体。大致实现思路添加一个水平布局。里面分别有两个QLabel以及三个QPushButton。两个QLabel用来显示图标和窗体标题。三个QPushButton分别对应着隐藏。最大化以及关闭按钮。然后鼠标在靠近窗体的边缘的时候需要更改鼠标光标的形状。且可以拉伸窗体。同时鼠标按在标题上可以进行拖拽。此标题头内部维护了QWidget* _ownerWidget.其实就原创 2020-12-19 11:40:27 · 521 阅读 · 1 评论 -
QTreeWidget的添加删除、勾选、导入以及拖拽操作示例
由来因为在工作中对QTreeWidget的操作基本上都是这几个操作。然后平时没做过备忘。就写了很多次重复代码。今天特此备忘一下。以便于后续的使用功能描述此TreeWidget通过右键菜单的方式来操作。目前支持添加、删除、勾选QTreeWidgetItem。同时可以拖拽QTreeWidgetItem用来形成新的层级关系。同时支持从另一个TreeWidget导入到本TreeWidget上面。且维持同样的导入层级关系。添加实现思路根据右键选择的QTreeWIdgetItem作为父节点。直接添加新的子节点原创 2020-12-19 10:52:14 · 2906 阅读 · 1 评论 -
QWebEngineView崩溃问题
描述今天在使用QWebEngineView的时候。总是崩溃在 load 函数里面。由于没有看不到内部实现。因此无法排查具体原因。解决办法将以下文件拷贝到和你的执行文件(.exe文件)所在的目录下(即在同一目录下)qtwebengine_resources.pakqtwebengine_resources_100pqtwebengine_resources_200p.pak.pakQtWebEngineProcess.exeicudtl.dat笔者经过以上步骤后成功解决QWebEngin原创 2020-08-17 22:06:05 · 2021 阅读 · 0 评论 -
Qt不规则异形窗体实现
采用主窗体透明方式实现具体实现思路:首先去掉窗体的标题头,设置主窗体为透明属性,然后需要套一个窗体来显示异形图片即可.关键代码 this->setWindowFlags(Qt::FramelessWindowHint | this->windowFlags());//去掉标题头 this->setAttribute(Qt::WA_TranslucentBackground);//主窗体透明 _layoutMain = new QVBoxLayout; _layoutMain-原创 2020-07-11 23:43:46 · 322 阅读 · 0 评论 -
Qt使用记录
Qt截取屏幕并保存为图片 auto desktopWidget = QApplication::desktop(); QScreen * pqscreen = QGuiApplication::primaryScreen(); QPixmap pixmap = pqscreen->grabWindow(desktopWidget->winId(), 0, 0, desktopWidget->width(), desktopWidget->height()); pixmap.原创 2020-07-10 22:02:34 · 679 阅读 · 1 评论 -
常用QSS记录
基本状态状态使用 :(单冒号) 来区分每一个状态hover 鼠标滑过时候的状态pressed 鼠标按下状态QCheckBoxQCheckBox::indicator /*QCheckBox可勾选区域*/{ width:20px; height:16px;}QCheckBox::indicator:checked /*QCheckBox勾选*/{ border-image:url(image/selected.png);}QCheckBox::indicator:un原创 2020-06-17 15:10:11 · 242 阅读 · 0 评论 -
Qt中的QTcpSocket作为客户端的时候获取绑定的端口号
在socket中,客户端socket并不是必须调用bind函数来指定端口号。而是在连接成功之后会给客户端socket自动分配一个可用的端口号。解决办法在QTcpSocket调用了connectToHost函数成功连接服务端之后。会触发一个 QTcpSocket::connected信号。编写相关的槽函数。在槽函数中调用localPort 函数就可以获取客户端自动绑定的端口号。...原创 2020-06-09 22:28:58 · 3953 阅读 · 1 评论 -
Qt获取本机IP地址的方法
使用Qt中的QHostInfo来获取本地IP地址 QString hostNme = QHostInfo::localHostName(); QHostInfo hostInfo = QHostInfo::fromName(hostNme); auto addList = hostInfo.addresses(); if (addList.isEmpty()) { Q_ASSERT(false); } for (int i = 0;i < addList.count();++i)原创 2020-05-31 09:14:09 · 5210 阅读 · 0 评论 -
QTreeWidget的勾选、未勾选以及半勾选
需求在一个QTreeWidget中,一个节点A ,下面有多个子节点 B C D等等,在勾选A的时候,下面的子节点也被勾选,同时BCD都被勾选的时候 A也自动被勾选头文件#ifndef WIDGET_H#define WIDGET_H#include <QWidget>#include<QTreeWidget>#include<QTreeWidgetItem>namespace Ui {class Widget;}class Widget : pu原创 2020-05-26 11:50:43 · 1248 阅读 · 0 评论 -
Qt中的QLineEdit 取消右键菜单
QLineEdit *lineEdit = new QLineEdit;lineEdit->setContextMenuPolicy(Qt::NoContextMenu);原创 2020-05-18 15:30:14 · 2770 阅读 · 2 评论 -
Qt 创建后台系统托盘菜单
创建步骤创建 QSystemTrayIcon 对象创建 QMenu 对象创建具体的QAction对象,绑定相应的实现槽函数将QAction对象加入到 QMenu 对象中QSystemTrayIcon 对象设置相应的托盘图标或者ToolTips调用 QSystemTrayIcon 的 setContextMenu 设置QMenu调用 QSystemTrayIcon 的show 显示菜单即可代码示例_sysTray = QSharedPointer<QSystemTrayIcon>原创 2020-05-16 21:10:31 · 140 阅读 · 0 评论 -
Qt之最简单的日志系统
#include <QtWidgets/QApplication>#include <iostream>#include <windows.h>void myMessageOutput(QtMsgType type, const QMessageLogContext &context, const QString &msg){ QByt...原创 2020-04-08 20:36:02 · 512 阅读 · 0 评论 -
Qt之检测鼠标移动
需求在一个QWidget中,若是鼠标悬停3s以上,则需要弹出一个ToolTips来显示信息。思路描述重写 void mouseMoveEvent(QMouseEvent *event)函数,然后创建一个定时器,用来计算鼠标是否保持不动3s。创建一个int类型变量 _timeCount,增长范围为0-2。当触发mouseMoveEvent 函数的时候 _timeCount 变量就自减,定时...原创 2020-04-06 14:57:35 · 2426 阅读 · 0 评论 -
QTableWidget选中存在虚线问题
今天碰到这个问题的时候,搜索的解决方法都是table->setFocusPolicy(Qt::NoFocus);或者table->viewport()->setFocusPolicy(Qt::NoFocus);。但是这些方法都存在一些弊端,例如不过这样的话,无法使用键盘控制这个QTableWidget.解决使用QSS可以完美解决这个问题。只要加上QTableVi...原创 2020-01-19 17:26:35 · 2141 阅读 · 2 评论 -
Qt The process was ended forcefully.问题
在运行一个Qt项目时候,编译通过,运行的时候 提示 The process was ended forcefully。有可能是因为 缺少程序运行所需的dll文件。解决方法在生成的debug目录下运行程序对应的exe文件,查看缺少哪些dll文件,一 一拷贝过来即可。...原创 2019-12-14 22:27:27 · 3056 阅读 · 0 评论 -
QThread多线程使用记录
Qt多线程使用方式继承自QThread,重写 run函数。#ifndef QTHREADTEST_H#define QTHREADTEST_H#include <QObject>#include<QThread>class QThreadTest : public QThread{ Q_OBJECTpublic: QThreadTest(...原创 2019-11-24 14:06:21 · 117 阅读 · 0 评论 -
QTableView结合QSqlQueryModel连接MySQL数据库并显示数据
一、Qt连接MySQL数据库将mysql文件lib目录下的libmysql.lib和libmysqld.dll复制到Qt5.9中的mingw53_32的bin文件下。在pro文件中添加 QT +=sql打开数据库: QSqlDatabase db = QSqlDatabase::addDatabase("QMYSQL");//MySQL数据库 db.setHostName...原创 2019-07-24 22:27:49 · 3272 阅读 · 0 评论 -
Qt之QTableWiget的基本用法总结
注意: QTableWiget 在使用前一定要设置行数以及列数 ( QTableWidget *tableWidget = new QTableWidget(15,5) 此种方法可不用)QStringList headList; headList<<"Test"<<"Value"; m_iRow = 5; m_iCol = headList.siz...原创 2019-07-01 21:09:43 · 2688 阅读 · 0 评论 -
关于Qt自动补全,无法识别补全父类函数
问题:今天换了 Qt 5.12.4 + Qt Creator 4.9.2新版本 ,之前使用的是 Qt Creator4.3 + Qt 5.9系列在重载 QWidget里面的QPaintEvent函数的时候,发现Qt无法自自动补全识别,补全快捷键采用的 tab,tab 只要键入,可以自动识别出来,但是无法识别出此函数。解决方案: 点击 Qt Cceator 菜单栏的 帮助 再点击 关于插件...原创 2019-07-27 23:27:25 · 1215 阅读 · 3 评论 -
Qt配置FFmpeg
**环境:windows7Qt:Based on Qt 5.12.4 (MSVC 2017, 64 bit)Qt Creator 4.9.2**FFmpeg:ffmpeg-4.2-win32-devffmpeg-4.2-win32-sharedffmpeg-4.2-win32-static安装:一。新建一个Qt工程二。在项目目录下新建一个ffmpeg文件夹三、将lib库...原创 2019-08-28 21:45:34 · 2108 阅读 · 1 评论