def __init__(self): super().__init__() self.logger.setLevel(logging.DEBUG) self.window = QMainWindow() self.setupUi(self.window) common_qt_lib.set_default_window_icon(self.window) self.pickups = [] self.collect_location_combo.setVisible(False) self.setup_collect_location_combo_button = QtWidgets.QPushButton( self.window) self.setup_collect_location_combo_button.setText( "Load list of locations") self.setup_collect_location_combo_button.clicked.connect( self._setup_locations_combo) self.gridLayout.addWidget(self.setup_collect_location_combo_button, 0, 0, 1, 2) self.collect_location_button.clicked.connect(self._emit_collection) self.collect_location_button.setEnabled(False) self.collect_randomly_check.stateChanged.connect( self._on_collect_randomly_toggle) self._timer = QtCore.QTimer(self.window) self._timer.timeout.connect(self._collect_randomly) self._timer.setInterval(10000) self._used_version = echoes_dol_versions.ALL_VERSIONS[0] self._connector = EchoesRemoteConnector(self._used_version) self.game = default_database.game_description_for( RandovaniaGame.METROID_PRIME_ECHOES) self._game_memory = bytearray(24 * (2**20)) self._game_memory_initialized = False
def __init__(self): QMainWindow.__init__(self) self.series = QtCharts.QLineSeries() self.series.append(0, 6) self.series.append(2, 4) self.series.append(3, 8) self.series.append(7, 4) self.series.append(10, 5) self.series.append(QPointF(11, 1)) self.series.append(QPointF(13, 3)) self.series.append(QPointF(17, 6)) self.series.append(QPointF(18, 3)) self.series.append(QPointF(20, 2)) self.chart = QtCharts.QChart() self.chart.legend().hide() self.chart.addSeries(self.series) self.chart.createDefaultAxes() self.chart.setTitle("Simple line chart example") self.chartView = QtCharts.QChartView(self.chart) self.chartView.setRenderHint(QPainter.Antialiasing) self.setCentralWidget(self.chartView)
def __init__(self): QMainWindow.__init__(self) self.series = QtCharts.QLineSeries() self.series.append([ QPointF(1.0, 1.0), QPointF(2.0, 73.0), QPointF(3.0, 268.0), QPointF(4.0, 17.0), QPointF(5.0, 4325.0), QPointF(6.0, 723.0)]) self.chart = QtCharts.QChart() self.chart.addSeries(self.series) self.chart.legend().hide() self.chart.setTitle("Logarithmic axis example") self.axisX = QtCharts.QValueAxis() self.axisX.setTitleText("Data point") self.axisX.setLabelFormat("%i") self.axisX.setTickCount(self.series.count()) self.chart.addAxis(self.axisX, Qt.AlignBottom) self.series.attachAxis(self.axisX) self.axisY = QtCharts.QLogValueAxis() self.axisY.setTitleText("Values") self.axisY.setLabelFormat("%g") self.axisY.setBase(8.0) self.axisY.setMinorTickCount(-1) self.chart.addAxis(self.axisY, Qt.AlignLeft) self.series.attachAxis(self.axisY) self.chartView = QtCharts.QChartView(self.chart) self.chartView.setRenderHint(QPainter.Antialiasing) self.setCentralWidget(self.chartView)
def __init__(self): QMainWindow.__init__(self) self.series = QPieSeries() self.series.append('Jane', 1) self.series.append('Joe', 2) self.series.append('Andy', 3) self.series.append('Barbara', 4) self.series.append('Axel', 5) self.slice = self.series.slices()[1] self.slice.setExploded() self.slice.setLabelVisible() self.slice.setPen(QPen(Qt.darkGreen, 2)) self.slice.setBrush(Qt.green) self.chart = QChart() self.chart.addSeries(self.series) self.chart.setTitle('Simple piechart example') self.chart.legend().hide() self.chartView = QChartView(self.chart) self.chartView.setRenderHint(QPainter.Antialiasing) self.setCentralWidget(self.chartView)
def __init__(self, parent=None): QMainWindow.__init__(self, parent) self.ui = Ui_MainWindow() self.ui.setupUi(self) self.ui.pushButton.clicked.connect(self.updateText) self.setStyleSheet(open('Obit.qss').read())
def __init__(self, widget): QMainWindow.__init__(self) self.setWindowTitle("Tutorial") self.widget = widget # Menu self.menu = self.menuBar() self.file_menu = self.menu.addMenu("File") # Load QAction load_action = QAction("Load", self) load_action.setShortcut("Ctrl+L") load_action.triggered.connect(self.load_data) # Save QAction save_action = QAction("Save", self) save_action.setShortcut("Ctrl+S") save_action.triggered.connect(self.save_data) # Exit QAction exit_action = QAction("Exit", self) exit_action.setShortcut("Ctrl+Q") exit_action.triggered.connect(self.exit_app) self.file_menu.addAction(load_action) self.file_menu.addAction(save_action) self.file_menu.addAction(exit_action) self.setCentralWidget(self.widget)
def __init__(self): QMainWindow.__init__(self) self.ui = Ui_MainWindow() self.ui.setupUi(self) self.setWindowFlag(QtCore.Qt.FramelessWindowHint) self.setAttribute(QtCore.Qt.WA_TranslucentBackground) self.ui.back2_btn2.clicked.connect(lambda: self.ui.stacked_wid.setCurrentIndex(0)) self.ui.create_btn.clicked.connect(lambda: self.ui.stacked_wid.setCurrentIndex(1)) self.ui.back_btn.clicked.connect(lambda: self.ui.stacked_wid.setCurrentIndex(0)) self.ui.add_btn.clicked.connect(lambda: self.ui.stacked_wid.setCurrentIndex(3)) self.ui.back_btn3.clicked.connect(lambda: self.ui.stacked_wid.setCurrentIndex(2)) self.ui.proceed_btn.clicked.connect(lambda: self.validation(self.ui.massterpw_entry.text())) self.ui.choosepath_btn.clicked.connect(self.create_db) self.ui.createdb_btn_2.clicked.connect(self.finalize_db) self.ui.choosefile_btn.clicked.connect(self.choose_db) self.ui.submit_btn.clicked.connect(self.add) self.ui.massterpw_entry.returnPressed.connect(lambda: self.validation(self.ui.massterpw_entry.text())) self.ui.confirmmasterpw2_entry.returnPressed.connect(self.finalize_db) self.ui.url_entry.returnPressed.connect(self.add) self.ui.close_lbl.mousePressEvent = lambda e: self.close() self.ui.min_lbl.mousePressEvent = lambda e: self.showMinimized() self.filepath = None
def __init__(self, mainwindow: QMainWindow): super().__init__(parent=mainwindow) # {key: value} = {status name: is shecked} self._checked_dict = {} # {key: value} = {status name: status} self._status_dict = {} self._mainwindow = mainwindow mainwindow.setStatusBar(self)
def setup_ui(self, win: QMainWindow) -> None: # ui widgets self.toolbar = QToolBar("main", parent=win) self.port_combobox1 = PortCombobox("") self.port_combobox2 = PortCombobox("") self.baudrate_combobox = QComboBox() self.monitor1 = QPlainTextEdit("") self.monitor2 = QPlainTextEdit("") self.btn_clear_monitor1 = QPushButton("Clear") self.btn_clear_monitor2 = QPushButton("Clear") self.group_monitor1 = QGroupBox("Monitor 1") self.group_monitor2 = QGroupBox("Monitor 2") # setup widgets self.monitor1.setReadOnly(True) self.monitor1.setLineWrapMode(QPlainTextEdit.NoWrap) self.monitor1.setUndoRedoEnabled(False) self.monitor2.setReadOnly(True) self.monitor2.setLineWrapMode(QPlainTextEdit.NoWrap) self.monitor2.setUndoRedoEnabled(False) self.baudrate_combobox.addItems([ "300", "1200", "2400", "4800", "9600", "19200", "38400", "57600", "74880", "115200", "230400", "250000", "500000", "1000000", "2000000", ]) self.baudrate_combobox.setCurrentText("9600") # setup layout win.addToolBar(self.toolbar) v_layout = QVBoxLayout() # type:ignore v_layout.addWidget(self.monitor1) v_layout.addWidget(self.btn_clear_monitor1) self.group_monitor1.setLayout(v_layout) v_layout = QVBoxLayout() # type:ignore v_layout.addWidget(self.monitor2) v_layout.addWidget(self.btn_clear_monitor2) self.group_monitor2.setLayout(v_layout) h_layout = QHBoxLayout() # type:ignore h_layout.addWidget(self.group_monitor1) h_layout.addWidget(self.group_monitor2) central_widget = QWidget() central_widget.setLayout(h_layout) win.setCentralWidget(central_widget)
def closeEvent(self, event): """ Overload closeEvent to shut down blurrer and save UI settings :param event: """ self.force_blurrer_quit() self.save() print("saved settings") QMainWindow.closeEvent(self, event)
def __init__(self, parent=None): QMainWindow.__init__(self, parent) self._highlighter = Highlighter() self.setup_file_menu() self.setup_editor() self.setCentralWidget(self._editor) self.setWindowTitle(self.tr("Syntax Highlighter"))
def test(): import sys from PySide6.QtWidgets import QApplication app = QApplication(sys.argv) win = QMainWindow() MainWindowUI().setup_ui(win) win.show() sys.exit(app.exec_())
def __init__(self): QMainWindow.__init__(self) self.set0 = QBarSet("Jane") self.set1 = QBarSet("John") self.set2 = QBarSet("Axel") self.set3 = QBarSet("Mary") self.set4 = QBarSet("Sam") self.set0.append([1, 2, 3, 4, 5, 6]) self.set1.append([5, 0, 0, 4, 0, 7]) self.set2.append([3, 5, 8, 13, 8, 5]) self.set3.append([5, 6, 7, 3, 4, 5]) self.set4.append([9, 7, 5, 3, 1, 2]) self.barSeries = QBarSeries() self.barSeries.append(self.set0) self.barSeries.append(self.set1) self.barSeries.append(self.set2) self.barSeries.append(self.set3) self.barSeries.append(self.set4) self.lineSeries = QLineSeries() self.lineSeries.setName("trend") self.lineSeries.append(QPoint(0, 4)) self.lineSeries.append(QPoint(1, 15)) self.lineSeries.append(QPoint(2, 20)) self.lineSeries.append(QPoint(3, 4)) self.lineSeries.append(QPoint(4, 12)) self.lineSeries.append(QPoint(5, 17)) self.chart = QChart() self.chart.addSeries(self.barSeries) self.chart.addSeries(self.lineSeries) self.chart.setTitle("Line and barchart example") self.categories = ["Jan", "Feb", "Mar", "Apr", "May", "Jun"] self.axisX = QBarCategoryAxis() self.axisX.append(self.categories) self.chart.setAxisX(self.axisX, self.lineSeries) self.chart.setAxisX(self.axisX, self.barSeries) self.axisX.setRange("Jan", "Jun") self.axisY = QValueAxis() self.chart.setAxisY(self.axisY, self.lineSeries) self.chart.setAxisY(self.axisY, self.barSeries) self.axisY.setRange(0, 20) self.chart.legend().setVisible(True) self.chart.legend().setAlignment(Qt.AlignBottom) self.chartView = QChartView(self.chart) self.chartView.setRenderHint(QPainter.Antialiasing) self.setCentralWidget(self.chartView)
def test(): import sys from tester.AutoLab.utils.qthelpers import create_qt_app from tester.config.manager import get_settings app = create_qt_app() win = QMainWindow() settings = get_settings() MainWindowUI().setup_ui(win, settings) win.show() sys.exit(app.exec_())
def __init__(self): QMainWindow.__init__(self) self.setWindowTitle("Tutorial") # Menu self.menu = self.menuBar() self.file_menu = self.menu.addMenu("File") # Exit QAction exit_action = QAction("Exit", self) exit_action.setShortcut("Ctrl+Q") self.file_menu.addAction(exit_action)
def initialize(self): screen = QGuiApplication.primaryScreen().size() size = screen.height() * 0.7 self.window = QMainWindow() self.window.setAutoFillBackground(True) self.window.setWindowFlag( PySide6.QtCore.Qt.WindowType.WindowMaximizeButtonHint, False) self.window.setWindowTitle('Chess') self.window.resize(size, size) self.window.move((screen.width() - self.window.width()) // 2, (screen.height() - self.window.height()) // 2) self.window.show() self.margin = 10 self.button_size = (size - 2 * self.margin) // 8
def __init__(self, widget): QMainWindow.__init__(self) self.setWindowTitle("Tutorial") # Menu self.menu = self.menuBar() self.file_menu = self.menu.addMenu("File") # Exit QAction exit_action = QAction("Exit", self) exit_action.setShortcut("Ctrl+Q") exit_action.triggered.connect(self.exit_app) self.file_menu.addAction(exit_action) self.setCentralWidget(widget)
def __init__(self) -> None: super().__init__() main_layout = QGridLayout() button_box = self._create_button_box() main_layout.addWidget(self._create_options_group_box(), 0, 0) main_layout.addWidget(button_box, 1, 0) main_layout.setSizeConstraint(QLayout.SetMinimumSize) self.setLayout(main_layout) self._refresh_model_info() self.setWindowTitle('Predict') self._plot_window = QMainWindow()
def __init__(self, language): QMainWindow.__init__(self, None) self.running = False self.setupUi(self) self.restoreGeometry(base64.decodebytes(JalSettings().getValue('WindowGeometry', '').encode('utf-8'))) self.restoreState(base64.decodebytes(JalSettings().getValue('WindowState', '').encode('utf-8'))) self.ledger = Ledger() # Customize Status bar and logs self.ProgressBar = QProgressBar(self) self.StatusBar.addPermanentWidget(self.ProgressBar) self.ProgressBar.setVisible(False) self.ledger.setProgressBar(self, self.ProgressBar) self.Logs.setStatusBar(self.StatusBar) self.logger = logging.getLogger() self.logger.addHandler(self.Logs) log_level = os.environ.get('LOGLEVEL', 'INFO').upper() self.logger.setLevel(log_level) self.currentLanguage = language self.downloader = QuoteDownloader() self.statements = Statements(self) self.reports = Reports(self, self.mdiArea) self.backup = JalBackup(self, get_dbfilename(get_app_path())) self.estimator = None self.price_chart = None self.actionImportSlipRU.setEnabled(dependency_present(['pyzbar', 'PIL'])) self.actionAbout = QAction(text=self.tr("About"), parent=self) self.MainMenu.addAction(self.actionAbout) self.langGroup = QActionGroup(self.menuLanguage) self.createLanguageMenu() self.statementGroup = QActionGroup(self.menuStatement) self.createStatementsImportMenu() self.reportsGroup = QActionGroup(self.menuReports) self.createReportsMenu() self.setWindowIcon(load_icon("jal.png")) self.connect_signals_and_slots() self.actionOperations.trigger()
def __init__(self): QMainWindow.__init__(self) self.ui = Ui_Splash() self.ui.setupUi(self) self.setWindowFlag(QtCore.Qt.FramelessWindowHint) self.setAttribute(QtCore.Qt.WA_TranslucentBackground) self.timer = QtCore.QTimer() self.timer.timeout.connect(self.progress) self.timer.start(19) self.count = 0 self.show()
def __init__(self): QMainWindow.__init__(self) self.ui = Ui_MainWindow() self.ui.setupUi(self) self.current_directory = str(pathlib.Path(__file__).parent.absolute()) self.set_image_attribute() # set clicked self.ui.btnPlay.clicked.connect(self.playAzan) self.ui.btnStop.clicked.connect(self.stopAzan) # self.ui.btnHide.clicked.connect(self.openSetting) self.ui.btnHide.clicked.connect(self.hide) self.ui.btnExit.clicked.connect(self.exit) self.ui.btnSave.clicked.connect(self.do_save) self.ui.btnSetting.clicked.connect(self.show_frame_setting) self.ui.btnTimeTable.clicked.connect(self.show_time_table) # init form setting self.ui.frameSetting.setVisible(False) # get username of this login user self.myusername = pwd.getpwuid(os.getuid()).pw_name # get time self.init_times() # init thread self.docalc = threading.Thread( target=self.do_calculate, name="Azan Calculating") # init icon self.setting_file = self.current_directory + '/setting.txt' self.icopath = self.current_directory + '/icon/masjid.xpm' self.setWindowIcon(QIcon(self.icopath)) self.default_azan = self.current_directory + '/audio/azan.mp3' # open setting self.openSetting() # show times self.showTimes() # show tray on start self.show_tray()
def setup_ui(self, win: QMainWindow) -> None: self.toolbar = QToolBar("main", parent=win) self.port_combobox = PortCombobox("Arduino") self.tab_graph = QTabWidget() self.graph_voltage = RealTimePlotWidget(0, 30, 0, 5, "Time[s]", "Voltage[V]", "voltage", "Voltage") self.graph_resistance = RealTimePlotWidget(0, 30, 0, 100, "Time[s]", "Resistance[kΩ]", "Resistance", "Resistance") # setup_widget self.tab_graph.addTab(self.graph_voltage, "Voltage") # type:ignore self.tab_graph.addTab(self.graph_resistance, "Resistance") # type:ignore # setup_layout win.setCentralWidget(self.tab_graph)
def __init__(self): QMainWindow.__init__(self) # TODO: temp paths self.artistPath = "img\\artist\\" self.languagePath = "img\\language\\" self.songPath = "lib\\" # Database startup startUp() # Start Song Queue List self.songQueue = SongQueue() # Start Media Player self.mediaPlayer = MediaPlayer(self.songQueue, self.setMarquee, self) # Set the colour of the window self.setStyleSheet("MainWindow { background-color: rgb(25, 33, 60)}") # Create layout and set margins/spacings self.layout = QGridLayout() self.layout.setContentsMargins(0, 0, 0, 0) self.layout.setSpacing(0) # Create overlays of the application self.overlayTop = OverlayTop(self) self.overlayBottom = OverlayBottom(self) # Add overlays to layout self.layout.addWidget(self.overlayTop, 0, 0) self.layout.addWidget(self.overlayBottom, 2, 0) # Create home page then add to layout self.content = WindowHome(self) self.layout.addWidget(self.content, 1, 0) # Create widget, then set layout to widget which gets added as central widget window = QWidget() window.setLayout(self.layout) self.setCentralWidget(window) self.mediaPlayer.start()
def __init__(self): QMainWindow.__init__(self) set0 = QtCharts.QBarSet("Jane") set1 = QtCharts.QBarSet("John") set2 = QtCharts.QBarSet("Axel") set3 = QtCharts.QBarSet("Mary") set4 = QtCharts.QBarSet("Samantha") set0.append([1, 2, 3, 4, 5, 6]) set1.append([5, 0, 0, 4, 0, 7]) set2.append([3, 5, 8, 13, 8, 5]) set3.append([5, 6, 7, 3, 4, 5]) set4.append([9, 7, 5, 3, 1, 2]) series = QtCharts.QPercentBarSeries() series.append(set0) series.append(set1) series.append(set2) series.append(set3) series.append(set4) chart = QtCharts.QChart() chart.addSeries(series) chart.setTitle("Simple percentbarchart example") chart.setAnimationOptions(QtCharts.QChart.SeriesAnimations) categories = ["Jan", "Feb", "Mar", "Apr", "May", "Jun"] axis = QtCharts.QBarCategoryAxis() axis.append(categories) chart.createDefaultAxes() chart.setAxisX(axis, series) chart.legend().setVisible(True) chart.legend().setAlignment(Qt.AlignBottom) chart_view = QtCharts.QChartView(chart) chart_view.setRenderHint(QPainter.Antialiasing) self.setCentralWidget(chart_view)
def setup_ui(self, win: QMainWindow, settings: Settings) -> None: self.statusbar = CustomStatusBar(win) self.toolbar = AToolBar(win) self.tab = QTabWidget() self.tab_main = TabMain() self.tab_lcr = TabLCR() self.tab_stage_step = TabStageStep() self.tab_stage_cycle = TabStageCycle() self.console = QPlainTextEdit() self.group_measurements_data = QGroupBox("Measurements Data") self.tab.addTab(self.tab_main, "Test") self.tab.addTab(self.tab_lcr, "LCR Meter") self.tab.addTab(self.tab_stage_step, "Stage Controller") self.tab.setSizePolicy(QSizePolicy.Fixed, QSizePolicy.Fixed) self.console.setReadOnly(True) self.console.setLineWrapMode(QPlainTextEdit.NoWrap) # self.console.setUndoRedoEnabled(False) # setup settings self.console.setMaximumBlockCount( settings.console.maximum_number_of_line) self.tab_main.spinbox_interval.setValue(settings.main.measure_interval) self.tab_stage_step.int_slider.update_current_value( settings.stage_controller.maximum_speed) self.tab_stage_cycle.int_slider.update_current_value( settings.stage_controller.maximum_speed) # setup layout v_layout = AVBoxLayout() v_layout.addWidget(self.console) self.group_measurements_data.setLayout(v_layout) h_layout = AHBoxLayout() h_layout.addWidget(self.tab) h_layout.addWidget(self.group_measurements_data) central_widget = QWidget() central_widget.setLayout(h_layout) win.setCentralWidget(central_widget)
def __init__(self): QMainWindow.__init__(self) self.setWindowTitle("サンプルGUIアプリ") self.resize(QSize(500, 400)) # Menu self.menu = self.menuBar() self.file_menu = self.menu.addMenu("File") # Exit QAction exit_action = QAction("終了", self) exit_action.setShortcut("Ctrl+Q") exit_action.triggered.connect(self.exit_app) self.file_menu.addAction(exit_action) # Status Bar self.status = self.statusBar() self.status.showMessage("Status...") self.__controls() self.__layout()
def __init__(self): QMainWindow.__init__(self) low = QBarSet("Min") high = QBarSet("Max") low.append([-52, -50, -45.3, -37.0, -25.6, -8.0, -6.0, -11.8, -19.7, -32.8, -43.0, -48.0]) high.append([11.9, 12.8, 18.5, 26.5, 32.0, 34.8, 38.2, 34.8, 29.8, 20.4, 15.1, 11.8]) series = QStackedBarSeries() series.append(low) series.append(high) chart = QChart() chart.addSeries(series) chart.setTitle("Temperature records in celcius") chart.setAnimationOptions(QChart.SeriesAnimations) categories = ["Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"] axisX = QBarCategoryAxis() axisX.append(categories) axisX.setTitleText("Month") chart.addAxis(axisX, Qt.AlignBottom) axisY = QValueAxis() axisY.setRange(-52, 52) axisY.setTitleText("Temperature [°C]") chart.addAxis(axisY, Qt.AlignLeft) series.attachAxis(axisX) series.attachAxis(axisY) chart.legend().setVisible(True) chart.legend().setAlignment(Qt.AlignBottom) chart_view = QChartView(chart) chart_view.setRenderHint(QPainter.Antialiasing) self.setCentralWidget(chart_view)
def __init__(self): QMainWindow.__init__(self) self.inicializar_db() self.setWindowTitle("Tião Automecânica - Clientes") self.widget = QWidget() # Janelas w1, w2 = Buscador(), NovoCliente() w1.status_signal.connect(self.atualizar_status) w2.status_signal.connect(self.atualizar_status) # Leiaute self.line = QFrame() self.line.setFrameShape(QFrame.VLine) self.line.setFrameShadow(QFrame.Sunken) self.line.setLineWidth(0) self.line.setMidLineWidth(1) self.layout = QGridLayout() self.layout.addWidget(w1, 0, 0, 1, 1) self.layout.addWidget(self.line, 0, 1, 1, 1) self.layout.addWidget(w2, 0, 1, 1, 2) self.widget.setLayout(self.layout) self.setCentralWidget(self.widget) # Menu self.menu = QMenuBar() self.setMenuBar(self.menu) self.sobre = QAction("Sobre", self) self.sobre.setShortcut("F1") self.menu.addAction(self.sobre) self.sobre.triggered.connect(self.info) # Status self.status = QStatusBar() self.setStatusBar(self.status) self.status_label = QLabel("Pronto") self.status.addWidget(self.status_label)
def __init__(self): QMainWindow.__init__(self) self.images = [] self.index = -1 self.ratio = 1 # ratio for QLabel image self.mouse_position = None self.settings = None # Extensions self.extensions = [] for format in QImageReader.supportedImageFormats(): self.extensions.append(format.data().decode('utf-8')) # Filters self.filters = [] for extension in self.extensions: self.filters.append('*.{0}'.format(str(extension))) # UI self.set_up_ui() # settings self.load_settings()
def QVTKRenderWidgetConeExample(): """A simple example that uses the QVTKRenderWindowInteractor class.""" from vtkmodules.vtkFiltersSources import vtkConeSource from vtkmodules.vtkRenderingCore import vtkActor, vtkPolyDataMapper, vtkRenderer # load implementations for rendering and interaction factory classes import vtkmodules.vtkRenderingOpenGL2 import vtkmodules.vtkInteractionStyle # every QT app needs an app app = QApplication(['QVTKRenderWindowInteractor']) window = QMainWindow() # create the widget widget = QVTKRenderWindowInteractor(window) window.setCentralWidget(widget) # if you don't want the 'q' key to exit comment this. widget.AddObserver("ExitEvent", lambda o, e, a=app: a.quit()) ren = vtkRenderer() widget.GetRenderWindow().AddRenderer(ren) cone = vtkConeSource() cone.SetResolution(8) coneMapper = vtkPolyDataMapper() coneMapper.SetInputConnection(cone.GetOutputPort()) coneActor = vtkActor() coneActor.SetMapper(coneMapper) ren.AddActor(coneActor) # show the widget window.show() widget.Initialize() widget.Start() # start event processing # Source: https://doc.qt.io/qtforpython/porting_from2.html # 'exec_' is deprecated and will be removed in the future. # Use 'exec' instead. try: app.exec() except AttributeError: app.exec_()