2

我正在使用 qt 并创建了一个类似“文件”的菜单栏,其中包含一些子菜单项“打开”、“保存”、“另存为”、“关闭”、“退出”。我还创建了“actionNew”、“actionOpen”等动作。我对工具栏使用了相同的操作,并使用“disableItems()”函数将菜单和工具栏项禁用到构造函数中,效果很好,工具栏和菜单项是灰色的。如果我单击子菜单项“新建”,则工具栏和菜单项已启用并且不会变灰,这也可以正常工作,但是如果我单击子菜单项“关闭”,则只有工具栏项变灰并且菜单项目仍然启用:(。我该如何解决它?希望你能帮助我,对不起我的英语不好;)

MainWindow::MainWindow(QWidget *parent)
:QMainWindow(parent), ui(new Ui::MainWindow)
{
  ui->setupUi(this);
  /* disable menu items and tool bar items */
  disableItems();
}
void MainWindow::disableItems()
{
  ui->actionSave->setEnabled(false);
  ui->actionSaveAs->setEnabled(false);
  ui->actionClose->setEnabled(false);
}
void MainWindow::enableItems()
{
  ui->actionSave->setEnabled(true);
  ui->actionSaveAs->setEnabled(true);
  ui->actionClose->setEnabled(true);
}
void MainWindow::on_actionNew_triggered()
{
  enableItems();
}
void MainWindow::on_actionClose_triggered()
{
  disableItems();
}
4

1 回答 1

0

我有同样的问题。

我很困惑,因为代码的行为与 Linux 64(我通常开发的地方)、Windows(客户机器)、Linux 32(旧的开发和备份机器)不同。然后我意识到版本的差异。

我发现的唯一解决方法是从我的 Ubuntu 发行版附带的默认 QtSDK 升级到从这里下载的最新版本。

我建议检查您使用的版本是否可以升级。

高温高压

编辑我注意到他们改变了一些更激进的东西:升级后,菜单栏不再在“顶部屏幕”上共享,而是更传统地在“主窗口”内共享。可能团队忽略了可移植性问题,考虑到他们拥有的广泛目标,这是合理的。

于 2012-10-07T14:56:01.197 回答