Source code for taurus.qt.qtgui.help.aboutdialog

# -*- coding: utf-8 -*-

# ###########################################################################
#
# This file is part of Taurus
#
# http://taurus-scada.org
#
# Copyright 2011 CELLS / ALBA Synchrotron, Bellaterra, Spain
#
# Taurus is free software: you can redistribute it and/or modify
# it under the terms of the GNU Lesser General Public License as published by
# the Free Software Foundation, either version 3 of the License, or
# (at your option) any later version.
#
# Taurus 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 Lesser General Public License for more details.
#
# You should have received a copy of the GNU Lesser General Public License
# along with Taurus.  If not, see <http://www.gnu.org/licenses/>.
#
# ###########################################################################

"""
This module provides a simple dialog to display typical About
<application> dialog. It will create a Dialog with the title being
*Dialog + <app name>* and a default text combining the application
name and version, organization name and domain.

This behaviour can be changed by setting the dialog window title
(:meth:`~AboutDialog.setWindowTitle`) and content
(:meth:`~AboutDialog.setText`, :meth:`~AboutDialog.setHtml`)

Example usage::

    from taurus.external.qt import Qt
    from taurus.qt.qtgui.help import AboutDialog

    app = Qt.QApplication([])
    app.setApplicationName("Example GUI")
    app.setApplicationVersion("1.2.3")
    app.setOrganizationName("Taurus")
    app.setOrganizationDomain("http://www.taurus-scada.org/")
    about_dialog = AboutDialog()
    pixmap = Qt.QIcon.fromTheme("folder-open").pixmap(64, 64)
    about_dialog.setPixmap(pixmap)
    about_dialog.exec_()
"""


from taurus.external.qt import Qt
from taurus.qt.qtgui.util.ui import UILoadable


[docs]@UILoadable class AboutDialog(Qt.QDialog): """ Simple dialog to display typical About <application> dialog. It will create a Dialog with the title being *Dialog + <app name>* and a default text combining the application name and version, organization name and domain. This behaviour can be changed by setting the dialog window title (:meth:`~AboutDialog.setWindowTitle`) and content (:meth:`~AboutDialog.setText`, :meth:`~AboutDialog.setHtml`) Example usage:: from taurus.external.qt import Qt from taurus.qt.qtgui.help import AboutDialog app = Qt.QApplication([]) app.setApplicationName("Example GUI") app.setApplicationVersion("1.2.3") app.setOrganizationName("Taurus") app.setOrganizationDomain("http://www.taurus-scada.org/") about_dialog = AboutDialog() pixmap = Qt.QIcon.fromTheme("folder-open").pixmap(64, 64) about_dialog.setPixmap(pixmap) about_dialog.exec_() """ _Template = ( "<html><body><p><b>{0}</b></p>" "<p>{1}</p><p>{2}</p>" '<p><a href="{3}">{2}</a></p>' "(c) Copyright {2}" ) def __init__(self, parent=None): Qt.QDialog.__init__(self, parent) self.loadUi() self.text_browser.setFrameStyle(Qt.QFrame.NoFrame) palette = Qt.QPalette() palette.setColor( Qt.QPalette.Base, palette.color(Qt.QPalette.Background) ) self.text_browser.setPalette(palette) self.logo_widget.setAlignment(Qt.Qt.AlignHCenter | Qt.Qt.AlignTop) name = Qt.qApp.applicationName() version = Qt.qApp.applicationVersion() org = Qt.qApp.organizationName() org_domain = Qt.qApp.organizationDomain() self.setWindowTitle("About " + Qt.qApp.applicationName()) self.setHtml(self._Template.format(name, version, org, org_domain))
[docs] def setText(self, text): """ Sets the dialog text. :param text: new text :type text: str """ self.text_browser.setText(text)
[docs] def getHtml(self): """ Gets the current dialog HTML text. :return: the current dialog HTML text. :rtype: str """ return self.text_browser.toHtml()
[docs] @Qt.Slot(str) def setHtml(self, html): """ Sets the dialog HTML text. :param text: new HTML text :type text: str """ self.text_browser.setHtml(html)
[docs] def resetHtml(self): """ Resets the dialog HTML to an empty HTML document """ self.setHtml("<html><body></body></html>")
[docs] def getSource(self): """ Gets the current dialog document source. :return: the current dialog document source. :rtype: Qt.QUrl """ return self.text_browser.source()
[docs] @Qt.Slot(Qt.QUrl) def setSource(self, source): """ Sets the dialog document source. :param text: new document source :type text: Qt.QUrl """ self.text_browser.setSource(source)
[docs] @Qt.Slot(Qt.QPixmap) def setPixmap(self, pixmap): """ Sets the dialog pixmap :param text: new pixmap :type text: Qt.QPixmap """ self.logo_widget.setPixmap(pixmap)
[docs] def getPixmap(self): """ Gets the current pixmap. :return: the current dialog pixmap :rtype: Qt.QPixmap """ pixmap = self.logo_widget.getPixmap() if pixmap is None: pixmap = Qt.QPixmap() return pixmap
[docs] def resetPixmap(self): """ Resets the dialog pixmap to a Null pixmap. """ self.setPixmap(Qt.QPixmap())
[docs] @classmethod def getQtDesignerPluginInfo(cls): return { "group": "Taurus Help", "icon": Qt.QIcon.fromTheme("help"), "module": "taurus.qt.qtgui.help", "container": False, }
#: This property holds the current dialog pixmap #: #: **Access functions:** #: #: * :meth:`~AboutDialog.getPixmap` #: * :meth:`~AboutDialog.setPixmap` #: * :meth:`~AboutDialog.resetPixmap` #: pixmap = Qt.Property("QPixmap", getPixmap, setPixmap, resetPixmap) #: This property holds the current dialog HTML #: #: **Access functions:** #: #: * :meth:`~AboutDialog.getHtml` #: * :meth:`~AboutDialog.setHtml` #: * :meth:`~AboutDialog.resetHtml` #: html = Qt.Property("QString", getHtml, setHtml, resetHtml) #: This property holds the current dialog document source #: #: **Access functions:** #: #: * :meth:`~AboutDialog.getSource` #: * :meth:`~AboutDialog.setSource` #: source = Qt.Property("QUrl", getSource, setSource)
def main(): app = Qt.QApplication([]) app.setApplicationName("Example GUI") app.setApplicationVersion("1.2.3") app.setOrganizationName("Taurus") app.setOrganizationDomain("http://www.taurus-scada.org/") about_dialog = AboutDialog() # about_dialog.setText(txt) pixmap = Qt.QIcon.fromTheme("folder-open").pixmap(64, 64) about_dialog.setPixmap(pixmap) about_dialog.exec_() if __name__ == "__main__": main()