程序非常简单,但是俺也从中学到不少东西。有关于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下添加此文件
重新编译工程就好了。
分享到:
相关推荐
QT导出EXCEL,从tableWidget列表获取数据导出到excel文件。导出过程使用了excel模板文件,可以从tableWidget读取固定的几列数据导出到excel文件中。其中excel事先设置好文件格式,后续直接读数写数即可。开发过程...
原文为《Qt中将QTableView中的数据导出为Excel文件>>,地址http://blog.csdn.net/superjoel/article/details/5321404,资源比较难下载,我下载好帮作者上传下。实例可用,简单易懂,对于QTableView导出为excel...
Qt中将sqlite表中的数据导出为csv表格形式,代码调用方便,整体代码包含了数据库的增删改查,tableview显示sqlite,代码较完整。开发环境为ubuntu+qt5.6.1在win7+qt5.6.1下也没问题。
ts翻译文件导出为excel。qt5.5编译。包含代码及可执行程序。
Qt将Sqlite中的数据导出为Excel,支持自动判断行列,可在项目中直接使用
文本文件是指以纯文本格式存储的文件,例如用QtCreator编写的c++程序的头文件(.h文件)和源程序文件(.cpp文件)。HTML和XML文件也是纯文本文件,只是其读取之后需要对内容进行解析之后再显示。 Qt提供了两种读写...
使用QT实现将数据逐行写入到txt文件中,也可以清除文件中的内容
作者项目开发的程序中要实现将程序中数据,包含图片要导出到EXCEL表格中,图片要根据不同数据对应到不同的单元格中,经过5天研究参看大量网络例子及思考,完成了导出图片到指定单元格编码实现。希望看官5分钟搞定...
原文为《Qt中将QTableView中的数据导出为Excel文件>>,地址http://blog.csdn.net/superjoel/article/details/5321404。代码为QT4,QT5有些问题,因为只是参考里面的代码,就不是很在意。
QT使用结构体生成读写配置文件数据代码
附带一个QT小程序,有详细实现步骤和Notepad2 说明:把notepad2的程序放Debug或者release目录下(注意:这里notepad2程序的文件夹要和你的运行的*.exe文件放在同一级目录下,不然notepad2很难启动成功)
用qt 实现删除文本文件中一行,deleteonelineinfile(int nNumLine, QString & filename);输入文件名和删除的行号可以删除。行号是0到行数减一。
QT中MYSQL数据库数据导出为CSV
在本节中,我们将尝试编写一个简单的文本文件编辑器,我们将使用QFileDialog来打开一个文本文件,并将修改过的文件保存到硬盘。这或许是我们在本系列中所提供的第一个带有实际功能的实例。我们在菜单和工具栏添加了...
qt 将数据存入优盘的两种方法 方式1: 检测Windows的事件–WM_DEVICECHANGE 缺点:想要检测时,必须发生过一次U盘插拔动作,需要手动“触发”才能成功扫描到U盘。并且每次只能检测变动(插拔)的U盘,无法检测插了...
Qt6.5.0MySQL驱动文件已编译版本,直接拿来拷贝进驱动文件夹就能用。不需要繁琐的编译过程。下面为资源文件树状图。 ├─mingw_64QMySQL驱动文件 │ qsqlmysql.debug │ qsqlmysql.dll │ ├─msvc2019_64QMySQL...
运用Qt框架实现将数据库里面的表内容导出为Excel表,数据库里面有多少张表,导出的Excel文件里对应多少张表,可供学习或研究
Qt 从应用程序拖动文件到其他地方。
利用Qt5代码在VS2010中通过线程QThread读取MySql后台数据库代码显示在界面上!
Qt读写Xml文件,QTreeWidget显示Xml和导出Xml文件