I've wasted 2 days trying to figure out why one class (UI designed in Qt Creator and then converted to C#) shows the menu and the other (written by hand, mostly copy&paste from the Qt-converted one) doesn't show the menu. Maybe a pair of fresh eyes can see what's wrong? It drives me nuts. Here are the codes:

Made in Qt Creator:
Qt Code:
  1. public class MainWindow : QMainWindow{
  2.  
  3. public QAction actionNew;
  4. public QAction actionOpen;
  5. public QAction actionSave;
  6. public QAction actionSaveAs;
  7. public QAction actionQuit;
  8. public QAction actionConfigGiraffe;
  9. public QAction actionConvert;
  10. public QAction actionRestart;
  11. public QAction actionAbout;
  12.  
  13. public QWidget mainWidget;
  14. public QWidget menuWidget;
  15. public QWidget toolWidget;
  16. public QWidget statusWidget;
  17. public QStackedWidget stackWidget;
  18. public QWidget startPage;
  19. public QWidget basicVideoPage;
  20. public QWidget basicAudioPage;
  21. public QWidget basicImagePage;
  22.  
  23. public QVBoxLayout mainLayout;
  24. public QSpacerItem hSpacer;
  25. public QSpacerItem vSpacer;
  26. public QSize size;
  27.  
  28. public QMenuBar menuBar;
  29. public QMenu menuFile;
  30. public QMenu menuEdit;
  31. public QMenu menuView;
  32. public QMenu menuGo;
  33. public QMenu menuTools;
  34. public QMenu menuSettings;
  35. public QMenu menuHelp;
  36. public QStatusBar statusBar;
  37. public QToolBar toolBar;
  38.  
  39. startWin.StartWindow startwin = new startWin.StartWindow();
  40. //Ui.MainWindow win = new Ui.MainWindow();
  41.  
  42. public MainWindow() {
  43. InitUI();
  44. //win.SetupUi(this);
  45. this.Show();
  46. }
  47.  
  48. public void InitUI() {
  49. this.WindowTitle = "Start - Cute Giraffe";
  50. size = new QSize(500, 400);
  51. this.Size = size;
  52. this.Move(200,200);
  53. hSpacer = new QSpacerItem(50, 20, QSizePolicy.Policy.Expanding, QSizePolicy.Policy.Expanding);
  54. vSpacer = new QSpacerItem(20, 100, QSizePolicy.Policy.Expanding, QSizePolicy.Policy.Expanding);
  55. mainWidget = new QWidget(this);
  56. //menuWidget = new QWidget(mainWidget);
  57. //toolWidget = new QWidget(mainWidget);
  58. //statusWidget = new QWidget(mainWidget);
  59. stackWidget = new QStackedWidget(mainWidget);
  60. startPage = new QWidget(stackWidget);
  61. basicVideoPage = new QWidget(stackWidget);
  62. basicAudioPage = new QWidget(stackWidget);
  63. basicImagePage = new QWidget(stackWidget);
  64.  
  65. startwin.StartUI(this, startPage);
  66.  
  67. stackWidget.AddWidget(startPage);
  68. stackWidget.AddWidget(basicVideoPage);
  69. stackWidget.AddWidget(basicAudioPage);
  70. stackWidget.AddWidget(basicImagePage);
  71. stackWidget.SetCurrentIndex(0);
  72.  
  73. mainLayout = new QVBoxLayout(mainWidget);
  74. //mainLayout.AddWidget(menuWidget);
  75. //mainLayout.AddWidget(toolWidget);
  76. mainLayout.AddItem(vSpacer);
  77. mainLayout.AddWidget(stackWidget);
  78. mainLayout.AddItem(vSpacer);
  79. //mainLayout.AddWidget(statusWidget);
  80. mainLayout.sizeConstraint = QLayout.SizeConstraint.SetDefaultConstraint;
  81.  
  82. mainWidget.SetLayout(mainLayout);
  83. this.SetCentralWidget(mainWidget);
  84.  
  85. actionNew = new QAction("&New", this);
  86. actionOpen = new QAction("&Open", this);
  87. actionSave = new QAction("&Save", this);
  88. actionSaveAs = new QAction("Save &As...", this);
  89. actionQuit = new QAction("&Quit", this);
  90. actionConfigGiraffe = new QAction("Configure &Giraffe...", this);
  91. actionConvert = new QAction("&Convert", this);
  92. actionRestart = new QAction("&Restart", this);
  93. actionAbout = new QAction("&About", this);
  94.  
  95. menuBar = new QMenuBar(this);
  96. menuBar.Geometry = new QRect(0, 0, 500, 22);
  97. menuFile = new QMenu(menuBar);
  98. menuEdit = new QMenu(menuBar);
  99. menuView = new QMenu(menuBar);
  100. menuGo = new QMenu(menuBar);
  101. menuTools = new QMenu(menuBar);
  102. menuSettings = new QMenu(menuBar);
  103. menuHelp = new QMenu(menuBar);
  104. /* menuFile.AddAction(actionNew);
  105. menuFile.AddAction(actionOpen);
  106. menuFile.AddAction(actionSave);
  107. menuFile.AddAction(actionSaveAs);
  108. menuFile.AddSeparator();
  109. menuFile.AddAction(actionQuit);
  110. */ this.SetMenuBar(menuBar);
  111.  
  112. menuBar.AddAction(menuFile.MenuAction());
  113. menuBar.AddAction(menuEdit.MenuAction());
  114. menuBar.AddAction(menuView.MenuAction());
  115. menuBar.AddAction(menuGo.MenuAction());
  116. menuBar.AddAction(menuTools.MenuAction());
  117. menuBar.AddAction(menuSettings.MenuAction());
  118. menuBar.AddAction(menuHelp.MenuAction());
  119. menuFile.AddAction(actionNew);
  120. menuFile.AddAction(actionOpen);
  121. menuFile.AddAction(actionSave);
  122. menuFile.AddAction(actionSaveAs);
  123. menuFile.AddSeparator();
  124. menuFile.AddAction(actionQuit);
  125. menuHelp.AddAction(actionAbout);
  126.  
  127. /* menuEdit = new QMenu();
  128. menuEdit = MenuBar().AddMenu("&Edit");
  129. menuView = new QMenu();
  130. menuView = MenuBar().AddMenu("&View");
  131. menuGo = new QMenu();
  132. menuGo = MenuBar().AddMenu("&Go");
  133. menuTools = new QMenu();
  134. menuTools = MenuBar().AddMenu("&Tools");
  135. menuSettings = new QMenu();
  136. menuSettings = MenuBar().AddMenu("&Settings");
  137. menuHelp = new QMenu();
  138. menuHelp = MenuBar().AddMenu("&Help");
  139. menuHelp.AddAction(actionAbout);
  140. */
  141. toolBar = new QToolBar(this);
  142. toolBar.AddAction(actionQuit);
  143. this.AddToolBar(Qt.ToolBarArea.TopToolBarArea, toolBar);
  144.  
  145. statusBar = new QStatusBar(this);
  146. this.SetStatusBar(statusBar);
To copy to clipboard, switch view to plain text mode 

Hand written:
Qt Code:
  1. public class Ui_MainWindow
  2. {
  3. public QAction actionQuit;
  4. public QAction actionNew;
  5. public QAction actionOpen;
  6. public QAction actionSave;
  7. public QAction actionSave_As;
  8. public QAction actionConfigure_Giraffe;
  9. public QAction actionConvert;
  10. public QAction actionRestart;
  11. public QAction actionAbout;
  12. public QWidget centralWidget;
  13. public QHBoxLayout hboxLayout;
  14. public QMenuBar menuBar;
  15. public QMenu menuEdit;
  16. public QMenu menuView;
  17. public QMenu menuGo;
  18. public QMenu menuTools;
  19. public QMenu menuSettings;
  20. public QMenu menuHelp;
  21. public QMenu menuFile;
  22. public QStatusBar statusBar;
  23. public QToolBar toolBar;
  24.  
  25. public void SetupUi(QMainWindow MainWindow)
  26. {
  27. if (MainWindow.ObjectName == "")
  28. MainWindow.ObjectName = "MainWindow";
  29. QSize Size = new QSize(500, 400);
  30. Size = Size.ExpandedTo(MainWindow.MinimumSizeHint());
  31. MainWindow.Size = Size;
  32. actionQuit = new QAction(MainWindow);
  33. actionQuit.ObjectName = "actionQuit";
  34. actionNew = new QAction(MainWindow);
  35. actionNew.ObjectName = "actionNew";
  36. actionOpen = new QAction(MainWindow);
  37. actionOpen.ObjectName = "actionOpen";
  38. actionSave = new QAction(MainWindow);
  39. actionSave.ObjectName = "actionSave";
  40. actionSave_As = new QAction(MainWindow);
  41. actionSave_As.ObjectName = "actionSave_As";
  42. actionConfigure_Giraffe = new QAction(MainWindow);
  43. actionConfigure_Giraffe.ObjectName = "actionConfigure_Giraffe";
  44. actionConvert = new QAction(MainWindow);
  45. actionConvert.ObjectName = "actionConvert";
  46. actionRestart = new QAction(MainWindow);
  47. actionRestart.ObjectName = "actionRestart";
  48. actionAbout = new QAction(MainWindow);
  49. actionAbout.ObjectName = "actionAbout";
  50. centralWidget = new QWidget(MainWindow);
  51. centralWidget.ObjectName = "centralWidget";
  52. hboxLayout = new QHBoxLayout(centralWidget);
  53. hboxLayout.Spacing = 6;
  54. hboxLayout.Margin = 11;
  55. hboxLayout.ObjectName = "hboxLayout";
  56. MainWindow.SetCentralWidget(centralWidget);
  57. menuBar = new QMenuBar(MainWindow);
  58. menuBar.ObjectName = "menuBar";
  59. menuBar.Enabled = true;
  60. menuBar.Geometry = new QRect(0, 0, 500, 22);
  61. menuEdit = new QMenu(menuBar);
  62. menuEdit.ObjectName = "menuEdit";
  63. menuView = new QMenu(menuBar);
  64. menuView.ObjectName = "menuView";
  65. menuGo = new QMenu(menuBar);
  66. menuGo.ObjectName = "menuGo";
  67. menuTools = new QMenu(menuBar);
  68. menuTools.ObjectName = "menuTools";
  69. menuSettings = new QMenu(menuBar);
  70. menuSettings.ObjectName = "menuSettings";
  71. menuHelp = new QMenu(menuBar);
  72. menuHelp.ObjectName = "menuHelp";
  73. menuFile = new QMenu(menuBar);
  74. menuFile.ObjectName = "menuFile";
  75. MainWindow.SetMenuBar(menuBar);
  76. statusBar = new QStatusBar(MainWindow);
  77. statusBar.ObjectName = "statusBar";
  78. MainWindow.SetStatusBar(statusBar);
  79. toolBar = new QToolBar(MainWindow);
  80. toolBar.ObjectName = "toolBar";
  81. MainWindow.AddToolBar(Qt.ToolBarArea.TopToolBarArea, toolBar);
  82.  
  83. menuBar.AddAction(menuFile.MenuAction());
  84. menuBar.AddAction(menuEdit.MenuAction());
  85. menuBar.AddAction(menuView.MenuAction());
  86. menuBar.AddAction(menuGo.MenuAction());
  87. menuBar.AddAction(menuTools.MenuAction());
  88. menuBar.AddAction(menuSettings.MenuAction());
  89. menuBar.AddAction(menuHelp.MenuAction());
  90. menuHelp.AddAction(actionAbout);
  91. menuFile.AddAction(actionNew);
  92. menuFile.AddAction(actionOpen);
  93. menuFile.AddAction(actionSave);
  94. menuFile.AddAction(actionSave_As);
  95. menuFile.AddSeparator();
  96. menuFile.AddAction(actionQuit);
  97. toolBar.AddAction(actionQuit);
To copy to clipboard, switch view to plain text mode