|
Cetus Group
Информационные системы и программное обеспечение
Меню
Файлы проекта
Поддержка
E-mail:
cetus@ukr.net
|
Разработка программного обеспечения средствами языка Python и библиотеки Qt (PyQt)
Размещено 06.01.2006
А.Г. © Часть 3 - "Доступ к базе данных сервера MySQL средствами модуля MySQLdb"Для работы понадобятся сервер mySQL, модуль MySQLdb и база данных, созданная в примере "Использование модуля MySQLdb". 1. Средствами программы designer создаем форму. Соединений "сигнал-слот" в форме не выполняем, создадим такое соединение в программном коде. При создании формы даем виджетам имена как на рисунке.
2. После двойного щелчка на таблице устанавливаем для нее две колонки и удаляем все строки:
3. С помощью pyuic из файла form1.ui генерируем form1.py и реализуем производный класс формы Form1Impl с функциями доступа к базе данных в файле form1impl.py:
# -*- coding: utf-8 -*-
from form1 import *
from MySQLdb import connections
class Form1Impl(Form1):
def __init__(self):
Form1.__init__(self)
self.connect(self.pushButton,SIGNAL("pressed()"),self.SlotInsert)
self.db=connections.Connection(db='test', host='localhost', user='cetus')
self.curs=self.db.cursor()
self.Select()
def Select(self):
row=self.curs.execute("SELECT * from device;")
self.table.setNumRows(row)
rw=self.curs.fetchone()
for i in range(row):
self.table.setText(i,0,rw[1])
self.table.setText(i,1,str(rw[2]))
rw=self.curs.fetchone()
def SlotInsert(self):
row=self.curs.execute("INSERT INTO device VALUES(0,'%s','%s')" % \
(self.lineEditName.text(),self.lineEditCost.text()))
self.Select()
4. Добавляем модуль "main.py". #!/usr/bin/python import sys from form1impl import * app=QApplication(sys.argv) form=Form1Impl() app.setMainWidget(form) form.show() app.exec_loop() 5. Устанавливаем для main.py право на выполнение. Выполняем.
|