Да, срам ни е
обещава до края на седмицата да отговорим на идеите за проекти
Единствения начин да се принудим да го направим е да обявим дата за Milestone 2
08 Юни 2015
Публично достъпно хранилище - github, bitbucket, google code (не!), self-hosted
LICENSE, README
Малко код, показващ идея как смятате да напишете проекта си
Ще пуснем новина с по - подробно обяснение
Платформа за cross-platform разработване на приложения
Deprecated
#include <QApplication>
#include <QLabel>
int main(int argc, char *argv[])
{
QApplication app(argc, argv);
QLabel *label = new QLabel("Hello Qt!");
label->show();
return app.exec();
}
import sys
from PyQt5 import Qt
app = Qt.QApplication(sys.argv)
label = Qt.QLabel("Hello Qt!")
label.show()
app.exec_()
Имаме опцията да използваме `QMainWindow`. Това ни дава:
В нашия случай това ще е overkill. Прозорецът ни може да е един обикновен `QWidget`.
Тъй като ще има повече от един widget, ще трябва да ги разположим по някакъв начин
Qt ни дава няколко такива:
За нашите цели изглежда най-удачно да ползваме QGridLayout
Можем просто да извикваме addWidget
метода му, за да добавяме на определена позиция
Ние ще използваме:
Вместо events или callbacks, Qt изпраща сигнал от потребителско действие в слот (функция)
startButton.clicked.connect(self.board.start)
pauseButton.clicked.connect(self.board.pause)
quitButton.clicked.connect(QApplication.instance().quit)
Qt е необятен. Нека разгледаме една имплементация на тетрис.
Ако правим игра, а не просто приложение с графичен интерфейс, опираме до това, че трябва да имаме фреймове. N пъти в секунда ще трябва да преначертаваме дадена област, лъжейки човешкото око, че разни неща се движат. В нашия случай, това е борда.
class TetrixBoard(QFrame):
BoardWidth = 10
BoardHeight = 22
scoreChanged = pyqtSignal(int)
levelChanged = pyqtSignal(int)
linesRemovedChanged = pyqtSignal(int)
def start(self):...
def pause(self):...
def paintEvent(self):...
def keyPressEvent(self):...
def keyPressEvent(self):...
def timerEvent(self, event):...
def oneLineDown(self):...
def dropDown(self):...
...
4 основни подхода:
We kid you not, Qt е НЕОБЯТЕН