Advertisement
Guest User

Untitled

a guest
Jan 22nd, 2017
133
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.26 KB | None | 0 0
  1. self.buttonBox.rejected.connect(stack.setPage1)
  2.  
  3. # Result: Traceback (most recent call last):
  4. File "<string>", line 28, in paintEvent
  5. AttributeError: 'FaderWidget' object has no attribute 'pixmap_opacity'
  6.  
  7. import sys
  8. from PySide.QtCore import QTimeLine
  9. from PySide.QtGui import *
  10.  
  11. class FaderWidget(QWidget):
  12.  
  13. def __init__(self, old_widget, new_widget):
  14.  
  15. QWidget.__init__(self, new_widget)
  16.  
  17. self.old_pixmap = QPixmap(new_widget.size())
  18. old_widget.render(self.old_pixmap)
  19. self.pixmap_opacity = 1.0
  20.  
  21. self.timeline = QTimeLine()
  22. self.timeline.valueChanged.connect(self.animate)
  23. self.timeline.finished.connect(self.close)
  24. self.timeline.setDuration(333)
  25. self.timeline.start()
  26.  
  27. self.resize(new_widget.size())
  28. self.show()
  29.  
  30. def paintEvent(self, event):
  31.  
  32. painter = QPainter()
  33. painter.begin(self)
  34. painter.setOpacity(self.pixmap_opacity)
  35. painter.drawPixmap(0, 0, self.old_pixmap)
  36. painter.end()
  37.  
  38. def animate(self, value):
  39.  
  40. self.pixmap_opacity = 1.0 - value
  41. self.repaint()
  42.  
  43. class StackedWidget(QStackedWidget):
  44.  
  45. def __init__(self, parent = None):
  46. QStackedWidget.__init__(self, parent)
  47.  
  48. def setCurrentIndex(self, index):
  49. self.fader_widget = FaderWidget(self.currentWidget(), self.widget(index))
  50. QStackedWidget.setCurrentIndex(self, index)
  51.  
  52. def setPage1(self):
  53. self.setCurrentIndex(0)
  54.  
  55. def setPage2(self):
  56. self.setCurrentIndex(1)
  57.  
  58. def setPage3(self):
  59. self.setCurrentIndex(2)
  60.  
  61. def setPage4(self):
  62. self.setCurrentIndex(3)
  63.  
  64.  
  65. class editor_(QWidget):
  66. """build a text editor"""
  67. def __init__(self):
  68. super(editor_, self).__init__()
  69.  
  70. editor = QTextEdit()
  71. editor.setPlainText("Kawabungaaaa! "*100)
  72.  
  73. self.buttonBox = QDialogButtonBox(QDialogButtonBox.Ok | QDialogButtonBox.Cancel)
  74.  
  75. self.buttonBox.accepted.connect(self.close)
  76. self.buttonBox.rejected.connect(stack.setPage1)
  77.  
  78. layout = QVBoxLayout()
  79. layout.addWidget(editor)
  80. layout.addWidget(self.buttonBox)
  81.  
  82. self.setLayout(layout)
  83.  
  84.  
  85. class mainWidget(QWidget):
  86. def __init__(self):
  87. super(mainWidget, self).__init__()
  88.  
  89. self.setMinimumSize(500,300)
  90.  
  91. widget1 = QWidget()
  92. widget2 = QCalendarWidget()
  93. widget3 = QListView()
  94. widget4 = editor_()
  95.  
  96. grid = QGridLayout()
  97.  
  98. allPlates = QPushButton("Calendar")
  99. singlePlate = QPushButton("ListView")
  100. allRoto = QPushButton("Editor")
  101. allLighting = QPushButton("Buttons")
  102.  
  103. grid.addWidget(allPlates,0,0)
  104. grid.addWidget(singlePlate,0,1)
  105. grid.addWidget(allRoto,1,0)
  106. grid.addWidget(allLighting,1,1)
  107.  
  108. widget1.setLayout(grid)
  109.  
  110. stack = StackedWidget()
  111. stack.addWidget(widget1)
  112. stack.addWidget(widget2)
  113. stack.addWidget(widget3)
  114. stack.addWidget(widget4)
  115.  
  116. layout = QHBoxLayout()
  117. layout.addWidget(stack)
  118. self.setLayout(layout)
  119.  
  120. allPlates.clicked.connect(stack.setPage2)
  121. singlePlate.clicked.connect(stack.setPage3)
  122. allRoto.clicked.connect(stack.setPage4)
  123. allLighting.clicked.connect(stack.setPage1)
  124.  
  125.  
  126. a = mainWidget()
  127. a.show()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement