创建我的Mysql管理系统用到的好的文章

mysql时间与字符串之间相互转换

mysql的定时触发器

MySql中的变量定义

MySQL中变量的定义和变量的赋值使用(转)](https://www.cnblogs.com/EasonJim/p/7966918.html)

mysql error 1093 解决办法

mysql计算时间差函数

存储过程中包含事务

mysql 游标与事务共同使用

qt调用Mysql 带参数返回值的存储过程

页面布局 需要在编辑的一对控件的上一级控件添加他们的布局才能让他们随着窗口缩放进行尺寸的调整

Qt 之 QDateTimeEdit,弹出日历让选择日期

QT 校验控件或字符串 QValidator+QRegExp

qt中正则表达式 “\d” 要用"\d"才表示匹配一个数字。即"\“才能代表一个”"
qt 正则表达式 和 常用正则表达式应用

给QplainTextEdit不同行设置不同的颜色,只需要在插入文本之前进行如下操作即可
//创建TextCharFormat对象
QTextCharFormat fmt;
//设置文本颜色
fmt.setForeground(QColor(Qt::red));
//设置颜色
ui->plainTextEdit->mergeCurrentCharFormat(fmt);
//添加文本
ui->plainTextEdit->appendPlainText(“xxxxx”);

QTabWidget隐藏某个TAB的方法(QT技巧系列16)

解决Lost connection to MySQL server during query错误方法

QT closeEvent的使用上退出,而是跳出一个对话框,问你是否确定退出软件?
在Qt中同样提供了一个函数来实现这个功能,那就是QCloseEvent
它的具体定义是这样的:

void QMainFrame::closeEvent ( QCloseEvent * event ) [virtual protected]
实际上它就是一个虚函数~

接下来看它的具体实现:
在.h文件中加入:
protected:
void closeEvent(QCloseEvent *event);
注:添加头文件 #include
在.cpp文件中加入:

void MainWindow::closeEvent(QCloseEvent *event)
{    
	QMessageBox::StandardButton button = QMessageBox::question(this,tr("退出程序"),QString(tr("确认退出程序")),QMessageBox::Yes|QMessageBox::No);    
	if(QMessageBox::No == button)   
	 {        
	 	event->ignore(); // 忽略退出信号,程序继续进行    
	 }    	
	 else if(QMessageBox::Yes==button) 
	 {       
	 	 event->accept(); // 接受退出信号,程序退出 
	 }
}

C++框架_之Qt的信号和槽的详解

解决Qt :libpng warning: iCCP: known incorrect sRGB profile警告信息

qt中加载 png图片提示:libpng warning: iCCP: known incorrect sRGB profile

解决:
QImage img;
img.load(“1.png”);
img.save(“2.png”);

分析:
这样处理,相当于将png格式化一次,格式化成本地可识别的png图片

QT查找某个目录下指定的某种文件

QT5打开图片并显示,然后保存到数据库中

MySQL数据库要想插入图片,其字段需要是BLOB类型。
BLOB (binary large object),二进制大对象,是一个可以存储二进制文件的容器。

在计算机中,BLOB常常是数据库中用来存储二进制文件的字段类型。

BLOB是一个大文件,典型的BLOB是一张图片或一个声音文件,由于它们的尺寸,必须使用特殊的方式来处理(例如:上传、下载或者存放到一个数据库)。

MySQL中,BLOB是个类型系列,包括:TinyBlob、Blob、MediumBlob、LongBlob,这几个类型之间的唯一区别是在存储文件的最大大小上不同。
MySQL的四种BLOB类型

类型 大小(单位:字节)
TinyBlob 最大 255

Blob 最大 65K

MediumBlob 最大 16M

LongBlob 最大 4G

选择图片文件:

QString strImage = QFileDialog::getOpenFileName(
this,

"Please Select image file",

g_strCurrentDir,

"Image Format (*.png *.jpg *.bmp *.gif)");

if (strImage.isNull())

{
return;

}

g_strCurrentDir = QDir(strImage).absolutePath();

ui->labelPic->setPixmap(QPixmap(strImage).scaled(ui->labelPic->size()));
//保存图片到数据库中:
QByteArray bytes;

QBuffer buffer(&bytes);

buffer.open(QIODevice::WriteOnly);

ui->labelPic->pixmap()->save(&buffer, "JPG");

QByteArray data;

QSqlQuery query;
QString path = strImage;

QFile* file=new QFile(path); //fileName为二进制数据文件名

file->open(QIODevice::ReadOnly);
data = file->readAll();

 file->close();

Variant var(data);

QString sql = "insert into images(Image) values(?)";

 query.prepare(sql);

query.addBindValue(var);

if(!query.exec())

{

qDebug()<<query.lastError().text().toLocal8Bit().data();

}

 else

{

qDebug()<<"Insert success";
}

}



//显示数据库里的图片
     QSqlQuery q("SELECT * FROM images WHERE PicNum = 108");
   while (q.next())
    {
    if (q.isNull(0) == false)
    {
    QPixmap photo;
    ui->num->setText(q.value(0).toString());
    photo.loadFromData(q.value(1).toByteArray(), "JPG");
    ui->UserPicLabel->setPixmap(photo);
     qDebug()<<"Query success";
    }
    else
    {
        qDebug()<<"Query failed";
    }
   }
//连接数据库
#ifndef CONNECTION_H
#define CONNECTION_H
#include
#include
#include
#include
#include
#include
static bool createConnection()
{

   QSqlDatabase db =QSqlDatabase::addDatabase("QMYSQL");
   db.setDatabaseName("test");
   db.setHostName("172.17.54.133");
   db.setPort(3306);
   db.setUserName("root");
   db.setPassword("213517");
   if(!db.open())
   {
       QMessageBox::critical(0,qApp->tr("Cannot connect server"),qApp->tr("Unable to establish a database connection.\n"),QMessageBox::Cancel);
       return false;
       qDebug()<<"Connect MySql error!";
   }

   return true;

}

1M等于多少字节

1M = 1024k = 1048576字节
算法是:
1Byte(字节) = 8bit(位)
1KB = 1024Byte(字节)
1MB = 1024KB
1GB = 1024MB
1TB = 1024GB
一个汉字要占用2个字节
如果换算成中文汉字那么就是1M=524288个汉字

Qt使用QLabel显示图片及支持缩放,小玩意儿经常用而不记,经常从头来过,记之以永绝后患。

【需求】

1、使用QLabel显示图片;

2、图片随窗口/控件的大小调整自适应调整大小(保持比例)。

【实现】

1、显示图片:

QImage image(pic_file);
this->pixmap = QPixmap::fromImage(image);
ui->lb_pic->setPixmap(pixmap.scaled(ui->lb_pic->size(), Qt::KeepAspectRatio, Qt::SmoothTransformation));  // 保持比例 & 平滑缩放(无锯齿)

2、图片自适应缩放:

把QLabel放在QWidget中,QWidget不使用布局,QLabel放在左上角,查看QLabel的geometry属性,如果坐标不是(0, 0),可能有遮挡或不对称现象(不解)。

Override(重写)QWidget的上级控件MainWindow的绘制事件:

void MainWindow::paintEvent(QPaintEvent *event)
{
ui->lb_pic->resize(ui->widget->size());
ui->lb_pic->setPixmap(pixmap.scaled(ui->lb_pic->size(), Qt::KeepAspectRatio, Qt::SmoothTransformation));

QMainWindow::paintEvent(event);

}

在这里插入代码片

Qt 让Label显示图片并把图片居中

QPixmap image("./13.jpg");
 QPixmap fitpixmap=image.scaled(ui->label->size(), Qt::KeepAspectRatio, Qt::SmoothTransformation);
 ui->label->setPixmap(fitpixmap);
 ui->label->setAlignment(Qt::AlignCenter);//图片居中显示(垂直+水平)
 ui->label->show();

QT 设置应用程序图标和可执行程序图标
1, 首先准备个ICO图标。例如:myappico.ico

在工程目录下新建images文件夹并你的图标myappico.ico(只能用ico格式的图片)放到工程目录下的images文件夹下

2, 用记事本新建个文件
里面就写一行:
IDI_ICON1 ICON DISCARDABLE “/images/myappico.ico”

保存改名为 myapp.rc文件并把它放到你的QT工程项目的目录。

3, 用记事本打开你的QT工程文件(如 “myapp.pro” ),在里面最后新添2行:

OTHER_FILES += myapp.rc

RC_FILE += myapp.rc

保存,编译你的工程,嘿嘿。。成功了吧。。。

另外,setWindowTitle(tr(“图片浏览器”));//可执行程序标题

setWindowIcon(QIcon(":/icons/qt-logo.png"));//可执行程序图标

https://blog.csdn.net/qustdjx/article/details/7518200 QT XML文件 修改节点

Qt5 对xml文件常用的操作(读写,增删改查) https://blog.csdn.net/hpu11/article/details/80227093/

mysql使用truncate截断带有外键的表时报错–解决方案
报错内容如:1701 - Cannot truncate a table referenced in a foreign key constraint

一、为什么要使用truncate

使用truncate截断表速度快,不仅可以清空表数据,而且可以使自增列重新从1开始

二、出现错误的原因

Mysql中如果表和表之间建立了外键约束,则无法删除表及修改表结构

三、解决方案

在Mysql中取消外键约束: SET FOREIGN_KEY_CHECKS=0;

执行 truncate tablename

然后再设置外键约束: SET FOREIGN_KEY_CHECKS=1;

使用 Inno Setup打包程序

在这里插入图片描述
在这里插入图片描述
注意包含子目录包含路径,以及inno setup中文版帮助手册

Qt Mysql超时断开后自动重连完美解决方法

网上找了很多解决办法,几乎没有一个能完美解决问题的,大体都是首先执行一段query后看返回结果,但这个办法也太无用和耗费资源了吧…因为断开后isOpen和isValid都会返回true,所以不能从这里入手,搜了一下其他软件的解决方法,Mysql倒是有个Option可以设置,将MYSQL_OPT_RECONNECT设置为1即可以自动重连!OK,继续看Qt的帮助,找了一下相关函数,果然有个setConnectOptions函数,而且帮助上将可设置的选项列的很详细,有MYSQL_OPT_RECONNECT这个选项,完美!加一行代码:

m_db.setConnectOptions("MYSQL_OPT_RECONNECT=1;");

Mysql 如何备份与还原数据库(在Mysql Workbench)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值