将变量从主窗口传递到另一个 qt C++ 表单

贝鲁兹蒙塔泽里

我想将三个字符串(cellTitle、cellPoem、cellGroup)从主窗口传递到另一个对话框。我知道当我启动第二种形式时,值变为零。我在某个地方读到有可能有插槽的地方,但我不知道如何。

主窗口.h

public:
QString cellTitle,cellPoem,cellGroup;

主窗口.cpp

void MainWindow::on_tableView_pressed(const QModelIndex &index)

{

    cellText = ui->tableView->model()->data(index).toString();



    QSqlQuery * qry2 = new QSqlQuery(mydb);

    qry2->prepare("select * from Poems where Title='"+cellText+"'");
    qry2->exec();


    while(qry2->next()){

    cellTitle = qry2->value(1).toString();
    cellPoem = qry2->value(2).toString();
    cellGroup = qry2->value(3).toString();



    ui->textEdit->setText(qry2->value(2).toString());

 }

}

void MainWindow::on_btnUpdate_clicked()

{

   frmUpdate frmupdate;
   frmupdate.setModal(true);
   frmupdate.exec();

}

更新文件

#include "frmupdate.h"

#include "ui_frmupdate.h"
#include <mainwindow.h>

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

    MainWindow mainwindow;

    ui->lineEdit->setText(mainwindow.cellTitle);
    ui->lineEdit_2->setText(mainwindow.cellGroup);
    ui->textEdit->setText(mainwindow.cellPoem);
}

frmUpdate::~frmUpdate()
{
    delete ui;
}

void frmUpdate::on_btnUpdate_clicked()
{


}

void frmUpdate::on_pushButton_2_clicked()
{
    this->close();
}
阿空加瓜
frmUpdate::frmUpdate(QWidget *parent) :
    QDialog(parent),
    ui(new Ui::frmUpdate)
{
    ui->setupUi(this);

    MainWindow mainwindow;

您在此处创建了一个新的临时 MainWindow实例,仅调用了默认构造函数。当然,然后使用空的默认文本创建这个新实例:

    ui->lineEdit->setText(mainwindow.cellTitle);
    ui->lineEdit_2->setText(mainwindow.cellGroup);
    ui->textEdit->setText(mainwindow.cellPoem);
}

现在最简单的方法是将原始主窗口作为参数传递

frmUpdate::frmUpdate(QWidget* parent, MainWindow* mainWindow) :
    QDialog(parent),
    ui(new Ui::frmUpdate)
{
    ui->setupUi(this);
    ui->lineEdit->setText(mainwindow->cellTitle);
    ui->lineEdit_2->setText(mainwindow->cellGroup);
    ui->textEdit->setText(mainwindow->cellPoem);
}

如果窗口主窗口,您可以简单地投射:

frmUpdate::frmUpdate(QWidget* parent) :
    QDialog(parent),
    ui(new Ui::frmUpdate)
{
    ui->setupUi(this);
    MainWindow* mainWindow = qobject_cast<MainWindow*>(parent);
    if(mainWindow)
    {
        ui->lineEdit->setText(mainwindow->cellTitle);
        ui->lineEdit_2->setText(mainwindow->cellGroup);
        ui->textEdit->setText(mainwindow->cellPoem);
    }
    else
    {
        // appropriate error handling
    }
}

您也可以从父窗口搜索主窗口:

for(;;)
{
    MainWindow* mainWindow = qobject_cast<MainWindow*>(parent);
    if(mainWindow)
    {
        ui->lineEdit->setText(mainwindow->cellTitle);
        ui->lineEdit_2->setText(mainwindow->cellGroup);
        ui->textEdit->setText(mainwindow->cellPoem);
        break;
    }
    parent = parent->parent();
    if(!parent)
    {
        // appropriate error handling
        break;
    }
}

以上所有假设MainWindow继承自QObject...

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

将php变量以表单的形式传递到另一个页面

来自分类Dev

如何在Struts 1.2中将表单变量从一个动作传递到另一个动作类

来自分类Dev

我们可以将变量从一个C程序传递到另一个C程序吗?

来自分类Dev

将表单结果传递给另一个表单并转换为表单值

来自分类Dev

如何从另一个子表单中关闭子表单而不关闭主表单C#

来自分类Dev

将DataGrid的行传递到另一个WPF表单C#

来自分类Dev

如何将用户从登录表单重定向到c#中的另一个表单

来自分类Dev

将值从一个函数传递到另一个C ++

来自分类Dev

如何从C#.Net中的另一个窗口表单继承一个窗口表单

来自分类Dev

如何将值从Web表单传递到ASP.NET中的另一个表单?

来自分类Dev

QT C ++-如何在另一个类中引用窗口小部件

来自分类Dev

通过按钮将表单的背景图像传递给另一个表单?

来自分类Dev

如何将完整的数据集从另一个类传递到表单?

来自分类Dev

c#将事件的参数从另一个类传递到主类

来自分类Dev

如何使用javascript将表单值传递到另一个文件?

来自分类Dev

C#从另一个表单最大化一个表单

来自分类Dev

从C#中的另一个隐藏表单控制表单

来自分类Dev

C ++-将数组返回主函数并将数组传递给另一个函数

来自分类Dev

在另一个表单C#上将选定的datagridview项目显示到文本框

来自分类Dev

Django-将<select>表单POST数据从一个视图传递到另一个视图

来自分类Dev

将实例变量从另一个模型传递到表单中

来自分类Dev

将表单值从PHP文件传递到另一个PHP文件

来自分类Dev

C#-从另一个类的循环变量更新表单标签

来自分类Dev

如何将值从一个子类传递到主类 C# 中的另一个子类?

来自分类Dev

将 VS c# 表单项目从 pc 传输到另一个

来自分类Dev

Qt - 另一个类中的主窗口类对象不能正常工作

来自分类Dev

从另一个表单 C# 打开一个表单

来自分类Dev

如何将一个表单的 $id 传递给另一个表单

来自分类Dev

使用 jQuery ajax 将数据从表单发送到电子邮件,并通过传递 POST 变量重定向到另一个页面不起作用

Related 相关文章

  1. 1

    将php变量以表单的形式传递到另一个页面

  2. 2

    如何在Struts 1.2中将表单变量从一个动作传递到另一个动作类

  3. 3

    我们可以将变量从一个C程序传递到另一个C程序吗?

  4. 4

    将表单结果传递给另一个表单并转换为表单值

  5. 5

    如何从另一个子表单中关闭子表单而不关闭主表单C#

  6. 6

    将DataGrid的行传递到另一个WPF表单C#

  7. 7

    如何将用户从登录表单重定向到c#中的另一个表单

  8. 8

    将值从一个函数传递到另一个C ++

  9. 9

    如何从C#.Net中的另一个窗口表单继承一个窗口表单

  10. 10

    如何将值从Web表单传递到ASP.NET中的另一个表单?

  11. 11

    QT C ++-如何在另一个类中引用窗口小部件

  12. 12

    通过按钮将表单的背景图像传递给另一个表单?

  13. 13

    如何将完整的数据集从另一个类传递到表单?

  14. 14

    c#将事件的参数从另一个类传递到主类

  15. 15

    如何使用javascript将表单值传递到另一个文件?

  16. 16

    C#从另一个表单最大化一个表单

  17. 17

    从C#中的另一个隐藏表单控制表单

  18. 18

    C ++-将数组返回主函数并将数组传递给另一个函数

  19. 19

    在另一个表单C#上将选定的datagridview项目显示到文本框

  20. 20

    Django-将<select>表单POST数据从一个视图传递到另一个视图

  21. 21

    将实例变量从另一个模型传递到表单中

  22. 22

    将表单值从PHP文件传递到另一个PHP文件

  23. 23

    C#-从另一个类的循环变量更新表单标签

  24. 24

    如何将值从一个子类传递到主类 C# 中的另一个子类?

  25. 25

    将 VS c# 表单项目从 pc 传输到另一个

  26. 26

    Qt - 另一个类中的主窗口类对象不能正常工作

  27. 27

    从另一个表单 C# 打开一个表单

  28. 28

    如何将一个表单的 $id 传递给另一个表单

  29. 29

    使用 jQuery ajax 将数据从表单发送到电子邮件,并通过传递 POST 变量重定向到另一个页面不起作用

热门标签

归档