Уведомления

Группа в Telegram: @pythonsu

#1 Сен. 13, 2012 11:46:15

sashazz
Зарегистрирован: 2012-09-13
Сообщения: 7
Репутация: +  0  -
Профиль   Отправить e-mail  

каркас программы на PyQt4

Здравствуйте, подскажите как лучше организовать структуры программы на PyQt4. Программа состоит из 4 .ui файлов (1 ввод login/pasword - модальная по отношению к главной; 2 -главная форма ; 3-4 модальные формы с требуемым функционалом) Хочу все собрать в один pyw файл с помощью ‘uic.loadUi(“mainform.ui”, self)’ но как соединить 4 формы? (+ 2 формы хочу видоизменять кодом и выводить в качестве форм 5-6)
Пожалуйста подскажите, а то уже наделал кусков кода кучу а соединить проблемно стало (поэтому лучше с нуля сделаю), да и от self до сих пор вопросы ток возникают.

Отредактировано sashazz (Сен. 13, 2012 11:46:59)

Офлайн

#2 Сен. 13, 2012 13:55:55

sashazz
Зарегистрирован: 2012-09-13
Сообщения: 7
Репутация: +  0  -
Профиль   Отправить e-mail  

каркас программы на PyQt4

вот прилогаю код что наклепал я по примерам (ток подскажите нормально ли так делать?)

#! usr/bin/env python3
# -*- coding: utf-8 -*-
#"""  aplication.py данная программа
#"""
import sys, sqlite3
from PyQt4 import QtCore, QtGui, uic
conection = sqlite3.connect('db1.sqlite')
curs = conection.cursor()
class form(): # главное окно программы
    def __init__(self):
        super(form, self).__init__()
        uic.loadUi("form.ui", self)
        log_win=form_1(parent = self)
        log_win.show()
class form_1():# модальное окно ввода пароля
    def __init__(self):
        super(form_1, self).__init__()
        uic.loadUi("form_1.ui", self)
# загрузка всех пользователей базы в comboBox
        curs.execute('select name from user')
        for row in curs.fetchall():
            r = row[0]
            self.comboBox.addItem(r)
# конец загрузки всех пользователей
    def clic_enter(self):
        tmp = self.comboBox.currentText()
        curs.execute('select pasword from user where name=?', (tmp,))
        for row in curs.fetchone():
            pass
        if row == self.lineEdit.text():
            pass
            # hide данную форму
class form_2():# просмотр таблиц ( люди, машины)
    def __init__(self):
        super(form_2, self).__init__()
        uic.loadUi("form_2.self", self)
class form_2_add(): # форма добавления
    def __init__(self):
        super(form_2_add, self).__init__()
        uic.loadUi("form2_add.ui", self)
if __name__ == "__main__":
    app=QtGui.QApplication(sys.argv)
    try:
        app.setStyleSheet(open("./st1.qss","r").read())# загрузка QSS стиля
    except: pass  # и без него будет работать
    main_window = form()
    main_window.show()
    sys.exit(app.exec_())

Отредактировано sashazz (Сен. 14, 2012 08:19:13)

Офлайн

#3 Сен. 13, 2012 17:29:36

reclosedev
От: Н.Новгород
Зарегистрирован: 2012-03-29
Сообщения: 870
Репутация: +  173  -
Профиль   Отправить e-mail  

каркас программы на PyQt4

sashazz
да и от self до сих пор вопросы ток возникают.
Ответы

sashazz
вот прилогаю код что наклепал я по примерам (ток подскажите нормально ли так делать?)
Код нечитаемый. Используйте
[code python][/code]
Сразу в глаза бросается что формы не наследуются от QWidget, QMainWindow или QDialog.

Да и не очень целесообразно использовать uic.loadUi, посмотрите в сторону pyuic.
Using Qt Designer

Офлайн

#4 Сен. 14, 2012 15:01:26

sashazz
Зарегистрирован: 2012-09-13
Сообщения: 7
Репутация: +  0  -
Профиль   Отправить e-mail  

каркас программы на PyQt4

Спс, но решил всё реализовать по другому (по красивому) так что тема закрыта

Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version