#include #include #include #include #include #include #include #include #include #include #include void configureMainMenuBar(QMenuBar &iMenuBar, QWidget &iWindow) { QMenu *aOpenMenu = iMenuBar.addMenu("File"); aOpenMenu->addAction("Open JSON file", [] { QFileDialog aFileDialog; aFileDialog.setWindowTitle("Choose JSON file"); QDir aCurrentDir{QDir::currentPath()}; aFileDialog.setDirectory(aCurrentDir); aFileDialog.setFileMode(QFileDialog::ExistingFile); aFileDialog.setOption(QFileDialog::ShowDirsOnly, false); aFileDialog.setNameFilter("*.json"); aFileDialog.exec(); const QStringList kFilePaths{aFileDialog.selectedFiles()}; if (kFilePaths.size() > 0) { std::cout << kFilePaths[0].toStdString(); } }); aOpenMenu->addAction("Quit", [&iWindow] { iWindow.close(); }); } int main(int argc, char *argv[]) { QApplication aApplication(argc, argv); QWidget aWindow; aWindow.resize(440, 650); // Set Dialog flag for i3 users aWindow.setWindowFlag(Qt::WindowType::Dialog); QGridLayout aLayout(&aWindow); QMenuBar aMenuBar; configureMainMenuBar(aMenuBar, aWindow); QListWidget aListOfCards; aListOfCards.insertItem(0, "first card"); aListOfCards.insertItem(1, "second card"); aListOfCards.insertItem(2, "third card"); aLayout.addWidget(&aMenuBar, 0, 0); aLayout.addWidget(&aListOfCards, 1, 0); aWindow.show(); aWindow.setWindowTitle("Hearthstone simulator"); return aApplication.exec(); }