PyQt4: как сделать undercorated окно с зарезервированным пространством

Я хотел бы сделать приложение, подобное панели, используя PyQt4 для Linux. для этого мне нужно окно, которое я создал:

  • быть неупорядоченным
  • зарезервировать место
  • появляться на всех рабочих пространствах

От чтения документации у меня появилась идея, что я должен использовать QtWindowFlags. Но я не знаю, как это сделать. Также я считаю, что должен быть подсказкой Qt.WindowType, где-то сообщая WM-окну приложение «док-станции». Я сделал это с pygtk после этого потока , но здесь с Qt я действительно не знаю, как справиться с этим. (Мне нужно Qt для его возможности для создания темы / скина).

Ниже приведен текущий код, который я сделал (ничего необычного).

import sys from PyQt4 import QtGui class Panel(QtGui.QWidget): def __init__(self, parent=None): ## should the QtWindowFlag be here? QtGui.QWidget.__init__(self, parent) ## should the QtWindowFlag be there as well? self.setWindowTitle('QtPanel') self.resize(QtGui.QDesktopWidget().screenGeometry().width(), 25) self.move(0,0) def main(): app = QtGui.QApplication(sys.argv) panel = Panel() panel.show() sys.exit(app.exec_()) return 0 if __name__ == '__main__': main() 

Кто-нибудь может мне с этим помочь? Благодаря 🙂

  • ImportError: нет модуля с именем PyQt4
  • Pyqt Gui Замерзает во время цикла
  • Как нарисовать линию с анимацией в PyQt4
  • Поймать нажатой кнопку мыши из всплывающего меню qComboBox
  • PYQT: Как захватить вывод интерпретатора python и отобразить его в QEditText?
  • Вызов функции ввода после __init__ с декоратором
  • PyQt4 затрудняет создание простого графического интерфейса
  • Почему QWebView.loadFinished вызывается несколько раз на некоторых сайтах, например youtube?
  • 3 Solutions collect form web for “PyQt4: как сделать undercorated окно с зарезервированным пространством”

    Читайте о свойстве QWidget.windowFlags: http://doc.qt.nokia.com/4.7/qwidget.html#windowFlags-prop

    Пример:

     >>> from PyQt4 import QtGui, QtCore >>> app = QtGui.QApplication([]) >>> win = QtGui.QMainWindow() >>> win.setWindowFlags(win.windowFlags() | QtCore.Qt.FramelessWindowHint) >>> win.show() 
     import sys from PyQt4 import QtGui, QtCore class Example(QtGui.QWidget): def __init__(self): super(Example, self).__init__() self.initUI() def initUI(self): qbtn = QtGui.QPushButton('Quit', self) #qbtn.clicked.connect(QtCore.QCoreApplication.instance().quit) qbtn.clicked.connect(self.test) qbtn.resize(qbtn.sizeHint()) qbtn.move(50, 50) self.setGeometry(300, 300, 250, 150) self.setWindowTitle('Quit button') self.setWindowFlags(self.windowFlags() | QtCore.Qt.FramelessWindowHint) self.show() def test(self): print "test" def main(): app = QtGui.QApplication(sys.argv) ex = Example() sys.exit(app.exec_()) if __name__ == '__main__': main() 

    Решение заключается в использовании Python-Xlib, и это было описано в ответе на универсальном способе резервирования пространства экрана на X.

    Interesting Posts

    как получить доступ к сообщению об ошибке из команды abort при использовании настраиваемого обработчика ошибок

    основной вопрос о "пока истине"

    Каковы наилучшие способы сравнения содержимого двух подобных спискам объектов?

    Сигналы, зарегистрированные более одного раза в django1.1 testserver

    Как получить произвольный элемент из frozenset?

    Python Pandas DataFrame считывает точный заданный диапазон в листе excel

    Преобразование даты и времени python в метку времени в миллисекундах

    set object не является сериализуемым JSON

    SciPy интерполяция большой матрицы

    отправка ICMP-пакетов в scapy и выбор правильного интерфейса

    Почему объявление класса дескриптора в функции __init__ нарушает функциональность дескриптора?

    Остановить Сципы до минимума после установленного времени

    Разделение строки и удаление пробелов Python

    несколько баз данных и несколько моделей в django

    Логистическая регрессия с искровым мл (кадры данных)

    Python - лучший язык программирования в мире.