IntruderOct. 17, 2020, 5:53 a.m.

Как вернуться на главное окно проекта в Qt

QMainWindow, QWizard

Добрый день уважаемые товарищи программисты.
Вот что я не могу никак понять. Есть QMainWindow, из которого вызывается мастер создания объекта через дочернюю форму. После завершения работы мастера управление передается не главному окну, а любому окну операционой системы.
У меня такой вопрос, как сделать так, чтобы управление передавалось обратно QMainWindow независимо от того, какое окно было закрыто в текущий момент времени.

Спасибо всем за ответ и помощь.

We recommend hosting TIMEWEB
We recommend hosting TIMEWEB
Stable hosting, on which the social network EVILEG is located. For projects on Django we recommend VDS hosting.
4

Добрый день. Нужно на объекте главного окна вызвать setFocus, тогда можно будет сфокусироваться на этом окне. Можете в дочернюю форму передавать указатель на главное окно и попробовать в событии закрытия окна вызывать установку фокуса на главное окно.

Евгений, добрый день. А как передать этот самый фокус?

Разобрался. Задачу решил вот так (может немоного не экономно и топорно, но рабтает):

    auto widgetList = QApplication::topLevelWidgets();
    foreach(auto object, widgetList){
        if(object->objectName() == "MainWindow"){
            auto window = dynamic_cast<QMainWindow*>(object);
            window->activateWindow();
            break;
        }
    }
DK
  • Oct. 21, 2020, 1:07 p.m.
  • The answer was marked as a solution.

Если окно основное, то можно сделать так, чтобы легко его использовать. Например, если оно всегда видно на заднем фоне, отобразить на нем какие-то динамические настройки, фокус дать и тп.

connect(*_subDialog, &QDialog::rejected, [&](){ MainWindow::getInstance()->setFocus(); } );
namespace Ui {
class MainWindow;
}

class MainWindow : public QMainWindow
{
    Q_OBJECT

public:
    static MainWindow *getInstance(QWidget *parent = 0);
    explicit MainWindow(QWidget *parent = 0);
    ~MainWindow();

private:
    static MainWindow *_instance;
}

MainWindow *MainWindow::getInstance(QWidget *parent)
{
    if (_instance == nullptr)
        _instance = new MainWindow(parent);
    return _instance;
}

Comments

Only authorized users can post comments.
Please, Log in or Sign up
Timeweb

Let me recommend you the excellent hosting on which EVILEG is located.

For many years, Timeweb has been proving his stability.

For projects on Django I recommend VDS hosting

View Hosting
J

C++ - Test 001. The first program and data types

  • Result:93points,
  • Rating points8
V
  • Vitreg
  • Oct. 26, 2020, 2:35 a.m.

C++ - Test 001. The first program and data types

  • Result:73points,
  • Rating points1
V
  • Vitreg
  • Oct. 26, 2020, 2:23 a.m.

C++ - Test 005. Structures and Classes

  • Result:83points,
  • Rating points4
Last comments
S

QML - Lesson 026. Intents with Qt for Android, part 1

Есть ли возможность приведения java типа у QAndroidJniObject? Интересует конкретно class to
VK

Qt/C++ - Lesson 015. QTableWidget – How to create a table with checkboxes?

Кто-нибудь знает, как сделать так, чтобы в QTableWidget состоящей из чекбоксов в строке таблицы можно было выбрать только один checkbox ?

Qt/C++ - Lesson 006. QSqlQueryModel – Tables in Qt with SQL-query

QSqlTableModel выполняет ряд стандартных операций для одной таблицы из базы данных. Поэтому там и реализован функционал по удалению и редактированию. QSqlQueryModel позволяет выполнить запр…
VB

Qt/C++ - Lesson 006. QSqlQueryModel – Tables in Qt with SQL-query

Добрый день. Хотел спросить вот что. Создал проект на основе QAbstractTableModel. В MainWindow cоответственно создал модель и связал с представлением. Поиск веду по списку элементов модели,…

QCheckBox в качестве делегата QTableView

До тех пор, пока у вас проект содержит только одну таблицу, или несколько то может быть. Когда их будет 1000 и чекбоксы в разных колонках, то без делегатов и переопределения возвращаемых ре…
Now discuss on the forum
DD

MyForm(forms.Form): - непонятка

просто в конструкторе self.user = None
DD

QWebView android

реализовать приведение типа невозможно
DD

не могу передать стринг с QLineEdit

якщо ти про ось це
DD

Siganal slot в ui

какой код должен находиться в слоте он сам не знает
u
  • ubomj
  • Oct. 28, 2020, 6:37 a.m.

Создание черновика как на авито и тд

Илья а можно пример кода? Пожалуйстааа ^___^ class CreatePostView(LoginRequiredMixin, CreateView): model = Post form_class = PostForm template_name = 'add.html' success_u…
About
Services
© EVILEG 2015-2020
Recommend hosting TIMEWEB