显示条目的值

Posted

技术标签:

【中文标题】显示条目的值【英文标题】:Display the value of an entry 【发布时间】:2016-12-05 17:20:00 【问题描述】:

我在 C++ 中使用 Gtkmm 库,但在时遇到问题。这是我的代码:

#include <gtkmm/box.h>
#include <gtkmm/button.h>
#include <gtkmm/main.h>
#include <gtkmm/window.h>
#include <gtkmm/entry.h>

#include <iostream>

int main(int argc, char* argv[]) 
    Gtk::Main app(argc, argv);
    Gtk::Window fenetre;
    Gtk::VBox *boiteV = Gtk::manage(new Gtk::VBox(false, 10)); 

    Gtk::Entry *param = Gtk::manage(new Gtk::Entry());
    boiteV->pack_start(*param);

    Gtk::Button *bouton = Gtk::manage(new Gtk::Button("Tester !"));
    boiteV->pack_start(*bouton); 

    fenetre.add(*boiteV); 
    std::string a = param->get_text();

    bouton->signal_clicked().connect([&a]() std::cout << a << std::endl;);

    fenetre.show_all(); 
    Gtk::Main::run(fenetre);
    return EXIT_SUCCESS;

我的问题是当我点击按钮时我什么都没有,而我在条目中写了一个值。非常感谢您的帮助!

【问题讨论】:

【参考方案1】:

问题是您在创建按钮后获取字符串 a 并在 lambda 函数中捕获该 字符串(为空)。当你按下按钮时,不再查询文本,而是打印出从未改变的字符串a的值。

您可以改为捕获指向按钮本身的指针(按值!)并像这样每次调用get_text()

bouton->signal_clicked().connect(
  [param]() 
    std::cout << param->get_text() << std::endl;
  
);

【讨论】:

以上是关于显示条目的值的主要内容,如果未能解决你的问题,请参考以下文章

如何从AWS Lambda检索数据并将其显示在AWS S3托管的静态网站上?

检查数组中的重复条目,但仅返回重复的值 [重复]

ios-charts / mpandroidcharts 堆积条形标签总计而不是每个条目的值

MySQL 高分 - 用户的个人排名:重复的条目导致不正确的值

如果另一列中的值是唯一的,那么如何在SQL中放置一个显示1的列,如果它是重复的则为0?

Cassandra / Spark显示大表的错误条目数