В Qt и PyQt события называются сигналами, и вы привязываетесь к ним, используя слоты ( документы здесь ).Вообще говоря, то, что вы делаете, определяет слот с @
декоратором.
class WindowImpl (QtGui.QMainWindow, Ui_TremorMain, Ui_Graphs):
def __init__ (self, buffer, parent = None, configuration = None):
# do some initialisation here (not GUI setup however)
@QtCore.pyqtSlot(int, name="on_confSelectorCombo_currentIndexChanged")
def confChanged (self, newConf):
# do some stuff here to handle the event
Вышеуказанное будет срабатывать при событии currentIndexChanged
объекта с именем confSelectorCombo
.Настройка confSelectorCombo
выполняется в GUI Builder или Qt Creator
, как Nokia решила это назвать.Это действительно то, что вы хотите использовать, чтобы начать.Здесь есть уроки здесь по использованию Qt Creator.Очевидно, вы захотите просмотреть документы и посмотреть, какие сигналы излучаются какими виджетами.
Что касается шрифтов, все, что я знаю, это то, что они говорят о документах :
If you have not set a font for your application then the default font on your
machine will be used, and the default font can be different on different
machines. On Windows the default Windows font is used, on X11 the one in qtrc
can be used. If a default font can’t be found, then a font specified by Qt
will be used.
QStyleSheet
и QStyle
действуют как прокси для изменения внешнего вида виджетов ( QStylesheet , QStyle ).
Что касаетсязаставив приложение подождать, я нашел this
QTime dieTime = QTime::currentTime().addSecs(2);
while( QTime::currentTime() < dieTime ):
QCoreApplication::processEvents(QEventLoop::AllEvents, 100);
Существует также QThread.sleep()
( docs ), в зависимости от того, какой эффект вы хотите.Вероятно, также стоит взглянуть на поддержку потоков в Qt docs
В целом, при поиске информации о том, как что-то делать в PyQt, я нашел удивительно полезным взглянуть на документацию Qt, а затем простописать вещи на Python.9 раз из 10 это работает.С другой стороны, вероятно, стоит также взглянуть на PySide, которая является другой библиотекой Python Qt.Я не использовал себя раньше, как это было в работах ранее, но я заметил, что они выпустили версию 1.0.6.
ОБНОВЛЕНИЕ Просто чтобы повторить Люка Вудворда ниже,вы можете использовать QGraphicsScene
и QGraphicsView
для рендеринга объектов объектно-ориентированным способом.QGraphicsScene
на самом деле ничего не отображает, это просто граф сцены, тогда QGraphicsView
используется для визуализации содержимого графа сцены.Для рисования низкого уровня также есть QPainter
- здесь есть базовый учебник рисования здесь .Также стоит посмотреть QGraphicsItem
, который является основой для всех графических элементов, и
includes defining the item's geometry, collision detection, its painting
implementation and item interaction through its event handlers
документы здесь .Context2D
предоставляет HTML-холст (если я не ошибаюсь при использовании WebKit).Сам холст имеет только измененный слот, но любые объекты, которые вы помещаете на холст, будут / могут иметь больше слотов.Здесь довольно полное руководство по Context2D
и Context2DCanvas
здесь .Для объяснения того, почему так много разных способов рендеринга, вы должны спросить кого-то еще.Мои два цента в том, что это как-то связано с тем фактом, что Qt должен работать везде, и Trolltech, а затем Nokia хотели предоставить большой выбор.К счастью, документы действительно хороши.