#include #include #include #include #include #include #include #include #include #include #include #include #include "test.hxx" MyDialog::MyDialog(QWidget *parent) : QDialog(parent) { setWindowTitle("Qt"); setWindowFlags(Qt::Dialog); setWindowModality(Qt::WindowModal); QVBoxLayout *qvbox = new QVBoxLayout(); QComboBox *tmp = new QComboBox(this); qvbox->addWidget(tmp); tmp->setEditable(true); tmp->setInsertPolicy(QComboBox::NoInsert); tmp->view()->setTextElideMode(Qt::ElideNone); QStringList items; items << "One" << "Two" << "Three"; tmp->addItems(items); QPushButton *button = new QPushButton("&OK", this); button->setDefault(true); qvbox->addWidget(button); setLayout(qvbox); connect(button, &QPushButton::clicked, this, &QDialog::accept); } MyDialog::~MyDialog() { } MyFrame::MyFrame(): QMainWindow() { } void MyFrame::onAction() { MyDialog dlg; dlg.exec(); } /** * What shall I say to this piece of code ? */ int main (int argc,char* argv[]) { QApplication a(argc, argv); try { QMdiArea *mdiArea = new QMdiArea(); MyFrame frame; QMenuBar *menuBar = new QMenuBar(&frame); QMenu *fileMenu = frame.menuBar()->addMenu("&ATest"); QMenu *fileMenu1 = frame.menuBar()->addMenu("&BTest2"); QMenu *fileMenu2 = frame.menuBar()->addMenu("&CTest3"); QMenu *fileMenu3 = frame.menuBar()->addMenu("&DTest4"); QAction *tmp = fileMenu->addAction("&Open Dialog..."); // tmp->setEnabled(false); tmp = fileMenu->addAction("&Test Item"); // tmp->setEnabled(false); frame.setCentralWidget(mdiArea); QMainWindow *mdiFrame = new QMainWindow(&frame); QMenuBar *menuBar1 = new QMenuBar(mdiFrame); QMenu *fileMenu_1 = mdiFrame->menuBar()->addMenu("&ETest"); QMenu *fileMenu1_1 = mdiFrame->menuBar()->addMenu("&FTest2"); QMenu *fileMenu1_2 = mdiFrame->menuBar()->addMenu(">est3"); QMenu *fileMenu1_3 = mdiFrame->menuBar()->addMenu("&HTest4"); QAction *tmp1 = fileMenu_1->addAction("&Open Dialog..."); tmp1->setEnabled(false); QAction* tmp2 = fileMenu_1->addAction("&Open Dialog2..."); QMdiSubWindow *subWindow1 = mdiArea->addSubWindow(mdiFrame); frame.connect(tmp, &QAction::triggered, &frame, &MyFrame::onAction); frame.show(); return a.exec(); } catch (...) { } }