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:
public class MainWindow : QMainWindow{
public QAction actionNew;
public QAction actionOpen;
public QAction actionSave;
public QAction actionSaveAs;
public QAction actionQuit;
public QAction actionConfigGiraffe;
public QAction actionConvert;
public QAction actionRestart;
public QAction actionAbout;
public QWidget mainWidget;
public QWidget menuWidget;
public QWidget toolWidget;
public QWidget statusWidget;
public QStackedWidget stackWidget;
public QWidget startPage;
public QWidget basicVideoPage;
public QWidget basicAudioPage;
public QWidget basicImagePage;
public QVBoxLayout mainLayout;
public QSpacerItem hSpacer;
public QSpacerItem vSpacer;
public QSize size;
public QMenuBar menuBar;
public QMenu menuFile;
public QMenu menuEdit;
public QMenu menuView;
public QMenu menuGo;
public QMenu menuTools;
public QMenu menuSettings;
public QMenu menuHelp;
public QStatusBar statusBar;
public QToolBar toolBar;
startWin.StartWindow startwin = new startWin.StartWindow();
//Ui.MainWindow win = new Ui.MainWindow();
public MainWindow() {
InitUI();
//win.SetupUi(this);
this.Show();
}
public void InitUI() {
this.WindowTitle = "Start - Cute Giraffe";
size = new QSize(500, 400);
this.Size = size;
this.Move(200,200);
hSpacer = new QSpacerItem(50, 20, QSizePolicy.Policy.Expanding, QSizePolicy.Policy.Expanding);
vSpacer = new QSpacerItem(20, 100, QSizePolicy.Policy.Expanding, QSizePolicy.Policy.Expanding);
mainWidget = new QWidget(this);
//menuWidget = new QWidget(mainWidget);
//toolWidget = new QWidget(mainWidget);
//statusWidget = new QWidget(mainWidget);
stackWidget = new QStackedWidget(mainWidget);
startPage = new QWidget(stackWidget);
basicVideoPage = new QWidget(stackWidget);
basicAudioPage = new QWidget(stackWidget);
basicImagePage = new QWidget(stackWidget);
startwin.StartUI(this, startPage);
stackWidget.AddWidget(startPage);
stackWidget.AddWidget(basicVideoPage);
stackWidget.AddWidget(basicAudioPage);
stackWidget.AddWidget(basicImagePage);
stackWidget.SetCurrentIndex(0);
mainLayout = new QVBoxLayout(mainWidget);
//mainLayout.AddWidget(menuWidget);
//mainLayout.AddWidget(toolWidget);
mainLayout.AddItem(vSpacer);
mainLayout.AddWidget(stackWidget);
mainLayout.AddItem(vSpacer);
//mainLayout.AddWidget(statusWidget);
mainLayout.sizeConstraint = QLayout.SizeConstraint.SetDefaultConstraint;
mainWidget.SetLayout(mainLayout);
this.SetCentralWidget(mainWidget);
actionNew = new QAction("&New", this);
actionOpen = new QAction("&Open", this);
actionSave = new QAction("&Save", this);
actionSaveAs = new QAction("Save &As...", this);
actionQuit = new QAction("&Quit", this);
actionConfigGiraffe = new QAction("Configure &Giraffe...", this);
actionConvert = new QAction("&Convert", this);
actionRestart = new QAction("&Restart", this);
actionAbout = new QAction("&About", this);
menuBar = new QMenuBar(this);
menuBar.Geometry = new QRect(0, 0, 500, 22);
menuFile = new QMenu(menuBar);
menuEdit = new QMenu(menuBar);
menuView = new QMenu(menuBar);
menuGo = new QMenu(menuBar);
menuTools = new QMenu(menuBar);
menuSettings = new QMenu(menuBar);
menuHelp = new QMenu(menuBar);
/* menuFile.AddAction(actionNew);
menuFile.AddAction(actionOpen);
menuFile.AddAction(actionSave);
menuFile.AddAction(actionSaveAs);
menuFile.AddSeparator();
menuFile.AddAction(actionQuit);
*/ this.SetMenuBar(menuBar);
menuBar.AddAction(menuFile.MenuAction());
menuBar.AddAction(menuEdit.MenuAction());
menuBar.AddAction(menuView.MenuAction());
menuBar.AddAction(menuGo.MenuAction());
menuBar.AddAction(menuTools.MenuAction());
menuBar.AddAction(menuSettings.MenuAction());
menuBar.AddAction(menuHelp.MenuAction());
menuFile.AddAction(actionNew);
menuFile.AddAction(actionOpen);
menuFile.AddAction(actionSave);
menuFile.AddAction(actionSaveAs);
menuFile.AddSeparator();
menuFile.AddAction(actionQuit);
menuHelp.AddAction(actionAbout);
/* menuEdit = new QMenu();
menuEdit = MenuBar().AddMenu("&Edit");
menuView = new QMenu();
menuView = MenuBar().AddMenu("&View");
menuGo = new QMenu();
menuGo = MenuBar().AddMenu("&Go");
menuTools = new QMenu();
menuTools = MenuBar().AddMenu("&Tools");
menuSettings = new QMenu();
menuSettings = MenuBar().AddMenu("&Settings");
menuHelp = new QMenu();
menuHelp = MenuBar().AddMenu("&Help");
menuHelp.AddAction(actionAbout);
*/
toolBar = new QToolBar(this);
toolBar.AddAction(actionQuit);
this.AddToolBar(Qt.ToolBarArea.TopToolBarArea, toolBar);
statusBar = new QStatusBar(this);
this.SetStatusBar(statusBar);
Hand written:
public class Ui_MainWindow
{
public QAction actionQuit;
public QAction actionNew;
public QAction actionOpen;
public QAction actionSave;
public QAction actionSave_As;
public QAction actionConfigure_Giraffe;
public QAction actionConvert;
public QAction actionRestart;
public QAction actionAbout;
public QWidget centralWidget;
public QHBoxLayout hboxLayout;
public QMenuBar menuBar;
public QMenu menuEdit;
public QMenu menuView;
public QMenu menuGo;
public QMenu menuTools;
public QMenu menuSettings;
public QMenu menuHelp;
public QMenu menuFile;
public QStatusBar statusBar;
public QToolBar toolBar;
public void SetupUi(QMainWindow MainWindow)
{
if (MainWindow.ObjectName == "")
MainWindow.ObjectName = "MainWindow";
QSize Size = new QSize(500, 400);
Size = Size.ExpandedTo(MainWindow.MinimumSizeHint());
MainWindow.Size = Size;
actionQuit = new QAction(MainWindow);
actionQuit.ObjectName = "actionQuit";
actionNew = new QAction(MainWindow);
actionNew.ObjectName = "actionNew";
actionOpen = new QAction(MainWindow);
actionOpen.ObjectName = "actionOpen";
actionSave = new QAction(MainWindow);
actionSave.ObjectName = "actionSave";
actionSave_As = new QAction(MainWindow);
actionSave_As.ObjectName = "actionSave_As";
actionConfigure_Giraffe = new QAction(MainWindow);
actionConfigure_Giraffe.ObjectName = "actionConfigure_Giraffe";
actionConvert = new QAction(MainWindow);
actionConvert.ObjectName = "actionConvert";
actionRestart = new QAction(MainWindow);
actionRestart.ObjectName = "actionRestart";
actionAbout = new QAction(MainWindow);
actionAbout.ObjectName = "actionAbout";
centralWidget = new QWidget(MainWindow);
centralWidget.ObjectName = "centralWidget";
hboxLayout = new QHBoxLayout(centralWidget);
hboxLayout.Spacing = 6;
hboxLayout.Margin = 11;
hboxLayout.ObjectName = "hboxLayout";
MainWindow.SetCentralWidget(centralWidget);
menuBar = new QMenuBar(MainWindow);
menuBar.ObjectName = "menuBar";
menuBar.Enabled = true;
menuBar.Geometry = new QRect(0, 0, 500, 22);
menuEdit = new QMenu(menuBar);
menuEdit.ObjectName = "menuEdit";
menuView = new QMenu(menuBar);
menuView.ObjectName = "menuView";
menuGo = new QMenu(menuBar);
menuGo.ObjectName = "menuGo";
menuTools = new QMenu(menuBar);
menuTools.ObjectName = "menuTools";
menuSettings = new QMenu(menuBar);
menuSettings.ObjectName = "menuSettings";
menuHelp = new QMenu(menuBar);
menuHelp.ObjectName = "menuHelp";
menuFile = new QMenu(menuBar);
menuFile.ObjectName = "menuFile";
MainWindow.SetMenuBar(menuBar);
statusBar = new QStatusBar(MainWindow);
statusBar.ObjectName = "statusBar";
MainWindow.SetStatusBar(statusBar);
toolBar = new QToolBar(MainWindow);
toolBar.ObjectName = "toolBar";
MainWindow.AddToolBar(Qt.ToolBarArea.TopToolBarArea, toolBar);
menuBar.AddAction(menuFile.MenuAction());
menuBar.AddAction(menuEdit.MenuAction());
menuBar.AddAction(menuView.MenuAction());
menuBar.AddAction(menuGo.MenuAction());
menuBar.AddAction(menuTools.MenuAction());
menuBar.AddAction(menuSettings.MenuAction());
menuBar.AddAction(menuHelp.MenuAction());
menuHelp.AddAction(actionAbout);
menuFile.AddAction(actionNew);
menuFile.AddAction(actionOpen);
menuFile.AddAction(actionSave);
menuFile.AddAction(actionSave_As);
menuFile.AddSeparator();
menuFile.AddAction(actionQuit);
toolBar.AddAction(actionQuit);