Gtl3.4 - Glade 3.4.0 - C语言如何读取组合框第二列的数据?

问题描述 投票:0回答:0

我为我不确定的英语道歉,但这不是我的主要语言。 我是 Glade 的新手,我正在尝试创建一个组合框,其中每行包含两个数据,一个显示,一个隐藏。我可以毫无问题地阅读第一个 gtk_entry_get_text,但我不知道如何从第二列读取条目。 如何做到这一点?

我用 Glade 创建了这个:


<?xml version="1.0" encoding="UTF-8"?>
<!-- Generated with glade 3.40.0 -->
<interface>
  <requires lib="gtk+" version="3.24"/>
  <object class="GtkListStore" id="CB">
    <columns>
      <!-- column-name gchararray1 -->
      <column type="gchararray"/>
      <!-- column-name gchararray2 -->
      <column type="gchararray"/>
    </columns>
    <data>
      <row>
        <col id="0">First value</col>
        <col id="1" translatable="yes">0</col>
      </row>
      <row>
        <col id="0" translatable="yes">Second value</col>
        <col id="1" translatable="yes">0</col>
      </row>
      <row>
        <col id="0">Third value</col>
        <col id="1" translatable="yes">1</col>
      </row>
    </data>
    <signal name="row-changed" handler="on_CB_row_changed" swapped="no"/>
  </object>

        <child>
          <object class="GtkComboBox" id="C_C">
            <property name="width-request">300</property>
            <property name="height-request">35</property>
            <property name="visible">True</property>
            <property name="can-focus">False</property>
            <property name="tooltip-text" translatable="yes">This is a tooltip</property>
            <property name="model">CB</property>
            <property name="has-entry">True</property>
            <property name="entry-text-column">0</property>
            <property name="active-id">0</property>
            <signal name="changed" handler="on_C_C_changed" swapped="no"/>
            <child internal-child="entry">
              <object class="GtkEntry">
                <property name="can-focus">False</property>
              </object>
            </child>
          </object>
          <packing>
            <property name="x">100</property>
            <property name="y">225</property>
          </packing>
        </child>
 

我非常简单的代码是:

void on_C_C_changed (GtkEntry *e)
{
  char Buf[128];

  sprintf (Buf, "%s :: '%s'\n", __func__, gtk_entry_get_text (e));
  g_print (Buf);
} // on_C_C_Entry_changed

在这个函数中,我还想读取第二个值以获取更多信息。

提前感谢您的回答。

c combobox gtk3 glade multiple-entries
© www.soinside.com 2019 - 2024. All rights reserved.