我已将此code翻译为python 2.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个curseur:
由于
答案 0 :(得分:3)
gtk.Scale对象继承自gtk.Range;你需要设置Range属性"倒置"真实。
所以把它放在创建VScales的语句之后的某个地方:
scale1.set_inverted(True)
scale2.set_inverted(True)
PS。要在我的系统上运行代码,我必须将编码语句更改为
# -*- coding: latin-1 -*-
但我认为是因为Stackoverflow格式化软件对此处发布的文本所做的更改。
官方GTK +教程很好(虽然它们包含一些使用弃用代码的示例)但GTK非常大,教程不容易涵盖所有内容。您需要熟悉GTK参考手册,以及隐藏的解释方法。 :)
因此,如果您查看gtk.HScale的页面,它会链接到各种属性,包括gtk.Range属性。该链接提及"倒置"作为其中一个属性,以及页面上的其他位置,它明确地描述了set_inverted
和get_inverted
方法。请注意,名称相同的函数是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
。
您应该查看gtk.Window.set_position()
和GTK Window Position Constants,而不是使用window.move()。