`
yanfaguanli
  • 浏览: 679296 次
文章分类
社区版块
存档分类
最新评论

一个用QT写的从MySql导出数据到文本文件的程序

 
阅读更多

程序非常简单,但是俺也从中学到不少东西。有关于QT的小技巧,也有关于MySql的使用。这里记录下来备忘。

1、快速的用QT搭出一个程序的框架。(在集成了Qt插件的vs2008下)

双击Form Files下的xxx.ui可以进行界面的编辑。拖拽几个按钮,全选它们,右键菜单中选择Lay out,这样就可以使用布局管理自动的对按钮、标签进行排版了。

点击一个控件,右键菜单选择Connect Signal,QT会自动在主窗口创建on_CtrlName_event()这样的Slot,比如,on_btnFileSave_clicked()。

Qt设计师会自动在主窗口生成一个Ui::XXXClass ui;的成员变量。在主窗口中,我们可以以ui.CtrlName这样的形式来对控件进行操作,比如更改控件名字等。

在主窗口构造函数中会调用 ui.setupUi(this); setupUi是QT设计师根据ui文件的编辑自动生成的函数,并且在函数最后会调用

QMetaObject::connectSlotsByName(xxxClass); 这个函数把控件的singal和我们之前用Qt设计师创建的slot连接起来。

QT中父窗口会自动调用子窗口、控件的show,所以如果自己添加一个QWidget的话,要保证他的父窗口是可以正常显示的。

知道以上几步,已经可以写一个QT程序了,因为很多时候我们要做的小工具仅仅一个标签、一个输入框、一个按钮就足够了。剩下的就是在实现程序的过程中,不断加深对QT的熟悉程度与理解。

2、从MySql中导出数据。 如何搭建一个MySql数据库不在这里讨论。事实上,任何一个MySql客户端都可以很方便的从MySql中筛选、导出数据,由于这个工具是要给非专业人员使用的,并且会经常使用,所以需要单独写一个小工具。 这个工具要完成指定功能:把Mysql的一张表进行拆分,写入到两个文件中,并对两个文件进行加密。这个工具要足够简单:只需要一个按钮就可以完成所有操作,这可以降低工作中犯错误的机会。

虽然MySql提供了很多函数,但是我们只需要用到其中的几个而已(事实上,一开始我使用的是QtSql,并且还捣鼓了半天mySql驱动,但是由于qt的封装考虑的是抽象、是数据库无关,并且它在从Mysql中获取数据后还会进行存储和转换,所以当我写完导出数据时发现,导出一张1w条数据的表耗时竟然超过了20秒。当然,这也可能和我保存数据时使用字符串相加有关)

MySql的基本使用方法:

3、qt中一些杂项的简单用法:

a、QSettings 可以对windows下ini配置文件和注册表进行读写

QSettings config(fileName, QSettings::IniFormat);

hostName = config.value(tr("DefaultConfig/HostName"), tr("127.0.0.1")).toString();

config.setValue(tr("DefaultConfig/HostName"), hostName);

b、QDir 目录操作

// 判断outDir目录是否存在,不存在则创建

QDir dir = QDir::current();

if (!dir.exists(outDir)) {

dir.mkdir(outDir);

}

// 列出当前目录下指定文件名

QDir dir = QDir::current();

QStringList filter;

filter.append("config*.ini"); // 过滤出类似 config_cn.ini config_2.ini这样的配置文件

QStringList lst = dir.entryList(filter);

c、设置QT正常显示中文

在 main函数中

QTextCodec* codec = QTextCodec::codecForName("gbk");

QTextCodec::setCodecForTr(codec); // tr()就可以正常对中文进行转换了

QTextCodec::setCodecForCStrings(codec); // QString str = "中文"; 这样的写法就正常了

d、限制程序的放大缩小

// 主窗口构造时传参数

MyMainWindow w(0, Qt::WindowCloseButtonHint); // 不显示最大化、最小化按钮

w.setFixedSize(w.width(), w.height()); // 不可对程序进行拖拽,改变大小

e、修改程序icon

新建一个rc文件如,Icon.rc,里面添加 IDI_ICON1 ICON DISCARDABLE "Res//Icon.ico"

引号中的是图片目录

在vs2008的工程中,Resource Files下添加此文件

重新编译工程就好了。

分享到:
评论

相关推荐

    C++课设作业:股票管理系统orz(使用Qt+MySQL).zip

    这是一个基于C++、Qt框架和MySQL数据库的股票管理系统项目,主要目标是实现对股票数据的管理、查询和分析功能。这个系统可能包含了以下关键知识点: 1. C++编程语言:作为项目的开发基础,C++提供了面向对象编程的...

    Qt开发及实例,涉及QT各模块

    在"qt项目开发实例"中,开发者可能会遇到各种实际问题,如创建第一个Qt应用程序、设计用户界面、实现业务逻辑、数据持久化、网络通信等。以下是一些常见实例: 1. **创建基本应用**:使用`qmake`或CMake构建项目,...

    基于qt的学生信息管理系统

    最后,考虑到错误处理和异常安全,Qt提供了QCoreApplication::quitOnLastWindowClosed方法来确保程序在最后一个窗口关闭时退出,以及QException类来处理运行时错误。良好的错误处理策略能提高系统的稳定性和可靠性。...

    Qt报表软件介绍cutereport

    Cutereport是一款基于Qt库开发的开源报表软件,它为开发者提供了一个强大的工具来设计、创建和展示数据报告。Qt是一个跨平台的应用程序开发框架,广泛用于创建桌面、移动和嵌入式系统的用户界面。Cutereport与Qt的...

    Qt的学生管理系统

    QT,全称为Qt Application Framework,是由Trolltech(现为The Qt Company)开发的一个跨平台的应用程序开发框架,支持Windows、Linux、macOS等多个操作系统。它提供了丰富的图形用户界面(GUI)组件和强大的网络...

    C语言程序大作业:基于qt制作学生信息管理系统.zip

    本项目以"C语言程序大作业:基于qt制作学生信息管理系统.zip"为主题,旨在通过实际的编程实践,展示如何利用C语言和Qt框架来构建这样一个系统。Qt是一个跨平台的应用开发框架,广泛应用于桌面、移动和嵌入式设备。而...

    Qt日常积累的编程零散知识

    - 使用`windeployqt`工具,跳转到exe目录下执行`windeployqt 程序名`,该工具会自动查找并复制所需依赖文件。 11. **qobject_cast使用**: - `qobject_cast`用于类型转换,安全地将QObject子类对象向下转型。必须...

    QT creator 教程

    - **XML 支持**:将数据库中的数据导出为 XML 格式,或从 XML 文件导入数据。 #### 三十二至三十九、Qt Quick 及 QML - **QML 简介**:了解 Qt Quick 技术及 QML 语言的基础知识。 - **QML 设计器**:使用 Qt ...

    C++用QT设计界面的图形化学生管理系统源码

    本项目“C++用QT设计界面的图形化学生管理系统源码”旨在教你如何利用QT库构建一个功能完备的学生管理系统,这将涉及到以下几个重要的知识点: 1. **QT库的安装与配置**:首先,你需要在你的开发环境中安装QT库,并...

    零基础学Qt4编程

    数据库访问也是Qt4的一个重要组成部分,通过QSqlDatabase和相关的查询类,可以轻松地连接和操作多种类型的数据库,如SQLite、MySQL等。数据库操作包括建立连接、执行SQL语句、处理结果集等。 除此之外,Qt4还支持多...

    基于QT构建的酒水存取系统.zip

    7. 文件I/O:如果系统支持导入导出库存数据,将涉及到文件读写操作,如使用`QFile`和`QTextStream`类进行文本文件处理。 学习这个项目,可以深入理解QT的GUI编程、数据库操作、事件驱动编程等技术,并锻炼项目组织...

    基于Qt的文献管理系统.zip

    《基于Qt的文献管理系统》是一款使用QT框架开发的软件项目,旨在提供一个高效、便捷的文献管理解决方案。这款系统能够帮助用户整理、检索和管理大量的学术文献,适用于毕业设计、课程设计以及个人学习等多个场景。 ...

    基于Qt的学生信息管理系统.zip

    【基于Qt的学生信息管理系统】是一个典型的计算机类毕业设计项目,主要使用了Qt框架进行开发,结合数据库技术实现了一个用于管理学生信息的系统。Qt是一个跨平台的C++图形用户界面应用程序开发框架,它提供了丰富的...

    基于QT实现的工资管理系统.rar

    QT Designer工具允许可视化设计UI,将设计好的界面导出为.ui文件,然后使用uic编译器转换为C++代码,方便集成到项目中。 【数据库连接】 工资管理系统通常需要与数据库交互,存储和检索员工信息及工资数据。QT提供...

    精选_基于QT的英文文献的编辑与检索系统的实现_源码打包

    【标题】"精选_基于QT的英文文献的编辑与检索系统的实现_源码打包" 提供了一个关于使用QT开发的英文文献编辑与检索系统。QT是一个跨平台的应用程序开发框架,由Qt Company维护,广泛应用于桌面、移动以及嵌入式设备...

    基于Qt的简易内部电子邮件系统.zip

    【基于Qt的简易内部电子邮件系统】是一个使用C++编程语言,并结合了Qt库进行开发的应用程序。Qt是一个跨平台的开发框架,广泛用于创建桌面、移动以及嵌入式应用程序。这个项目的核心目标是构建一个简单易用的内部...

    QT实现的学生信息管理系统,高程大作业.zip

    QT是一种跨平台的应用程序开发框架,由Qt Company提供,广泛应用于桌面、移动和嵌入式平台,采用C++语言编写,提供了丰富的API和图形用户界面(GUI)工具,使得开发者能够轻松构建功能丰富的应用程序。 在这个系统...

    List Folders:列出选定本地目录的文件和子文件夹-开源

    该程序允许选择本地文件系统目录并获取其所有文件和子文件夹,然后可以将其导出为文本文件或特殊的树格式文件(JSON 类型)。 此 JSON 文件可用于使用 jQuery 的 jsTree 插件或内部程序 Tree Viewer 在树视图中探索...

Global site tag (gtag.js) - Google Analytics