Форум сайта python.su
Пишу небольшую программку для поиска, добавления, измениния и удаления записей в БД.
В качестве БД - sqlite.
GUI - PyQt4.
проблема 1:
У меня разные окошки раскиданы по разным файлам.
Главное окно в одном, второе окно - в другом
Второе окно вызывается нажатием кнопки.
На сколько я понял нужно сделать функцию вызова окна.
def eventFind(self):
wf = WidgetFind.WidgetFind()
wf.show()
p
#-*- coding: utf-8 -*-
#unicode('', "cp1251")
import sys
import Logic, WidgetAdd, WidgetFind, WidgetUpdate
from DataTypes import Item, List
from PyQt4 import QtGui
from PyQt4 import QtCore
class MainWindow(QtGui.QMainWindow):
def __init__(self, parent=None):
QtGui.QWidget.__init__(self, parent)
self.setWindowTitle (unicode ('Картотека обозначений', "cp1251")) # имя окна
self.setGeometry(4,25,1280,800) # положение + размер
self.statusBar().showMessage(unicode('Программа готова к работе', "cp1251"))
self.find = QtGui.QPushButton(unicode('Поиск', "cp1251") ,self)
self.find.setShortcut('Ctrl+F')
self.find.setStatusTip(unicode('Поиск в классификаторе', "cp1251"))
self.connect(self.find,QtCore.SIGNAL('clicked()'), self.eventFind)
self.prnt = QtGui.QPushButton('Print', self)
self.connect(self.prnt,QtCore.SIGNAL('clicked()'), self.Prnt)
self.add = QtGui.QPushButton(unicode('Добавить', "cp1251"), self)
self.add.setShortcut('Ctrl+A')
self.add.setStatusTip(unicode('Добавить запись', "cp1251"))
# self.connect(self.add, QtCore.SIGNAL('clicked()'), self.eventAdd)
self.update = QtGui.QPushButton(unicode('Изменить', "cp1251"), self)
self.update.setShortcut('Ctrl+U')
self.update.setStatusTip(unicode('Изменить запись', "cp1251"))
# self.connect(self.update, QtCore.SIGNAL('clicked()'), self.eventUpdate)
self.delete = QtGui.QPushButton(unicode('Удалить', "cp1251"), self)
self.delete.setShortcut('Ctrl+D')
self.delete.setStatusTip(unicode('Удалить запись', "cp1251"))
# self.connect(self.delete, QtCore.SIGNAL('clicked()'), self.eventDelete)
self.quit = QtGui.QPushButton(unicode('Выйти', "cp1251"), self)
self.quit.setShortcut('Ctrl+X')
self.quit.setStatusTip(unicode('Выйти из программы', "cp1251"))
self.connect(self.quit,QtCore.SIGNAL('clicked()'), QtCore.SLOT('close()'))
self.button_widget = QtGui.QWidget()
self.button_widget.setMaximumSize (350, 100)
self.setCentralWidget(self.button_widget)
self.button_layout = QtGui.QGridLayout()
self.button_widget.setLayout(self.button_layout)
self.buttons_layout = QtGui.QGridLayout()
self.button_layout.addLayout(self.buttons_layout, 1, 0)
self.buttons_layout.addWidget(self.find, 1, 0)
self.buttons_layout.addWidget(self.add, 1, 1)
self.buttons_layout.addWidget(self.update, 1, 3)
self.buttons_layout.addWidget(self.delete, 1, 4)
self.buttons_layout.addWidget(self.quit, 1, 5)
self.buttons_layout.addWidget(self.prnt, 2, 0)
def closeEvent(self, event):
reply = QtGui.QMessageBox.question(self, 'Message',
unicode('Вы риальне хотите выйти?', "cp1251"), QtGui.QMessageBox.Yes, QtGui.QMessageBox.No)
if reply == QtGui.QMessageBox.Yes:
event.accept()
else:
event.ignore()
def eventFind(self):
wf = WidgetFind.WidgetFind()
wf.show()
p
def Prnt(self):
print type(List.sp)
a = List.sp[0]
print a.uid
app = QtGui.QApplication(sys.argv)
app.setStyle("Plastique") # Windows, Motif, CDE, Plastique, Cleanlooks
mainwindow = MainWindow()
mainwindow.show()
sys.exit(app.exec_())
#-*- coding: utf-8 -*-
import sys
import Logic
from DataTypes import Item, List
from PyQt4 import QtGui, QtCore
class WidgetFind(QtGui.QWidget):
def __init__(self, parent = None):
QtGui.QWidget.__init__(self, parent)
self.setGeometry(100,100,250, 200)
self.setWindowTitle(unicode('Поиск документа', "cp1251"))
draftName_title = QtGui.QLabel(unicode('Наименование', "cp1251"))
org_title = QtGui.QLabel(unicode('Код организации', "cp1251"))
classno_title = QtGui.QLabel(unicode('Классификационный\nномер', "cp1251"))
regno_title = QtGui.QLabel(unicode('Порядковый номер', "cp1251"))
projectName_title = QtGui.QLabel(unicode('Наименование\nпроекта', "cp1251"))
created_title = QtGui.QLabel(unicode('Дата', "cp1251"))
comment_title = QtGui.QLabel(unicode('Примечание', "cp1251"))
developer_title = QtGui.QLabel(unicode('Разработчик', "cp1251"))
self.draftName = QtGui.QLineEdit()
self.org = QtGui.QLineEdit()
self.classno = QtGui.QLineEdit()
self.regno = QtGui.QLineEdit()
self.projectName = QtGui.QLineEdit()
self.created = QtGui.QLineEdit()
self.comment = QtGui.QLineEdit()
self.developer = QtGui.QLineEdit()
quit = QtGui.QPushButton(unicode('Закрыть', "cp1251"), self)
quit.setStatusTip(unicode('Закрыть окно',"cp1251"))
self.connect(quit, QtCore.SIGNAL('clicked()'), QtCore.SLOT('close()'))
#QtCore.SLOT('close()'))
ok = QtGui.QPushButton(unicode('Найти', "cp1251"), self)
ok.setStatusTip(unicode('Найти запись в классификаторе', "cp1251"))
self.connect(ok, QtCore.SIGNAL('clicked()'), self.Find)
prnt = QtGui.QPushButton(unicode('Печадь', "cp1251") ,self)
prnt.setShortcut('Ctrl+F')
prnt.setStatusTip(unicode('Поиск в классификаторе', "cp1251"))
self.connect(prnt,QtCore.SIGNAL('clicked()'), self.Prnt)
grid = QtGui.QGridLayout()
grid.setSpacing(8)
grid.addWidget(draftName_title,1,0)
grid.addWidget(self.draftName,1,1,1,1)
grid.addWidget(org_title,2,0)
grid.addWidget(self.org,2,1,1,1)
grid.addWidget(classno_title,3,0)
grid.addWidget(self.classno,3,1,1,1)
grid.addWidget(regno_title,4,0)
grid.addWidget(self.regno,4,1,1,1)
grid.addWidget(projectName_title,5,0)
grid.addWidget(self.projectName,5,1,1,1)
grid.addWidget(created_title,6,0)
grid.addWidget(self.created,6,1,1,1)
grid.addWidget(comment_title,7,0)
grid.addWidget(self.comment,7,1,1,1)
grid.addWidget(developer_title,8,0)
grid.addWidget(self.developer,8,1,1,1)
grid.addWidget(ok,9,0)
grid.addWidget(quit,9,1)
grid.addWidget(prnt,10,1)
self.setLayout(grid)
def Find(self):
logic = Logic.Logic()
fnd = Item()
fnd.draftName = self.draftName.text()
fnd.org = self.org.text()
fnd.classno = self.classno.text()
fnd.regno = self.regno.text()
fnd.projectName = self.projectName.text()
fnd.created = self.created.text()
fnd.comment = self.comment.text()
fnd.developer = self.developer.text()
if len(fnd.draftName) == 0:
fnd.darfName = None
if len(fnd.org) == 0:
fnd.org = None
if len(fnd.classno) == 0:
fnd.classno = None
if len(fnd.regno) == 0:
fnd.regno = None
if len(fnd.projectName) == 0:
fnd.projectName = None
if len(fnd.created) == 0:
fnd.created = None
if len(fnd.comment) == 0:
fnd.comment = None
if len(fnd.developer) == 0:
fnd.developer = None
self.result = logic.ListItems(fnd.org, fnd.classno, fnd.regno, fnd.draftName, fnd.developer, fnd.projectName, fnd.created, fnd.comment)
self.a = self.result[0]
List.sp = self.result
print self.result
print self.a.uid
return self.result
def Prnt(self):
self.connect()
Офлайн
проблема один смотри тут
Особенно прочти последний пост!!!!!!
Отредактировано (Авг. 4, 2010 22:18:18)
Офлайн
Спасибо большое.
Когда искал почему-то эту тему не увидел. Увидел другую, но из нее не понял что к чему.
Офлайн
Офлайн