Уведомления

Группа в Telegram: @pythonsu
  • Начало
  • » GUI
  • » PyQt4 Создание GUI на основе вход txt файла [RSS Feed]

#1 Апрель 22, 2012 13:34:22

INTJOGE
Зарегистрирован: 2012-04-15
Сообщения: 20
Репутация: +  0  -
Профиль   Отправить e-mail  

PyQt4 Создание GUI на основе вход txt файла

reclosedev
Скорее всего проблема в общей логике. Из того, что прислали не видно откуда должен появится новый кроссворд в buttonGenClick, с этим разбирайтесь сами.
Я извиняюсь за надоедливость и перемусоливание одной темы до некуда, но прошу вас помочь в этом вопросе Файлы проекта мне самому совершенно не разобраться
Возникла идея а не поможет метод os.fdopen возвращения файла или это тоже самое?

Отредактировано INTJOGE (Апрель 22, 2012 13:46:40)

Офлайн

#2 Апрель 22, 2012 15:51:54

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

PyQt4 Создание GUI на основе вход txt файла

Файлы тут не при чем, вы бы объяснили, что кроссворд генерируется разный всегда и вам нужно перерисовывать. Проблема в том, что вы в createGrid создаете виджет, потом в __init__ его добавляете. Когда следующий раз вызывается createGrid, виджет создается, но не добавляется в главное окно. Создавать вид и сцену нужно один раз, а потом очищать только сцену!

def __init__(self):
    ...
    self.prepareGrid()
    self.createGrid()
    ...
def prepareGrid(self):
    self.xxx = QtGui.QGroupBox("PREVIEW")
    self.scen = QtGui.QGraphicsScene(0.0, 0.0, 15*20+6, 15*20+6)
    self.scen.setBackgroundBrush(QtCore.Qt.white)
    self.view = QtGui.QGraphicsView(self.scen)
    layout = QtGui.QGridLayout()
    layout.addWidget(self.view)
    self.scen.setSceneRect(0, 0, 15*25+6, 15*25+6)
    self.view.ensureVisible(0, 0, 10, 10)
    self.xxx.setLayout(layout)
 
def createGrid(self):
    self.scen.clear()
    table = self.LoadGrid('setGrid.txt')
    table2 = self.LoadGrid('setNumGrid.txt')
    for i in range(len(table)):
        for j in range(len(table[i])):
            letter = table[i][j]
            grid = table2[i][j]
            item1 = Cell(3 + i * 25, 3 + j * 25, i, j)
            if letter == "-":
                item1.setBrush(QtCore.Qt.blue)
            else:
                item1.setBrush(QtCore.Qt.white)
                if grid.isdigit():
                    item1.item2.setPlainText(grid)
                item1.item3.setPlainText(letter)
            self.scen.addItem(item1)

Отредактировано reclosedev (Апрель 22, 2012 15:54:53)

Офлайн

#3 Апрель 22, 2012 18:59:11

INTJOGE
Зарегистрирован: 2012-04-15
Сообщения: 20
Репутация: +  0  -
Профиль   Отправить e-mail  

PyQt4 Создание GUI на основе вход txt файла

reclosedev
Проблема в том, что вы в createGrid создаете виджет, потом в __init__ его добавляете. Когда следующий раз вызывается createGrid, виджет создается, но не добавляется в главное окно. Создавать вид и сцену нужно один раз, а потом очищать только сцену!

Благодарю за объяснения, буду знать на будущее

Офлайн

  • Начало
  • » GUI
  • » PyQt4 Создание GUI на основе вход txt файла[RSS Feed]

Board footer

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

Powered by DjangoBB

Lo-Fi Version