问题描述
我正在制作一个无框架的 qml 应用。
对于最大化按钮,我想根据窗口状态在 2 个图标之间插入。
图标被命名为 max_1.png
和 max_2.png
。但是当我点击更改图标时,图标会变成透明(但按钮仍然存在,我可以点击它)。
当我单击最大化按钮时,我也在控制台中收到此消息:-
qt.network.ssl: QSslSocket: cannot resolve EVP_PKEY_param_check
qt.network.ssl: QSslSocket: cannot resolve SSL_CTX_set_ciphersuites
qt.network.ssl: QSslSocket: cannot resolve SSL_set_psk_use_session_callback
qt.network.ssl: QSslSocket: cannot resolve SSL_SESSION_is_resumable
qt.network.ssl: QSslSocket: OpenSSL >= 1.1.1 is required; OpenSSL 1.1.0g 2 Nov 2017 was found instead
file:///C:/Program Files (x86)/python38-32/lib/site-packages/pyside2/qml/QtQuick/Controls.2/RoundButton.qml: QML IconImage: Protocol "" is unkNown
我没有使用任何网络,所以不确定为什么这些 ssl 消息在那里。但那 QML IconImage: Protocol "" is unkNown
是什么意思?
这是最大化按钮的qml代码:-
// MAXIMIZE BUTTON
RoundButton {
id: maxBtn
x: 445
width: 25
height: 20
opacity: 1
anchors.right: parent.right
anchors.top: parent.top
smooth: false
antialiasing: false
leftPadding: 3
topPadding: 3
bottomPadding: 3
rightPadding: 3
padding: 0
anchors.rightMargin: 36
display: AbstractButton.IconOnly
anchors.topMargin: 7
icon.source: "images/max_1.png"
icon.color: 'transparent'
background: Rectangle {
color: "transparent"
radius: 5
}
onHoveredChanged: {
maxBtn.hovered === true ? background.color='#0DCFEC' : background.color='transparent'
}
onpressedChanged: {
maxBtn.pressed === true ? background.color='#0F82B2' : background.color='transparent'
}
onClicked: if (mainWindow.isMaximized === 1){
mainContainer.radius = 10
icon.source = 'images/max_1.png'
mainWindow.shownormal()
mainWindow.isMaximized = 0
}
else {
mainContainer.radius = 0
icon.source = 'images/max_2.png'
mainWindow.showMaximized()
mainWindow.isMaximized = 1
}
}
注意:isMaximized
是一个自定义实现的变量,用于跟踪窗口大小。
完整源代码:- Click Here to Download (25kb)
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)