Как правильно использовать GtkFileChooserDialog для открытия файлов в Glade? - PullRequest
0 голосов
/ 09 декабря 2018

Как добавить кнопку открытия в GtkHeaderBar для GtkFileChooserDialog, используя Glade?Я не могу найти единственного варианта в Glade, который позволил бы мне сделать эту основную вещь.Кто-нибудь может знать, как найти этот вариант?Я не могу найти ни одного примера, как это сделать в Интернете.

При добавлении GtkFileChooserDialog это выглядит так (я добавил одну дополнительную кнопку внизу, но представьте, что ее не существует)

enter image description here.

Но так должно быть enter image description here

Ответы [ 2 ]

0 голосов
/ 10 декабря 2018

Вот файл Glade, который показывает пример:

<?xml version="1.0" encoding="UTF-8"?>
<!-- Generated with glade 3.22.1 -->
<interface>
  <requires lib="gtk+" version="3.20"/>
  <object class="GtkFileChooserDialog">
    <property name="can_focus">False</property>
    <property name="type_hint">dialog</property>
    <child type="titlebar">
      <object class="GtkHeaderBar">
        <property name="visible">True</property>
        <property name="can_focus">False</property>
        <child>
          <object class="GtkButton">
            <property name="label" translatable="yes">button</property>
            <property name="visible">True</property>
            <property name="can_focus">True</property>
            <property name="receives_default">True</property>
          </object>
        </child>
        <child>
          <object class="GtkButton">
            <property name="label" translatable="yes">button</property>
            <property name="visible">True</property>
            <property name="can_focus">True</property>
            <property name="receives_default">True</property>
          </object>
          <packing>
            <property name="pack_type">end</property>
            <property name="position">1</property>
          </packing>
        </child>
      </object>
    </child>
    <child internal-child="vbox">
      <object class="GtkBox">
        <property name="can_focus">False</property>
        <property name="orientation">vertical</property>
        <property name="spacing">2</property>
        <child internal-child="action_area">
          <object class="GtkButtonBox">
            <property name="can_focus">False</property>
            <property name="layout_style">end</property>
            <child>
              <object class="GtkComboBoxText">
                <property name="visible">True</property>
                <property name="can_focus">False</property>
                <items>
                  <item translatable="yes">option 1</item>
                  <item translatable="yes">option 2</item>
                </items>
              </object>
              <packing>
                <property name="expand">True</property>
                <property name="fill">True</property>
                <property name="position">0</property>
              </packing>
            </child>
          </object>
          <packing>
            <property name="expand">False</property>
            <property name="fill">False</property>
            <property name="position">0</property>
          </packing>
        </child>
      </object>
    </child>
  </object>
</interface>
0 голосов
/ 10 декабря 2018

относительно вашего вопроса:

чтобы программа могла читать из файла или от пользователя,

для чтения из файла:

myprogram  < myfile  

Чтобы прочитать от пользователя:

myprogram

Тогда фактическая программа всегда будет считываться с stdin

...