QT调用不同UI界面响应,对话框跳转到主页面UI,用信号与槽传递信息,两级信号传递

这篇具有很好参考价值的文章主要介绍了QT调用不同UI界面响应,对话框跳转到主页面UI,用信号与槽传递信息,两级信号传递。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

(一)需求

在MainWindow界面有一个按键”新建”,点击后需要生成一个输入对话框,实例用到了processDialog类对象。

我新建一行数据完成后,需要更新MainWindow表格的视图,此时就需要调用写在MainWIndow下的函数MainWindow::showProcess(vector<PCB*> readyQueue)

但是如果实例化一个MainWidow对象,此时修改的表格不是我原来的表格,而是一个新的表格,这没有任何作用,达不到更新效果。

qt两个ui界面调用,笔记,ui,qt,开发语言,c++

(二)思路梳理

该问题的信号是两级传递
qt两个ui界面调用,笔记,ui,qt,开发语言,c++
第一次连接是通过UI的转到槽自动生成,第二次使用自定义的信号


(三)解决代码

processdialog.h

signals:                        //信号不能像普通函数一样使用,也不需要权限声明
    void sendToShowProcess();   //信号不需要定义

private slots:
    void on_pushButton_ok_clicked();

processdialog.cpp 中的第一个槽函数

void processDialog::on_pushButton_ok_clicked()
{
    if(ui->lineEdit_proid->text().isEmpty()||ui->lineEdit_prio->text().isEmpty()||ui->lineEdit_cpuTime->text().isEmpty()){
        QMessageBox::critical(this,"错误提醒",tr("请完成数据输入"));
        return;
    }

    QString name = ui->lineEdit_proid->text();
    QString prio = ui->lineEdit_prio->text();
    QString cpuTime = ui->lineEdit_cpuTime->text();

    //存入readyQueue中
    PCB* process = new PCB;
    process->name = name.toStdString();
    process->needTime = cpuTime.toInt();
    process->prio = prio.toInt();
    process->round = 5;
    process->cpuTime = 0;
    strcpy(process->state, "就绪");    //默认创建的新进程是就绪状态

    if(process->needTime<0||process->needTime>50){
        QMessageBox::critical(this,"格式错误",tr("输入值必须在[0,50]内"));
        return ;
    }
    if(process->prio<0||process->prio>50){
        QMessageBox::critical(this,"格式错误",tr("输入值必须在[0,50]内"));
        return ;
    }

    //根据优先级排序,放入就绪队列
    readyQueue.push_back(process);
    sort(readyQueue.begin(),readyQueue.end(), MainWindow::compare);

    //更新表格
    extern MainWindow* w;
    connect(this,SIGNAL(sendToShowProcess()),w,SLOT(showProcess()));
    emit this->sendToShowProcess();
    this->close();
}

其中第二次连接的核心代码在第一次连接processdialog.cpp的槽on_pushButton_ok_clicked()中,因为接收者是在主函数定义的MainWindow对象w,在该类中需要使用到,所以将w转换为**全局变量**

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Pxp0gxwR-1674998116415)(null)]

注意:直接写在main函数里虽然变量的生命周期和全局变量一样,但是并不是全局变量,所以需要在主函数外声明,然后在主函数内复制,分配对象。

然后再通过extern声明全局变量,使用主函数里的w,连接,再用emit发送信息

    extern MainWindow* w;
    connect(this,SIGNAL(sendToShowProcess()),w,SLOT(showProcess()));
    emit this->sendToShowProcess();
    this->close();

(四)效果

qt两个ui界面调用,笔记,ui,qt,开发语言,c++文章来源地址https://www.toymoban.com/news/detail-531496.html

到了这里,关于QT调用不同UI界面响应,对话框跳转到主页面UI,用信号与槽传递信息,两级信号传递的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【Qt】对话框QDialog类,模态对话框和非模态对话框

    QDialog类是所有对话框窗口类的基类。对话框窗口是一个用来完成短小任务或和用户进行简单交互的 顶层窗口 。 按照运行对话框时是否还可以和该程序的其它窗口进行交互,将它分为两类:模态(modal)对话框和非模态(modaless)对话框。 模态对话框 先看一个例子: 创建一

    2024年02月05日
    浏览(38)
  • Qt标准对话框:8大对话框详解

    颜色对话框类 QColorDialog 提供了一个可以获取指定颜色的对话框的对话框部件: 这里使用 QColorDialog 的静态函数 getColor () 来获取颜色,执行时弹出颜色选择对话框: 返回的是一个 QColor 类型的数据: 这四个数值分别代表:透明度(alpha)、Red、Green、Blue。它们的默认值都是

    2024年02月03日
    浏览(39)
  • 完善对话框,点击登录对话框,如果账号和密码匹配,则弹出信息对话框,给出提示R登录成功“,提供一个Ok按钮,用户点击OK后,关闭登录界面,跳转到其他界面,

    如果账号和密码不匹配,弹出错误对话框,给出信息\\\"账号和密码不匹配,是否重新登录\\\",并提供两个按钮Yes|No,用户点击Yes后,清除密码框中的内容,继续让用户进行登录,如果用户点击No按钮,则直接关闭登录界面如果用户点击取消按钮,则弹出一个问题对话框,给出信息

    2024年04月10日
    浏览(42)
  • Python Qt6快速入门-自定义对话框和标准对话框

    对话框是有用的 GUI 组件,可以与用户进行交流(因此得名对话框)。 它们通常用于文件打开/保存、设置、首选项或不适合应用程序主 UI 的功能。 它们是位于主应用程序前面的小模态(或阻塞)窗口,直到它们被关闭。 Qt 为最常见的用例提供

    2024年02月03日
    浏览(37)
  • 【QT】标准对话框

    目录 1 概述 2 QFileDialog对话框 1.选择打开一个文件 2.选择打开多个文件 3.选择已有目录 4.选择保存文件名 3 QColorDialog对话框 4 QFontDialog对话框 5 QInputDialog标准输入对话框 1.输入文字 2.输入整数 3.输入浮点数 4.下拉列表选择输入 6 QMessageBox消息对话框 1.函数原型 2.简单信息

    2024年02月02日
    浏览(38)
  • 【Qt】:对话框(二)

    Q提供了多种可复用的对话框类型,即Qt标准对话框。Qt标准对话框全部继承于QDialog类。常用标准对话框如下: 消息对话框是应用程序中最常用的界面元素。消息对话框主要用于为用户提示重要信息,强制用户进行选择操作。 QMessageBox自己内置了一些图标和按钮,我们可以直接

    2024年04月16日
    浏览(45)
  • Qt对话框

    颜色对话框: 字体对话框: 输入对话框: 消息对话框:

    2024年02月06日
    浏览(31)
  • 【Qt】:对话框(一)

    对话框是GUI程序中不可或缺的组成部分。一些不适合在主窗口实现的功能组件可以设置在对话框中。对话框通常是一个顶层窗口,出现在程序最上层,用于实现短期任务或者简洁的用户交互。 Qt常用的内置对话框有: QFiledialog (文件对话框). QColorDialog(颜色对话框)、 QFontDialog(字

    2024年04月14日
    浏览(62)
  • Qt自定义对话框

    自定义框主要通过对现有对话框QDialog类的派生,根据需求编写成员函数、重载信号函数、槽函数,进而实现在主QWidget中点击某个按钮后,一个对话框的弹出 简化创建派生类 最后点击完成即可。 自定义ui界面,编写成员函数等 主窗口触发槽函数编写 这里常有一个固定的格式

    2024年02月13日
    浏览(31)
  • Qt标准对话框设置

    Qt标准对话框设置,设置字体、调色板、进度条等。

    2024年02月22日
    浏览(34)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包