File indexing completed on 2024-05-12 17:09:56
0001 /* 0002 SPDX-FileCopyrightText: 2017 David Edmundson <davidedmundson@kde.org> 0003 SPDX-License-Identifier: LGPL-2.0-or-later 0004 */ 0005 0006 #include <QApplication> 0007 0008 #include <QDateTime> 0009 #include <QDebug> 0010 #include <QIcon> 0011 #include <QMainWindow> 0012 #include <QMenuBar> 0013 0014 class MainWindow : public QMainWindow 0015 { 0016 public: 0017 MainWindow(); 0018 }; 0019 0020 MainWindow::MainWindow() 0021 : QMainWindow() 0022 { 0023 /*set an initial menu with the following 0024 Menu A 0025 - Item 0026 - Checkable Item 0027 - Item With Icon 0028 - A separator 0029 - Menu B 0030 - Item B1 0031 Menu C 0032 - DynamicItem ${timestamp} 0033 0034 TopLevelItem 0035 */ 0036 0037 QAction *t; 0038 auto menuA = new QMenu("Menu A", this); 0039 menuA->addAction("Item"); 0040 0041 t = menuA->addAction("Checkable Item"); 0042 t->setCheckable(true); 0043 0044 t = menuA->addAction(QIcon::fromTheme("document-edit"), "Item with icon"); 0045 0046 menuA->addSeparator(); 0047 0048 auto menuB = new QMenu("Menu B", this); 0049 menuB->addAction("Item B1"); 0050 menuA->addMenu(menuB); 0051 0052 menuBar()->addMenu(menuA); 0053 0054 auto menuC = new QMenu("Menu C", this); 0055 connect(menuC, &QMenu::aboutToShow, this, [menuC]() { 0056 menuC->clear(); 0057 menuC->addAction("Dynamic Item " + QDateTime::currentDateTime().toString()); 0058 }); 0059 0060 menuBar()->addMenu(menuC); 0061 0062 menuBar()->addAction("Top Level Item"); 0063 } 0064 0065 int main(int argc, char **argv) 0066 { 0067 QApplication app(argc, argv); 0068 MainWindow mw; 0069 mw.show(); 0070 return app.exec(); 0071 }