弄了弄qt,就知道为什么产品和程序员关系不好了。。
仿qq做的,感觉和qq差局还是很大,上图*.*
首先肯定是要把图片分成几部分,我分了4个框来处理这些(顺便吐槽一下Linux的画图软件,太难收了)
下一个就是要对每一部分进行相应的处理,写相应代码
//创建用户名,动图,等等buttonfindpasswd = new QPushButton("找回密码"); buttonnewusr = new QPushButton("注册帐号");buttonlogin = new QPushButton("登录");texteditusername = new QLineEdit();textedituserpasswd = new QLineEdit();checkboxlogin = new QCheckBox("自动登录");checkboxspass = new QCheckBox("记住密码");texteditusername->setPlaceholderText("QQ号码/手机/邮箱");textedituserpasswd->setPlaceholderText("密码");//这个是第二部分QVBoxLayout *highlayout = new QVBoxLayout();highlayout->addWidget(texteditusername);highlayout->addWidget(textedituserpasswd);//这个是第四部分QHBoxLayout *threelayout = new QHBoxLayout();threelayout->addWidget(checkboxlogin);threelayout->addWidget(checkboxspass);threelayout->addWidget(buttonfindpasswd);//第一部分,这个是把动图通过label放入(下面有头文件,直接复制就可使用)QLabel *label = new QLabel();QMovie *movie = new QMovie("/home/ma/图片/124.gif");label->resize(500,500);label->setMovie(movie);movie->start();//这个是把第二部分和第四部分包起来的大layoutQGridLayout *thatlayout = new QGridLayout();thatlayout->addLayout(highlayout,1,0,1,1);thatlayout->addLayout(threelayout,2,0,1,1);//这个是第三部分QVBoxLayout *qliftlayout = new QVBoxLayout();qliftlayout->addStretch();qliftlayout->addWidget(buttonnewusr);QHBoxLayout *downlayout = new QHBoxLayout();downlayout->addLayout(qliftlayout);downlayout->addLayout(thatlayout);//这个是所有的总部分QGridLayout *main_layout = new QGridLayout(this);main_layout->addWidget(label,0,0,1,1);main_layout->addLayout(downlayout,1,0,1,1);//设置每个部分的间距离main_layout->setHorizontalSpacing(10);main_layout->setVerticalSpacing(10);//设置和边框的间距main_layout->setContentsMargins(10,10,10,10);//让大小不能改变main_layout->setSizeConstraint(QLayout::SetFixedSize);#include <QPushButton>
#include <QPropertyAnimation>
#include <QLabel>
#include <QMovie>
#include <QGridLayout>
#include <QVBoxLayout>
#include <QHBoxLayout>class Dialog : public QDialog
{Q_OBJECTpublic:Dialog(QWidget *parent = 0);~Dialog();
private:QPushButton *buttonfindpasswd,*buttonnewusr,*buttonlogin;//QTextEdit *texteditusername,*textedituserpasswd;QCheckBox *checkboxspass,*checkboxlogin;QLineEdit *texteditusername,*textedituserpasswd;private slots:void buttonss();
};
顺便附上那个樱花的.gif,供模仿使用(此动图来自网络,如有侵权,请联系我删除)