FFMpegDemo::FFMpegDemo(QWidget *parent) : QWidget(parent) { ui.setupUi(this); m_pScreenRecord = NULL; connect(ui.pushButton, SIGNAL(clicked()), this, SLOT(slotStart())); connect(ui.pushButtonEnd, SIGNAL(clicked()), this, SLOT(slotEnd())); }
void StandGrapher::createGui() { //-------------------------------------------------- // Universal button creator for the navigation bars //-------------------------------------------------- class ButtonCreator { public: static QPushButton * create(QWidget * parent, const QString & objName, const QIcon & icon, const QKeySequence & key, QString toolTip, QWidget * target, const char * slot) { QPushButton * button = new QPushButton(parent); button->setObjectName(objName); button->setFocusPolicy(Qt::NoFocus); connect(button, SIGNAL(pressed()), target, slot); button->setIconSize(QSize(32, 32)); button->setIcon(QIcon(icon)); if (!key.isEmpty()) toolTip += " " + tr("(Shortcut: <b>%1</b>)").arg(key.toString()); button->setToolTip(toolTip); QShortcut * shortcut = new QShortcut(key, target); connect(shortcut, SIGNAL(activated()), target, slot); return button; } }; QList<QPushButton *> buttons; //------------------------------------------- // Horizontal tool box //------------------------------------------- hToolBox = new QFrame(this); hToolBox->setFrameStyle(QFrame::StyledPanel | QFrame::Plain); hToolBox->setAutoFillBackground(true); hToolBox->setCursor(Qt::ArrowCursor); hToolBox->installEventFilter(this); // Create buttons buttons << ButtonCreator::create(hToolBox, "Start_button", QIcon(":/start.png"), Qt::Key_Home, tr("Start"), this, SLOT(slotStart())); buttons << ButtonCreator::create(hToolBox, "Prev_button", QIcon(":/previous.png"), Qt::Key_Left, tr("Previous"), this, SLOT(slotPrevious())); buttons << ButtonCreator::create(hToolBox, "HFit_button", QIcon(":/fit.png"), QKeySequence(), tr("Fit horizontally"), this, SLOT(slotFit())); buttons << ButtonCreator::create(hToolBox, "Next_button", QIcon(":/next.png"), Qt::Key_Right, tr("Next"), this, SLOT(slotNext())); buttons << ButtonCreator::create(hToolBox, "Finish_button", QIcon(":/finish.png"), Qt::Key_End, tr("End"), this, SLOT(slotEnd())); buttons << ButtonCreator::create(hToolBox, "HZoomIn_button", QIcon(":/plus.png"), Qt::Key_Plus, tr("Wider"), this, SLOT(slotZoomIn())); buttons << ButtonCreator::create(hToolBox, "HZoomOut_button", QIcon(":/minus.png"), Qt::Key_Minus, tr("Narrower"), this, SLOT(slotZoomOut())); // Layout buttons QHBoxLayout * hLayout = new QHBoxLayout(hToolBox); foreach(QPushButton * button, buttons) hLayout->addWidget(button); hToolBox->setLayout(hLayout); //------------------------------------------- // Vertical tool box //------------------------------------------- vToolBox = new QFrame(this); vToolBox->setFrameStyle(QFrame::StyledPanel | QFrame::Plain); vToolBox->setAutoFillBackground(true); vToolBox->setCursor(Qt::ArrowCursor); vToolBox->installEventFilter(this); buttons.clear(); buttons << ButtonCreator::create(vToolBox, "Up_button", QIcon(":/up.png"), Qt::Key_Up, tr("Up"), this, SLOT(slotUp())); buttons << ButtonCreator::create(vToolBox, "VFit_button", QIcon(":/fit_vert.png"), QKeySequence(), tr("Fit vertically"), this, SLOT(slotVFit())); buttons << ButtonCreator::create(vToolBox, "Down_button", QIcon(":/down.png"), Qt::Key_Down, tr("Down"), this, SLOT(slotDown())); buttons << ButtonCreator::create(vToolBox, "VZoomIn_button", QIcon(":/plus.png"), Qt::SHIFT+Qt::Key_Plus, tr("Wider"), this, SLOT(slotVZoomIn())); buttons << ButtonCreator::create(vToolBox, "VZoomOut_button", QIcon(":/minus.png"), Qt::SHIFT+Qt::Key_Minus, tr("Narrower"), this, SLOT(slotVZoomOut())); // Layout buttons QVBoxLayout * vLayout = new QVBoxLayout(vToolBox); foreach(QPushButton * button, buttons) vLayout->addWidget(button); vToolBox->setLayout(vLayout); //------------------------------------------- // Tool Box //------------------------------------------- toolBox = new QFrame(this); toolBox->setFrameStyle(QFrame::StyledPanel | QFrame::Plain); toolBox->setAutoFillBackground(true); toolBox->setCursor(Qt::ArrowCursor); toolBox->installEventFilter(this); buttons.clear(); // Filter button filterButton = new QPushButton(toolBox); filterButton->setIcon(QIcon(":/filter.png")); filterButton->setCheckable(true); filterButton->setShortcut(Qt::Key_F); filterButton->setToolTip(tr("Filter window")); connect(filterButton, SIGNAL(released()), this, SLOT(slotFilterWindow())); buttons << filterButton; filterWindow = new ParamsFilterWidget(this); connect(filterWindow, SIGNAL( modelChanged(Stand_trace_model::Ptr) ), this, SLOT( setModel(Stand_trace_model::Ptr) )); connect(filterWindow, SIGNAL(windowClosed()), filterButton, SLOT(toggle())); // Drawing lines option drawLinesButton = new QPushButton(toolBox); drawLinesButton->setIcon(QIcon(":/draw_lines.png")); drawLinesButton->setCheckable(true); drawLinesButton->setChecked(true); drawLinesButton->setShortcut(Qt::Key_L); drawLinesButton->setToolTip(tr("Draw lines")); connect(drawLinesButton, SIGNAL(released()), this, SLOT(slotDrawLineSwither())); buttons << drawLinesButton; // Antialiasing option antialiasingButton = new QPushButton(toolBox); antialiasingButton->setIcon(QIcon(":/antialiasing.png")); antialiasingButton->setCheckable(true); antialiasingButton->setChecked(antialiasing); antialiasingButton->setShortcut(Qt::Key_A); antialiasingButton->setToolTip(tr("Antialiasing")); connect(antialiasingButton, SIGNAL(clicked(bool)), this, SLOT(slotAntialiasingSwither(bool))); buttons << antialiasingButton; // Print button printButton = new QPushButton(toolBox); printButton->setIcon(QIcon(":/printer.png")); printButton->setShortcut(Qt::Key_P); printButton->setToolTip(tr("Print")); connect(printButton, SIGNAL(released()), this, SLOT(slotPrintGraph())); buttons << printButton; // Setup buttons foreach (QPushButton * button, buttons) { button->setIconSize(QSize(16, 16)); button->setFocusPolicy(Qt::NoFocus); button->setToolTip(button->toolTip() + " " + tr("(Shortcut: <b>%1</b>)").arg(button->shortcut().toString())); }