Python Pygtk调整和;垂直比例:如何反转光标最大/最小值

Python Pygtk调整和;垂直比例:如何反转光标最大/最小值,python,gtk,adjustment,Python,Gtk,Adjustment,我已经把它翻译成了Python2.7,它正在工作。 但现在我有一个我自己解决不了的问题: 我希望顶部的值为100,底部的值为0。如何做到这一点 这是我的密码: #!/usr/bin/env python # coding: utf8 import pygtk pygtk.require('2.0') import gtk class Fan(): def destroy(self, widget, donnees=None): gtk.main_quit() exit()

我已经把它翻译成了Python2.7,它正在工作。 但现在我有一个我自己解决不了的问题: 我希望顶部的值为100,底部的值为0。如何做到这一点

这是我的密码:

#!/usr/bin/env python
# coding: utf8

import pygtk
pygtk.require('2.0')
import gtk

class Fan():
  def destroy(self, widget, donnees=None):
    gtk.main_quit()
    exit()

  def __init__(self):
    window = gtk.Window(gtk.WINDOW_TOPLEVEL)
    window.set_title('Vertical Scales')
    window.set_border_width(10)
    window.connect("destroy", self.destroy)
    window.set_size_request(-1, 150)

    # Récupération des informations de surface d'affichage
    self.screen = window.get_screen()
    self.largeur = int(self.screen.get_width())
    self.hauteur = int(self.screen.get_height())

    window.move(self.largeur/2-150,self.hauteur/2-40)
    window.set_default_size(100, 200)

    #Adjustments
                      #value, min, max, step, pg-incr,pg-size
    adj1 = gtk.Adjustment(50, 0, 100, 1.0,  1.0,    0.0)
    adj2 = gtk.Adjustment(50, 0, 100, 1.0,  1.0,    0.0)

    scale1 = gtk.VScale(adj1)
    scale2 = gtk.VScale(adj2)

    scale1.value_pos = gtk.POS_RIGHT
    scale2.value_pos = gtk.POS_LEFT

    hbox = gtk.HBox(True, 5)
    hbox.pack_start_defaults(scale1)
    hbox.pack_start_defaults(scale2)

    window.add(hbox)
    hbox.show()
    window.show_all()

if __name__ == "__main__":

  base = Fan()
  gtk.main()
这是一个屏幕截图,我希望窗口顶部有100个光标,底部有0个光标:


感谢gtk。缩放对象继承自;您需要将范围属性“反转”设置为True

因此,请将其放在创建VScale的语句之后:

scale1.set_inverted(True)
scale2.set_inverted(True)

另外,要在我的系统上运行你的代码,我必须将你的编码语句更改为

#-*-编码:拉丁语-1-*-

但我认为这是因为Stackoverflow格式化软件对这里发布的文本所做的更改


官方的GTK+教程很好(尽管其中包含一些使用不推荐代码的示例),但GTK太大了,教程不容易涵盖所有内容。您需要熟悉GTK参考手册,以及它是如何隐藏和解释的。:)

因此,如果您查看gtk.HScale页面,它有一个指向各种属性的链接,包括gtk.Range属性。该链接将“inversed”作为属性之一,并在页面的其他地方明确描述了
set\u inversed
get\u inversed
方法。请注意,在GTK中,这样命名的函数是设置和获取属性的标准函数,因此,如果您知道(或可以猜测:)属性名称,那么您也知道如何设置或获取它

gtk.HScale页面还提到它继承了gtk.Scale,因此该页面也值得查看更多信息


我刚注意到你有

self.largeur = int(self.screen.get_width())
self.hauteur = int(self.screen.get_height())
但你可以这么做

self.largeur = self.screen.get_width()
self.hauteur = self.screen.get_height()
由于那些get_width()和get_height()方法都返回
int


与其使用window.move(),不如看看
gtk.window.set_position()
和。

非常感谢,因为没有教程解释这一点!PS:这两个都能在我的机器上工作。我不知道真正的原因,因为我试图将代码复制/粘贴到一个新文件中,而且它也在工作。。编辑:我是法国人,使用Kubuntu x64系统。好的,我注意到你对
gtk.Window.set_position()
的解释。我会看的。谢谢,我有点猜你是法国人:)(FWIW,我高中时学过法语,但那是几十年前的事了。我还在一台旧的32位机器上使用KDE发行版Mepis 11,它与Ubuntu家族(他们都是Knoppix的后代)有着模糊的联系。我用凯特做我的编辑。我的默认语言环境是en_AU.utf8,但我通常不使用kate中的编码设置…我很高兴能为您提供帮助。GTK很有趣,尽管有时尝试涉过参考手册中的所有信息确实会有点令人沮丧。但是,当你找到你需要的信息,让你的程序按照你想要的方式运行时,你会感到非常满意。