Форум сайта python.su
appuifw.app.screen по умолчанию равно automatic.
Таким образом например на nokia 5370 если выдвинуть клавитуру, то ориентация автоматически станет landscape, если задвинуть ее обратно, то соответственно portrait. Значение же так и останется automatic.
Как в программе определить реальную ориентацию экрана, которая зависит от положения кверти-клавиатуры.
необязательно даже от положения клавиатуры- ведь ориентация экрана может быть автоматически изменена акселорометром при повороте телефона на 90 градусов, если это включено в настройках.
Офлайн
def orientation():
x,y=appuifw.app.layout(appuifw.EScreen)[0] # Узнаем размер экрана
if x<y:
return 'portrait'
else:
return 'landscape'
Отредактировано (Июль 18, 2010 15:23:19)
Офлайн
Спасибо огромное.
переписал до такого- может кому пригодиться
class screen_orientation(object):
def __init__(this):
try:
temp=appuifw
except:
import appuifw
bkp_orientation=appuifw.app.orientation
appuifw.app.orientation='portrait'
this._x, this._y=appuifw.app.layout(appuifw.EScreen)[0]
appuifw.app.orientation=bkp_orientation
def get_orientation(this):
x, y=appuifw.app.layout(appuifw.EScreen)[0]
if x==this._x and y==this._y:
orientation='portrait'
else:
orientation='landscape'
return [orientation, [x, y]]
Отредактировано (Июль 18, 2010 10:00:10)
Офлайн
try:
temp=appuifw
except:
import appuifw
Офлайн
igor.kaistНу это если копируешь класс методом копипасте, то не выскакивают ошибки вроде модуль не импортирован. Считаю это хорошим тоном, чтобы класс не приходилось допиливать.это то зачем?try:
temp=appuifw
except:
import appuifw
temp=appuifw
if "appuifw" in globals():
if not appuifw:
Офлайн
ReinRaus1. Плохим тоном считается импортировать внутри функций и классов.
Считаю это хорошим тоном, чтобы класс не приходилось допиливать.
ReinRausРечь идет не о секундах, а о еденицах миллисекунд, зато код будет более ясным и чистым
как мне кажется передача идентификатора это быстрая операция. Быстрее, чем
Офлайн
igor.kaistСпасибо. Приму к сведению.ReinRaus1. Плохим тоном считается импортировать внутри функций и классов.
Считаю это хорошим тоном, чтобы класс не приходилось допиливать.
2. Если кто то работает с UI, то считается что он импортирует appuifw для своих нужд сам.
3. В общем то достаточно узкоспециализированный класс, тем более, зачем принудительно выставлять портретную ориентацию, потом опять менять на ландшафтную. Представьте себе, что будет, если программа запущена изначально в ландшафтной.
4.ReinRausРечь идет не о секундах, а о еденицах миллисекунд, зато код будет более ясным и чистым
как мне кажется передача идентификатора это быстрая операция. Быстрее, чем
5. Если уж пошла такая пьянка, то можете просто сделать import appuifw, повторно он не будет импортирован.
Офлайн