ウィジェットを偽造する
QStyleと、QStyleOptionのサブクラスを使うと、ウィジェットの表示を再現できます。
QStyleはQApplication.style()で取得。
QStyleOptionは、ウィジェット型ごとにサブクラスが違います。
大量のウィジェットを実際に作ってしまうと遅くなるとき、などに使えそうです。
#encoding:shift-jis from __future__ import division, with_statement, print_function from PyQt4.QtGui import * from PyQt4.QtCore import * class Spam(QWidget): def __init__(self, parent=None): QWidget.__init__(self, parent) chk = QCheckBox() chk.setText(u"どうだ、押せまい!ふはははは!!") self.option = QStyleOptionButton() self.option.state = QStyle.State_Enabled; self.option.direction = QApplication.layoutDirection() self.option.rect = QRect(QPoint(0, 0), chk.sizeHint()) self.option.fontMetrics = QApplication.fontMetrics() self.option.text = chk.text() def paintEvent(self, evt): painter = QPainter(self) QApplication.style().drawControl(QStyle.CE_CheckBox, self.option, painter) painter.end() def main(): app = QApplication([]) w = Spam() w.setFixedSize(300, 300) w.show() app.exec_() if __name__ == "__main__": main()