【发布时间】:2022-01-16 23:01:06
【问题描述】:
我在使用 C/C++ 中的 GTK+ 库时遇到了一些问题。 我有一个简单的 GTK 表,其中第一列和第三列包含带有描述的标签。特别是第一个是正在执行的测试的名称。三是对测试运行状态的描述。
第二列包含进度条,每行一个,从图中可以看出,它们与同一行的标签不对齐。
我该如何解决这个问题?这是一个简短且可重复的示例,显示了我的问题:
int main (int argc, char *argv[]) {
gtk_init (&argc, &argv);
GtkWidget *win = gtk_window_new (GTK_WINDOW_TOPLEVEL);
gtk_window_fullscreen(GTK_WINDOW(win));
g_signal_connect (win, "delete_event", G_CALLBACK (gtk_main_quit),NULL);
GtkWidget *names[7], *states[7], *bars[7];
GtkWidget *table = gtk_table_new (7, 3, TRUE);
for ( int i = 0 ; i < 7 ; i++ ){
names[i] = gtk_label_new( std::string("Name" + std::to_string(i)).c_str() );
states[i] = gtk_label_new("Waiting Mode");
bars[i] = gtk_progress_bar_new();
gtk_table_attach_defaults (GTK_TABLE (table), names[i] , 0, 1, i, i+1);
gtk_table_attach_defaults (GTK_TABLE (table), bars[i] , 1, 2, i, i+1);
gtk_table_attach_defaults (GTK_TABLE (table), states[i] , 2, 3, i, i+1);
}
gtk_container_add (GTK_CONTAINER (win), table);
gtk_widget_show_all (win);
gtk_main ();
return 0;
}
您将获得的 GUI 是这个: img
【问题讨论】:
-
不行,我需要至少10个声望才能直接添加截图
-
好的,没错。如果您可以添加一个最小且可重现的示例(在代码中)来重现您的问题,这也会有所帮助。没有任何代码,我们无能为力。
-
我添加了一个显示我的问题的示例,我还刷新了图像:)
-
stackoverflow.com/questions/22272446/… 是否回答了您的问题?还请指定您使用的 Gtk 库的版本。