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