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 ...
随机推荐
- jq的$(function(){})与window.onload的区别
最近一直在研究jq的源码,书写jq的代码我们通常会包裹在一个$(function(){})函数中,jq的$(function(){})也就是$(document).ready(function(){} ...
- h5前端项目常见问题汇总
原文作者:FrontEndZQ 原文链接:https://github.com/FrontEndZQ/HTML5-FAQ H5项目常见问题及注意事项 Meta基础知识: H5页面窗口自动调整到设备宽度 ...
- SpringBoot 通过自定义注解实现AOP切面编程实例
一直心心念的想写一篇关于AOP切面实例的博文,拖更了许久之后,今天终于着手下笔将其完成. 基础概念 1.切面(Aspect) 首先要理解‘切’字,需要把对象想象成一个立方体,传统的面向对象变成思维,类 ...
- 19重定向管道与popen模型
重定向 dup2 int dup(int fd) 重定向文件描述符 int newFd = dup(STDOUT_FILENO) newFd 指向 stdout int dup2(int fd1, ...
- c++语言中的遍历
原文地址:http://www.cnblogs.com/xylc/p/3653036.html 随着C++11标准的出现,C++标准添加了许多有用的特性,C++代码的写法也有比较多的变化. vecto ...
- linux及安全第八周总结——20135227黄晓妍
实验部分 实验环境搭建 -rm menu -rf git clone https://github.com/megnning/menu.git cd menu make rootfs qemu -ke ...
- 辅助模块应用(auxiliary/scanner/portscan/tcp)
实验步骤 创建msf所需的数据库 之前我们开启msf时下面总会出现一个红色的小减号,原来是因为没有和数据库键连接,于是首先我们要手动建立一个数据库... 使用命令来实现: service postgr ...
- IC行业
定位IC行业,其实很简单. 我不是IC数据统计的专家,但是可以看出IC行业的发展: 在20年前,毛利是1000%,行业增长在每年20%以上 在10年前,毛利是200%,行业增长在每年10%以上 在现在 ...
- 如何解决Nginx php 50x 错误
SEO反馈百度爬虫经常504,一般情况下是由nginx默认的fastcgi进程响应慢引起的,但也有其他情况,这里我总结了一些解决办法供大家参考. 方法/步骤 一般50x状态码问题分析: Nginx ...
- sqlite中的时间
插入时间的sql语句 ','-61') 时间格式'2014-11-17T19:37:32' 年月日和时分秒之间多了一个字母T,保存到数据库的时候,会自动给时间加8个小时. 保存的结果为2014-11- ...