类似360开机提示页面从桌面右侧渐入的效果。
Widget::Widget(QWidget *parent) :
QWidget(parent),
ui(new Ui::Widget)
{
ui->setupUi(this);
// setWindowFlags(Qt::FramelessWindowHint);//注意是否设置引起的窗口坐标差异
QDesktopWidget* desktopWidget = QApplication::desktop();
deskRect = desktopWidget->availableGeometry();//获取可用桌面大小
}
Widget::~Widget()
{
delete ui;
}
void Widget::gradullyShow()
{
// 如果设置了 setWindowFlags(Qt::FramelessWindowHint);
// if( sender() == ui->pushButton)
// {
// show();
// move(deskRect.width(),deskRect.height() - height());
// QTimer::singleShot(100, this, SLOT(showOut()));
// }
// else
// {
// move( x() - 10, y());
// if( x() >= (deskRect.width() - width()) )
// QTimer::singleShot(10, this, SLOT(showOut()));
// else move(deskRect.width() - width(), y());
// }
// 如果未设置 setWindowFlags(Qt::FramelessWindowHint);
if( sender() == ui->pushButton)
{
show();
move(deskRect.width(),deskRect.height() - frameSize().height());
QTimer::singleShot(100, this, SLOT(gradullyShow()));
}
else
{
move( frameGeometry().x() - 10, frameGeometry().y());
if( frameGeometry().x() >= (deskRect.width() - frameSize().width()) )
QTimer::singleShot(10, this, SLOT(gradullyShow()));
else move(deskRect.width() - frameSize().width(), frameGeometry().y());
}
}
void Widget::on_pushButton_clicked()
{
gradullyShow();
}