Найти - Пользователи
Полная версия: Пример Qt4 с C++ на python 3
Начало » GUI » Пример Qt4 с C++ на python 3
1 2 3
vic57
классика
MrViktor
vic57
классика
Блин, чет я такой классики не находил или плохо искал, подозреваю у Вас в закромах есть еще интересное чтиво, но мне пока хватит Хотя если есть что-то о python3 + firebird да еще и на русском - прошу поделиться.
vic57
MrViktor
python3 + firebird да еще и на русском
имхо пито 2 или 3 поровну
беглый гугл выдает
http://websiteprojector.blogspot.ru/2010/11/python-firebird-kinterbasdb.html
http://www.firebirdsql.su/doku.php?id=skript_dlja_rezervirovanija_bazy_dannyx_na_python
когда-то писал консольку для изучения SQL, если найду в закромах, портирую на питон и выложу
MrViktor
vic57
когда-то писал консольку для изучения SQL, если найду в закромах, портирую на питон и выложу
Буду очень благодарен! В дальнейшем буду с firebird разбираться, а для работы с таблицами в PyQt4 в частности заполнение: либо циклом, либо через модель данных (в зависимости от того что используешь Table Widget или Table View), для себя решил, что лучше через модель. Вот если б еще и GUI пример бы был

Rodegast
Ну и вот пример как надо на python-е писать:
К Вам еще с вопросами вот переписал метод с учетом Ваших замечаний
     def headerData (self, selection, orentation, role=Qt.DisplayRole):
        if role == Qt.DisplayRole:
            if orentation == Qt.Horizontal:
                return 'Column %s'%selection
            else:
                return 'Row %s'%selection
        else: return None
Сильнее его не опитонить?

Еще вот такой метод
     def flags(self, index):
        if not index.isValid:
            return Qt.ItemIsEnabled
        return super(StringListModel, self).flags(index) | Qt.ItemIsEditable
Есть ли принципиальная разница, если из основного условия убрать отрицание и ретурны соответственно местами поменять?

А в следующем методе, надо ли переменной i дописать self?
     def insertRows(self, position, rows, parent = QModelIndex()):
        self.beginInsertRows(QModelIndex(), position, position+rows-1)
        i = 0
        while i < rows:
            self._stringList.insert(position, '')
            i += 1
        self.endInsertRows()
        return True

И самое не дающее мне покоя при закрытии моего примера (при условии, что по форме не кликали мышкой т.е. запустили и тут же закрыть) в консоли выводится ошибка
 QObject::startTimer: QTimer can only be used with threads started with QThread
Что-то я ее отловить никак не могу.
Rodegast
> на текущий момент работаю над пониманием функционала, а они вроде нужны только визуального оформления или я не прав?

Они нужны для задания геометрии виджетов в зависимости от родителя.

> примеры из поставки кьюта давно опитонены

Эти примеры поставляются в месте с PyQt/PySide

> Сильнее его не опитонить?

Если поток исполнения не доходит до return, а функция заканчивается, то он возвращает None. По этому строка else: return None не имеет никакого смысла. Её лучше убрать.

> Есть ли принципиальная разница, если из основного условия убрать отрицание и ретурны соответственно местами поменять?

Нет. isValid это метод, по этому его нужно вызвать.

> А в следующем методе, надо ли переменной i дописать self?

Не надо.
MrViktor
Rodegast
Нет. isValid это метод, по этому его нужно вызвать.
Я другое имел ввиду, именно получается вот так
 def flags(self, index):
        if index.isValid:
            return super(StringListModel, self).flags(index) | Qt.ItemIsEditable
        return Qt.ItemIsEnabled
vic57
нашел, реанимировал.
я писал для изучения sql
MrViktor
vic57
нашел, реанимировал.
Здорово, главное что не километры кода основное есть, дальше будем разбираться (смотрю теги html используются. Я про это читал, но не пробывал, а тут бонусом пример).
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