'''
简介
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等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)