窗口定义:
class ShowMessageDlg : public QDialog
{
Q_OBJECT
public:
ShowMessageDlg(QWidget *p);
~ShowMessageDlg();
public slots:
void setText(QString str){text.setPlainText(str);}
void addText(QString str){text.setPlainText(text.toPlainText()+str);}
private:
void showEvent(QShowEvent * event);
QTextEdit text;
QGridLayout layout;
};
运行代码:希望的功能:弹出显示对话框,边拷贝,边显示拷贝过程。
ShowMessageDlg *sm = new ShowMessageDlg(this);
sm->show();//运行到这里是不会显示的
for(int i = 0; i < fileNames.length(); i++)
{
...
sm->addText("正在复制,请稍侯...\n");
if ( QFile::copy ( fn,dest ) )//如果文件很大,在这里鼠标会停顿,这个操作是不是一定要放在线程中呢?
{
sm->addText("复制完成\n");
sm->addText(file_name ( fn.toLatin1() ));
sm->addText("正在解压,请稍侯...\n");
system ( cmd.toLatin1().data() );
sm->addText("解压完成\n");
}
}
运行到这里才会显示出来。请问怎么让这个窗口立刻显示出来呢?