由于工作需要,有些操作比较耗时,但是又不知道具体什么时候结束,所以就想用一个不断转圈的东西来提示用户该操作需要一些时间.
我也不知道这个东西具体叫什么名字,姑且叫风火轮吧.
这种情况在软件中很常见,但是我从来没实现过,感觉还是无从下手.
在经过网上提问,自己也不断调试,终于弄出来了.
http://www.qtcn.org/bbs/read-htm-tid-46658.html
这里面有风火轮范例.
另外还有一个叫yiyaaixuexi的网友,她的一篇文章 Qt 无边框、透明、可移动、的个性窗体案例详解 给了我启发.
//这个就是那个对话框,无边框,透明,但是不可移动
BusyDialog::BusyDialog(QWidget *parent) : QDialog(parent)
{
this->resize(80, 80);
//实现透明无边框就是下面这三句话
this->setWindowOpacity(1);
this->setWindowFlags(Qt::FramelessWindowHint);
this->setAttribute(Qt::WA_TranslucentBackground);
this->setAttribute(Qt::WA_DeleteOnClose);
//剩下的其实就是把别人写好的QProgressIndicator放到对话框里面
QProgressIndicator* pi = new QProgressIndicator(this);
QHBoxLayout* hbl = new QHBoxLayout(this);
hbl->addWidget(pi);
pi->startAnimation();
}
//需要注意的是我没有在这里把它设置成模式对话框,你可以根据你的需要,设置一下
//让我感到疑惑的是,出现的风火轮并不是在屏幕的正中间,而是有点偏右,如果不隐藏的话就能在正中间.
//下面这个就是上面提到的free510 提供的链接的链接里面的范例代码,这里我就只贴一下QProgressIndicator的实现