Beispiel #1
0
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()));
}
Beispiel #2
0
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()));
    }