我有一个具有四个按钮的主窗口,所有这四个按钮都连接到“ clicked()”信号。 当我们单击按钮时,它会转到另一个替换主窗口的小部件(使用堆叠式布局)。 我想将按钮的名称传递给窗口小部件,以便可以使用该值并将其附加到窗口小部件中的标签上。 我尝试使用以下方法将值传递给Widgte:

mainwindow.h

public:
    explicit MainWindow(QWidget *parent = 0);
    QStackedLayout *stackedLayout;
    QLineEdit* lineEdit();

mainwindow.cpp

QLineEdit* MainWindow::lineEdit()
{
    //buttonName is a QLineEdit on the main form which is hidden and value is being set when a button is clicked
    std::string text=ui->buttonName->text().toUtf8().constData();
    std::cout<<"Button Name passed from main window is"<<text<<std::endl;

    return ui->buttonName;
}

SecondForm.cpp

    MainWindow mainWind;
    std::string text=mainWind.lineEdit()->text().toUtf8().constData();
    std::cout<<"The name of the button is"<<text<<std::endl;

这就是我所遵循的方法。 数据没有返回到第二种形式。 是否是因为我在单击按钮后设置了QLineEdit的值,并且该值未存储在任何地方? 你能告诉我我在这里想念的东西吗?

#1楼 票数:0

在每个按钮的on_button_clicked()插槽中,您可以将被单击的按钮的text()发送到新窗口小部件。

//Your signal declaration in MainWindow.h
void signalToWidget( QString buttonText );

/*The slot in your widget to handle the text (you may need to subclass your widget to add this functionality*/
void slotSetText( QString buttonText )
{
    widgetElement->setText( buttonText );
}

//connect in MainWindow constructor
QObject::connect( MainWindow, SIGNAL( signalToWidget( QString ) ),
                  widget, SLOT( slotSetText( QString ) ) );

void MainWindow::onButton1Clicked()
{
    emit signalToWidget( ui->button1->text() );
}

  ask by Valla translate from so

未解决问题?本站智能推荐:

1回复

如何在QT中获取调整大小的句柄?

有没有办法在两个小部件之间获得调整大小的效果? 就像说我有两个彼此相邻的QTextEdit框一样,我想在它们之间获得一个手柄,以便可以前后移动它。 类似于我正在写的文本区域,现在在底部有一个手柄以使其变大。 我正在使用QT Creator,但似乎无法弄清楚。 通过使用QDockWid
10回复

如何在qt4设计器中创建自定义插槽?

每当我使用信号/插槽编辑器对话框时,我必须从现有的插槽列表中进行选择。 所以问题是如何创建自定义命名槽?
4回复

Qt中的单例类问题

我创建了一个单例类,并尝试在其他类中访问该类,但出现错误“无法访问私有成员” Setupconfig是我的单例类,我正尝试在其他具有QMainWindow类中访问此类 这是错误消息: 错误“ Setupconfig :: Setupconfig”:无法访问在类“ Setup
4回复

如何在Qt中比较两个RGB图像?

我需要比较两个彩色RBG图像,并获得逐像素差异的结果图像。 有什么想法我怎么能在qt中做到这一点? 我将不胜感激任何帮助或建议。
2回复

在Qt应用程序中编译多个.cpp文件

我刚刚开始学习Qt并编译并执行了此Spinet 我使用以下步骤使它运行:qmake -project qmake .pro文件 使 但是在这里,此代码将写在一个.cpp文件中,所以我想问一个问题,当有多个.cpp文件时,要处理多少大型项目。 如果有多个.cpp文件,则
2回复

Qt中的窗口模板(或基本上面向对象的Windows)

因此,我有一堆要创建的窗口,每个窗口都不同,但是具有相似的属性。 为了简单起见,我们只需要在底部放置一行按钮即可(每个窗口的实际按钮不同,但是它们的配置应相同)。 然后在窗口的上半部分,我希望它基于打开的窗口。 简而言之,我希望窗口A具有窗口模板,窗口底部带有按钮。 然后按钮B实例化
2回复

如何在Qt Creator中的选项卡上单击加载数据

我在Qt创建器中使用QtabWidget并创建了三个选项卡(tab-1,tab-2,tab-3)。每个选项卡都有大约30个字段。现在,当我最初运行应用程序时,用户将位于tab-1上。当前,所有三个选项卡中显示的所有数据将被立即拉出。 有什么方法可以使用户仅在Tab-2上单击,然后加载与Tab-
7回复

我的课程名称应该以Qt中的'Q'开头吗?

当我第一次开始使用Qt时,每个班级的名字都以“Q”开头是非常烦人的,但现在我已经习惯了。 我正在使用Qt Creator,它很好地突出了代码。 但是,它只突出显示以“Q”开头的类名。 它突出了以'Q'开头的一切,即使没有这种类型。 它不会突出显示自定义类名。 这让我想知道,