Как отобразить диалог Hello World из приложения панели задач меню Python / Pyside2 для MacOS - PullRequest
0 голосов
/ 16 января 2019

Создание первого фиктивного диалогового окна / окна "Привет, мир", как отобразить его из панели задач / меню в MacOS. Спасибо.

1 Ответ

0 голосов
/ 16 января 2019

Если я понял твой вопрос, Вы хотели открыть QDialog из строки меню QMainWindow, верно?

Для этого это простой подход:

import sys                                                                                      
from PySide2.QtCore import Slot                                                                    
from PySide2.QtWidgets import (QApplication, QMainWindow, QAction,                                 
QDialog, QLabel, QHBoxLayout)                                                                      

class Dialog(QDialog):                                                                          
    def __init__(self):                                                                         
        QDialog.__init__(self)                                                                  
        layout = QHBoxLayout()                                                                  
        layout.addWidget(QLabel("Hello World"))                                                 
        self.setLayout(layout)                                                                  

class MainWindow(QMainWindow):                                                                  
    def __init__(self):                                                                         
        QMainWindow.__init__(self)                                                              
        self.menu = self.menuBar()                                                              
        self.test_menu = self.menu.addMenu("Test")                                              

        self.hello_action = QAction("hello", self)                                              
        self.hello_action.triggered.connect(self.hello_dialog)                                  

        self.test_menu.addAction(self.hello_action)                                             

    @Slot()                                                                                     
    def hello_dialog(self, checked):                                                            
        dialog = Dialog()                                                                       
        dialog.exec_()                                                                          


if __name__ == "__main__":                                                                      
    app = QApplication()                                                                        
    window = MainWindow()                                                                       
    window.show()                                                                               
    sys.exit(app.exec_())
...