Добрый вечер господа :)
Практикуюсь с QT Designer и захотелось реализовать запросы к БД (SQL) GUI.
QT Designer набросал окошко, пробил связь на копию при нажатие кнопки.
Код UI в Python. (Графика)
# -*- coding: utf-8 -*-
from PyQt4 import QtCore, QtGui
try:
_fromUtf8 = QtCore.QString.fromUtf8
except AttributeError:
def _fromUtf8(s):
return s
try:
_encoding = QtGui.QApplication.UnicodeUTF8
def _translate(context, text, disambig):
return QtGui.QApplication.translate(context, text, disambig, _encoding)
except AttributeError:
def _translate(context, text, disambig):
return QtGui.QApplication.translate(context, text, disambig)
class Ui_MainWindow(object):
def setupUi(self, MainWindow):
MainWindow.setObjectName(_fromUtf8("MainWindow"))
MainWindow.resize(800, 600)
self.centralwidget = QtGui.QWidget(MainWindow)
self.centralwidget.setObjectName(_fromUtf8("centralwidget"))
self.backendsql = QtGui.QFrame(self.centralwidget)
self.backendsql.setGeometry(QtCore.QRect(10, 10, 771, 461))
self.backendsql.setFrameShape(QtGui.QFrame.StyledPanel)
self.backendsql.setFrameShadow(QtGui.QFrame.Raised)
self.backendsql.setObjectName(_fromUtf8("backendsql"))
self.zapros = QtGui.QLineEdit(self.backendsql)
self.zapros.setGeometry(QtCore.QRect(10, 10, 741, 431))
self.zapros.setCursor(QtGui.QCursor(QtCore.Qt.IBeamCursor))
self.zapros.setLayoutDirection(QtCore.Qt.LeftToRight)
self.zapros.setAutoFillBackground(False)
self.zapros.setText(_fromUtf8(""))
self.zapros.setObjectName(_fromUtf8("zapros"))
self.sql = QtGui.QPushButton(self.centralwidget)
self.sql.setGeometry(QtCore.QRect(190, 470, 401, 71))
self.sql.setObjectName(_fromUtf8("sql"))
MainWindow.setCentralWidget(self.centralwidget)
self.menubar = QtGui.QMenuBar(MainWindow)
self.menubar.setGeometry(QtCore.QRect(0, 0, 800, 21))
self.menubar.setObjectName(_fromUtf8("menubar"))
MainWindow.setMenuBar(self.menubar)
self.statusbar = QtGui.QStatusBar(MainWindow)
self.statusbar.setObjectName(_fromUtf8("statusbar"))
MainWindow.setStatusBar(self.statusbar)
self.retranslateUi(MainWindow)
QtCore.QObject.connect(self.sql, QtCore.SIGNAL(_fromUtf8("clicked()")), self.zapros.copy)
QtCore.QMetaObject.connectSlotsByName(MainWindow)
def retranslateUi(self, MainWindow):
MainWindow.setWindowTitle(_translate("MainWindow", "MainWindow", None))
self.sql.setText(_translate("MainWindow", "Отправить запросище", None))
На выходе:
Мой скрипт ( Подгружающий графику и ожидающий переменную )
#!/usr/bin/python
# -*- coding: utf-8 -*-
# python 2.7
# ------------------------------------------------
import sys,sqlite3
from PyQt4 import QtGui, uic,QtCore
class MainWindow(QtGui.QMainWindow):
def __init__(self):
QtGui.QMainWindow.__init__(self)
uic.loadUi('sql.ui', self)
# sql =
def sql(sql):
con = sqlite3.connect("students.db")
cur = con.cursor() # Создаем объект-курсор
try:
cur.executescript(sql)
except sqlite3.DatabaseError, err:
print u"Ошибка:", err
else:
print u"Запрос успешно выполнен"
cur.close()
con.close()
app = QtGui.QApplication(sys.argv)
w = MainWindow()
w.show()
w.setWindowTitle(u"SQL Rishat")
sys.exit(app.exec_())
Мой скрипт который должен запускать графический интерфейс , получать из него данные по клику кнопки. (Запрос который ввел пользователь в графическом интерфейсе )
Собственно вопрос заключается в этом. Как это реализовать?
Помогите пожалуйста