PyQt4 ShowHMDB show sqlite3 with QTableWidget summary
PyQt4 ShowHMDB show sqlite3 with QTableWidget summary
Source Code: https://github.com/zengjfgit/Python
1. QDialog固定窗口大小:
self.setFixedHeight(self.height())
self.setFixedWidth(self.width())
2. QDialog设置窗口无问号:
self.setWindowFlags(self.windowFlags() & ~Qt.WindowContextHelpButtonHint)
3. QFileDialog获取数据库文件路径:
path = QFileDialog.getOpenFileName( self, "Select Files", ".", "*.db" )
if ( QFileInfo(path).completeSuffix().compare("db") == 0 ) :
self.ui.dbPath.setText(path)
elif ( path.compare("") == 0 ) :
self.ui.dbPath.setText("")
else :
QMessageBox.about(self, "Mesg","Please open DB file with .db suffix. ")
4. ShowHMDB主要使用了QTableWidget进行Sqlite数据数据显示。
5. 设置QTableWidget列宽的方法,这里采用硬编码(罪过):
self.ui.dbData.setColumnWidth(0, 83)
6. 处理按钮信号,槽函数一定不要打括号:
self.ui.getPath.clicked.connect(self.getHMDBPath)
7. 清除QTableWidget中数据:
self.ui.dbData.clearContents()
self.ui.dbData.setRowCount(0)
8. QTableWidget中的列宽是随时设置的,并不是一成不变的,这样可以解决无数据的时候
列宽和有数据时列宽不一致的问题:
9. sqlite3库并不含hasnext()这样的方法,至少目前未找到更好的方法,所以这里采用这种
方式获取数据:
current = cursor.fetchone()
while ( current ) :
......
current = cursor.fetchone()
10. 获取数据库中具有record记录总数:
cursor.execute('select count(*) from HardwareManager')
hmDBRecord = cursor.fetchone()[0]
11. 在往QTableWidget中加入Item之前,一定要row的计数器,否则插入的Item显示不出来,
这也是为什么需要去先查询数据库中总的record的总数的原因:
self.ui.dbData.setRowCount(hmDBRecord)
12. QTableWidgetItem传入的是QString,如果直接给current[0],代表的数字对应的字符
所以这里需要QString.number(current[0])进行转换:
id = QTableWidgetItem(QString.number(current[0]))
13. QTableWidgetItem内部文字对其方式设置如下:
id.setTextAlignment(Qt.AlignHCenter | Qt.AlignVCenter)
PyQt4 ShowHMDB show sqlite3 with QTableWidget summary的更多相关文章
- PyQt4 里的表格部件的使用方法: QTableWidget
PyQt4 里的表格部件的使用方法: QTableWidget QT下QTableWidget使用方法小结 - - 博客频道 - CSDN.NET http://blog.csdn.net/jingz ...
- 【转载】pyqt QTableWidget的使用
转载地址: http://blog.sina.com.cn/s/blog_9b78c91101019sgi.html QTableWidget是QT程序中常用的显示数据表格的空间,很类似于VC.C#中 ...
- QTableWidget查找指定项(由github处学习到)
from PyQt4 import QtGui, QtCore class Window(QtGui.QWidget): def __init__(self, rows, columns): QtGu ...
- qt model/view 架构基础介绍之QTableWidget
# -*- coding: utf-8 -*- # python:2.x #说明:QTreeWidget用于展示树型结构,也就是层次结构同前面说的 QListWidget 类似,这个类需要同另外一个辅 ...
- pyqt QTableWidget例子学习(重点)
# -*- coding: utf-8 -*- # python:2.x __author__ = 'Administrator' from PyQt4.QtGui import * from PyQ ...
- 数据库 --> sqlite3之api使用
创建 if [ ! -d /opt/dbspace ] then mkdir /opt/dbspace fi if [ -f /opt/dbspace/.memo.db ] then rm /opt/ ...
- PyQt4 HardwareManager
# PyQt4 HardwareManager # 声明: # 本软件主要是由于朋友说想要一个产品缺陷记录软件,主要用于记录产品缺陷, # 通过产品序列号进行插入.查询,本来想用VC++ 6.0做,但 ...
- PyQt4 QListWidget 使用教程
转自:http://blog.csdn.net/seeground/article/details/49177387?locationNum=3&fps=1 listWidget = QLis ...
- C 扩展库 - sqlite3 API
sqlite3 API Summary sqlite3 The database connection object. Created by sqlite3_open() and destroyed ...
随机推荐
- ref out 区别
1.使用ref型参数时,传入的参数必须先被初始化.对out而言,必须在方法中对其完成初始化. 2.使用ref和out时,在方法的参数和执行方法时,都要加Ref或Out关键字.以满足匹配. 3.out适 ...
- weiwo.wxmmd.com将您重定向的次数过多。尝试清除 Cookie.
折腾了很久,最后更换PHP版本解决了,我的项目用的tp3.1.2,出现上图问题时的php版本是7.1,换回5.6就没有这个问题.希望能为大家提供一个思路.
- MDI QMdiArea 多文档区域
Qt下创建类似window平台的MDI多文档区域使用QMdiArea QMdiArea * mdiArea; mdiArea = new QMdiArea(this); //A widget 为win ...
- EditPlus 4.3.2463 中文版已经发布(10月16日更新)
距离上个版本在本年5月发布后,EditPlus 网站沉寂多月.日前终于发布了一个新的小版本. 该版本却具有多项改进,值得一提: * Ctrl+Alt+Up/Down 键在列选模式下可插入多个插入点. ...
- windows下注册tomcat服务以及设置jvm参数
注册服务: 1 >cd /d D:\Java\tomcat-7.0.57-Css\bin //进入目录 1 >service.bat install //注册服务,同理删除服务为 rem ...
- 配置zbar识别二维码(转载)
原文地址:http://blog.csdn.net/dcrmg/article/details/52108258 二维码解码器Zbar+VS2012开发环境配置 Zbar条码解码器是一个开源的二维码 ...
- c++语言中的遍历
原文地址:http://www.cnblogs.com/xylc/p/3653036.html 随着C++11标准的出现,C++标准添加了许多有用的特性,C++代码的写法也有比较多的变化. vecto ...
- 20145335郝昊《网络对抗》逆向及Bof基础实践
20145335郝昊<网络对抗>逆向及Bof基础实践 1.实践说明 本次实践是对一个名为pwn1的可执行Linux文件进行操作.程序的执行流程是:主函数main调用foo函数,foo将函数 ...
- JS+Canvas的棋盘游戏和Java的动态结合
二维数组的题做了有几个了,感觉很有趣,随后想到想做一个五子棋的游戏. 因为前端知识匮乏,但感觉只是Java中去用二维数组做的话还是不太难的. 首先生成15*15的棋盘,(先不考虑前后端交互),其后Ha ...
- Flask: socket.error: [Errno 48] Address already in use 问题
参考: Mac OSX 解决socket.error: [Errno 48] Address already in use问题 Mac OS X中解决socket.error: [Errno 48] ...