Projekt

Obecné

Profil

« Předchozí | Další » 

Revize 000a03b7

Přidáno uživatelem Martin Forejt před téměř 4 roky(ů)

Re: #8921 - menubar with empty dialogs

Zobrazit rozdíly:

aswi2021vochomurka/view/about.py
1
from PyQt5.QtWidgets import QDialog
2

  
3

  
4
class AboutDialog(QDialog):
5
    def __init__(self):
6
        super(AboutDialog, self).__init__()
7

  
8
        self.setWindowTitle("About")
aswi2021vochomurka/view/help.py
1
from PyQt5.QtWidgets import QDialog
2

  
3

  
4
class HelpDialog(QDialog):
5
    def __init__(self):
6
        super(HelpDialog, self).__init__()
7

  
8
        self.setWindowTitle("Help")
aswi2021vochomurka/view/main_view.py
1 1
import logging
2 2
import math
3
import random
4 3

  
4
import matplotlib.pyplot as plt
5 5
from PyQt5.QtCore import QSize, QThread, QObject, pyqtSignal
6
from PyQt5.QtWidgets import QMainWindow, QPlainTextEdit, QDialog, QHBoxLayout
7
from numpy import pi, sin, cos, tan, exp
8
from matplotlib.pyplot import subplot
6
from PyQt5.QtWidgets import QMainWindow, QWidget, QMenuBar, QAction
7
from PyQt5.QtWidgets import QVBoxLayout
8
from matplotlib.backends.backend_qt5agg import FigureCanvasQTAgg as FigureCanvas
9
from matplotlib.backends.backend_qt5agg import NavigationToolbar2QT as NavigationToolbar
9 10

  
10 11
from aswi2021vochomurka.model.Message import Message
11 12
from aswi2021vochomurka.service.mqtt.mqtt_subscriber import MQTTSubscriber
12 13
from aswi2021vochomurka.service.subscriber import Subscriber
13 14
from aswi2021vochomurka.service.subscriber_callback import SubscriberCallback
14 15
from aswi2021vochomurka.service.subscriber_params import SubscriberParams, ConnectionParams
15

  
16
from matplotlib.backends.backend_qt5agg import FigureCanvasQTAgg as FigureCanvas
17
from matplotlib.backends.backend_qt5agg import NavigationToolbar2QT as NavigationToolbar
18
import matplotlib.pyplot as plt
19

  
20
import sys
21
from PyQt5.QtWidgets import QDialog, QApplication, QPushButton, QVBoxLayout
22
from matplotlib.backends.backend_qt5agg import FigureCanvasQTAgg as FigureCanvas
23
from matplotlib.backends.backend_qt5agg import NavigationToolbar2QT as NavigationToolbar
24
import matplotlib.pyplot as plt
25
import random
26

  
16
from aswi2021vochomurka.view.about import AboutDialog
17
from aswi2021vochomurka.view.help import HelpDialog
27 18
from aswi2021vochomurka.view.logger_view import LoggerView
19
from aswi2021vochomurka.view.settings import SettingsDialog
28 20

  
29 21

  
30 22
class Worker(QObject, SubscriberCallback):
......
62 54
        pass
63 55

  
64 56

  
65
class MainView(QDialog):
57
class MainView(QMainWindow):
66 58
    worker: Worker = None
67 59
    workerThread: QThread = None
68 60

  
......
81 73
        self.toolbar = NavigationToolbar(self.canvas, self)
82 74

  
83 75
        self.setMinimumSize(QSize(440, 240))
84
        self.setWindowTitle("MQTT demo")
85

  
86
        # Add logger text field
87
        logger = LoggerView(self)
88
        formatter = logging.Formatter('%(asctime)s %(message)s', '%H:%M')
89
        logger.setFormatter(formatter)
90
        logger.setLevel(logging.INFO)
91
        logging.getLogger('').addHandler(logger)
76
        self.setWindowTitle("MQTT client")
92 77

  
78
        logger = self._createLoggerView()
93 79
        layout = QVBoxLayout()
94 80
        layout.addWidget(logger.widget)
95 81
        layout.addWidget(self.toolbar)
96 82
        layout.addWidget(self.canvas)
97 83

  
98
        self.setLayout(layout)
84
        widget = QWidget()
85
        widget.setLayout(layout)
86
        self.setCentralWidget(widget)
87
        self._createMenuBar()
99 88

  
100 89
        self.initSubscriber()
101 90

  
91
    def _createLoggerView(self):
92
        logger = LoggerView(self)
93
        formatter = logging.Formatter('%(asctime)s %(message)s', '%H:%M')
94
        logger.setFormatter(formatter)
95
        logger.setLevel(logging.INFO)
96
        logging.getLogger('').addHandler(logger)
97
        return logger
98

  
99
    def _createMenuBar(self):
100
        menuBar = QMenuBar(self)
101
        settingsAction = QAction("&Settings", self)
102
        settingsAction.triggered.connect(self.settings)
103
        helpAction = QAction("&Help", self)
104
        helpAction.triggered.connect(self.help)
105
        aboutAction = QAction("&About", self)
106
        aboutAction.triggered.connect(self.about)
107
        menuBar.addAction(settingsAction)
108
        menuBar.addAction(helpAction)
109
        menuBar.addAction(aboutAction)
110
        self.setMenuBar(menuBar)
111

  
102 112
    def plot(self, message: Message):
103 113
        self.figure.clear()
104 114

  
......
118 128

  
119 129
        self.canvas.draw()
120 130

  
131
    def settings(self):
132
        dialog = SettingsDialog()
133
        dialog.exec_()
134

  
135
    def help(self):
136
        dialog = HelpDialog()
137
        dialog.exec_()
138
        pass
139

  
140
    def about(self):
141
        dialog = AboutDialog()
142
        dialog.exec_()
143

  
121 144
    def initSubscriber(self):
122 145
        self.workerThread = QThread()
123 146
        self.worker = Worker()
aswi2021vochomurka/view/settings.py
1
from PyQt5.QtWidgets import QDialog
2

  
3

  
4
class SettingsDialog(QDialog):
5
    def __init__(self):
6
        super(SettingsDialog, self).__init__()
7

  
8
        self.setWindowTitle("Settings")

Také k dispozici: Unified diff