我正在尝试使用PySide2(适用于Windows的Qt)和QML创建一个非常简单的ApplicationWindow。
main.py
import sys
from PySide2.QtWidgets import QApplication
from PySide2.QtCore import QUrl
from PySide2.QtQml import QQmlApplicationEngine
if __name__ == "__main__":
app = QApplication(sys.argv)
url = QUrl("mainWindow.qml")
engine = QQmlApplicationEngine()
engine.load(url)
sys.exit(app.exec_())
qml文件
import QtQuick.Controls 2.4
ApplicationWindow {
id: mainWindow
visible: true
title: "MainWindow"
width: 640
height: 480
menuBar: MenuBar {
id: menuBar
Menu {
id: editMenu
title: "&Edit"
MenuItem {
id: copyItem
text: "Copy"
// This doesn't work:
// shortcut: "Ctrl+C"
// This doesn't work either:
// shortcut: StandardKey.Copy
}
}
}
}
如图所示,代码运行并显示带有MenuBar和Menu的ApplicationWindow。但是,如果我不推荐这两个快捷方式中的任何一个,则根本不会显示该窗口。我不明白,为什么。我的示例遵循Qt documentation on MenuItems。
答案 0 :(得分:1)
在QML中,有两种类型的项目:Qt Quick Controls 1
和Qt Quick Controls 2
。两组都具有相同的名称,但是它们的属性不同,在您的情况下,MenuItem
的{{1}}没有快捷方式属性,但是如果有Qt Quick Controls 2
则具有快捷方式属性,因此解决方案是更改导入:
Qt Quick Controls 1