Qt菜单栏点击事件触发新窗口

本文介绍了如何在Qt应用中实现主窗口通过菜单栏选项触发子窗口Select_version的显示,并根据用户选择更新QML页面。通过on_open_select_wind_clicked槽函数,创建并设置子窗口模态,监听对话框返回结果以处理不同页面的跳转。
摘要由CSDN通过智能技术生成

**1: 新增一个菜单栏选项 **
在这里插入图片描述
2: 主窗口类新增一个点击信号对应的槽函数

private slots:
    void on_open_select_wind_clicked();  

3: 将菜单栏的触发信号 与 槽函数进行链接

//菜单栏只能用triggered这个信号
connect(ui->action_select_version,SIGNAL(triggered()),this,SLOT(on_open_select_wind_clicked()));

4: 在槽函数触发时 NEW一个子窗口

void Main_windw::Select_device_version(void)
{
	//Select_version * select_wind; //类指针
    select_wind = new Select_version(); //子窗口类
    select_wind->setWindowModality(Qt::ApplicationModal); //设置模态窗口,即窗口没关闭不允许其他操作

    select_wind->show();  //显示窗口
    int ret = select_wind->exec();  //等待子窗口退出
    if(ret == QDialog::Accepted){  //如果Yes键被按下
        if(select_wind->check_box.check_state == 1){  //发生了型号改变
            select_wind->check_box.check_state = 0;
            ui->quickWidget->close();
            if(select_wind->check_box.wk_001_check == CHECKED){
                qDebug()<<"页面1"<<endl;
                ui->quickWidget->rootContext()->setContextProperty("trans",&trans);//绑定中间类
                ui->quickWidget->setSource(QUrl::fromLocalFile(":/Qml/page1.qml")); //加载qml页面
            }else if(select_wind->check_box.wk_002_check == CHECKED){
                qDebug()<<"页面2"<<endl;
                ui->quickWidget->setSource(QUrl::fromLocalFile(":/Qml/page2.qml"));
            }else if(select_wind->check_box.wk_003_check == CHECKED){
                qDebug()<<"页面3"<<endl;
                ui->quickWidget->setSource(QUrl::fromLocalFile(":/Qml/page3.qml"));
            }else if(select_wind->check_box.wk_004_check == CHECKED){
                qDebug()<<"页面4"<<endl;
                ui->quickWidget->setSource(QUrl::fromLocalFile(":/Qml/page4.qml"));
            }
            ui->quickWidget->show();
        }
    }
    else{

    }
}
  • 3
    点赞
  • 36
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

漏洞百出

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值