Найти - Пользователи
Полная версия: каркас программы на PyQt4
Начало » GUI » каркас программы на PyQt4
1
sashazz
Здравствуйте, подскажите как лучше организовать структуры программы на PyQt4. Программа состоит из 4 .ui файлов (1 ввод login/pasword - модальная по отношению к главной; 2 -главная форма ; 3-4 модальные формы с требуемым функционалом) Хочу все собрать в один pyw файл с помощью ‘uic.loadUi(“mainform.ui”, self)’ но как соединить 4 формы? (+ 2 формы хочу видоизменять кодом и выводить в качестве форм 5-6)
Пожалуйста подскажите, а то уже наделал кусков кода кучу а соединить проблемно стало (поэтому лучше с нуля сделаю), да и от self до сих пор вопросы ток возникают.
sashazz
вот прилогаю код что наклепал я по примерам (ток подскажите нормально ли так делать?)
#! 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_())
reclosedev
sashazz
да и от self до сих пор вопросы ток возникают.
Ответы

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

Да и не очень целесообразно использовать uic.loadUi, посмотрите в сторону pyuic.
Using Qt Designer
sashazz
Спс, но решил всё реализовать по другому (по красивому) так что тема закрыта
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB