Я только начал изучать, как использовать gtkmm, и я пытаюсь создать приложение, в котором одновременно может быть открыто более одного окна (например, главное окно и панель управления).
Я решил создать макет в Glade, если это имеет какое-либо отношение к этому вопросу.
Мой метод отображения двух бутылок более или менее такой:
Gtk::Window* main_window = nullptr;
Gtk::Window* servsettings = nullptr;
int main(int argc, char* argv[]) {
auto app = ...
auto builder = ... // these are exluded for brevity
builder->add_from_file("../src/design.glade");
builder->get_widget("main", main_window);
builder->get_widget("servsettings", servsettings);
app->run(*servsettings);
app->run(*main_window);
}
Вместооткрывая два окна, вместо этого открывается servsettings
, а затем при закрытии этого происходит ошибка segfaults.
Теперь, забыв о segfault (я в этом совершенно запутался), я думаю, я понимаю, почему он открывается только servsettings
- Я предполагаю, что это потому, что я запускаю приложение, и тогда этот вызов завершается только тогда, когда окно умирает?
Проблема в том, что я не могу придумать другой способ сделать это.Я экспериментировал с многопоточностью, но решил, что лучше сначала спросить здесь.
Прежде чем кто-либо это предложит, этот ответ мне не поможет.Это потому, что у них была проблема, связанная с областью действия.Я не знаю.