void QApplication::setOverrideCursor ( )

本文介绍如何使用QApplication::setOverrideCursor方法设置全局强制光标,并解释了该方法的作用及参数含义。此外,还提供了具体的代码示例,展示了如何在长时间运行的操作期间设置和取消设置强制光标。

void QApplication::setOverrideCursor ( const QCursor & cursor, bool replace = FALSE ) [静态]

设置应用程序强制光标为 cursor

应用程序强制光标是为了显示应用程序是在特定状态下,例如在一个操作期间也许会占用一些时间。

这个光标将在所有应用程序的窗口部件中被显示,直到restoreOverrideCursor()或者另一个setOverrideCursor()被调用。

应用程序光标被存储到内部栈中。setOverrideCursor()把光标压到栈中,并且restoreOverrideCursor()把激活的光标从栈中弹出。每一个setOverrideCursor()都必须最后有一个对应的restoreOverrideCursor()跟着,否则栈将永远不会被清空。

如果replace为真,新的光标将替换最近一个强制光标(栈将保持它的深度)。如果replace为假,新的光标将被要到栈顶。

实例:

        QApplication::setOverrideCursor( Qt::WaitCursor );
        calculateHugeMandelbrot();              // 消耗时间……
        QApplication::restoreOverrideCursor();
    
void outputMessage(QtMsgType type, const QMessageLogContext &context, const QString &msg) { QString text; switch(type) { case QtDebugMsg: text = QString("Debug:"); break; case QtWarningMsg: return; text = QString("Warning:"); break; case QtCriticalMsg: text = QString("Critical:"); break; case QtFatalMsg: text = QString("Fatal:"); break; default: text = QString("Other:"); break; } text += QString("(") + QString::number(context.line) + QString(")") + context.function; QString current_date_time = QDateTime::currentDateTime().toString("yyyy-MM-dd hh:mm:ss"); QString current_date = QString("%1").arg(current_date_time); QString message = QString("%3 %1 %2").arg(text).arg(msg).arg(current_date); QIODevice::OpenMode mode = QIODevice::WriteOnly | QIODevice::Append; QFile file(LOGFILENAME); if(file.open(mode)) { QTextStream text_stream(&file); text_stream << message << "\r\n"; file.flush(); file.close(); } } /** * @brief main 主函数 * @param argc * @param argv * @return */ int main(int argc, char *argv[]) { /* 防止乱码,设置为utf-8编码 */ QTextCodec::setCodecForLocale(QTextCodec::codecForName("UTF-8")); /* * nstalls a Qt message handler which has been defined previously. * Returns a pointer to the previous message handler (which may be 0). **/ QFileInfo info(LOGFILENAME); QIODevice::OpenMode mode = QIODevice::WriteOnly | QIODevice::Append; if(info.exists()) { if(info.size() > MAXFILELEN) { mode = QIODevice::WriteOnly | QIODevice::Truncate; } } QFile file(LOGFILENAME); if(file.open(mode)) { QTextStream text_stream(&file); text_stream << "++++++++++start here++++++++++" << "\r\n"; file.flush(); file.close(); } qInstallMessageHandler(outputMessage); QCoreApplication::setAttribute(Qt::AA_UseOpenGLES); QApplication a(argc, argv); MainWindow w; w.show(); QApplication::setOverrideCursor(QCursor(Qt::BlankCursor)); return a.exec(); } 逐行注释
05-27
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值