2013-11-28 67 views
1

在我的應用程序中,我在打開文件(在菜單欄中使用QAction)後立即執行了廣泛的算法。我想改變光標占線模式,但不知何故,我的代碼無法正常工作:如何更改由QAction觸發的插槽內的光標

MyApp::MyApp(QWidget *parent) 
    : QMainWindow(parent) 
{ 
    ui.setupUi(this); 
    connect(ui.openFileOption, SIGNAL(triggered()), this, SLOT(OpenFileAction())); 
} 

MyApp::~MyApp() 
{ 
} 

void MyApp::OpenFileAction() 
{ 
    //change cursor 
    this->setCursor(Qt::WaitCursor); 
    QApplication::processEvents(); 

    // load file 

    // do something long here... 

    this->setCursor(Qt::ArrowCursor); 
} 
+0

你試過設置processEvents()後面的遊標; – drescherjm

+0

不起作用:) – azer89

回答

0

你可以試試下面的代碼(由Qt文檔提供,順便說一句):

QApplication::setOverrideCursor(QCursor(Qt::WaitCursor)); 
// load file 
// do something long here... 
QApplication::restoreOverrideCursor(); 
+0

是的,它的工作原理,但它不能在由QAction觸發的SLOT函數中工作(在我的GUI中,我在菜單欄上有按鈕...) – azer89