Pythonでより立体的に見える円を表示するってばよ!
I wrote: 2016/10/30
Pythonでより立体的に見える円、つまり球体みたいに表示させます。そんでPyQtを使います。
円を立体的に見せるのにQRadialGradientで円に光を当てました。でも、光があるなら影もできないと不自然ですよね。なので、 QRadialGradientで影をつけてみます。ついでに、QLabelで「Blue Ball」というタイトルを付けて完成です。
美術作品みたいになってしまった(ノ´∀`*)
以下はソース
実行されたアプリケーション
Pythonでより立体的に見える円、つまり球体みたいに表示させます。そんでPyQtを使います。
円を立体的に見せるのにQRadialGradientで円に光を当てました。でも、光があるなら影もできないと不自然ですよね。なので、 QRadialGradientで影をつけてみます。ついでに、QLabelで「Blue Ball」というタイトルを付けて完成です。
美術作品みたいになってしまった(ノ´∀`*)
以下はソース
import sysfrom PyQt4 import QtGui, QtCore, uicfrom Foo import Ui_MainWindowclass Sample(QtGui.QMainWindow):def __init__(self, parent = None):super(Sample, self).__init__(parent)self.ui = Ui_MainWindow()self.ui.setupUi(self)label = QtGui.QLabel('Blue Ball', self)label.setGeometry(150,270,200,100)def paintEvent(self,event):painter = QtGui.QPainter()painter.begin(self)painter.setRenderHint(QtGui.QPainter.Antialiasing, True)painter.setBrush(QtCore.Qt.white)painter.drawRect(event.rect())painter.setPen(QtCore.Qt.white)center = QtCore.QPointF(205, 260)focusP = QtCore.QPointF(175, 175)grad = QtGui.QRadialGradient(center,90,focusP)grad.setColorAt(0.0, QtCore.Qt.black)grad.setColorAt(0.7, QtGui.QColor('gainsboro'))grad.setColorAt(1.0, QtCore.Qt.white)painter.setBrush(grad)painter.drawEllipse(center, 90, 30)painter.setPen(QtGui.QColor('DarkMagenta'))center = QtCore.QPointF(175, 175)fpoint = QtCore.QPointF(155,155)gradient = QtGui.QRadialGradient(center,100,fpoint)gradient.setColorAt(0.0, QtCore.Qt.white)gradient.setColorAt(1.0, QtCore.Qt.blue)painter.setBrush(gradient)painter.drawEllipse(center, 100, 100)painter.end()if __name__ == '__main__':app = QtGui.QApplication(sys.argv)sample = Sample()sample.show()sys.exit(app.exec_())
実行されたアプリケーション