gpt4 book ai didi

python - Qt 不允许我创建一个以我的应用程序命名的菜单项,其中包含字符串 "About"、 "Preferences"或“退出?有什么提示吗?

转载 作者:行者123 更新时间:2023-12-04 18:47:56 24 4
gpt4 key购买 nike

所以基本上我想使用 PySide 和 Qt 框架创建一个 GUI 应用程序。我正在使用 QT 设计器进行初始 UI 设计。该应用程序的第一个版本将在 Mac 上运行,我希望它像其他 Mac 应用程序一样,其中应用程序的名称以粗体显示,并且一直向左显示“关于”、“首选项”和“退出” .

问题是,每当我添加这些类型的字符串时,下拉菜单就会停止工作。

这方面的任何提示都会有所帮助,这是我使用 PySide、QT 框架和 QT 设计器的第一个 GUI。

最佳答案

以下是获取 About 的示例菜单项在 Mac 上正常工作,在 C++ 中。关键是setMenuRole到正确的角色。有退出、关于、首选项和关于 Qt 的角色。应用程序名称以粗体显示的菜单项由操作系统提供,您无需执行任何特殊操作即可获得该菜单项。 Qt 会自动将具有正确角色的项目移动到它们所属的位置。您无需执行任何操作即可获得退出菜单项,如果您不提供,它会自动添加。

如果您在 Qt Designer 中制作菜单,只需设置 menuRole这些菜单 QActions 的属性。这就是菜单转到正确位置所需的全部内容。 不要添加带有应用程序名称的菜单。只需创建通常的 Windows 样式菜单(文件、编辑、帮助),这些项目将根据其角色进行适当的重新排列。

int main(int argc, char *argv[])
{
QApplication a(argc, argv);

a.setApplicationVersion(...);
a.setOrganizationName(...);
a.setOrganizationDomain(...);
a.setApplicationName(...);

MainWidget w; // MainWidget is your widget class

QMessageBox * aboutBox = new QMessageBox(&w);
QImage img(":/images/youricon.png");
aboutBox->setIconPixmap(QPixmap::fromImage(
img.scaled(128, 128, Qt::KeepAspectRatio, Qt::SmoothTransformation)));
QString txt;
txt = txt.fromUtf8(
"fooapp %1\nCopyright \xC2\xA9 2012 Ed Hedges\n"
"Licensed under the terms of ....");
txt = txt.arg(a.applicationVersion());
aboutBox->setText(txt);

QMenuBar menu;
QMenu * submenu = menu.addMenu("Help");
QAction * about = submenu->addAction("About", aboutBox, SLOT(exec()));
about->setMenuRole(QAction::AboutRole);

w.show();

return a.exec();
}

关于python - Qt 不允许我创建一个以我的应用程序命名的菜单项,其中包含字符串 "About"、 "Preferences"或“退出?有什么提示吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11076018/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com