1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114
|
#------------------------------------------------------------------------------
# Copyright (c) 2007, Riverbank Computing Limited
# All rights reserved.
#
# This software is provided without warranty under the terms of the BSD license.
# However, when used with the GPL version of PyQt the additional terms described in the PyQt GPL exception also apply
#
# Author: Riverbank Computing Limited
# Description: <Enthought pyface package component>
#------------------------------------------------------------------------------
# Standard library imports.
import platform
import sys
# Major package imports.
from pyface.qt import QtCore, QtGui
# Enthought library imports.
from traits.api import Instance, List, provides, Unicode
# Local imports.
from pyface.i_about_dialog import IAboutDialog, MAboutDialog
from pyface.image_resource import ImageResource
from .dialog import Dialog
# The HTML displayed in the QLabel.
_DIALOG_TEXT = '''
<html>
<body>
<center>
<table width="100%%" cellspacing="4" cellpadding="0" border="0">
<tr>
<td align="center">
<p>
<img src="%s" alt="">
</td>
</tr>
</table>
<p>
%s<br>
<br>
Python %s<br>
Qt %s<br>
</p>
<p>
Copyright © 2003-2010 Enthought, Inc.<br>
Copyright © 2007 Riverbank Computing Limited
</p>
</center>
</body>
</html>
'''
@provides(IAboutDialog)
class AboutDialog(MAboutDialog, Dialog):
""" The toolkit specific implementation of an AboutDialog. See the
IAboutDialog interface for the API documentation.
"""
#### 'IAboutDialog' interface #############################################
additions = List(Unicode)
image = Instance(ImageResource, ImageResource('about'))
###########################################################################
# Protected 'IDialog' interface.
###########################################################################
def _create_contents(self, parent):
label = QtGui.QLabel()
if self.title == "":
if parent.parent() is not None:
title = parent.parent().windowTitle()
else:
title = ""
# Set the title.
self.title = "About %s" % title
# Load the image to be displayed in the about box.
image = self.image.create_image()
path = self.image.absolute_path
# The additional strings.
additions = '<br />'.join(self.additions)
# Get the version numbers.
py_version = platform.python_version()
qt_version = QtCore.__version__
# Set the page contents.
label.setText(_DIALOG_TEXT % (path, additions, py_version, qt_version))
# Create the button.
buttons = QtGui.QDialogButtonBox()
if self.ok_label:
buttons.addButton(self.ok_label, QtGui.QDialogButtonBox.AcceptRole)
else:
buttons.addButton(QtGui.QDialogButtonBox.Ok)
buttons.accepted.connect(parent.accept)
lay = QtGui.QVBoxLayout()
lay.addWidget(label)
lay.addWidget(buttons)
parent.setLayout(lay)
|