python pyqt5 *** 作sqlite

python pyqt5  *** 作sqlite,第1张

'''

【简介】

PyQt5中 处理database 例子

'''

import sys

from PyQt5.QtCore import *

from PyQt5.QtGui import *

from PyQt5.QtWidgets import *

from PyQt5.QtSql import QSqlDatabase , QSqlQuery

def createDB():

db = QSqlDatabase.addDatabase('QSQLITE')

db.setDatabaseName('./db/database.db')

if name == ' main ':

app = QApplication(sys.argv)

createDB()

sys.exit(app.exec_())

'''

【简介】

PyQt5中 处理database 例子

'''

import sys

from PyQt5.QtCore import *

from PyQt5.QtGui import *

from PyQt5.QtWidgets import *

from PyQt5.QtSql import QSqlDatabase, QSqlTableModel

from PyQt5.QtCore import Qt

def initializeModel(model):

model.setTable('people')

model.setEditStrategy(QSqlTableModel.OnFieldChange)

model.select()

model.setHeaderData(0, Qt.Horizontal, "ID")

model.setHeaderData(1, Qt.Horizontal, "name")

model.setHeaderData(2, Qt.Horizontal, "address")

def createView(title, model):

view = QTableView()

view.setModel(model)

view.setWindowTitle(title)

return view

def addrow():

ret = model.insertRows(model.rowCount(), 1)

print('insertRows=%s' % str(ret))

def findrow(i):

delrow = i.row()

print('del row=%s' % str(delrow))

if name == ' main ':

app = QApplication(sys.argv)

db = QSqlDatabase.addDatabase('QSQLITE')

db.setDatabaseName('./db/database.db')

model = QSqlTableModel()

delrow = -1

initializeModel(model)

view1 = createView("Table Model (View 1)", model)

view1.clicked.connect(findrow)

1.改变窗口状态

下列的方法可用来改变或判断窗口的状态(最小化、最大化、隐藏和显示):

from PyQt5 import QtCore, QtWidgets

class MyWindow(QtWidgets.QWidget):

def init (self, parent=None):

QtWidgets.QWidget. init (self, parent)

self.resize(300, 100)

def changeEvent(self, e):

if e.type() == QtCore.QEvent.WindowStateChange:

if self.isMinimized():

print("窗口最小化")

elif self.isMaximized():

print("窗口最大化")

elif self.isFullScreen():

print("全屏显示")

elif self.isActiveWindow():

print("活动窗口")

QtWidgets.QWidget.changeEvent(self, e)

def showEvent(self, e):

print("窗口显示")

QtWidgets.QWidget.showEvent(self, e)

def hideEvent(self, e):

print("窗口隐藏")

QtWidgets.QWidget.hideEvent(self, e)

if name == " main ":

import sys

app = QtWidgets.QApplication(sys.argv)

window = MyWindow()

window.show()

sys.exit(app.exec_())

2.改变窗口的位置和尺寸

移动窗口、调整窗口尺寸时,下列方法将被调用:

from PyQt5 import QtWidgets

class MyWindow(QtWidgets.QWidget):

def init (self, parent=None):

QtWidgets.QWidget. init (self, parent)

self.resize(300, 100)

def moveEvent(self, e):

print("x = {0}y = {1}".format(e.pos().x(), e.pos().y()))

QtWidgets.QWidget.moveEvent(self, e)

def resizeEvent(self, e):

print("w = {0}h = {1}".format(e.size().width(),e.size().height()))

QtWidgets.QWidget.resizeEvent(self, e)

if name == " main ":

import sys

app = QtWidgets.QApplication(sys.argv)

window = MyWindow()

window.show()

sys.exit(app.exec_())

3.重绘窗口

当控件或控件的部分变为可见时,控件需要重绘。此时,paintEvent(self,event)被调用。event参数包含QPaintEvent类的实例,通过该类有以下方法:

4.阻止窗口关闭

通过单击窗口标题栏中的关闭按钮或调用close()方法来关闭窗口时,closeEvent(self,event)方法被调用。 通过event参数可获得QCloseEvent类的一个对象。 为了防止窗口关闭,必须通过该对象调用ignore()方法,否则调用accept()方法。

下面的例子为:单击关闭按钮将显示一个标准对话框,要求确认是否关闭该窗口。 如果用户单击“是”按钮,则关闭窗口;如果用户单击“否”按钮,则仅关闭对话框,窗口不会被关闭。

from PyQt5 import QtWidgets

class MyWindow(QtWidgets.QWidget):

def init (self, parent=None):

QtWidgets.QWidget. init (self, parent)

self.resize(300, 100)

def closeEvent(self, e):

result = QtWidgets.QMessageBox.question(self,

"关闭窗口确认",

"真的要关闭窗口?",

QtWidgets.QMessageBox.Yes | QtWidgets.QMessageBox.No,

QtWidgets.QMessageBox.No)

if result == QtWidgets.QMessageBox.Yes:

e.accept()

QtWidgets.QWidget.closeEvent(self, e)

else:

e.ignore()

if name == " main ":

import sys

app = QtWidgets.QApplication(sys.argv)

window = MyWindow()

window.show()

sys.exit(app.exec_())

更新或者重新安装一个模块。

Python已经成为最受欢迎的程序设计语言之一。

自从2004年以后,python的使用率呈线性增长。

由于Python语言的简洁性、易读性以及可扩展性,在国外用Python做科学计算的研究机构日益增多,一些知名大学已经采用Python来教授程序设计课程。

例如卡耐基梅隆大学的编程基础、麻省理工学院的计算机科学及编程导论就使用Python语言讲授。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/10814507.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-11
下一篇 2023-05-11

发表评论

登录后才能评论

评论列表(0条)

保存