最近在研究,pyqt5界面操作,保存到后台Oracle的一个操作,虽然比较简单,对于初学者来说还算是走了不少弯路。下面我来讲讲我自己的一段学习经历,看看是否对广大初学者有所帮助。
目前想做一个检查文件状态是否存在的界面,大致界面如下:
以下是我在qt creator中画的一个小组件
设计数据结构
首先呢,我们要在Oracle客户端创建一个表结构,可以根据以后情况对字段进行增加修改,目前我们先以一张表为例。
界面显示
class MainWindow(QMainWindow,Ui_MainWindow):
def __init__(self):
super(MainWindow,self).__init__()
self.setupUi(self)
if __name__ =="__main__":
app = QApplication(sys.argv)
w = MainWindow()
w.show()
sys.exit(app.exec())
导入我们设计的转换成py文件,添加if __name__ =="__main__":,即可调试出我们所需要的界面。
查询数据,显示数据到前台
connection = cx_Oracle.connect("pytest","pytest","192.168.2.102/oracle") #连接数据库
cursor = connection.cursor()
# 执行SQL语句
connection.commit()
cursor.execute("select checkid,checkpath,,decode(status,0,'未更新',1,'已更新') as status from checkpath")
data_list = []
for rowin cursor:
temp_list = []
temp_list.append(row[0])
temp_list.append(row[1])
temp_list.append(row[2])
data_list.append(temp_list)
cursor.close()
connection.close()
return data_list
增加数据
待更新
删除数据
待更新
修改数据
待更新
前台界面刷新
一直在疑惑,如何将界面每行更新时,状态就变化,现在的情况一直是需要for循环结束后,才能全部更新,其实后台已更新。
也考虑过很多办法,都不是很如意,如多线程刷新界面
今天又一次努力想着刷新界面,找到了一个方法真是喜极而泣
QApplication.processEvents()# 刷新界面,避免卡顿
QApplication.processEvents()# 刷新界面,避免卡顿
QApplication.processEvents()# 刷新界面,避免卡顿
重要的事情说三遍,放入每行刷新数据库时,后面,即可满足自己所需要的样子
简书是为了记录学习的一个状态,希望大家也在这条道路上越来越棒,目前建了一个扣扣群1095106956,每天都有新的人加入,不知道是否是从这个平台进去的,感觉大家的信任,有新的想法的朋友,可以加入,一起探讨!