Уведомления

Группа в Telegram: @pythonsu
  • Начало
  • » GUI
  • » С помощью какой GUI можно рисовать поверх окон [RSS Feed]

#1 Июнь 15, 2016 12:53:33

RaMz
Зарегистрирован: 2014-05-27
Сообщения: 13
Репутация: +  0  -
Профиль   Отправить e-mail  

С помощью какой GUI можно рисовать поверх окон

что то типа такова..

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



Офлайн

#2 Июнь 15, 2016 15:07:06

Shaman
Зарегистрирован: 2013-03-15
Сообщения: 1369
Репутация: +  88  -
Профиль   Отправить e-mail  

С помощью какой GUI можно рисовать поверх окон

При помощи системных вызовов в Windows, или сервисов графического сервера в Linux.

Офлайн

#3 Июнь 15, 2016 15:48:53

RaMz
Зарегистрирован: 2014-05-27
Сообщения: 13
Репутация: +  0  -
Профиль   Отправить e-mail  

С помощью какой GUI можно рисовать поверх окон

Shaman
При помощи системных вызовов в Windows, или сервисов графического сервера в Linux.
Короче это только средствами ОS а с помощью к примеру QT такое разве проделать нельзя?

Офлайн

#4 Июнь 15, 2016 19:30:04

leonid_10
От:
Зарегистрирован: 2010-03-28
Сообщения: 197
Репутация: +  3  -
Профиль   Отправить e-mail  

С помощью какой GUI можно рисовать поверх окон

RaMz
Короче это только средствами ОS а с помощью к примеру QT такое разве проделать нельзя?
Можно:
#/******************************************************************************
#*                       qt-recordMyDesktop                                    *
#*******************************************************************************
#*                                                                             *
#*           Copyright (C) 2007, 2008  John Varouhakis                         *
#*                                                                             *
#*                                                                             *
#*   This program is free software: you can redistribute it and/or modify      *
#*   it under the terms of the GNU General Public License as published by      *
#*   the Free Software Foundation, either version 3 of the License, or         *
#*   (at your option) any later version.                                       *
#*                                                                             *
#*   This program is distributed in the hope that it will be useful,           *
#*   but WITHOUT ANY WARRANTY; without even the implied warranty of            *
#*   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the             *
#*   GNU General Public License for more details.                              *
#*                                                                             *
#*   You should have received a copy of the GNU General Public License         *
#*   along with this program.  If not, see <http://www.gnu.org/licenses/>.     *
#*                                                                             *
#*                                                                             *
#*  For further information contact me at johnvarouhakis@gmail.com             *
#******************************************************************************/
from PySide import QtGui,QtCore
class rmdFrame:
    borderwidth=6
    outlinewidth=1
    def __init__(self,x,y,w,h):
        self.window=QtGui.QWidget(None,QtCore.Qt.X11BypassWindowManagerHint|QtCore.Qt.WindowStaysOnTopHint)
        self.x=x
        self.y=y
        self.w=w
        self.h=h
        self.mask = QtGui.QBitmap(self.w+self.borderwidth*2,
                             self.h+self.borderwidth*2)
        self.mask.fill(QtCore.Qt.color1)
        self.window.paintEvent=self.paintEvent
        self.window.setWindowTitle("qt-recordMyDesktop frame")
        self.window.setFixedSize(self.w+self.borderwidth*2,
                                     self.h+self.borderwidth*2)
        self.window.move(self.x-self.borderwidth,
                         self.y-self.borderwidth)
        self.window.show()
        self.screen_width=QtGui.qApp.desktop().width()
        self.screen_height=QtGui.qApp.desktop().height()
    def paintEvent(self,Event):
        painterw= QtGui.QPainter(self.window)
        painterw.fillRect(0,0,self.w+self.borderwidth*2,
                         self.h+self.borderwidth*2,
                         QtGui.QBrush(QtCore.Qt.white,
                         QtCore.Qt.SolidPattern))
        painterw.fillRect(self.outlinewidth,
                         self.outlinewidth,
                         self.w+(self.borderwidth-
                            self.outlinewidth)*2,
                         self.h+(self.borderwidth-
                            self.outlinewidth)*2,
                         QtGui.QBrush(QtCore.Qt.black,
                         QtCore.Qt.SolidPattern))
        painterw.fillRect(self.borderwidth-self.outlinewidth,
                         self.borderwidth-self.outlinewidth,
                         self.w+self.outlinewidth*2,
                         self.h+self.outlinewidth*2,
                         QtGui.QBrush(QtCore.Qt.white,
                         QtCore.Qt.SolidPattern))
        if self.window.mask().isEmpty():
            painter = QtGui.QPainter(self.mask)
            painter.fillRect(self.borderwidth,
                            self.borderwidth,
                            self.w,self.h,
                            QtGui.QBrush(QtCore.Qt.color0,
                            QtCore.Qt.SolidPattern))
            self.window.setMask(self.mask)
if __name__ == "__main__":
    import sys
    app=QtGui.QApplication(sys.argv)
    app.values=[[-1,-1,-1,-1]]
    w = rmdFrame(100,100,340,260)
    app.exec_()



Офлайн

#5 Июнь 16, 2016 05:54:47

RaMz
Зарегистрирован: 2014-05-27
Сообщения: 13
Репутация: +  0  -
Профиль   Отправить e-mail  

С помощью какой GUI можно рисовать поверх окон

pyQt установил а вот PySide что то не получается


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




И еще такой вопросик на WX можно такое сделать?




Отредактировано RaMz (Июнь 16, 2016 07:22:45)

Офлайн

#6 Июнь 16, 2016 09:14:15

leonid_10
От:
Зарегистрирован: 2010-03-28
Сообщения: 197
Репутация: +  3  -
Профиль   Отправить e-mail  

С помощью какой GUI можно рисовать поверх окон

pyQt установил а вот PySide что то не получается
Значит,
 from PyQt4 import QtGui, QtCore
В коде и было, собственно, PyQt4. Я забыл, что заменил, ибо у меня PyQt4 не установлено. В большинстве случаев эти библиотеки взаимозаменяемы. Но, есть различия, которые данного случая не касаются.

И еще такой вопросик на WX можно такое сделать?
Можно.



Офлайн

#7 Июнь 16, 2016 09:46:26

RaMz
Зарегистрирован: 2014-05-27
Сообщения: 13
Репутация: +  0  -
Профиль   Отправить e-mail  

С помощью какой GUI можно рисовать поверх окон

спасибо за ответы..
вот сейчас глянул на все библиотеки очень простенькой на мой взгляд оказалась Tk
вот последний вопросик можно ли такое проделать на TK. искал пример в google но в виду того что знаний мало и даже незнаю как писать то что я ищу .. найти не смог..
рисовать прозрачные рамки tk найти ничего не смог
немогли бы показать примерчик пожалуйста

Отредактировано RaMz (Июнь 16, 2016 09:47:19)

Офлайн

#8 Июнь 16, 2016 10:02:15

leonid_10
От:
Зарегистрирован: 2010-03-28
Сообщения: 197
Репутация: +  3  -
Профиль   Отправить e-mail  

С помощью какой GUI можно рисовать поверх окон

RaMz
искал пример в google но в виду того что знаний мало и даже незнаю как писать то что я ищу .. найти не смог..
Shaped window, splash…
Вот пример на wxPython:
Your text to link here…
Здесь используется картинка из файла, но можно использовать и PaintDC, рисуя не только рамку, но и тексты, и так далее.
TKinter я не знаю. Мне он сразу не понравился как тулкит для работы с графикой, а поскольку мне приходится работать с третьим питоном, то Qt4/PySide - это лучшее, что есть, а wxPython-Phoenix - это лучшее, чего пока ещё нет в стабильном варианте.



Офлайн

#9 Июнь 16, 2016 10:49:14

RaMz
Зарегистрирован: 2014-05-27
Сообщения: 13
Репутация: +  0  -
Профиль   Отправить e-mail  

С помощью какой GUI можно рисовать поверх окон

а так wx нет в 3 python?
а я ищу способ как установить wx блин

Отредактировано RaMz (Июнь 16, 2016 10:50:52)

Офлайн

#10 Июнь 16, 2016 11:00:14

leonid_10
От:
Зарегистрирован: 2010-03-28
Сообщения: 197
Репутация: +  3  -
Профиль   Отправить e-mail  

С помощью какой GUI можно рисовать поверх окон

RaMz
а так wx нет в 3 python?
wxPython: Феникс (Python 3)
Оно работает, но имеет некоторые различия cо стабильным wx для python 2, требующие обращения к документации, которая имеется в хорошем состоянии здесь:
Феникс: документация



Офлайн

  • Начало
  • » GUI
  • » С помощью какой GUI можно рисовать поверх окон[RSS Feed]

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version