QT开发中文网

MainWindow::MainWindow(QWidget *parent) : QMainWindow(parent), ui(new Ui::MainWindow) { ui->setupUi(this); // 创建界面 m_clientsWindow = new Clientswindow(); m_ESP32Window = new ESP32window(); // 初始化menu QMenu* m_menu...

你的代码看起来基本上是正确的,只有几个小问题需要注意。

首先,在连接菜单项的信号和槽函数时,你使用了错误的信号名称。应该将&QAction::triggered修改为&QAction::triggered

其次,在添加菜单项到菜单栏时,你忘记将具体的操作与每个菜单项关联起来。在创建QAction对象时,可以使用setText()方法设置显示文本,并通过调用setShortcut()方法设置快捷键。

下面是修改后的代码:

MainWindow::MainWindow(QWidget *parent) :
    QMainWindow(parent),
    ui(new Ui::MainWindow)
{
    ui->setupUi(this);

    // 创建界面
    m_clientsWindow = new Clientswindow();
    m_ESP32Window = new ESP32window();

    // 初始化menu
    QMenu* m_menuClients = menuBar()->addMenu("Clients");
    QMenu* m_menuESP32s = menuBar()->addMenu("ESP32");

    QAction* m_showClientsWindow = new QAction("Show Clients Window", this);
    connect(m_showClientsWindow, &QAction::triggered, this, &MainWindow::s_menu_Clients);
    
    QAction* m_showESP32sWindow = new QAction("Show ESP32 Window", this);
    connect(m_showESP32sWindow, &QAction::triggered, this, &MainWindow::s_menu_ESP32s);

    m_menuClients->addAction(m_showClientsWindow);
    m_menuESP32s->addAction(m_showESP32sWindow);

    
//  下面这样也可以
//  connect(m_menuClients, SIGNAL(triggered()), this, SLOT(s_menu_Clients()));     // 点击Clients菜单,打开Clients界面
//  connect(m_menuESP32s, SIGNAL(triggered()), this, SLOT(s_menu_ESP32s()));      // 点击ESP32菜单,打开ESP32界面

    ui->m_stackedWidget->insertWidget(0, m_clientsWindow);
    ui->m_stackedWidget->insertWidget(1, m_ESP32Window);

    ui->m_stackedWidget->setCurrentIndex(1);
    ui->m_stackedWidget->show();
}

MainWindow::~MainWindow()
{
    delete m_clientsWindow;
    delete m_ESP32Window;
    delete ui;
}

void MainWindow::s_menu_Clients()
{
    ui->m_stackedWidget->setCurrentIndex(0);
    ui->m_stackedWidget->show();
}

void MainWindow::s_menu_ESP32s()
{
    ui->m_stackedWidget->setCurrentIndex(1);
    ui->m_stackedWidget->show();
}

这样修改后,点击”Clients”菜单项将显示Clientswindow窗口部件,点击”ESP32”菜单项将显示ESP32window窗口部件。

希望这可以帮助到你!


内容由零声教学AI助手提供,问题来源于学员提问

本站部分文章来源于网络,版权归原作者所有,如有侵权请联系站长删除。
转载请注明出处:https://qt.0voice.com/?id=8993

分享:
扫描分享到社交APP
上一篇
下一篇
发表列表
游客 游客
此处应有掌声~
评论列表

还没有评论,快来说点什么吧~

联系我们

在线咨询: 点击这里给我发消息

微信号:3007537140

上班时间: 10:30-22:30

关注我们
x

注册

已经有帐号?