2012-10-07 51 views
2

我正在使用qt並創建了一些菜單欄,如「打開」,「保存」,「另存爲」,「關閉」,「放棄」。我還創建了諸如「actionNew」,「actionOpen」等操作。我對工具欄使用了相同的動作,並使用「disableItems()」函數將菜單和工具欄項禁用到構造函數中,工作正常,工具欄和菜單項灰色。如果我點擊子菜單項「新建」,工具欄和菜單項被啓用並且不灰掉,這也可以正常工作,但是如果我點擊子菜單項「關閉」,只有工具欄項灰化,菜單項目仍然啓用:(。我怎樣才能解決它?希望你能幫助我,併爲我的壞英語對不起);如何在Qt中再次變灰菜單項

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(); 
} 

回答

0

我有同樣的問題。

我很困惑,因爲代碼表現不同於Linux 64(通常我開發的地方),Windows(客戶機),Linux 32(舊開發&備份機器)。然後我意識到版本的差異。

解決我發現的唯一方法是從我的Ubuntu發行版附帶的默認QtSDK升級到最新下載的from here

我建議檢查您使用的版本是否可以升級。

HTH

編輯我注意到,他們改變了一些更激進:在升級的菜單欄是不是更「上屏」,但更爲傳統的「主窗口」內共享後。可能團隊忽視了可移植性問題,考慮到他們擁有的廣泛目標,這是合理的。

+0

是奇怪的,但與最新下載它的作品:) ...謝謝:) – user1726700

+0

高興地幫助,看到我的編輯... – CapelliC