📄 mainwindow.cpp
字号:
#include "mainwindow.h"
#include "target.h"
#include "radar.h"
static const int TargetCount = 50;
MainWindow::MainWindow()
{
createActions();
createMenus();
createToolbars();
statusBar()->showMessage(tr("Ready"));
qsrand(QTime(0,0,0).secsTo(QTime::currentTime()));
scene = new QGraphicsScene;
scene->setSceneRect(-400, -300, 800, 600);
scene->setItemIndexMethod(QGraphicsScene::NoIndex);
for (int i = 0; i < TargetCount; ++i) {
Target *target = new Target;
target->setPos(qrand() % 800 - 400,
qrand() % 600 - 300);
target->setVisible(true);
scene->addItem(target);
}
view = new RadarView(scene, this);
view->setRenderHint(QPainter::Antialiasing);
view->setBackgroundBrush(Qt::black);
view->setCacheMode(QGraphicsView::CacheBackground);
view->setDragMode(QGraphicsView::ScrollHandDrag);
setCentralWidget(view);
setWindowTitle(tr("海战模拟"));
}
void MainWindow::createActions()
{
printAct = new QAction(QIcon(":/images/print.png"), tr("&Print..."), this);
connect(printAct, SIGNAL(triggered()), this, SLOT(print()));
}
void MainWindow::createMenus()
{
fileMenu = menuBar()->addMenu(tr("&File"));
fileMenu->addAction(printAct);
}
void MainWindow::createToolbars()
{
fileToolBar = addToolBar(tr("Print"));
fileToolBar->addAction(printAct);
}
void MainWindow::print()
{
QPrinter printer;
if (QPrintDialog(&printer).exec() == QDialog::Accepted) {
QPainter painter(&printer);
painter.setRenderHint(QPainter::Antialiasing);
scene->render(&painter);
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -