현재 PyGObject 앱을 개발 중이며 Gtk + FlowBox에서 특정 하위 항목을 선택하는 데 문제가 있습니다. FlowBox를 채우고 특정 자식을 선택하는 코드를 작성하는 FlowBox 선택 모드 (SINGLE)를 선택한 후에도 첫 번째 자식이 항상 선택됩니다. Screenshot of above code runningGtk + FlowBox 선택이 작동하지 않습니다.
이상한 부분은 내가 선택하는 자녀를 확인할 때이다 : 나는 인덱스 2에서 아이를 선택하는 선택하더라도
#!/usr/bin/python
import gi
gi.require_version('Gtk', '3.0')
from gi.repository import Gtk, Gio
class App(Gtk.Window):
def __init__(self):
Gtk.Window.__init__(self, title="App")
flowbox = Gtk.FlowBox()
flowbox.set_valign(Gtk.Align.START)
flowbox.set_selection_mode(Gtk.SelectionMode.SINGLE)
# Drawing 3 squares
flowbox.add(self.drawing_area())
flowbox.add(self.drawing_area())
flowbox.add(self.drawing_area())
child = flowbox.get_child_at_index(2)
flowbox.select_child(child)
flowbox.queue_draw()
self.add(flowbox)
def drawing_area(self):
preview = Gtk.DrawingArea()
preview.connect("draw", self.draw_square)
preview.set_size_request(150, 150)
return preview
def draw_square(self, widget, cr):
cr.scale(150, 150)
style_context = widget.get_style_context()
color = style_context.get_color(Gtk.StateFlags.NORMAL)
cr.set_source_rgba(*color)
cr.rectangle(0, 0, 1, 1)
cr.fill()
window = App()
window.connect("delete-event", Gtk.main_quit)
window.show_all()
Gtk.main()
는 응용 프로그램은 오직 선택되는 첫 번째 자식을 나타낸다 "self.add (flowbox)"행 앞에 놓인 다음 코드를 사용하여, 터미널은 첫 번째 자식 만 보여 주지만 (인덱스 2에서) 선택하도록 지정된 자식이 유일하게 선택된 자식임을 표시합니다 선택됨 :
for child in flowbox.get_selected_children():
print child.get_index()
GTK +의 특정 버전은 무엇입니까? – andlabs
우분투 16.04를 사용하고 있으므로 Gtk + 3.18입니다. –