Могу ли я создать нечто похожее на панель в Windows с Python? - PullRequest
0 голосов
/ 19 октября 2011

Извините за смутное название, не могу придумать ничего более информативного%)

Мне нужна горизонтальная панель размером 5px в верхней части экрана, на которой я могу рисовать (и, возможно,обрабатывать щелчки тоже).

Одна из следующих функций была бы замечательной (хотя я понимаю, что, вероятно, на самом деле невозможно объединить их обе):

  • панель должна быть простокак собственная панель задач Windows, т. е. развернутые окна не должны перекрывать ее, а начинаться под ней вместо
  • панель должна отображаться и в полноэкранных приложениях

Возможно ли это сделать вPython?

Спасибо.

1 Ответ

0 голосов
/ 19 октября 2011

Да, это возможно.Часть «как» зависит от выбранной вами библиотеки GUI, для которой есть много опций, но большинство людей порекомендуют следующие два: wxPython или PySide, который является Qt для Python.

PySide имеет хорошую документацию и tutorials .

Что вы хотите сделать, это создать экземпляр QMainWindow и установить WindowFlags в соответствии с вашими требованиями.Возможно, вам понадобится следующая комбинация Qt::Window | Qt::CustomizeWindowHint | Qt::WindowStaysOnTopHint.

Примерно так:

import sys
from PySide.QtCore import *
from PySide.QtGui import *

class Form(QMainWindow):

    def __init__(self, parent=None):
        super(Form, self).__init__(parent)
        self.setWindowFlags(Qt::Window | Qt::CustomizeWindowHint | Qt::WindowStaysOnTopHint)


if __name__ == '__main__':
    # Create the Qt Application
    app = QApplication(sys.argv)
    # Create and show the form
    form = Form()
    form.show()
    # Run the main Qt loop
    sys.exit(app.exec_())

Обратите внимание, что для таких окон существует ограничение "оставаться сверху".Есть специфичные для Win32 способы бороться с этим и стать еще выше, но такое требование было бы ошибкой проектирования.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...