Спокойное Действие Игры/Паузы?

Истинный ответ Jon Skeet, на другом форуме здесь .

одиночный элемент А предоставляет доступ к единственному созданному экземпляру - что экземпляр (или скорее ссылка на тот экземпляр) можно передать в качестве параметра другим методам и рассматривать как обычный объект.

А статический класс позволяет только статические методы.

5
задан mpen 17 August 2009 в 18:22
поделиться

2 ответа

Будьте проще . Используйте ту же кнопку, но при обработке щелчка измените значок и выберите логику обработки (воспроизведение или пауза) в зависимости от текущего статуса (пауза при воспроизведении или воспроизведение при паузе).

Чтобы код оставался ясным, реализуйте два отдельных метода, один для воспроизведения и один для паузы, и вызовите их из слота кнопки, в зависимости от статуса.

6
ответ дан 13 December 2019 в 22:12
поделиться

Я думаю, что это самый простой / наиболее подходящий вариант:

playAct = new QAction(QIcon(":/icons/elementary/media-playback-start.png"), tr("&Run"), controlActGroup);
playAct->setShortcut(Qt::Key_Space);
playAct->setCheckable(true);
playAct->setStatusTip(tr("Run physics"));
connect(playAct, SIGNAL(triggered()), editorView, SLOT(runPhysics()));

pauseAct = new QAction(QIcon(":/icons/elementary/media-playback-pause.png"), tr("&Pause"), controlActGroup);
pauseAct->setShortcut(Qt::Key_Space);
pauseAct->setCheckable(true);
pauseAct->setStatusTip(tr("Pause physics"));
connect(pauseAct, SIGNAL(triggered()), editorView, SLOT(pausePhysics()));

connect(playAct, SIGNAL(toggled(bool)), pauseAct, SLOT(setVisible(bool)));
connect(pauseAct, SIGNAL(toggled(bool)), playAct, SLOT(setVisible(bool)));
pauseAct->setChecked(true);
pauseAct->setVisible(false);

Единственное, что мне не нравится, это то, что действия управляют статусом видимости ДРУГОЙ кнопки. Поскольку нет функции setInvisible , я не мог подключить ее, чтобы они могли скрывать себя при нажатии.

Это, и, похоже, создается визуальный пробел там, где была скрытая кнопка (по крайней мере, на Ubuntu).

2
ответ дан 13 December 2019 в 22:12
поделиться
Другие вопросы по тегам:

Похожие вопросы: