是否可以禁用,淡化或在GTK中无法点击对话框内的按钮?

时间:2015-06-14 10:35:21

标签: c button gtk

我有一个这样的对话:

GtkWidget *dialog = gtk_dialog_new_with_buttons("Spell Checking", NULL, 0,
                                                GTK_STOCK_OK,
                                                GTK_RESPONSE_ACCEPT,
                                                GTK_STOCK_ADD,
                                                GTK_RESPONSE_APPLY,
                                                GTK_STOCK_CANCEL,
                                                GTK_RESPONSE_REJECT,
                                                NULL);

添加所有其他必要元素后,它将如下所示:

Spell Check Dialog

如果正确单词列表为空,我想要禁用OK按钮。

当然,有一些解决方法,比如创建一个对话框:

  • OK当列表不为空时
  • 没有其他

然而,我想知道我是否可以禁用/淡化一个按钮以及如何。

1 个答案:

答案 0 :(得分:4)

GTK小部件通常具有属性Sensitive,当它设置为false时,小部件变灰,即用户无法与之交互。有a function for that purpose

void
gtk_widget_set_sensitive (GtkWidget *widget,
                          gboolean sensitive);

您也可以尝试直接设置它,例如myButton->Sensitive = false