import unittest from PyQt5 import QtCore, QtGui, QtWidgets from PyQt5.QtCore import * from PyQt5.QtWidgets import * from PyQt5.QtGui import * from PyQt5.uic import loadUiType import sys from unittest_ui import * from transpiler import * class QtTemplateWindow(QtWidgets.QMainWindow): def __init__(self, parent=None): QtWidgets.QWidget.__init__(self, parent); self.ui = Ui_MainWindow(); self.ui.setupUi(self) class TestEnv(unittest.TestCase): def setUp(self): # # make mini "qt app" # self.form, self.base = loadUiType('untitled.ui') # self.w, self.ui = self.base(), self.form() # self.ui.setupUi(self.w) # self.qt = self.ui.ui # ============ # ============ # ============ # self.qt_app = QtWidgets.QApplication(sys.argv); # self.qt_ = MyWin() # myqapp.close() # ============ # ============ # ============ self.qt_app = QtWidgets.QApplication(sys.argv) self.qt_ = QtTemplateWindow() self.qt = self.qt_.ui def gen_psg_ui_gridlayout(self, qt_wdiget:QGridLayout): # returns a string, containng a PySimpleGUI UI (in python language) if type(qt_wdiget) is not QGridLayout: raise Exception(f'Give me a QGridLayout, not {type(qt_wdiget)}') return compile_GridLayout(qt_wdiget, is_top=True) def gen_psg_ui_vbox(self, qt_wdiget:QVBoxLayout): # returns a string, containng a PySimpleGUI UI (in python language) if type(qt_wdiget) is not QVBoxLayout: raise Exception(f'Give me a QVBoxLayout, not {type(qt_wdiget)}') return compile_VBbox(qt_wdiget, is_top=True) # _ # | | # __ _| |__ _____ __ # \ \ / / '_ \ / _ \ \/ / # \ V /| |_) | (_) > < # \_/ |_.__/ \___/_/\_\ def test_vboxlayout_v1(self): true_ui = '''[ [sg.I('Age', key='label_21'), sg.Spin((0, 99), initial_value=0, key='spinBox_5')], [sg.Frame('', key='frame_7', layout = [ [sg.I('Age', key='label_23'), sg.Spin((0, 99), initial_value=0, key='spinBox_7')], [sg.Checkbox('sex: male', default=False, key='checkBox_18'), sg.Checkbox('Is Enterprenuer', default=False, key='checkBox_19')] ])], [sg.Checkbox('sex: male', default=False, key='checkBox_10'), sg.Checkbox('Is Enterprenuer', default=False, key='checkBox_11')] ]''' self.assertEqual(true_ui, self.gen_psg_ui_vbox(self.qt.v1)) def test_vboxlayout_v2(self): true_ui = '''[ [sg.I('Age', key='label_24'), sg.Spin((0, 99), initial_value=0, key='spinBox_8')], [sg.Frame('', key='frame_8', layout = [ [sg.Frame('', key='gridLayout_6', layout = [ [sg.I('first name 5', key='label_30'), sg.I('56', key='lineEdit_18')], [sg.Checkbox('sex: male', default=False, key='checkBox_26'), sg.Checkbox('Is Enterprenuer', default=False, key='checkBox_27')], [sg.I(""), sg.RButton('submit', key='pushButton_9')] ])] ])], [sg.Checkbox('sex: male', default=False, key='checkBox_24'), sg.Checkbox('Is Enterprenuer', default=False, key='checkBox_25')] ]''' self.assertEqual(true_ui, self.gen_psg_ui_vbox(self.qt.v2)) # _ _ # (_) | | # __ _ _ __ _ __| | # / _` | '__| |/ _` | # | (_| | | | | (_| | # \__, |_| |_|\__,_| # __/ | # |___/ def test_gridlayout_g1(self): true_ui = '''[ [sg.I('first name 5', key='label_31'), sg.I('56', key='lineEdit_17')], [sg.I(""), sg.Frame('', key='gridLayout_8', layout = [ [sg.I('first name 5', key='label_33'), sg.I('56', key='lineEdit_19')], [sg.Checkbox('sex: male', default=False, key='checkBox_29'), sg.Checkbox('Is Enterprenuer', default=False, key='checkBox_28')], [sg.I(""), sg.RButton('submit', key='pushButton_10')] ])], [sg.Checkbox('sex: male', default=False, key='checkBox_22'), sg.Checkbox('Is Enterprenuer', default=False, key='checkBox_23')], [sg.I(""), sg.RButton('submit', key='pushButton_7')] ]''' self.assertEqual(true_ui, self.gen_psg_ui_gridlayout(self.qt.g1)) def test_gridlayout_g2(self): true_ui = '''[ [sg.I('first name 5', key='label_34'), sg.I('56', key='lineEdit_20')], [sg.Frame('', key='gridLayout_10', layout = [ [sg.I('first name 5', key='label_35'), sg.I('56', key='lineEdit_21')], [sg.Checkbox('sex: male', default=False, key='checkBox_33'), sg.Checkbox('Is Enterprenuer', default=False, key='checkBox_32')], [sg.I(""), sg.RButton('submit', key='pushButton_12')] ]), sg.I("")], [sg.Checkbox('sex: male', default=False, key='checkBox_30'), sg.Checkbox('Is Enterprenuer', default=False, key='checkBox_31')], [sg.I(""), sg.RButton('submit', key='pushButton_11')] ]''' self.assertEqual(true_ui, self.gen_psg_ui_gridlayout(self.qt.g2)) def test_gridlayout_g3(self): true_ui = '''[ [sg.I('first name 5', key='label_28'), sg.I('56', key='lineEdit_14')], [sg.Frame('', key='gridLayout_4', layout = [ [sg.I('first name 5', key='label_32'), sg.I('56', key='lineEdit_16')], [sg.Checkbox('sex: male', default=False, key='checkBox_16'), sg.Checkbox('Is Enterprenuer', default=False, key='checkBox_17')], [sg.I(""), sg.RButton('submit', key='pushButton_6')] ])], [sg.Checkbox('sex: male', default=False, key='checkBox_14'), sg.Checkbox('Is Enterprenuer', default=False, key='checkBox_15')], [sg.I(""), sg.RButton('submit', key='pushButton_5')] ]''' self.assertEqual(true_ui, self.gen_psg_ui_gridlayout(self.qt.g3)) def test_gridlayout_g4(self): true_ui = '''[ [sg.I('first name 5', key='label_29'), sg.I('56', key='lineEdit_15')], [sg.I(""), sg.Frame('', key='verticalLayout_3', layout = [ [sg.I('Age', key='label_22'), sg.Spin((0, 99), initial_value=0, key='spinBox_6')], [sg.Checkbox('sex: male', default=False, key='checkBox_12'), sg.Checkbox('Is Enterprenuer', default=False, key='checkBox_13')] ])], [sg.Checkbox('sex: male', default=False, key='checkBox_20'), sg.Checkbox('Is Enterprenuer', default=False, key='checkBox_21')], [sg.I(""), sg.RButton('submit', key='pushButton_8')] ]''' self.assertEqual(true_ui, self.gen_psg_ui_gridlayout(self.qt.g4)) def test_gridlayout_g5(self): true_ui = '''[ [sg.I('first name 5', key='label_36'), sg.I('56', key='lineEdit_22')], [sg.Frame('', key='verticalLayout_7', layout = [ [sg.I('Age', key='label_25'), sg.Spin((0, 99), initial_value=0, key='spinBox_9')], [sg.Checkbox('sex: male', default=False, key='checkBox_36'), sg.Checkbox('Is Enterprenuer', default=False, key='checkBox_37')] ]), sg.I("")], [sg.Checkbox('sex: male', default=False, key='checkBox_35'), sg.Checkbox('Is Enterprenuer', default=False, key='checkBox_34')], [sg.I(""), sg.RButton('submit', key='pushButton_13')] ]''' self.assertEqual(true_ui, self.gen_psg_ui_gridlayout(self.qt.g5)) def test_gridlayout_g6(self): true_ui = '''[ [sg.I('first name 5', key='label_37'), sg.I('56', key='lineEdit_23')], [sg.Frame('', key='verticalLayout_8', layout = [ [sg.I('Age', key='label_26'), sg.Spin((0, 99), initial_value=0, key='spinBox_10')], [sg.Checkbox('sex: male', default=False, key='checkBox_40'), sg.Checkbox('Is Enterprenuer', default=False, key='checkBox_41')] ])], [sg.Checkbox('sex: male', default=False, key='checkBox_39'), sg.Checkbox('Is Enterprenuer', default=False, key='checkBox_38')], [sg.I(""), sg.RButton('submit', key='pushButton_14')] ]''' self.assertEqual(true_ui, self.gen_psg_ui_gridlayout(self.qt.g6)) # def test_vbox(self): # pass # def test_groupbox(self): # pass # def test_frame(self): # pass if __name__ == '__main__': unittest.main()