python pyqt5 *** 作sqlite

python pyqt5  *** 作sqlite,第1张

'''

简介

PyQt5中 处理database 例子

'''

import sys

from PyQt5QtCore import

from PyQt5QtGui import

from PyQt5QtWidgets import

from PyQt5QtSql import QSqlDatabase , QSqlQuery

def createDB():

db = QSqlDatabaseaddDatabase('QSQLITE')

dbsetDatabaseName('/db/databasedb')

if name == ' main ':

app = QApplication(sysargv)

createDB()

sysexit(appexec_())

'''

简介

PyQt5中 处理database 例子

'''

import sys

from PyQt5QtCore import

from PyQt5QtGui import

from PyQt5QtWidgets import

from PyQt5QtSql import QSqlDatabase, QSqlTableModel

from PyQt5QtCore import Qt

def initializeModel(model):

modelsetTable('people')

modelsetEditStrategy(QSqlTableModelOnFieldChange)

modelselect()

modelsetHeaderData(0, QtHorizontal, "ID")

modelsetHeaderData(1, QtHorizontal, "name")

modelsetHeaderData(2, QtHorizontal, "address")

def createView(title, model):

view = QTableView()

viewsetModel(model)

viewsetWindowTitle(title)

return view

def addrow():

ret = modelinsertRows(modelrowCount(), 1)

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

def findrow(i):

delrow = irow()

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

if name == ' main ':

app = QApplication(sysargv)

db = QSqlDatabaseaddDatabase('QSQLITE')

dbsetDatabaseName('/db/databasedb')

model = QSqlTableModel()

delrow = -1

initializeModel(model)

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

view1clickedconnect(findrow)

PyQt5不再提供Qt Designer等工具,所以需要再安装pyqt5-tools

打开cmd执行:

pip install pyqt5-tools

pyrcc5exe文件,我是在在这个目录下找到的/Python/Python36/Scripts/pyrcc5exe,就是你安装python目录中的scripts文件夹中

'''

简介

PyQT5中 QTimer例子

'''

import sys

from PyQt5QtCore import

from PyQt5QtGui import

from PyQt5QtWidgets import

global sec

sec = 0

class WorkThread(QThread):

trigger = pyqtSignal()

def countTime():

global sec

sec += 1

# LED显示数字+1

lcdNumberdisplay(sec)

def work():

# 计时器每秒计数

timerstart(1000)

# 计时开始

workThreadstart()

# 当获得循环完毕的信号时,停止计数

workThreadtriggerconnect(timeStop)

def timeStop():

timerstop()

print("运行结束用时", lcdNumbervalue())

global sec

sec = 0

if name == " main ":

app = QApplication(sysargv)

top = QWidget()

topresize(300, 120)

'''

简介

PyQT5中 QThread 例子

'''

from PyQt5QtCore import

from PyQt5QtGui import

from PyQt5QtWidgets import

import sys

class MainWidget(QWidget):

def init (self, parent=None):

super(MainWidget, self) init (parent)

selfsetWindowTitle("QThread 例子")

selfthread = Worker()

selflistFile = QListWidget()

selfbtnStart = QPushButton('开始')

layout = QGridLayout(self)

layoutaddWidget(selflistFile, 0, 0, 1, 2)

layoutaddWidget(selfbtnStart, 1, 1)

selfbtnStartclickedconnect(selfslotStart)

selfthreadsinOutconnect(selfslotAdd)

class Worker(QThread):

sinOut = pyqtSignal(str)

if name == " main ":

app = QApplication(sysargv)

demo = MainWidget()

demoshow()

sysexit(appexec_())

1改变窗口状态

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

from PyQt5 import QtCore, QtWidgets

class MyWindow(QtWidgetsQWidget):

def init (self, parent=None):

QtWidgetsQWidget init (self, parent)

selfresize(300, 100)

def changeEvent(self, e):

if etype() == QtCoreQEventWindowStateChange:

if selfisMinimized():

print("窗口最小化")

elif selfisMaximized():

print("窗口最大化")

elif selfisFullScreen():

print("全屏显示")

elif selfisActiveWindow():

print("活动窗口")

QtWidgetsQWidgetchangeEvent(self, e)

def showEvent(self, e):

print("窗口显示")

QtWidgetsQWidgetshowEvent(self, e)

def hideEvent(self, e):

print("窗口隐藏")

QtWidgetsQWidgethideEvent(self, e)

if name == " main ":

import sys

app = QtWidgetsQApplication(sysargv)

window = MyWindow()

windowshow()

sysexit(appexec_())

2改变窗口的位置和尺寸

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

from PyQt5 import QtWidgets

class MyWindow(QtWidgetsQWidget):

def init (self, parent=None):

QtWidgetsQWidget init (self, parent)

selfresize(300, 100)

def moveEvent(self, e):

print("x = {0}; y = {1}"format(epos()x(), epos()y()))

QtWidgetsQWidgetmoveEvent(self, e)

def resizeEvent(self, e):

print("w = {0}; h = {1}"format(esize()width(),esize()height()))

QtWidgetsQWidgetresizeEvent(self, e)

if name == " main ":

import sys

app = QtWidgetsQApplication(sysargv)

window = MyWindow()

windowshow()

sysexit(appexec_())

3重绘窗口

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

4阻止窗口关闭

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

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

from PyQt5 import QtWidgets

class MyWindow(QtWidgetsQWidget):

def init (self, parent=None):

QtWidgetsQWidget init (self, parent)

selfresize(300, 100)

def closeEvent(self, e):

result = QtWidgetsQMessageBoxquestion(self,

"关闭窗口确认",

"真的要关闭窗口",

QtWidgetsQMessageBoxYes | QtWidgetsQMessageBoxNo,

QtWidgetsQMessageBoxNo)

if result == QtWidgetsQMessageBoxYes:

eaccept()

QtWidgetsQWidgetcloseEvent(self, e)

else:

eignore()

if name == " main ":

import sys

app = QtWidgetsQApplication(sysargv)

window = MyWindow()

windowshow()

sysexit(appexec_())

pyqt5&pythonGui入门教程(1)第一个窗口(1) 第一个窗口和代码详细注释: fromPyQt5importQtWidgets#从PyQt库导入QtWidget通用窗口类classmywindow(QtWidgetsQWidget):#自己建一个mywindows类,以class开头,mywindows是自己的类名,

QML 是一种描述性语言(declarative language),它可以让您使用传统的言语快速开发应用。下面介绍利用 PyQt5 与 QML 快速开发 GUI。

首先,创建一个名为 viewqml 的 QML 文件:

该文件描述的是“绿色的矩形框”,“文本为:Hello World”。接下来要使用 PyQt5 获取并创建 GUI:

效果:

用例子说明吧,常用的不多

PyQt中的线程类 QtCoreQThread ,使用时继承QThread类

启动界面的线程暂称为UI线程。界面执行命令时都在自己的UI线程中。

如果在UI线程中执行网络连接和数据库 *** 作等耗时的 *** 作,界面会被卡住,Windows下有可能会出现“无响应”的警告。

阻塞UI线程会降低用户体验和应用稳定性。因此我们可以把耗时 *** 作放在线程中去执行。

QThread代表一个线程,我们可以复写run函数来执行我们要的 *** 作。

QThread可以使用 QtCorepyqtSignal 来与界面交互和传输数据。

PyQt4 QThread 代码示例

•Python27

# -- coding: utf-8 --

import sys

from PyQt4 import QtCore

from PyQt4QtCore import QCoreApplication

from PyQt4QtGui import QWidget, QPushButton, QApplication, QTextBrowser

class TimeThread(QtCoreQThread):

signal_time = QtCorepyqtSignal(str, int) # 信号

def __init__(self, parent=None):

super(TimeThread, self)__init__(parent)

selfworking = True

selfnum = 0

def start_timer(self):

selfnum = 0

selfstart()

def run(self):

while selfworking:

print "Working", selfthread()

selfsignal_timeemit("Running time:", selfnum) # 发送信号

selfnum += 1

selfsleep(1)

class TimeDialog(QWidget):

def __init__(self):

super(TimeDialog, self)__init__()

selftimer_tv = QTextBrowser(self)

selfinit_ui()

selftimer_t = TimeThread()

selftimer_tsignal_timeconnect(selfupdate_timer_tv)

def init_ui(self):

selfresize(300, 200)

selfsetWindowTitle('TimeDialog')

selftimer_tvsetText("Wait")

selftimer_tvsetGeometry(QtCoreQRect(10, 145, 198, 26))

selftimer_tvmove(0, 15)

btn1 = QPushButton('Quit', self)

btn1setToolTip('Click to quit')

btn1resize(btn1sizeHint())

btn1move(200, 150)

btn1clickedconnect(QCoreApplicationinstance()quit)

start_btn = QPushButton('Start', self)

start_btnsetToolTip("Click to start")

start_btnmove(50, 150)

selfconnect(start_btn, QtCoreSIGNAL("clicked()"), selfclick_start_btn)

def click_start_btn(self):

selftimer_tstart_timer()

def update_timer_tv(self, text, number):

selftimer_tvsetText(selftr(text + " " + str(number)))

if __name__ == '__main__':

app = QApplication(sysargv)

time_dialog = TimeDialog()

time_dialogshow()

sysexit(appexec_())

QThread中使用的信号 signal_time = QtCorepyqtSignal(str, int) 指定了参数str和int

发送信号 selfsignal_timeemit("Running time:", selfnum)

外部接收信号 selftimer_tsignal_timeconnect(selfupdate_timer_tv)

信号连接到方法 update_timer_tv(self, text, number) ,注意信号与方法的参数要一一对应

使用中我们可以定义多种不同的信号 QtCorepyqtSignal

启动线程,调用 start()

由于系统中装了python27, 和python35,运行工程的时候,报错

No module named 'pyqt5' 。而且在cmd终端里也无法 import PyQt5

2注意 pycharm 工程的 python 版本。查看方法为 settings--Project Interpreter 中配置的 python 版本。如果错误,则选择对应 python 版本的 pythonexe 的路径。

即, pythonexe 的路径不对。但是明明步骤2中已经配置好了对应的python了啊,这里的 xxxx\pythonexe 是在哪里改变的。

以上就是关于python pyqt5 *** 作sqlite全部的内容,包括:python pyqt5 *** 作sqlite、PyQt5安装目录中找不到designer.exe与pyrcc5.exe、python pyqt5 QThread等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

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

原文地址: http://outofmemory.cn/web/10183148.html

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

发表评论

登录后才能评论

评论列表(0条)

保存