код - это виджет Qt, форма по заполнению одной из таблиц базы данных, там много отладочной и просто пробной фигни.
После if __main__ не было pass, но все работало.
# coding: utf8
import os
import sys
from datetime import datetime, date
from pyspatialite import dbapi2 as db
from qgis.core import *
from PyQt4 import QtGui, uic
from PyQt4 import QtCore
from opendb import *
FORM_CLASS, _ = uic.loadUiType(os.path.join(
os.path.dirname(__file__), 'first-wind.ui'))
class FirstWindDialog(QtGui.QDialog, FORM_CLASS):
def __init__(self, parent=None):
"""Constructor."""
super(FirstWindDialog, self).__init__(parent)
# Set up the user interface from Designer.
# After setupUI you can access any designer object by doing
# self.<objectname>, and you can use autoconnect slots - see
# http://qt-project.org/doc/qt-4.8/designer-using-a-ui-file.html
# #widgets-and-dialogs-with-auto-connect
self.setupUi(self)
self.fillprojTypeBox()
self.fillprojCompBox()
print self.dateContract.date().toString('dd.MM.yyyy')
QtCore.QObject.connect(self.conclusionNumber, QtCore.SIGNAL('returnPressed()'), self.findFieldData)
QtCore.QObject.connect(self.projTypeBox, QtCore.SIGNAL('currentIndexChanged(int)'), self.contractEnable)
def fillprojTypeBox(self):
self.projTypeBox.addItem(u"судебная")
self.projTypeBox.addItem(u"внесудебная")
def fillprojCompBox(self):
self.projCompBox.addItem(u"АНО ЦСЭ")
self.projCompBox.addItem(u"АНО Судебная Экспертиза")
self.projCompBox.addItem(u"АНО Синергия")
self.projCompBox.addItem(u"")
def contractEnable(self):
if self.projTypeBox.currentIndex()==1:
#print 'OK'
#print self.contractNumText.enabled
self.contractNumText.setEnabled(True)
self.dateContract.setEnabled(True)
self.conclusionNumber.setEnabled(False)
self.dateConclus.setEnabled(False)
else:
self.contractNumText.setEnabled(False)
self.dateContract.setEnabled(False)
self.conclusionNumber.setEnabled(True)
self.dateConclus.setEnabled(True)
#Get int number from numberec lineedit
def getNumberec(self):
numberrec=int(self.numberec.text())
return numberrec
#Set numberec lineedit by input number
def setNumberec(self, num):
self.numberec.setText(str(num))
def setprojType(self, t):
if t==u'судебная':
self.projTypeBox.setCurrentIndex(0)
else:
self.projTypeBox.setCurrentIndex(1)
def sigexamp(self):
self.lineEdit.returnPressed().connect(self.hand_pr)
def findFieldData(self):
findN=openDb('/home/alex/Yandex.Disk/coding/expert/expert1.sqlite', self.conclusionNumber.text())
self.setAllFields(findN)
def setAllFields(self, listData):
self.setNumberec(listData[0])
self.setprojType(listData[1])
self.projCompBox.setEditText(listData[2])
self.clientBox.setEditText(listData[3])
if self.projTypeBox.currentIndex()==1:
self.contractNumText.setText(listData[4])
#sd=datetime.strptime(listData[5],"%d.%m.%Y").date()
self.dateContract.setDate(datetime.strptime(listData[5],"%d.%m.%Y").date())
else:
self.conclusionNumber.setText(listData[6]
#sd=datetime.strptime(listData[7],"%d.%m.%Y").date()
#self.dateContract.setDate(datetime.strptime(listData[7],"%d.%m.%Y").date())
#def accept(self):
#pass
if __name__=="__main__":
aps=QtGui.QApplication(sys.argv)
dia=FirstWindDialog()
abc=3
#qv=QtCore.QString()
#dia.setNumberec(abc)
#numb=dia.getNumberec()
#numb=int(numb)+1
#print numb
dia.show()
sys.exit(aps.exec_())
вся ботва началась с метода setAllFields там где закоменченные строки - преобразования строки с датой в объект date и установка этой даты в виджете QDateEdit, причем в первой части if для одного виджета все нормально прокатило, а в части else - нет.
В методе accept стояла заглушка, чтобы по enter форма не закрывалась. Там в одном из QComboBox есть обработка сигнала returnPressed, но после нажатия enter форма закрывалась (с этим я пока не разобрался)
Далее когда появилась ошибка invalid syntax на этом self.dateContract.setDate(datetime.strptime(listData,“%d.%m.%Y”).date()), после закоменчивания эта ошибка стала спускаться ниже, закоментил def accept, спустилась на if __name__