Для 12.04:
Единственная официальная поддержка RT3060 / 3062/3562/2592 в Linux является экспериментальной и может быть не полностью функциональной. Это обеспечивается драйвером rt2800pci из команды kernel.org/compat-wireless. Драйвер является независимым усилием и, похоже, не использует код RalinkВот рабочий пример того, что вы хотите.
Вам нужно понять концепцию основного цикла GTK, чтобы понять, почему важно отделить код манипулирования графическим интерфейсом от длинного кода блокировки. Надеемся, что комментарии и отладочные заявления в моем примере помогут вам разобраться. Эта запись PyGTK FAQ полезна, и эта концепция применима к Python с интроспекцией GTK3 и GObject.
Этот код создает окно с простой кнопкой с надписью «Click me». Как только вы нажмете на него, он изменится на «Работа», курсор станет песочным часом, а графический интерфейс останется отзывчивым. По прошествии десяти секунд метка кнопки изменится на «Готово», и курсор вернется в нормальное состояние.
import time
import threading
from gi.repository import Gtk, Gdk, GObject
window = None
def main():
GObject.threads_init()
Gdk.threads_init()
# Build GUI:
global window
window = Gtk.Window()
button = Gtk.Button(label="Click me")
window.add(button)
window.set_default_size(200, 200)
window.show_all()
# Connect signals:
window.connect("delete-event", Gtk.main_quit)
button.connect("clicked", on_button_click)
Gtk.main()
def on_button_click(button):
print "Debug on_button_click: current_thread name:", threading.current_thread().name
# This is a callback called by the main loop, so it's safe to
# manipulate GTK objects:
watch_cursor = Gdk.Cursor(Gdk.CursorType.WATCH)
window.get_window().set_cursor(watch_cursor)
button.set_label("Working...")
button.set_sensitive(False)
def lengthy_process():
print "Debug lengthy_process: current_thread name:", threading.current_thread().name
# We're in a new thread, so we can run lengthy processes without
# freezing the GUI, but we can't manipulate GTK objects except
# through GObject.idle_add
time.sleep(10)
def done():
print "Debug done: current_thread name:", threading.current_thread().name
window.get_window().set_cursor(None)
button.set_label("Done!")
return False
GObject.idle_add(done)
thread = threading.Thread(target=lengthy_process)
thread.start()
if __name__ == "__main__":
main()
Вот рабочий пример того, что вы хотите.
Вам нужно понять концепцию основного цикла GTK, чтобы понять, почему важно отделить код манипулирования графическим интерфейсом от длинного кода блокировки. Надеемся, что комментарии и отладочные заявления в моем примере помогут вам разобраться. Эта запись PyGTK FAQ полезна, и эта концепция применима к Python с интроспекцией GTK3 и GObject.
Этот код создает окно с простой кнопкой с надписью «Click me». Как только вы нажмете на него, он изменится на «Работа», курсор станет песочным часом, а графический интерфейс останется отзывчивым. По прошествии десяти секунд метка кнопки изменится на «Готово», и курсор вернется в нормальное состояние.
import time
import threading
from gi.repository import Gtk, Gdk, GObject
window = None
def main():
GObject.threads_init()
Gdk.threads_init()
# Build GUI:
global window
window = Gtk.Window()
button = Gtk.Button(label="Click me")
window.add(button)
window.set_default_size(200, 200)
window.show_all()
# Connect signals:
window.connect("delete-event", Gtk.main_quit)
button.connect("clicked", on_button_click)
Gtk.main()
def on_button_click(button):
print "Debug on_button_click: current_thread name:", threading.current_thread().name
# This is a callback called by the main loop, so it's safe to
# manipulate GTK objects:
watch_cursor = Gdk.Cursor(Gdk.CursorType.WATCH)
window.get_window().set_cursor(watch_cursor)
button.set_label("Working...")
button.set_sensitive(False)
def lengthy_process():
print "Debug lengthy_process: current_thread name:", threading.current_thread().name
# We're in a new thread, so we can run lengthy processes without
# freezing the GUI, but we can't manipulate GTK objects except
# through GObject.idle_add
time.sleep(10)
def done():
print "Debug done: current_thread name:", threading.current_thread().name
window.get_window().set_cursor(None)
button.set_label("Done!")
return False
GObject.idle_add(done)
thread = threading.Thread(target=lengthy_process)
thread.start()
if __name__ == "__main__":
main()
Вот рабочий пример того, что вы хотите.
Вам нужно понять концепцию основного цикла GTK, чтобы понять, почему важно отделить код манипулирования графическим интерфейсом от длинного кода блокировки. Надеемся, что комментарии и отладочные заявления в моем примере помогут вам разобраться. Эта запись PyGTK FAQ полезна, и эта концепция применима к Python с интроспекцией GTK3 и GObject.
Этот код создает окно с простой кнопкой с надписью «Click me». Как только вы нажмете на него, он изменится на «Работа», курсор станет песочным часом, а графический интерфейс останется отзывчивым. По прошествии десяти секунд метка кнопки изменится на «Готово», и курсор вернется в нормальное состояние.
import time
import threading
from gi.repository import Gtk, Gdk, GObject
window = None
def main():
GObject.threads_init()
Gdk.threads_init()
# Build GUI:
global window
window = Gtk.Window()
button = Gtk.Button(label="Click me")
window.add(button)
window.set_default_size(200, 200)
window.show_all()
# Connect signals:
window.connect("delete-event", Gtk.main_quit)
button.connect("clicked", on_button_click)
Gtk.main()
def on_button_click(button):
print "Debug on_button_click: current_thread name:", threading.current_thread().name
# This is a callback called by the main loop, so it's safe to
# manipulate GTK objects:
watch_cursor = Gdk.Cursor(Gdk.CursorType.WATCH)
window.get_window().set_cursor(watch_cursor)
button.set_label("Working...")
button.set_sensitive(False)
def lengthy_process():
print "Debug lengthy_process: current_thread name:", threading.current_thread().name
# We're in a new thread, so we can run lengthy processes without
# freezing the GUI, but we can't manipulate GTK objects except
# through GObject.idle_add
time.sleep(10)
def done():
print "Debug done: current_thread name:", threading.current_thread().name
window.get_window().set_cursor(None)
button.set_label("Done!")
return False
GObject.idle_add(done)
thread = threading.Thread(target=lengthy_process)
thread.start()
if __name__ == "__main__":
main()
Вот рабочий пример того, что вы хотите.
Вам нужно понять концепцию основного цикла GTK, чтобы понять, почему важно отделить код манипулирования графическим интерфейсом от длинного кода блокировки. Надеемся, что комментарии и отладочные заявления в моем примере помогут вам разобраться. Эта запись PyGTK FAQ полезна, и эта концепция применима к Python с интроспекцией GTK3 и GObject.
Этот код создает окно с простой кнопкой с надписью «Click me». Как только вы нажмете на него, он изменится на «Работа», курсор станет песочным часом, а графический интерфейс останется отзывчивым. По прошествии десяти секунд метка кнопки изменится на «Готово», и курсор вернется в нормальное состояние.
import time
import threading
from gi.repository import Gtk, Gdk, GObject
window = None
def main():
GObject.threads_init()
Gdk.threads_init()
# Build GUI:
global window
window = Gtk.Window()
button = Gtk.Button(label="Click me")
window.add(button)
window.set_default_size(200, 200)
window.show_all()
# Connect signals:
window.connect("delete-event", Gtk.main_quit)
button.connect("clicked", on_button_click)
Gtk.main()
def on_button_click(button):
print "Debug on_button_click: current_thread name:", threading.current_thread().name
# This is a callback called by the main loop, so it's safe to
# manipulate GTK objects:
watch_cursor = Gdk.Cursor(Gdk.CursorType.WATCH)
window.get_window().set_cursor(watch_cursor)
button.set_label("Working...")
button.set_sensitive(False)
def lengthy_process():
print "Debug lengthy_process: current_thread name:", threading.current_thread().name
# We're in a new thread, so we can run lengthy processes without
# freezing the GUI, but we can't manipulate GTK objects except
# through GObject.idle_add
time.sleep(10)
def done():
print "Debug done: current_thread name:", threading.current_thread().name
window.get_window().set_cursor(None)
button.set_label("Done!")
return False
GObject.idle_add(done)
thread = threading.Thread(target=lengthy_process)
thread.start()
if __name__ == "__main__":
main()
Вот рабочий пример того, что вы хотите.
Вам нужно понять концепцию основного цикла GTK, чтобы понять, почему важно отделить код манипулирования графическим интерфейсом от длинного кода блокировки. Надеемся, что комментарии и отладочные заявления в моем примере помогут вам разобраться. Эта запись PyGTK FAQ полезна, и эта концепция применима к Python с интроспекцией GTK3 и GObject.
Этот код создает окно с простой кнопкой с надписью «Click me». Как только вы нажмете на него, он изменится на «Работа», курсор станет песочным часом, а графический интерфейс останется отзывчивым. По прошествии десяти секунд метка кнопки изменится на «Готово», и курсор вернется в нормальное состояние.
import time
import threading
from gi.repository import Gtk, Gdk, GObject
window = None
def main():
GObject.threads_init()
Gdk.threads_init()
# Build GUI:
global window
window = Gtk.Window()
button = Gtk.Button(label="Click me")
window.add(button)
window.set_default_size(200, 200)
window.show_all()
# Connect signals:
window.connect("delete-event", Gtk.main_quit)
button.connect("clicked", on_button_click)
Gtk.main()
def on_button_click(button):
print "Debug on_button_click: current_thread name:", threading.current_thread().name
# This is a callback called by the main loop, so it's safe to
# manipulate GTK objects:
watch_cursor = Gdk.Cursor(Gdk.CursorType.WATCH)
window.get_window().set_cursor(watch_cursor)
button.set_label("Working...")
button.set_sensitive(False)
def lengthy_process():
print "Debug lengthy_process: current_thread name:", threading.current_thread().name
# We're in a new thread, so we can run lengthy processes without
# freezing the GUI, but we can't manipulate GTK objects except
# through GObject.idle_add
time.sleep(10)
def done():
print "Debug done: current_thread name:", threading.current_thread().name
window.get_window().set_cursor(None)
button.set_label("Done!")
return False
GObject.idle_add(done)
thread = threading.Thread(target=lengthy_process)
thread.start()
if __name__ == "__main__":
main()
Вот рабочий пример того, что вы хотите.
Вам нужно понять концепцию основного цикла GTK, чтобы понять, почему важно отделить код манипулирования графическим интерфейсом от длинного кода блокировки. Надеемся, что комментарии и отладочные заявления в моем примере помогут вам разобраться. Эта запись PyGTK FAQ полезна, и эта концепция применима к Python с интроспекцией GTK3 и GObject.
Этот код создает окно с простой кнопкой с надписью «Click me». Как только вы нажмете на него, он изменится на «Работа», курсор станет песочным часом, а графический интерфейс останется отзывчивым. По прошествии десяти секунд метка кнопки изменится на «Готово», и курсор вернется в нормальное состояние.
import time
import threading
from gi.repository import Gtk, Gdk, GObject
window = None
def main():
GObject.threads_init()
Gdk.threads_init()
# Build GUI:
global window
window = Gtk.Window()
button = Gtk.Button(label="Click me")
window.add(button)
window.set_default_size(200, 200)
window.show_all()
# Connect signals:
window.connect("delete-event", Gtk.main_quit)
button.connect("clicked", on_button_click)
Gtk.main()
def on_button_click(button):
print "Debug on_button_click: current_thread name:", threading.current_thread().name
# This is a callback called by the main loop, so it's safe to
# manipulate GTK objects:
watch_cursor = Gdk.Cursor(Gdk.CursorType.WATCH)
window.get_window().set_cursor(watch_cursor)
button.set_label("Working...")
button.set_sensitive(False)
def lengthy_process():
print "Debug lengthy_process: current_thread name:", threading.current_thread().name
# We're in a new thread, so we can run lengthy processes without
# freezing the GUI, but we can't manipulate GTK objects except
# through GObject.idle_add
time.sleep(10)
def done():
print "Debug done: current_thread name:", threading.current_thread().name
window.get_window().set_cursor(None)
button.set_label("Done!")
return False
GObject.idle_add(done)
thread = threading.Thread(target=lengthy_process)
thread.start()
if __name__ == "__main__":
main()
Вот рабочий пример того, что вы хотите.
Вам нужно понять концепцию основного цикла GTK, чтобы понять, почему важно отделить код манипулирования графическим интерфейсом от длинного кода блокировки. Надеемся, что комментарии и отладочные заявления в моем примере помогут вам разобраться. Эта запись PyGTK FAQ полезна, и эта концепция применима к Python с интроспекцией GTK3 и GObject.
Этот код создает окно с простой кнопкой с надписью «Click me». Как только вы нажмете на него, он изменится на «Работа», курсор станет песочным часом, а графический интерфейс останется отзывчивым. По прошествии десяти секунд метка кнопки изменится на «Готово», и курсор вернется в нормальное состояние.
import time
import threading
from gi.repository import Gtk, Gdk, GObject
window = None
def main():
GObject.threads_init()
Gdk.threads_init()
# Build GUI:
global window
window = Gtk.Window()
button = Gtk.Button(label="Click me")
window.add(button)
window.set_default_size(200, 200)
window.show_all()
# Connect signals:
window.connect("delete-event", Gtk.main_quit)
button.connect("clicked", on_button_click)
Gtk.main()
def on_button_click(button):
print "Debug on_button_click: current_thread name:", threading.current_thread().name
# This is a callback called by the main loop, so it's safe to
# manipulate GTK objects:
watch_cursor = Gdk.Cursor(Gdk.CursorType.WATCH)
window.get_window().set_cursor(watch_cursor)
button.set_label("Working...")
button.set_sensitive(False)
def lengthy_process():
print "Debug lengthy_process: current_thread name:", threading.current_thread().name
# We're in a new thread, so we can run lengthy processes without
# freezing the GUI, but we can't manipulate GTK objects except
# through GObject.idle_add
time.sleep(10)
def done():
print "Debug done: current_thread name:", threading.current_thread().name
window.get_window().set_cursor(None)
button.set_label("Done!")
return False
GObject.idle_add(done)
thread = threading.Thread(target=lengthy_process)
thread.start()
if __name__ == "__main__":
main()
Вот рабочий пример того, что вы хотите.
Вам нужно понять концепцию основного цикла GTK, чтобы понять, почему важно отделить код манипулирования графическим интерфейсом от длинного кода блокировки. Надеемся, что комментарии и отладочные заявления в моем примере помогут вам разобраться. Эта запись PyGTK FAQ полезна, и эта концепция применима к Python с интроспекцией GTK3 и GObject.
Этот код создает окно с простой кнопкой с надписью «Click me». Как только вы нажмете на него, он изменится на «Работа», курсор станет песочным часом, а графический интерфейс останется отзывчивым. По прошествии десяти секунд метка кнопки изменится на «Готово», и курсор вернется в нормальное состояние.
import time
import threading
from gi.repository import Gtk, Gdk, GObject
window = None
def main():
GObject.threads_init()
Gdk.threads_init()
# Build GUI:
global window
window = Gtk.Window()
button = Gtk.Button(label="Click me")
window.add(button)
window.set_default_size(200, 200)
window.show_all()
# Connect signals:
window.connect("delete-event", Gtk.main_quit)
button.connect("clicked", on_button_click)
Gtk.main()
def on_button_click(button):
print "Debug on_button_click: current_thread name:", threading.current_thread().name
# This is a callback called by the main loop, so it's safe to
# manipulate GTK objects:
watch_cursor = Gdk.Cursor(Gdk.CursorType.WATCH)
window.get_window().set_cursor(watch_cursor)
button.set_label("Working...")
button.set_sensitive(False)
def lengthy_process():
print "Debug lengthy_process: current_thread name:", threading.current_thread().name
# We're in a new thread, so we can run lengthy processes without
# freezing the GUI, but we can't manipulate GTK objects except
# through GObject.idle_add
time.sleep(10)
def done():
print "Debug done: current_thread name:", threading.current_thread().name
window.get_window().set_cursor(None)
button.set_label("Done!")
return False
GObject.idle_add(done)
thread = threading.Thread(target=lengthy_process)
thread.start()
if __name__ == "__main__":
main()