Python3,Gtk3,调整值随机变化

时间:2014-08-27 14:31:45

标签: python gtk

鉴于以下python代码,它应该创建一个值为123的GtkAdjustment。

(显然是随机的)获得不同的价值观。值123.0最小值1.00.0(常量,不是参数)。

#!/usr/bin/python3
from gi.repository import Gtk

adjustment = Gtk.Adjustment(123,1,200,1,10,0)
print(str(adjustment.get_value()))

发生了什么事?

编辑:以下C程序按预期运行,因此它特定于python:

#include <gtk/gtk.h>
#include <stdio.h>

int main(int argc, char *argv[]){
  gtk_init (&argc, &argv);

  GtkAdjustment * adjustment = gtk_adjustment_new(123.0,1.0,200.0,1.0,10.0,0.0);
  printf("%f\n", gtk_adjustment_get_value(adjustment));

  return 0;
}

1 个答案:

答案 0 :(得分:3)

问题是您使用的是通用构造函数。在C术语中,它首先使用g_object_new构造对象,然后逐个设置值。显然,这不是以确定性的顺序发生的。

更好的方法是使用关键字参数将值修复为名称

adjustment = Gtk.Adjustment(value=123, lower=1, upper=200, ...)

或使用具有固定参数顺序的实际构造函数

adjustment = Gtk.Adjustment.new(123, 1, 200, 1, 10, 0)