изменения между двумя предложениями с использованием базы данных и переменных - PullRequest
0 голосов
/ 27 марта 2020

Я пишу два кода для изменения данных между различными классами. но я не могу использовать данные во втором классе. в чем проблема кода?

в первом коде, обработка не показана в lineEdit и textEdit. однако это напечатано командой печати. во втором коде данные в mysql доза не ссылаются sh для отображения в строке редактора.

Первый код:

class Treatments(QWidget, treatmentsui):
def __init__(self, parent=None):
    QWidget.__init__(self)
    self.setupUi(self)

    self.pushButton_3.clicked.connect(self.done_treatments)

def done_treatments(self):
    items = []
    for i in range(self.listWidget_4.count()):
        items.append(str(self.listWidget_4.takeItem(0).text()))
    # print(items)
    self.treatments = items
    self.ui = MainApp(self.treatments)
    self.close()
class MainApp(QMainWindow, ui):
def __init__(self, treatments):
    QMainWindow.__init__(self)
    self.treatments = treatments

    self.setupUi(self)
    self.Handel_UI_Changes(self.treatments)

def Handel_UI_Changes(self, treatments):        

    tr2 = treatments
    if treatments:
        print('okok:' + str(treatments) + 'end')
        self.textEdit.setText('treatments is:' + str(self.treatments) + 'end')
        self.lineEdit_35.setText('treatments is:' + str(treatments) + 'end')

Второй код:

class Treatments(QWidget, treatmentsui):
def __init__(self, parent=None):
    QWidget.__init__(self)
    self.setupUi(self)

    self.pushButton_3.clicked.connect(self.done_treatments)

def done_treatments(self):
    items = []
    for i in range(self.listWidget_4.count()):
        items.append(str(self.listWidget_4.takeItem(0).text()))
    # print(items)
    self.db = MySQLdb.connect(host, user, password, db)
    self.db.set_character_set('utf8')
    self.cur = self.db.cursor(MySQLdb.cursors.DictCursor)
    com = """create table temp_info(
               code int PRIMARY KEY ,
               temp_data varchar(50))"""
    self.cur.execute('SET NAMES utf8;')
    self.cur.execute('SET CHARACTER SET utf8;')
    self.cur.execute('SET character_set_connection=utf8;')
    self.cur.execute(com)
    self.db.commit()
    i = 0
    for item in items:
        i += 1
        self.cur.execute('''INSERT INTO temp_info(code, temp_data) VALUES (%s, %s)''', (i, item))
        self.db.commit()
    self.db.autocommit(True)
    self.db.close()
    self.close()


 class MainApp(QMainWindow, ui):
def __init__(self):
    QMainWindow.__init__(self)
    self.setupUi(self)
    self.Handel_UI_Changes()

def Handel_UI_Changes(self):
    self.tabWidget.tabBar().setVisible(False)
    self.comboBox_3.hide()

    self.db = MySQLdb.connect(host, user, password, db)
    self.db.set_character_set('utf8')
    self.cur = self.db.cursor(MySQLdb.cursors.DictCursor)
    self.cur.execute('SET NAMES utf8;')
    self.cur.execute('SET CHARACTER SET utf8;')
    self.cur.execute('SET character_set_connection=utf8;')
    try:
        self.cur.execute(''' SELECT temp_data FROM temp_info''')
        data = self.cur.fetchall()
        for r in data:
            print(r['temp_data'])
            self.textEdit.setText(str(r['temp_data']))
    except:
        pass
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...