Crashing Application at Application Exit
-
Hello together,
I want to use a ConicalGradient int T.Button Element, because we need some special effetcts. So we overwrite the standard behaviour of the Button Element.
But the ConicalGradient Element in the T.Button Definitions seems to cause the crash at application exit.
I have no idea why is it so. Maybe someone has an Idea whats's going on.I have a minimal example uploaded to show the problem.
[0_1525435415456_template_button_test.zip](Uploading 100%)
Greetings
-
Ok Here the Listing for the Button.qml i use:
import QtQuick 2.9
import QtQuick.Controls 2.2
import QtQuick.Controls.impl 2.1
import QtQuick.Templates 2.2 as Timport QtGraphicalEffects 1.0
import QtQuick.Controls.Styles 1.4T.Button {
id: myButtonreadonly property color teleBtnTxtClrDis: "#989998" readonly property color teleBtnTxtClrOff: "#F2F2F2" readonly property color teleBtnTxtClrOn: "#958F8E" readonly property color teleBtnTxtClrReq: "#B2B2B1" readonly property color teleBtnBgClrDis: "#888988" readonly property color teleBtnBgClrOff: "#888988" readonly property color teleBtnBgClrOn: "#FFFEFD" readonly property color teleBtnBgClrReq: "#888988" readonly property color teleBtnBrdClrDis: "black" readonly property color teleBtnBrdClrOff: "blue" readonly property color teleBtnBrdClrOn: "white" readonly property color teleBtnBrdClrReq: "white" // Text readonly property int stdTextSize: 14 // Available button states readonly property int btn_STATE_INACTIVE: 1 readonly property int btn_STATE_OFF: 2 readonly property int btn_STATE_ON: 3 readonly property int btn_STATE_REQ: 4 property url btnImgDis: "" property url btnImgOff: "" property url btnImgOn: "" property url btnImgReq: "" property alias bgrectani: bgrectani //text: qsTr("Button text can be long") width: 80 height: width bottomPadding: 0 topPadding: 0 rightPadding: 4 leftPadding: 4 padding: 0 checkable: false property double scalefactor: 1.0 property int currentState property color bgcolor: teleBtnBgClrDis property color textcolor: teleBtnTxtClrDis property color bordercolor:teleBtnBrdClrDis property int margin: 0 property bool bAni: false property bool bVis: false contentItem: Text { width: parent.width height: parent.height wrapMode: Text.WordWrap font.pixelSize: stdTextSize color: textcolor text: parent.text bottomPadding: parent.bottomPadding topPadding: parent.topPadding rightPadding: parent.rightPadding leftPadding: parent.leftPadding padding: parent.padding horizontalAlignment: Text.AlignHCenter verticalAlignment: Text.AlignVCenter } onCurrentStateChanged: { // console.log("T.Button onCurrentStateChanged") switch(currentState) { case btn_STATE_INACTIVE: bgcolor = teleBtnBgClrDis textcolor = teleBtnTxtClrDis bordercolor = teleBtnBrdClrDis myImage.source = btnImgDis margin = 0 bAni = false bVis = false // console.log("T.Button btn_STATE_INACTIVE") break; case btn_STATE_OFF: bgcolor = teleBtnBgClrOff textcolor = teleBtnTxtClrOff bordercolor = teleBtnBrdClrOff // console.log("btnImgOff "+ btnImgOff) myImage.source = btnImgOff //console.log("T.Button btn_STATE_OFF") margin = 0 bAni = false bVis = false break; case btn_STATE_ON: bgcolor = teleBtnBgClrOn textcolor = teleBtnTxtClrOn bordercolor = teleBtnBrdClrOn myImage.source = btnImgOn margin = 0 bAni = false bVis = false //console.log("T.Button btn_STATE_ON") break; case btn_STATE_REQ: bgcolor = teleBtnBgClrReq textcolor = teleBtnTxtClrReq bordercolor = teleBtnBrdClrReq myImage.source = btnImgReq margin = 4 bAni = true bVis = true //console.log("T.Button btn_STATE_REQ") break; default: console.error("Button currentstate ist not specified.") break; } } property double value1: 0.00 NumberAnimation on value1 { from: 0.00; to: 1.00; loops: Animation.Infinite; duration: 8000 running: true } ConicalGradient { source: bgrectani anchors.fill: bgrectani gradient: Gradient { GradientStop { position: 0.00; color: "lightgrey" } GradientStop { position: value1 ; color: "lightgrey" } GradientStop { position: value1 + 0.01; color: "transparent" } GradientStop { position: 1.00; color: "transparent" } } visible: true } background: Rectangle { id: bgrectani width: myButton.width height: myButton.height color: bgcolor radius: bgrectani.width / 2 Rectangle { id: rctbg width: myButton.width - margin height: myButton.height - margin border.color: bordercolor color: bgcolor border.width: 0 radius: rctbg.width/2 anchors.horizontalCenter: bgrectani.horizontalCenter anchors.verticalCenter: bgrectani.verticalCenter Image { id: myImage anchors.fill: parent source: "" } } }
}
-
Which Qt version and platform? It doesn't crash for me with Qt 5.10.1 on Linux or Windows. I tried with:
// main.qml import QtQuick 2.9 import QtQuick.Window 2.2 Window { visible: true width: 640 height: 480 Button { anchors.centerIn: parent } }
and
Button.qml
with the given content in the same folder. -
And the main.qml:
import QtQuick 2.7
import QtQuick.Controls 2.0
import QtQuick.Layouts 1.3
import "myStyle"ApplicationWindow {
visible: true
width: 640
height: 480
title: qsTr("Hello World")Rectangle { Button { id: button1 x: 256 y: 86 text: qsTr("Press Me") } }
}