Vraag Ubuntu Tik aan hoe te detecteren Als de toepassing is gesloten


op ubuntu aanraken. Ik voer een toepassing uit in terminal en sluit de toepassing in het toepassingsbereik. De toepassing wordt niet gedood. En geen enkele gebeurtenis zit vast in QQuickView.

Hoe kan ik dit nabije evenement detecteren?


2
2018-04-10 20:15


oorsprong


Vandaag heb ik het op de nieuwe afbeelding geprobeerd. Het wordt nu gedood met SIGTERM in het toepassingsbereik. Ik denk dat het nu is opgelost. Nu kan ik signaal SIGTERM opvangen en een gratie opruimen. - Boren Zhang
Weet echter niet hoe het moet in QML - Boren Zhang
Heb je mijn antwoord getest met de nieuwe 14.04-afbeelding? - Sylvain Pineau


antwoorden:


De close-gebeurtenis in QML lijkt een recente toevoeging te zijn (Qt 5.1), dus alleen 14.04 die Qt 5.2 biedt, kan een dergelijke gebeurtenis vangen met dit type handler:

import QtQuick 2.1
import QtQuick.Window 2.1

Window {
    onClosing: {
        console.log("Bye")
    }
}

Als alternatief kunt u ook gebruiken onVisibleChanged signaal handler.

bronnen:


0
2018-04-21 22:27



Bedankt voor het antwoord. Ik probeerde dit op Ubuntu touch. Er is geen venster beschikbaar. Er is geen onClosing voor MainView. Ik weet niet zeker of ik het juiste pakket heb geïnstalleerd. - Boren Zhang
Je moet deze code testen op een dagelijkse afbeelding om er zeker van te zijn dat je Qt5.2 hebt. Waar heb je je huidige beeld vandaan? - Sylvain Pineau
phablet @ ubuntu-phablet: ~ / tmp $ qmlscene main.qml <br> --desktop_file_hint = / home / phable phable / phablet / phablet @ ubuntu-phablet: ~ / tmp $ qmlscene main.qml --desktop_file_hint = / home / phablet / .local / share / click / hooks / desktop / com.ubuntu.te rminal_terminal_0.5.53.desktop <br> callbacks 0xb3d925f9 0xb3d925a5 <br> create surface at (0, 58) with size (768, 1222) with title 'Window 1'Terminated <br> phablet @ ubuntu-phablet: ~ / tmp $ cat main.qml <br> import QtQuick 2.1 <br> import QtQuick.Window 2.1 <br> Window {<br> onClosing: {<br> console.log ("Bye") <br>} <br>} - Boren Zhang
Ik heb geverifieerd dat ik qt 5.2.1 gebruik. Ik heb je voorbeeld geprobeerd. Voer het uit en sluit de toepassing in het toepassingsbereik. Ik kan de "Bye" nog steeds niet in de uitvoer zien. Ik denk dat de applicatie gewoon wordt vermoord. - Boren Zhang


Dit zou het werk moeten doen:

MainView {
    id: myApp
    objectName: "myApp"
    Component.onDestruction: {
        console.log('~~~~~~~~~~~ bye!!! ~~~~~~~~~');
    }

Beste wensen!


0
2017-09-29 17:16