def __init__(self,setup={"host": "localhost", "database": "",\ "user":"******", "password":""}, main_win=None): # Инициализация окна QtGui.QDialog.__init__(self) # Поля класса if DB.setupIsValid(setup): self.setup=setup else: self.setup={"host": "localhost", "database": "", "user":"******",\ "password":""} if type(main_win)==MainWindow: self.main_win=main_win else: self.main_win=None # Настройка окна self.setWindowTitle("Настройка подключения к базе данных") # Установка названия окна self.resize(400,300) # Установка размера окна # Элементы окна self.host_le=QtGui.QLineEdit(self) # Поле ввода хоста self.database_le=QtGui.QLineEdit(self) # Поле ввода базы данных self.user_le=QtGui.QLineEdit(self) # Поле ввода пользователя self.password_le=QtGui.QLineEdit(self) # Поле ввода пароля self.host_l=QtGui.QLabel("Хост:") # Label хоста self.database_l=QtGui.QLabel("База данных:") # Label базы данных self.user_l=QtGui.QLabel("Пользователь:") # Label пользователя self.password_l=QtGui.QLabel("Пароль:") # Label пароля self.connect_b=QtGui.QPushButton("Подключение") # Кнопка подключения self.cancel_b=QtGui.QPushButton("Отмена") # Кнопка отмены # Настройка элементов окна self.password_le.setEchoMode(QtGui.QLineEdit.Password) # Установка маски для поля ввода пароля self.host_le.setText(self.setup["host"]) self.database_le.setText(self.setup["database"]) self.user_le.setText(self.setup["user"]) self.password_le.setText(self.setup["password"]) # Создание сетки self.layout=QtGui.QGridLayout(self) # Размещение элементов на сетке self.layout.addWidget(self.host_l,0,0,alignment=QtCore.Qt.AlignRight) self.layout.addWidget(self.database_l,1,0,alignment=QtCore.Qt.AlignRight) self.layout.addWidget(self.user_l,2,0,alignment=QtCore.Qt.AlignRight) self.layout.addWidget(self.password_l,3,0,alignment=QtCore.Qt.AlignRight) self.layout.addWidget(self.host_le,0,2,1,2) self.layout.addWidget(self.database_le,1,2,1,2) self.layout.addWidget(self.user_le,2,2,1,2) self.layout.addWidget(self.password_le,3,2,1,2) self.layout.addWidget(self.connect_b,4,3) self.layout.addWidget(self.cancel_b,4,4) # Установка сетки на окне self.setLayout(self.layout) # Установка действий на нажатия кнопок QtGui.QAction.connect(self.connect_b,QtCore.SIGNAL("clicked()"),\ self.clickConnectButton)
def write(filename,setup): if not DB.setupIsValid(setup): return False try: f=open(filename,"w") except: return False json.dump(setup,f,sort_keys=True,indent=4) f.close() return True
def editSetup(self, setup): if DB.setupIsValid(setup): self.setup=setup return False else: return True
def __init__(self,conn=None, setup={"host": "localhost",\ "database": "", "user":"******", "password":""}): # Инициализация окна QtGui.QMainWindow.__init__(self) # Поля класса if DB.connectionIsValid(conn): self.connection=conn else: self.connection=None if DB.setupIsValid(setup): self.setup=setup else: self.setup=None # Настройка окна self.setWindowTitle("Пациенты ООО \"Виста\"") self.resize(800,500) # Создание элементов окна self.pacients_tw=QtGui.QTableWidget() self.filter_p=FilterPanel() self.search_b=QtGui.QPushButton("Поиск") # Настройка элементов окна self.pacients_tw.setColumnCount(5) self.pacients_tw.setHorizontalHeaderLabels(["ФИО",\ "Дата рождения\nвозраст",\ "Пол",\ "Действующий\nполис ОМС",\ "Документ,\nподтверждающий личность"]) self.pacients_tw.setColumnWidth(0,190) self.pacients_tw.setColumnWidth(1,150) self.pacients_tw.setColumnWidth(2,50) self.pacients_tw.setColumnWidth(3,190) self.pacients_tw.setColumnWidth(4,200) self.pacients_tw.horizontalHeader().setStretchLastSection(True) self.pacients_tw.horizontalHeader().setFixedHeight(35) self.pacients_tw.setMinimumHeight(200) #self.filter_gb.setStyleSheet("QGroupBox::title (border: 3px grey;\ # border-radius: 3px;margin-top: 1ex;)") self.filter_p.setMinimumHeight(200) self.search_b.setMinimumHeight(25) # Прикрепление к кнопкам действий QtGui.QAction.connect(self.search_b,\ QtCore.SIGNAL("clicked()"),\ self.clickSearchButton) # Создание центрального виджета self.cw=QtGui.QWidget() # Создание слоя self.layout=QtGui.QGridLayout() # Настройка слоя # Прикрепление элементов к слою self.layout.addWidget(self.pacients_tw,0,0) self.layout.addWidget(self.filter_p,1,0) self.layout.addWidget(self.search_b,2,0) # Прикрепление слоя к центральному виджету self.cw.setLayout(self.layout) # Прикрепление центрального виджета к окну self.setCentralWidget(self.cw)