Russian Qt Forum

Qt => Вопросы новичков => Тема начата: palya от Январь 29, 2016, 15:07



Название: Как удержать окно в фокусе?
Отправлено: palya от Январь 29, 2016, 15:07
Добрый день.
Проблема - не знаю, как удержать в фокусе окно так, чтобы при создании нового, старое оставалось активным.
Код:
#include <QtWidgets>
#include "counter.h"

void Counter::setValue(const QString & value)
{
     if (value == "a") {
         QWidget* wgt2 = new QWidget;
         QLabel* plblDisplay2 = new QLabel("Text2:");
         Counter* pDisplay2 = new Counter;
         plblDisplay2->setBuddy(pDisplay2);
         QVBoxLayout* pvbxLayout2 = new QVBoxLayout;
         pvbxLayout2->addWidget(plblDisplay2);
         pvbxLayout2->addWidget(pDisplay2);
         wgt2->setLayout(pvbxLayout2);
         wgt2->setAttribute(Qt::WA_DeleteOnClose);
         wgt2->show();
     }
}

int main(int argc, char** argv)
{
    QApplication app(argc, argv);
    QWidget* wgt = new QWidget;
    QLabel* plblText = new QLabel("Text:");
    Counter* ptxt = new Counter;
    plblText->setBuddy(ptxt);

    QObject::connect(ptxt, SIGNAL(textChanged(const QString&)),
    ptxt, SLOT(setValue(const QString&))
    );

    //Layout setup
    QVBoxLayout* pvbxLayout = new QVBoxLayout;
    pvbxLayout->addWidget(plblText);
    pvbxLayout->addWidget(ptxt);
    wgt->setLayout(pvbxLayout);
    wgt->setWindowFlags(wgt->windowFlags() | Qt::WindowStaysOnTopHint);
    wgt->setAttribute(Qt::WA_DeleteOnClose);
    wgt->show();
    return app.exec();

}


Название: Re: Как удержать окно в фокусе?
Отправлено: Igors от Январь 29, 2016, 15:12
Код
C++ (Qt)
wgt2->setAttribute(Qt::Qt::WA_ShowWithoutActivating);


Название: Re: Как удержать окно в фокусе?
Отправлено: palya от Январь 29, 2016, 15:22
Код
C++ (Qt)
wgt2->setAttribute(Qt::Qt::WA_ShowWithoutActivating);
Спасибо.