自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(62)
  • 收藏
  • 关注

原创 qt: 获取sql数据表的所有的字段;

1、 mysql 数据库;转载:https://www.cnblogs.com/fuqia/p/8994080.htmlmysql安装成功后可以看到已经存在mysql、information_schema和test这个几个数据库。information_schema库中有一个名为COLUMNS的表,这个表中记录了数据库中所有表的字段信息。知道这个表后,获取任意表的字段就只需要一条select语句即可。例如:select COLUMN_NAME from information_sch.

2020-08-22 20:54:59 2709 1

原创 sql和sqlite常用查询语句

首先,查找某字段的最大值select max(weight) from apple;7888接着,根据最大值,查找其所在行select * from apple where weight =7888;或者,有一个更简单的方式:select * from apple order by weight desc limit 1;...

2020-08-22 20:54:28 267

原创 QT+SQLite 判断表中是否含有指定字段

// 判断表 CaseHistory 中是否有字段 SuccessRate QString strSql = QString::fromLocal8Bit("select * from sqlite_master where name='CaseHistory' and sql like '%SuccessRate%'"); QSqlQuery query; query.exec(strSql); if (!query.next()) { // 无Suc..

2020-08-22 20:53:51 941

原创 Qt 错误: 无法启动此程序 因为计算机丢失QtCore5.dll

首先,设置计算机的环境变量Path,计算机=》右键属性=》高级设置=》环境变量=》系统变量=》双击Path,在Path后面增加C:\Qt\Qt5.8.0\5.8\mingw53_32\bin。

2020-08-22 20:53:23 1513

原创 QList 列表指针的操作 释放

1,使用qDeleteAll() QList<T*> list;qDeleteAll(list); list = NULL; QList<T*> *listp; qDeleteAll(*list); listp->clear(); listp = NULL;2.通过遍历列表对列表一个一个的释放。在释放指针的同时把值清空,赋值为BULL 避免野指针。QList<T *> *qLi...

2020-08-21 22:46:25 4416

原创 QT中文件操作

最近在做QT东西时遇到在指定路径下创建文件,发现qt中没有直接用的。主要通过自定义一个createFile()函数来实现,其中需要用到<QFile> <QDir> <QDebug>头文件。为了测试方便,使用QDebug来进行信息点输出。 1 void createFile(QString filePath,QString fileName) 2 { 3 QDir tempDir; 4 //临时保存程序当前路径 5 QStr

2020-08-21 22:46:10 462

原创 QSqlQuery类操作SQLite(创建、查询、删除、修改)详解

Qt 提供了 QtSql 模块来提供平台独立的基于 SQL 的数据库操作。这里我们所说的“平台 独立”,既包括操作系统平台,也包括各个数据库平台,Qt支持以下几种数据库:QT自带SQLITE数据库,不需要再安装 QTDS在Qt4.7起已经被移除1.QtSql要使用QtSql 模块的话,需要在.pro文件中添加这么一句:QT += sql 2.QSqlDatabaseQSqlDatabase类提供了一个接口,用于通过连接访问数据。QSqlDatabase的一个实例表示连接。该连.

2020-08-21 22:46:00 9566 2

原创 QT中信号和信号槽详解

如何选择QDialogButtonBox的信号与槽1、UI中设计了一个QDialogButtonBox,按钮为Cancel和Apply;2、构造函数连接:connect(ui->buttonBox, SIGNAL(accepted()), this, SLOT(slotButtonA()));connect(ui->buttonBox, SIGNAL(rejected()), this, SLOT(slotButtonB()));以上Cancel按钮能成功响应slotButtonB(

2020-08-21 22:45:50 2642

原创 QTableView操作 双击 单机事件信号

双击QTableView的行,获取该行数据代码如下,请注意参数类型匹配 connect(dataTabView_, SIGNAL(doubleClicked(const QModelIndex &)), this, SLOT(slotRowDoubleClicked(const QModelIndex &))); void ABED::rowDoubleClicked(const QModelIndex index) {...

2020-08-21 22:45:37 8811

原创 Qt中QPainter基本绘图

QWidget 派系的只能在paintEvent中进行重绘;如果你想要很好的交互功能的话推荐QGraphicsView框架,自定义Item的绘制在paint函数;如果你想利用线程绘制的话,你可以创建个QPixmap或者QImage,然后在把图片当画布在线程中绘制。Qt的绘图系统基于 QPainter QPaintDevice 和 QPaintEngine类1). QPainter : 用于绘图操作的类2).QPaintDevice : 可以使用QPainter进行绘图的抽象的二维界面3...

2020-08-21 22:45:16 1878

原创 sqlite使用模糊查询数据库数据的三种方式

android应用开发中常常需要记录一下数据,而在查询的时候如何实现模糊查询呢?很少有文章来做这样的介绍,所以这里简单的介绍下三种sqlite的模糊查询方式,直接上代码把: package com.example.utils; importjava.util.ArrayList; import android.content.ContentValues; import android.content.Context; import android.database.

2020-08-21 22:44:53 3599

原创 QT的系统总结(非常全面)

阅读目录编译环境与开发流程 QT项目的构成及原理 QT中的布局 QT中的通用控件 QVariant 类型 QComboBox控件 QTableWidget控件 QTabWidget控件 QWebview控件 使用QSS 编码问题 QT的内存管理 QT的信号槽 QT中绘图 QT的线程 QT中使用第三方的dll QT中为控件添加右键菜单的方法 结束语回到顶部编译环境与开发流程开发QT有两种IDE可以使用,一种是使用 VS + Qt 的插件,另一种就是使用Qt.

2020-08-21 22:44:31 616

原创 qt中layout布局等实例汇总

#include "mainwindow.h"#include "ui_mainwindow.h"#include "db_addform.h"#include <QDesktopWidget>#include<QPainter>#include<QPoint>#include<QImage>#include<QPixmap>#include<QBitmap>#include&lt.

2020-08-21 22:41:25 1019 1

原创 Qt中的事件处理机制

思维导读 一、事件简介 二、QT事件产生 三、Qt事件处理 四、自定义事件和eventFilter示例回到顶部思维导读  回到顶部一、事件简介  QT程序是事件驱动的, 程序的每个动作都是由内部某个事件所触发。QT事件的发生和处理成为程序运行的主线,存在于程序整个生命周期。  常见的QT事件类型如下: 键盘事件: 按键按下和松开 鼠标事件: 鼠标移动,鼠标按键的按下和松开 拖放事件: 用鼠标进行拖放 滚轮事件: 鼠标滚轮滚动...

2020-08-20 21:54:16 972

原创 c++中关于SQLite中文乱码的解决方法

在使用SQLite的过程中(c++),如果创建一个表,如果SQL语句中包含中文字符,就会报错;如果是从数据库表中查询数据,如果数据库表中的某些字段为中文,查询结果也不能正常显示,出现这种情况的原因是因为SQLite的编码与工程的编码不一致造成的。Sqlite的编码默认为UTF-8编码,而vc++工程中所编写的SQL语句,可能是Unciode或者ASCII码,特别是ASCII码,如果不进行转换,写入数据库以及从数据库中读出的数,都会是乱码(只针对中文字符),因此,本文主要写一下各种编码下的编码转换:

2020-08-20 21:51:55 1985

原创 QT中父子窗口事件传递与事件过滤器

 处理监控系统的时候遇到问题,在MainWidget中创建多个子Widget的时候,原意是想鼠标点击先让MainWidget截获处理后再分派给子Widget去处理,但调试后发现如果子Widget重新实现了事件方法,就直接处理掉事件了,没有进到MainWidget的处理方法中去,如果子Widget没有accept或ignore该事件,则该事件就会被传递给其父亲,在子Widget存在accept或ignore事件的时候,想要经过一下MainWidget的处理方法,就得用到事件处理器,因此网上找了一下,发现QT的

2020-08-20 21:48:28 2855

原创 Qt之事件处理机制

思维导读 一、事件简介 二、QT事件产生 三、Qt事件处理 四、自定义事件和eventFilter示例思维导读  回到顶部一、事件简介  QT程序是事件驱动的, 程序的每个动作都是由内部某个事件所触发。QT事件的发生和处理成为程序运行的主线,存在于程序整个生命周期。  常见的QT事件类型如下: 键盘事件: 按键按下和松开 鼠标事件: 鼠标移动,鼠标按键的按下和松开 拖放事件: 用鼠标进行拖放 滚轮事件: 鼠标滚轮滚动 ...

2020-08-20 21:48:12 510

原创 Qt中在控件上绘图

1.总述Qt的要在当前类对应的窗口上绘图一般需要重写paintEvent函数,但是Qt的事件过滤器默认是把父窗口下子控件的绘图事件给过滤了的,因此重写父窗口的paintEvent函数是无法在子控件上进行绘图的,下面举一个例子。 1 void MainWindow::myDraw(QLabel * label) 2 { 3 QPainter painter(label); 4 painter.setPen(Qt::gray); 5 painter.set.

2020-08-20 21:40:20 1709

原创 Qt中QPainter基本绘图

QWidget 派系的只能在paintEvent中进行重绘;如果你想要很好的交互功能的话推荐QGraphicsView框架,自定义Item的绘制在paint函数;如果你想利用线程绘制的话,你可以创建个QPixmap或者QImage,然后在把图片当画布在线程中绘制。 Qt的绘图系统基于 QPainter QPaintDevice 和 QPaintEngine类1). QPainter : 用于绘图操作的类2).QPaintDevice : 可以使用QPainter进行绘图的抽象的二维界面...

2020-08-20 21:39:39 1616

原创 Qt中在控件上绘图

1.总述Qt的要在当前类对应的窗口上绘图一般需要重写paintEvent函数,但是Qt的事件过滤器默认是把父窗口下子控件的绘图事件给过滤了的,因此重写父窗口的paintEvent函数是无法在子控件上进行绘图的,下面举一个例子。 1 void MainWindow::myDraw(QLabel * label) 2 { 3 QPainter painter(label); 4 painter.setPen(Qt::gray); 5 painter.set.

2020-08-20 21:22:05 1271

原创 Qt中线程使用汇总

QThread类提供一种独立于平台的线程管理方式。方法1一个QThread实例管理程序中的一个线程。QThread的执行开始于run()。默认情况下,run()通过调用exec()启动事件循环,并在线程内运行Qt事件循环。   你可以使用QObject::moveToThread()将工作对象移动到线程中使用。示例:class Worker : public QObject{ Q_OBJECTpublic slots: void doWork(const ...

2020-08-20 21:18:56 822 1

原创 Qt信号槽问题汇总

1. 发送一次信号,调用多次槽函数问题在同一个类中,多次链接QObject::connect(sender, SIGNAL(signalSender(QString, int)), receiver, SLOT(onSignalSender(QString, int))); 会导致发送一次信号signalSender(QString, int) 多次调用槽函数(onSignalSender(QString, int),如果链接了一次,那么,发送一次signalSender信号,就调用一次onSignalS

2020-08-20 21:18:28 1042

原创 C语言中指针动态内存的申请和释放

什么是动态内存的申请和释放?当程序运行到需要一个动态变量时,需要向系统的堆中申请一块内存,用来存储这块变量,这就是内存的申请。当程序不需要这个变量时,就需要把申请的这块内存释放掉,这就是内存的释放。往往内存的申请和释放是一起使用的,只要有内存的申请,就要有内存的释放,避免出现内存泄漏。C语言指针的申请:(1).在C语言中使用malloc函数申请内存,函数原形:void* malloc(size_t size);参数size代表申请的内存的字节数,参数size_t代表指针的...

2020-08-20 21:10:28 19143

原创 QT5完成一个数据实时显示控制的Demo

使用QT5完成一个数据实时显示控制的Demo TestUiTheme-pro main.cpp mainwindow.h mainwindow.cpp themewidget.h themewidget.cpp 总结 项目的需要,需要使用qt编写一个arm端的图形操作界面,完成雷达数据实时动态显示以及控制的功能,数据是自己模拟的,是xy坐标的点数据。先在window版本的qt上搭建简单框架测试通过,如下:TestUiTheme-pro.

2020-08-19 21:43:03 1461 1

原创 QT中的模态对话框及非模态对话框

模态对话框(Modal Dialog)与非模态对话框(Modeless Dialog)的概念不是Qt所独有的,在各种不同的平台下都存在。又有叫法是称为模式对话框,无模式对话框等。所谓模态对话框就是在其没有被关闭之前,用户不能与同一个应用程序的其他窗口进行交互,直到该对话框关闭。对于非模态对话框,当被打开时,用户既可选择和该对话框进行交互,也可以选择同应用程序的其他窗口交互。在Qt中,显示一个对话框一般有两种方式,一种是使用exec()方法,它总是以模态来显示对话框;另一种是使用show()方法,它使得对

2020-08-19 21:35:13 3529 2

原创 QT中全局变量的定义和使用

多的就不说了,本来就是一个简单地内容,只是不会的话会很头疼我们首先新建两个文件,文件名可以自定义,我们在这里定义为variate.h 和 variate.cpp 当然了,后缀是不能变的。和函数一样,我们在variate.h中对全局变量进行声明,注意,extern 是不能遗漏的 1 2 3 4 5 #ifndef VARIATE_H #define VARIATE_H externintnum01; ex...

2020-08-19 21:22:52 19089 3

原创 Qt 程序获取各种文件路径方法

Qt 程序获取程序所在路径、用户目录路径、临时文件夹等特殊路径的方法经常我们的程序中需要访问一些特殊的路径,比如程序所在的路径、用户目录路径、临时文件夹等。在 Qt 中实现这几个功能所用的方法虽然都不难,但是各不相同,每次用到时还要现去查,很不方便。因此就写了这篇博客,把这几种需求的实现方式总结了一下。算是个备忘录吧。程序所在路径获取程序所在路径,QCoreApplication 类里就实现了相关的功能:QString QCoreApplication::applicationDirPat

2020-08-19 21:17:38 4705

原创 qt中Qtableview的用法

QTableView常用于实现数据的表格显示。下面我们如何按步骤实现学生信息表格:一添加表头//准备数据模型QStandardItemModel*student_model=newQStandardItemModel();student_model->setHorizontalHeaderItem(0,newQStandardItem(QObject::tr("Name")));student_model->setHorizontalH...

2020-08-19 21:15:56 20113

原创 QT中的容器遍历

Qt的容器类提供了两种风格的遍历器:Java风格和STL风格。Java风格的遍历器Java风格的遍历器是在Qt4首先引入的,是Qt应用程序首先推荐使用的形式。这种风格比起STL风格的遍历器更方便。方便的代价就是不如后者高效。Java 风格的遍历器指向的是两个元素之间的位置,而不是指向元素本身。因此,它们可能会指向集合第一个元素之前的位置,也可能指向集合的最后一个元素之后的位置,每一种容器都有两种Java风格的遍历器:一种提供只读访问,一种提供读写访问:...

2020-08-19 21:12:16 514

原创 QT操作sqlite数据库汇总

QT自带的QSqlite数据库中实现id主键自增长QSqlite是QT自带的轻量级数据库,使用起来非常方便,对系统环境也没有任何的环境要求,可移植性非常好,适合数据量不是太大,要求不是太高的程序。本文中,就介绍一点,怎么实现在QSqlite中的数据表实现id自增长,方法很简单。一、创建数据表时,主键设置为id,并且数据类型设置为integer。设置成integer的主键,默认自增长。create table m_table (id integer primary key,m_equip varchar

2020-08-19 21:09:11 1503

原创 QT操作sqlite概念

SQLite数据库 '增、删、改、查'1. 数据库简介数据库指的是以一定方式存储在一起,能为多个用户共享,具有尽可能小的冗余度的特点,是与应用程序彼此独立的数据集合。// 一定方式:可以理解为策略、算法// 网盘相同的文件是以 MD5 码的形式标记相同的文件,以网络共享。2. 和数据相关的术语DBMS'数据库管理系统'DBA'数据库管理员'DB'数据库'RDB'关系型数据库'RDBMS'关系型数据库管理系统'3. 数据分类层次型数据库 - 有序二叉树...

2020-08-19 21:08:57 204

原创 qt中数据库操作总结

#include <QtSql>QT += sqlQSqlDatabase类实现了数据库连接的操作QSqlQuery类用来执行SQL语句QSqlRecord类 封装数据库所有记录第一:QSqlDatabase类QSqlDatabase db = QSqlDatabase::addDatabase("QSQLITE"); 采用QSQLITE数据库,QMYSQL数据库有问题?db.setHostName("localhost"); //设置数据库主机名db.setDataba..

2020-08-19 21:01:34 4025

原创 QT中的集合

QT核心编程之集合类是本篇要介绍的内容。QT核心编程我们要分几个部分来介绍,想参考更多内容,请看末尾的编辑推荐进行详细阅读,先来看本篇内容。一个集合类是装有多个条目的容器,每个条目是某种数据结构,集合类能执行对容器中的条目的插入、删除及查找等操作。Qt有几个基于值和基于指针的集合类。基于指针的集合类使用指向条目的指针来工作,而基于值的集合类存储着它们条目的拷贝。基于值的集合类类似于STL容器类,能和STL算法和容器一起使用。基于值的集合类说明如表4所示:表4 基于值的集合类表基于指针

2020-08-19 21:00:07 3375

原创 Qt下Sqlite数据库操作

Sqlite数据库作为Qt项目开发中经常使用的一个轻量级的数据库,可以说是兼容性相对比较好的数据库之一(Sqlite就像Qt的亲儿子,如同微软兼容Access数据库一样)。关于Sqlite和Qt的千丝万缕的故事,有机会再说(各位看官查一查也可以自己search一下)。这里简单说说Sqlite数据库的用法吧。一、sql语句和部分接口函数1、在.pro文件中记得增加 :QT += core gui sql2、sqlite数据库的增删查改【接口函数参见代码】...

2020-08-17 22:04:06 827

原创 Qt设置QWidget背景色4种方法

QWidget是所有用户界面对象的基类,这意味着可以用同样的方法为其它子类控件改变背景颜色。Qt中窗口背景的设置,下面介绍三种方法。1.使用QPalette2.使用Style Sheet3.绘图事件一般我不用QSS设置窗口背景,也不建议使用。(这里是对于窗口而,如果是子部件当然可以)。因为窗口使用QSS设置背景之后,若子部件不使用同样的方式来设置,默认则会继承父窗口的样式。使用QPalette使用QPalette来设置背景色m_pWidget = new QWidget(this);m_p

2020-08-17 22:01:02 4258

原创 2020-08-17

//光标定位到QPainter类名上,然后按下键盘上的F1按键,这时会自动跳转到该类的帮助页面1、新建Qt Gui应用,名为MainWindow,基类为QMainWindow。2、修改mainwindow.h#ifndef MAINWINDOW_H#define MAINWINDOW_H#include <QMainWindow>class MainWindow : public QMainWindow{ Q_OBJECTpublic: MainWi

2020-08-17 21:58:24 83

原创 Qt中在控件上绘图

1.总述Qt的要在当前类对应的窗口上绘图一般需要重写paintEvent函数,但是Qt的事件过滤器默认是把父窗口下子控件的绘图事件给过滤了的,因此重写父窗口的paintEvent函数是无法在子控件上进行绘图的,下面举一个例子。 1 void MainWindow::myDraw(QLabel * label) 2 { 3 QPainter painter(label); 4 painter.setPen(Qt::gray); 5 painter.set.

2020-08-17 21:55:47 5726 1

原创 Qt--基础图形绘制

一.基础图形绘制A.Qt图形系统中的关键角色QPainter--Qt中的画家,能够绘制各种基础图形 ,拥有绘图所需的画笔、画刷、字体QPaintDevice--Qt中的画布,画家的绘图板,所有的QWidget类都继承自QPaintDeviceQt图形系统中的关键角色Qt中所使用的工具1.QPen-用于绘制几何图形的边缘,由颜色、宽度、线风格等参数组成2.QBrush-用于填充几何图形的调色板,由颜色和填充风格组成3.QFont-用于文本绘制,由字体属性组成需要注意的是--只能在QWidget::

2020-08-17 21:22:02 876

原创 QT 中的 Graphics View 系统

这个框架是一个相对成熟的渲染引擎的上层框架,通常也可以会叫做 Scene - View。在QT中,GraphicsView是一个与QWdiget系列一点点不一样的系统。这个系统主要由下面几个框架类构成:QGraphicsView, QGraphicsScene, QGraphicsItemQGrahpicsView是从原生的QWidget继承过来,QGraphics-View系统中,他承担的也是视口的指责,Viewport,Viewport相当于显示设备的一个矩形区域。QGraphi..

2020-08-17 21:21:49 2437

原创 QT 中QPainter绘制文字、图片

1. 把字符串绘制在QPixmap上 QPixmap MainWindow::text2Pixmap(QString text) { QFontMetrics fmt(m_font); QPixmap result(fmt.width(text), fmt.height()); QRect rect(0,0,fmt.width(text), fmt.height()); result.fill(Qt::transparent); ..

2020-08-17 21:15:46 3093

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除