Задать вопрос

Как открыть новое окно по нажатию на кнопку в тулбаре?

Помогите мне, пожалуйста, я хочу чтобы по нажатию на кнопку в тулбаре открывалось новое окно в котором я расположу какую-либо информацию. Вот то что я уже написал. Пока кнопка выполняет функцию выхода.
#!/usr/bin/python3
# -*- coding: utf-8 -*-
import sys
from PyQt5.QtWidgets import QMainWindow, QAction, qApp, QApplication
from PyQt5.QtGui import QIcon

class Example(QMainWindow):
    def __init__(self):
        super().__init__()
        self.initUI()

    def initUI(self):
        exitAction = QAction(QIcon('RM.png'), 'Exit', self)
        exitAction.setShortcut('Ctrl+Q')
        exitAction.triggered.connect(qApp.quit)

        self.toolbar = self.addToolBar('Exit')
        self.toolbar.addAction(exitAction)

        self.setGeometry(300, 300, 300, 200)
        self.setWindowTitle('Toolbar')
        self.show()


if __name__ == '__main__':
    app = QApplication(sys.argv)
    ex = Example()
    sys.exit(app.exec_())


6f7a96fdf44a472f8db6dd4445df067d.JPG
  • Вопрос задан
  • 2363 просмотра
Подписаться 2 Оценить Комментировать
Решения вопроса 1
Avernial
@Avernial
Разрабатываю научное ПО на языке Python.
Можно попробовать вот так:

import sys

from PyQt5.Qt import QVBoxLayout, QLabel, QDialog, QDialogButtonBox, Qt
from PyQt5.QtGui import QIcon
from PyQt5.QtWidgets import QMainWindow, QAction, qApp, QApplication


class InfoDialog(QDialog):

    def __init__(self, info_str, parent=None):
        super(InfoDialog, self).__init__(parent)

        layout = QVBoxLayout(self)
        layout.addWidget(QLabel(info_str))

        buttons = QDialogButtonBox(QDialogButtonBox.Ok, Qt.Horizontal, self)
        buttons.accepted.connect(self.accept)

        layout.addWidget(buttons)


class Example(QMainWindow):
    def __init__(self):
        super().__init__()
        self.initUI()

    def initUI(self):
        exitAction = QAction(QIcon('RM.png'), 'Exit', self)
        exitAction.setShortcut('Ctrl+Q')
        exitAction.triggered.connect(qApp.quit)

        infoAction = QAction(QIcon(), "Info", self)
        infoAction.triggered.connect(self.onInfoAction)

        self.toolbar = self.addToolBar('Exit')
        self.toolbar.addAction(exitAction)
        self.toolbar.addAction(infoAction)

        self.setGeometry(300, 300, 300, 200)
        self.setWindowTitle('Toolbar')
        self.show()

    def onInfoAction(self):
        w = InfoDialog("Some information", self)
        w.exec_()


if __name__ == '__main__':
    app = QApplication(sys.argv)
    ex = Example()
    sys.exit(app.exec_())
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
djdeniro
@djdeniro
DeNet
у кнопки есть события, попробуй написать print help(NAME_OF_BTN)
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы