Найти - Пользователи
Полная версия: С помощью какой GUI можно рисовать поверх окон
Начало » GUI » С помощью какой GUI можно рисовать поверх окон
1 2 3 4
RaMz
что то типа такова..

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



Shaman
При помощи системных вызовов в Windows, или сервисов графического сервера в Linux.
RaMz
Shaman
При помощи системных вызовов в Windows, или сервисов графического сервера в Linux.
Короче это только средствами ОS а с помощью к примеру QT такое разве проделать нельзя?
leonid_10
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_()
RaMz
pyQt установил а вот PySide что то не получается


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




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




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

И еще такой вопросик на WX можно такое сделать?
Можно.
RaMz
спасибо за ответы..
вот сейчас глянул на все библиотеки очень простенькой на мой взгляд оказалась Tk
вот последний вопросик можно ли такое проделать на TK. искал пример в google но в виду того что знаний мало и даже незнаю как писать то что я ищу .. найти не смог..
рисовать прозрачные рамки tk найти ничего не смог
немогли бы показать примерчик пожалуйста
leonid_10
RaMz
искал пример в google но в виду того что знаний мало и даже незнаю как писать то что я ищу .. найти не смог..
Shaped window, splash…
Вот пример на wxPython:
Your text to link here…
Здесь используется картинка из файла, но можно использовать и PaintDC, рисуя не только рамку, но и тексты, и так далее.
TKinter я не знаю. Мне он сразу не понравился как тулкит для работы с графикой, а поскольку мне приходится работать с третьим питоном, то Qt4/PySide - это лучшее, что есть, а wxPython-Phoenix - это лучшее, чего пока ещё нет в стабильном варианте.
RaMz
а так wx нет в 3 python?
а я ищу способ как установить wx блин
leonid_10
RaMz
а так wx нет в 3 python?
wxPython: Феникс (Python 3)
Оно работает, но имеет некоторые различия cо стабильным wx для python 2, требующие обращения к документации, которая имеется в хорошем состоянии здесь:
Феникс: документация
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB