重名大师 2023-11-01 10:25 采纳率: 94.4%
浏览 7
已结题

这种生成的多个按钮,怎么根据这个按钮文本上对应的i来设置不同的槽函数,输出不同的i啊

这种生成的多个按钮,怎么根据这个按钮文本上对应的i来设置不同的槽函数,输出不同的i啊

img

  • 写回答

1条回答 默认 最新

  • CSDN-Ada助手 CSDN-AI 官方账号 2023-11-01 12:08
    关注

    【以下回答由 GPT 生成】

    优化后的问题:

    问题标题: 如何根据生成的按钮文本设置不同的槽函数并输出不同的值? 问题标签: qt 问题内容: 我有一个程序生成了多个按钮,并且每个按钮上都有一个对应的文本。我想根据这些按钮文本的不同来设置不同的槽函数,并且希望每个槽函数能输出对应按钮的值。以下是生成按钮的代码:

    QPushButton* button[100000];
    int i = 0;
    while (p != NULL) {
        QLabel* label = new QLabel(p->get_name().c_str());
        scrollLayout->addWidget(label);
    
        QLabel* label2 = new QLabel(p->get_image());
        scrollLayout->addWidget(label2);
    
        button[i] = new QPushButton("查找具体信息: " + QString::number(i));
        scrollLayout->addWidget(button[i]);
    
        i++;
    
        p = p->next;
    }
    

    请问应该如何设置按钮的槽函数,以便根据按钮的文本输出不同的值?

    回答:

    1. 使用Lambda表达式来设置按钮的槽函数,以便根据按钮的文本输出不同的值。
    2. 首先,将按钮的文本传递给Lambda表达式作为参数。
    3. 在槽函数内部,根据按钮的文本获取对应的值,并进行输出。

    以下是代码示例:

    QPushButton* button[100000];
    int i = 0;
    while (p != NULL) {
        QLabel* label = new QLabel(p->get_name().c_str());
        scrollLayout->addWidget(label);
    
        QLabel* label2 = new QLabel(p->get_image());
        scrollLayout->addWidget(label2);
    
        button[i] = new QPushButton("查找具体信息: " + QString::number(i));
        scrollLayout->addWidget(button[i]);
    
        // 使用Lambda表达式设置按钮的槽函数
        QObject::connect(button[i], &QPushButton::clicked, [i]() {
            // 根据按钮的文本获取对应的值
            QString buttonText = button[i]->text();
            QString value = buttonText.mid(buttonText.indexOf(":") + 2);
    
            // 输出对应按钮的值
            qDebug() << "按钮" << i << "的值是:" << value;
        });
    
        i++;
    
        p = p->next;
    }
    

    以上代码中,通过使用Lambda表达式来设置按钮的槽函数,并通过在槽函数内部根据按钮的文本获取对应的值,然后进行输出,实现了根据按钮的文本输出不同的值的功能。


    如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

问题事件

  • 系统已结题 11月9日
  • 已采纳回答 11月1日
  • 创建了问题 11月1日

悬赏问题

  • ¥15 如何在maya程序中利用python编写领子和褶裥的模型的方法
  • ¥15 Linux权限管理相关操作(求解答)
  • ¥15 Bug traq 数据包 大概什么价
  • ¥15 在anaconda上pytorch和paddle paddle下载报错
  • ¥25 自动填写QQ腾讯文档收集表
  • ¥15 DbVisualizer Pro 12.0.7 sql commander光标错位 显示位置与实际不符
  • ¥15 求一份STM32F10X的I2S外设库
  • ¥15 android 打包报错
  • ¥15 关于stm32的问题
  • ¥15 ncode振动疲劳分析中,noisefloor如何影响PSD函数?