前言
我们在很多开发中使用到python,但是有时候需要一些简单的UI界面作为辅助,这个时候qtpy就是上场的时候了!
说实话,qtpy用起来不如qt C++舒服。。。。。。
软件实现
作为界面开发,我是使用C++下面的一贯风格,一个main.py,一个界面py文件即mainwindow.py,
main.py负责主程序的加载,mainwindow.py负责主界面的加载。
main.py中就是比较简单,如下:
#!/usr/bin/python
import sys
from PyQt5.QtWidgets import QApplication
from mainWindow import MainWindow
if __name__ == '__main__':
app = QApplication(sys.argv)
ui = MainWindow()
ui.show()
sys.exit(app.exec_())
然后界面又是在mainWindow.py中写一个MainWindow界面类,如果有其他各种界面也是在该类中加载。代码如下:
from PyQt5.QtWidgets import QWidget, QPushButton, QHBoxLayout, \
QVBoxLayout, QGridLayout, QMainWindow,QLineEdit,QFileDialog, \
QLabel,QProgressBar,QMessageBox
import os
import sqlite3
class MainWindow(QWidget):
def __init__(self):
super().__init__()
self.initUI()
def initUI(self):
self.resize(600, 200)
self.setWindowTitle('sqlite数据库操作程序')
hLayout = QHBoxLayout() #水平布局
lab_filePath = QLabel('数据库路劲')
self.lineEdit_filePath = QLineEdit(self.databaseName)
button_selectFile = QPushButton('选择文件')
button_selectFile.clicked.connect(self.onClick_fileButton)#绑定信号槽
hLayout.addWidget(lab_filePath)
hLayout.addWidget(self.lineEdit_filePath)
hLayout.addWidget(button_selectFile)
self.setLayout(hLayout)
#槽函数
def onClick_fileButton(self):
fileName, fileType = QFileDialog.getOpenFileName(self, "选取数据库文件", os.getcwd(),"数据库文件(*.db)")
if os.path.exists(fileName) :
self.lineEdit_filePath.setText(fileName)
程序界面如下:
注意qtpy下的信号槽绑定:
槽函数定义:
#槽函数
def onClick_fileButton(self):
...
信号槽绑定:
button_selectFile = QPushButton('选择文件')
button_selectFile.clicked.connect(self.onClick_fileButton)#绑定信号槽