J'essaie de faire aligner mon programme d'interface graphique à droite de l'écran sous Windows. Lorsque la barre des tâches n'est pas masquée, mon programme se tiendra simplement sur la barre des tâches! P>
Lorsque vous utilisez Python / Pyqt / Win32, comment puis-je: P>
3 Réponses :
Je pense que vous devez appeler getmonitoriinfo pour le moniteur d'intérêt . Vous devez ensuite lire la zone de travail de monitorinfo.rcwork . Cela exclura toute partie du moniteur réservé à la barre des tâches et à toute autre zone réservée. P>
Je ne crois pas que vous devez vous inquiéter d'AutoHide, car GetMonitorInfo doit en tenir compte. En d'autres termes, lorsque AutoHide est activé, la zone de travail est égale à la zone du moniteur. P>
Merci beaucoup! Mais je trouve que l'utilisation de Pywin32 est un peu différente de MSDN; Voici mon code: ScreenInfo = win32api.getmonitorinfo (1)
@ Good Man Évidemment, vous devez vous installer entre Win32 brut et Pywin32, mais les principes et les appels d'API sous-jacents sont sûrement les mêmes.
Pouvez-vous fournir un exemple sur la manière d'utiliser getmonitorinfo code> en python?
comme David Heffernan mentionné , vous pouvez utiliser getmonitoriinfo code> avec pywin32 code> pour récupérer la taille du moniteur. En particulier, la zone de travail exclura la taille de la barre des tâches.
pour obtenir la taille de la zone de travail (Bureau des tâches de bureau): strong> p> work_area = monitor_info.get("Work")
# (0, 0, 1366, 728)
Vous pouvez utiliser qdesktopwidget code> pour extraire des informations sur les écrans du système et soustrayez la zone de travail de la zone d'écran totale. import sys
from PyQt5.QtWidgets import QApplication
app = QApplication(sys.argv)
dw = app.desktop() # dw = QDesktopWidget() also works if app is created
taskbar_height = dw.screenGeometry().height() - dw.availableGeometry().height()
Connexes: Comment puis-je obtenir la résolution du moniteur à Python?