QPushButton mit QWidget verbinden/steuern
Verfasst: 19. Januar 2006 17:14
Hallo und Servus,
ich möchte ein einfaches Pacman-Spiel programmieren.
Dazu möchte ich als Einstieg einen Vollkreis mit einem QPushButton
(rightMove) nach recht bewegen. Dieser Vollkreis steht in einen eigenen QWidget (playField).
In main() rufe ich
auf. Doch wenn ich einen Breakpoint in movePacM(...) setze, springt der Debugger nicht dort hinein.
Ich freue mich über Antworten.
Gruss
Thomas
Auszug main()
Auszug PlayField:
ich möchte ein einfaches Pacman-Spiel programmieren.
Dazu möchte ich als Einstieg einen Vollkreis mit einem QPushButton
(rightMove) nach recht bewegen. Dieser Vollkreis steht in einen eigenen QWidget (playField).
In main() rufe ich
Code: Alles auswählen
connect(rightMove, SIGNAL(clicked()), playField, SLOT(movePacM(5)));Ich freue mich über Antworten.
Gruss
Thomas
Auszug main()
Code: Alles auswählen
MainWidget::MainWidget(QWidget *parent)
: QWidget(parent)
{
QPushButton *quit = new QPushButton(tr("Quit"));
quit->setFont(QFont("Times", 18, QFont::Bold));
connect(quit, SIGNAL(clicked()), qApp, SLOT(quit()));
PlayField *playField = new PlayField;
QPushButton *rightMove = new QPushButton(tr("right move"));
rightMove->setFont(QFont("Times", 16, QFont::Bold));
connect(rightMove, SIGNAL(clicked()), playField, SLOT(movePacM(5)));
...Code: Alles auswählen
void PlayField::movePacM(int moveUnit)
{
if (moveUnit < 5)
moveUnit = 5;
if (moveUnit > 100)
moveUnit = 100;
currentPacMPosition += moveUnit;
update();
}
void PlayField::paintEvent(QPaintEvent * /* event */)
{
QPainter painter(this);
painter.setPen(Qt::NoPen);
painter.setBrush(Qt::blue);
painter.save();
painter.translate(currentPacMPosition, height()/2);
painter.drawPie(QRect(0, -15, 15, 15), 0, 360 * 16);
painter.restore();
}