Форум программистов, компьютерный форум, киберфорум
Наши страницы
Python: GUI, графика
Войти
Регистрация
Восстановить пароль
 
Chotkay
0 / 0 / 0
Регистрация: 03.05.2016
Сообщений: 66
Завершенные тесты: 2
#1

Переходы между формами

19.04.2017, 20:44. Просмотров 189. Ответов 0
Метки нет (Все метки)

Python 3.4
GUI - PyQt4

Имеется класс, в котором загружается ui-форма теста и создаются radioButtons, а также класс, в котором загружается ещё одна форма и считывается с файла описание для теста.

Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
class TestWindow(QtGui.QWidget):
    previousBtn = 0b100
    applyBtn = 0b010
    nextBtn = 0b001
 
    def __init__(self, btns, radioButtonsCountInLn=5, parent=None):
        QtGui.QWidget.__init__(self, parent)
        uic.loadUi('ui/testUi.ui', self)
        self.test.setText(self.lines[0])
 
        if btns & TestWindow.previousBtn:
            self.previousBtn.setEnabled(True)
 
        if btns & TestWindow.applyBtn:
            self.applyBtn.setEnabled(True)
 
        if btns & TestWindow.nextBtn:
            self.nextBtn.setEnabled(True)
 
    for i in range(count):
            currLn = i // radioButtonsCountInLn
            currCol = i % radioButtonsCountInLn
            self.gridLayout.addWidget(QtGui.QRadioButton(str(i + 1)), currLn, currCol)
 
class MainScreen(QtGui.QWidget):
 
    def __init__(self, parent=None):
        QtGui.QWidget.__init__(self, parent)
        uic.loadUi('ui/mainScreenUi.ui', self)
        with open('description.txt', encoding='cp1251') as f:
            description = f.read()
        self.label.setText(description)
Имеется третий класс, в котором сначала создаётся экземпляр второго класса (с описанием теста), а потом, при нажатии на кнопку, должен создаваться экземпляр первого класса.


Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
class TestController(QtGui.QWidget):
 
    def __init__(self, testCount, parent=None):
        QtGui.QWidget.__init__(self, parent)
        self.testCount = testCount
        
        mainScreen = MainScreen(self)
        self.state = 0
 
        mainScreen.startTestBtn.clicked.connect(self.processState)
 
        self.pool = [mainScreen]
 
    def loadTest(self, numberOfTest, btns):
        btns = TestWindow.nextBtn | TestWindow.applyBtn | TestWindow.previousBtn
        with open('tests/test_' + str(numberOfTest) + '.txt', encoding='cp1251') as f:
            text = f.readline()
            self.pool.append(TestWindow(btns))
 
            if btns & TestWindow.nextBtn:
                self.pool[-1].nextBtn.clicked.connect(self.processState)
 
            if btns & TestWindow.previousBtn:
                self.pool[-1].previousBtn.clicked.connect(self.processState)
 
            if btns & TestWindow.applyBtn:
                self.pool[-1].applyBtn.clicked.connect(self.processRes)
          
    def processState(self):
        self.loadTest(1, TestWindow.nextBtn | TestWindow.applyBtn)
 
if __name__ == '__main__':
    app = QtGui.QApplication(sys.argv)
    test = TestController(5)
    test.show()
    
    sys.exit(app.exec_())
Но что-то не так. С загрузкой формы с описанием проблем нет, а вот со следующей загрузкой формы с самим тестом осложнения. Надеюсь на вашу помощь

Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь.

0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
19.04.2017, 20:44
Ответы с готовыми решениями:

Обмен данными между формами
Добрый вечер. Пишу небольшое приложение средствами PyQt, хотел посоветоваться,...

Webkit и python. Переходы по сайту
Добрый день. Я хочу написать бота для онлайн игр. За основу взял webkit. Хочу...

Python, Работа с html формами
Есть такой html код: <input type="text" name="inp" value="1"> Как взять...

Работа с формами регистрации\входа (https)
В общем начал сам пробовать работать с формами, и для примера захотел узнавать...

NetBeans переходы между формами
Добрый день. Начал разбираться в NetBeans и появилось несколько вопросов. В...

0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
19.04.2017, 20:44

Не работают переходы между страницами WP 8.1
Скачал VS 2013 express как я понял переход осуществляется в обработчике событий...

переходы между контролами клавишей tab
Hi, при создании формы "windowsforms", которая содержит несколько разных...

Как сверстать такие переходы между секциями?
Добрый день. Интересует вопрос, как сверстать вот такие неровные переходы...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
1
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru