所以基本上我要创建使用PySide和Qt框架的GUI应用程序。 我使用的QT设计师进行初始UI设计。 该应用程序的第一个版本将运行在Mac上,我希望它像其他Mac应用程序,其中应用程序的名称为黑体一路向左与“关于”,“首选项”和“退出” 。
问题是,每当我添加这些类型的字符串的下拉停止工作。
在这个任何提示将是有益的,这是使用PySide,Qt框架,以及d Qt设计我的第一个GUI。
所以基本上我要创建使用PySide和Qt框架的GUI应用程序。 我使用的QT设计师进行初始UI设计。 该应用程序的第一个版本将运行在Mac上,我希望它像其他Mac应用程序,其中应用程序的名称为黑体一路向左与“关于”,“首选项”和“退出” 。
问题是,每当我添加这些类型的字符串的下拉停止工作。
在这个任何提示将是有益的,这是使用PySide,Qt框架,以及d Qt设计我的第一个GUI。
以下是得到的一个例子About
在C ++中的菜单项在Mac上正常工作。 关键是要setMenuRole
正确的角色。 有对退出,关于,偏好和关于Qt的角色。 在大胆与应用程序的名称的菜单项是由OS提供的,你不需要做什么特别的获取。 Qt的将自动移动与他们属于正确的角色项。 你不需要做任何事情来获得退出菜单项,它会自动添加,如果你不提供一个。
如果你在Qt设计制作菜单,您只需设置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; 但在Mac上创建公司,偏好或者退出菜单项和Qt会自动将这些转移到左侧(在一个用粗体字)的应用程序菜单。
我猜你想创建自己的应用程序菜单和Qt是越来越糊涂了。 你不需要创建它。 把你的公司,首或在文件或其他一些菜单标题退出菜单项,他们将得到转移。