C++ (Qt)setWindowFlags(Qt::Popup);
//куски кодаSettingsDetailDialog::SettingsDetailDialog(int id, QWidget *parent) : QDialog(parent, Qt::WindowTitleHint | Qt::WindowSystemMenuHint), ui(new Ui::SettingsDetailDialog){ ui->setupUi(this); setAttribute(Qt::WA_TransparentForMouseEvents); currentEdited = 0; keyboard = new WidgetKeyboard(this); keyboard->setWindowFlags(Qt::Popup);// keyboard->setWindowFlags(Qt::SplashScreen); keyboard->hide(); ui->drawingMinSpinBox->installEventFilter(this); ui->drawingMaxSpinBox->installEventFilter(this);}bool SettingsDetailDialog::eventFilter(QObject *object, QEvent *event){ if (event->type() == QEvent::FocusIn) { if (QAbstractSpinBox *spin = qobject_cast<QAbstractSpinBox *>(object)) { // currentEdited - виджет, который сейчас редактируется if (spin != currentEdited) { currentEdited = (QWidget *) spin; } keyboard->move(spin->mapToGlobal(QPoint(0, spin->height()))); keyboard->setType(WidgetKeyboard::NumPad); keyboard->show(); return true; } } return QDialog::eventFilter(object, event);}void SettingsDetailDialog::mousePressEvent(QMouseEvent *event){ if (!keyboard->isHidden()) { if (!keyboard->geometry().contains(event->pos())) { keyboard->close(); currentEdited = 0; } } QDialog::mousePressEvent(event);}