Text Entry Box Enter text for the image. To create a paragraph return, just press Enter.
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Text Entry Box Enter text for the image. To create a paragraph return, just press Enter.相关的知识,希望对你有一定的参考价值。
希望能够翻译一下
Show/Hide Options Button Click to reduce the size of the Text Entry dialog box. The resulting dialog box will not have the options available, only the workspace.
Font Select the font for the text.
Script Select the script language you want from the drop-down list.
Size Select the size of the font.
Style Select the style of the text.
Alignment Select the alignment of the text.
Color Box Select the color of the text. Click on the color box to change the color.
Line spacing Adjusts the gap between the lines of your text. The higher the value the larger the gap.
显示/隐藏选项按钮 点击可以使文本输入对话框缩小(还原)。
The resulting dialog box will not have the options available, only the workspace
出现的对话框中没有可选项,只有空白
Font Select the font for the text
字体 可以选择文本的字体
Script Select the script language you want from the drop-down list.
脚本 从下拉列表中选择你想使用的脚本语言。
Size Select the size of the font.
大小 选择字体大小的。
Style Select the style of the text.
风格 选择文本的样式。
Alignment Select the alignment of the text.
对齐 选择文本的对齐方式。
Color Box Select the color of the text. Click on the color box to change the color.
颜色框 选择文字的颜色。点击颜色框来改变颜色。
Line spacing Adjusts the gap between the lines of your text. The higher the value the larger the gap.
行间距 调整文本行之间的距离。值越高距离越大。 参考技术A 文字输入框输入文字的形象。要创建一个返回段,请按下ENTER
显示/隐藏选项按钮点击缩小文字输入对话框。出现的对话框中没有可供选择,只有工作。
字体选择字体的文本。
脚本选择脚本语言你想从下拉列表中。
大小选择大小的字体。
风格选择的样式文本。
对齐选择对齐文本。
彩盒选择文字的颜色。点击颜色框来改变颜色。
行距调整之间的差距行的文字。较高的价值较大的差距。
带有条目的 GtkComboBox 导致 `gtk_entry_set_text: assertion 'text != NULL' failed`
【中文标题】带有条目的 GtkComboBox 导致 `gtk_entry_set_text: assertion \'text != NULL\' failed`【英文标题】:GtkComboBox with entry causes `gtk_entry_set_text: assertion 'text != NULL' failed`带有条目的 GtkComboBox 导致 `gtk_entry_set_text: assertion 'text != NULL' failed` 【发布时间】:2021-05-27 01:03:44 【问题描述】:我正在尝试编写一个带有条目的组合框,其中包含带有列表存储的文本。我的代码是基于the official gtk-demo的代码
问题:
当我创建一个带有条目的组合框时,
所有条目都居中 我无法选择任何条目 命令行显示 gtk_entry_set_text:断言 'text != NULL' 失败代码
下面是我如何创建组合框(目前使用硬编码开关进行测试。
if (FALSE)
// works fine
combo = gtk_combo_box_new_with_model (model);
else
// Entries are centric
// Cannot select entries
// command line shows gtk_entry_set_text: assertion 'text != NULL' failed
combo = gtk_combo_box_new_with_model_and_entry (model);
完整代码
#include <gtk/gtk.h>
enum
TEXT_COL,
ICON_NAME_COL
;
static GtkTreeModel *
create_icon_store (void)
const gchar *labels[6] =
("Warning"),
("Stop"),
("New"),
("Clear"),
("Open")
;
GtkTreeIter iter;
GtkListStore *store;
gint i;
store = gtk_list_store_new (1, G_TYPE_STRING);
for (i = 0; i < G_N_ELEMENTS (labels); i++)
gtk_list_store_append (store, &iter);
gtk_list_store_set (store, &iter,
TEXT_COL, (labels[i]),
-1);
return GTK_TREE_MODEL (store);
void create_gui(GtkContainer *container)
GtkWidget *combo;
GtkTreeModel *model;
GtkCellRenderer *renderer;
GtkTreeIter iter;
model = create_icon_store ();
if (FALSE)
// works fine
combo = gtk_combo_box_new_with_model (model);
else
// Entries are centric
// Cannot select entries
// command line shows gtk_entry_set_text: assertion 'text != NULL' failed
combo = gtk_combo_box_new_with_model_and_entry (model);
g_object_unref (model);
gtk_container_add (container, combo);
renderer = gtk_cell_renderer_text_new ();
gtk_cell_layout_pack_start (GTK_CELL_LAYOUT (combo), renderer, TRUE);
gtk_cell_layout_set_attributes (GTK_CELL_LAYOUT (combo), renderer,
"text", TEXT_COL,
NULL);
gtk_combo_box_set_active (GTK_COMBO_BOX (combo), 0);
/**
* standard stuff. Check out create_gui()
**/
int main(int argc, char *argv[])
gtk_init (&argc, &argv);
GtkWidget *window;
window = gtk_window_new (GTK_WINDOW_TOPLEVEL);
GtkWidget * box = gtk_box_new (GTK_ORIENTATION_VERTICAL, 5);
gtk_container_add (GTK_CONTAINER (window), box);
create_gui (GTK_CONTAINER (box));
g_signal_connect (G_OBJECT (window), "destroy",
G_CALLBACK (gtk_main_quit), G_OBJECT (window));
gtk_widget_show_all(window);
gtk_main();
return 0;
【问题讨论】:
【参考方案1】:说明
-
您需要告诉 GtkEntry(组合框的)应该使用哪一列:
你可以用
gtk_combo_box_set_entry_text_column
您还应该指定gtk_combo_box_set_id_column
(不知道为什么,但 gtk 会这样做)
当您使用gtk_combo_box_set_entry_text_column
时,您不再需要自己的渲染器;否则,您将显示两列。
通用代码
这是一个函数,它将创建一个组合框,其中包含一个带有一个文本列的列表存储条目 (G_TYPE_STRING
)
/**
* Creates a combo box for list store with one text column.
* (= ComboBoxText)
* The combo box will own `model`. No `g_object_unref` needed.
*/
GtkComboBox *
create_combo_box_with_entry(GtkListStore *model)
GtkWidget *combo;
combo = gtk_combo_box_new_with_model_and_entry (GTK_TREE_MODEL (model));
g_object_unref (model);
// Note: You don't need to use an a renderer, if you have
// a simple ComboBox for text with an entry, because
// the following functions will setup a renderer
gtk_combo_box_set_entry_text_column (GTK_COMBO_BOX (combo), 0);
gtk_combo_box_set_id_column (GTK_COMBO_BOX (combo), 0);
return GTK_COMBO_BOX (combo);
【讨论】:
我不确定我是否可以关注这篇文章。你在问什么,然后你给它一个解释。这听起来像是 Tutorial 对我来说,这绝对不是 SO 的意思。 我在问一些事情,自己想出了解决方案,将其概括,然后发布。请指出那个地方,如果我在此期间找到了解决方案,我不应该正确回答我自己的问题。 重要的不是你在做什么,更重要的是你是怎么做的。 自答其实是encouraged,@Michi以上是关于Text Entry Box Enter text for the image. To create a paragraph return, just press Enter.的主要内容,如果未能解决你的问题,请参考以下文章
带有条目的 GtkComboBox 导致 `gtk_entry_set_text: assertion 'text != NULL' failed`
text- 属性 border-radius, box-shadow, text-shadow, background, text-overflow
Xamarin Forms iOS CustomRenderer Entry PlaceHolder 和 Button Text Padding Bottom