UI部分由主要三个面板组成
数据操作面板:操作表中的具体数据
连接配置面板:配置数据库连接参数
SQL转换面板:自动翻译SQL
主要使用PyQt5的以下组件开发
QWidget, QVBoxLayout, QHBoxLayout, QTextEdit, QStackedWidget, QPushButton, QLabel, QMenuBar,
QAction, QStatusBar, QTableWidgetItem, QTreeWidget, QTreeWidgetItem, QMessageBox, QLineEdit,
QComboBox, QIcon, QFont, QColor
展示UI部分代码
class Ui_MainWindow(object):
def __init__(self):
self.dbHandler = MyDBHandler()
self.field_name_lst = None
self.former_table_data = None
def setup_UI(self, MainWindow):
self.former_table_data = []
self.currentTableData = []
self.changedTableData = []
# UI MainWindow
MainWindow.setObjectName("MainWindow")
MainWindow.resize(800, 600)
# center widgets
self.mainWidget = QWidget(MainWindow)
self.mainWidget.setFont(QFont("Roman times", 10.5)) ##设置字体
self.mainWidget.setObjectName("mainWidget")
MainWindow.setCentralWidget(self.mainWidget)
self.centerLayout = QVBoxLayout(self.mainWidget)
# 设置stacked widget
self.stackedWidget = QStackedWidget(self.mainWidget)
self.centerLayout.addWidget(self.stackedWidget)
# 设置data page
self.build_data_page()
# layout不同的比例区分大小
self.data_page_layout.setStretchFactor(self.dataPanel, 4)
self.data_page_layout.setStretchFactor(self.treePanel, 1)
# 设置login面板
self.build_login_page()
# 将三个面板,加入stackedWidget
self.stackedWidget.addWidget(self.data_page)
self.stackedWidget.addWidget(self.login_page)
# menu
self.build_menu_bar(MainWindow)
# status bar
self.statusbar = QStatusBar(MainWindow)
self.statusbar.setObjectName("hard working")
MainWindow.setStatusBar(self.statusbar)
# 刷新
self.retranslateUi(MainWindow)
QMetaObject.connectSlotsByName(MainWindow)
# refresh tree list
self.dbHandler.config(None, None, None, None)
self.paint_tree()
展示运行演示视频
工具操作演示视频前半部分
工具操作演示视频后半部分
未完待续