Прозрачность виджетов PyQt и VTKPython

Программы на Python
Ответить
Anonymous
 Прозрачность виджетов PyQt и VTK

Сообщение Anonymous »

У меня есть несколько виджетов, таких как QLabel и QPushbuttons, нависающих над сценой VTK, как показано ниже. Как видите, когда я добавляю к ним радиус границы, оставшаяся область вокруг меток или кнопок становится черной. Вместо этого я бы хотел увидеть за ними сцену ВТК. Как мне этого добиться?
Изображение

Код: Выделить всё

import sys
from PyQt5.QtWidgets import QApplication, QMainWindow, QWidget, QLabel, QPushButton, QBoxLayout, QVBoxLayout
from PyQt5.QtCore import Qt
from vtkmodules.qt.QVTKRenderWindowInteractor import QVTKRenderWindowInteractor
import vtk

class VTKSphereApp(QMainWindow):
def __init__(self):
super().__init__()
self.setWindowTitle("VTK Sphere in PyQt5")
self.resize(800, 600)

# Central Widget
central_widget = QWidget(self)
self.setCentralWidget(central_widget)

self.layout = QVBoxLayout()
central_widget.setLayout(self.layout)

# Create and configure QLabel
self.label = QLabel("Notice the corners of the label", self)
self.label.setStyleSheet("background-color: rgb(255, 255, 255); border: 5px solid purple; border-radius:15px")
self.label.setGeometry(10, 10, 200, 50)

# VTK Widget
self.vtk_widget = QVTKRenderWindowInteractor(central_widget)
self.layout.addWidget(self.vtk_widget)

# VTK Renderer and Sphere
self.renderer = vtk.vtkRenderer()
self.vtk_widget.GetRenderWindow().AddRenderer(self.renderer)

# Sphere
sphere_source = vtk.vtkSphereSource()
sphere_source.SetRadius(5.0)
sphere_source.SetThetaResolution(50)
sphere_source.SetPhiResolution(50)

# Sphere Mapper
mapper = vtk.vtkPolyDataMapper()
mapper.SetInputConnection(sphere_source.GetOutputPort())

# Sphere Actor
actor = vtk.vtkActor()
actor.SetMapper(mapper)
self.renderer.AddActor(actor)

# Background Color
self.renderer.SetBackground(0.1, 0.2, 0.4)

# Initialize VTK Rendering
self.vtk_widget.GetRenderWindow().Render()
self.vtk_widget.Initialize()

button1 = QPushButton("Button 1", self)
button2 = QPushButton("Button 2", self)
button1.setStyleSheet("color:white; border: 4px solid red; border-radius:15px")
button2.setStyleSheet("color:white; border: 4px solid red; border-radius:15px")
button1.setGeometry(350, 500, 100, 40)
button2.setGeometry(450, 500, 100, 40)

if __name__ == "__main__":
app = QApplication(sys.argv)
window = VTKSphereApp()
window.show()
sys.exit(app.exec_())
Я сделал фон прозрачным, но это не сработало

Подробнее здесь: https://stackoverflow.com/questions/792 ... idgets-vtk
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Python»