繁体   English   中英

Python3,Gtk3,调整值随机变化

[英]Python3, Gtk3, adjustment value randomly changing

给定以下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;
}

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

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

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

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM