使用:将别的组件拖到水平布局的组件中即可,可以选择是在哪个位置
使用:将别的组件拖到垂直布局的组件中即可,可以选择是在哪个位置
使用:将别的组件拖到栅格布局的组件中即可,可以选择是在哪个位置
使用:将此组件放到布局组件中即可(也可以直接将组件放到窗口中)
使用:将此组件放到布局组件中即可(也可以直接将组件放到窗口中)
使用如下图
变成下图的样子
栅格布局具有一定的智能化,会自动帮你把要进行栅格布局的组件所占的大小和位置分配好
这里布局用的是栅格布局
在mianwindow.cpp的构造函数中写下面代码
ui->sB_age->setValue(1);//年龄默认设置为1岁
在mianwindow.cpp的构造函数中写下面代码
ui->cB_sex->addItem("男");//设置性别,默认显示第一个
ui->cB_sex->addItem("女");
//这里用了QDate这个类中的函数(这个函数的返回值就是setDate函数所需要的参数也就是日期)
ui->dE_birth->setDate(QDate::currentDate());//设置当天日期
QStringList strList{"qq.com","163.com","foxmail.com","sina.com"};//此变量中存的是字符串,之后作为addItems函数的参数
ui->cB_emil->addItems(strList);//设置邮箱
ui->cB_emil->setCurrentIndex(1);//设置下标为1的邮箱默认显示(这里0是"qq.com",1是"163.com",2是"foxmail.com",3是"sina.com"与QString链表存入的QString先后顺序有关)
//ui->cB_emil->setCurrentText("163.com");//设置"163.com"邮箱默认显示
将显示照片的组件大小固定,显示的图片水平,垂直居中
在mianwindow.h的类中写下面代码
public slots:
void slots_selete_picture();
在mianwindow.cpp写下面代码
void MainWindow::slots_selete_picture()
{
//更新头像
//弹出弹出框,选择图片
//下面函数需要用到头文件 #include
QString str= QFileDialog::getOpenFileName(this/*父窗口*/
,"请选择一张图片"/*弹出框标题*/
,"C:\\Users\\冉喜文\\Pictures\\Screenshots"/*初始路径*/
,"Images (*.png *.bmp *.jpg)"/*过滤,能选择的图片 注意格 式与格式之间有空格*/); //用QSting接一下返回值
qDebug()<label_picture->geometry();//动态获取显示图片组件宽度、高度
pix=pix.scaled(rect.width(),rect.height(),Qt::KeepAspectRatio);//保持宽高比,缩放到指定大小
ui->label_picture->setPixmap(pix);
}
}
在mianwindow.cpp的构造函数中写下面代码
connect(ui->pB_picture,SIGNAL(clicked()),this,SLOT(slots_selete_picture()));//将信号与槽函数进行绑定连接
当点击下面的按键时,就会触发上面的槽函数
在mianwindow.cpp中写下面代码
#define FileName "32.txt"
操作文件变量不应该是局部的,所以我们在mianwindow.h的类中定义出来
public:
QFile file;
在mianwindow.cpp的构造函数中写下面代码
QString workPath =QDir::currentPath();//获取当前的工作路径
QDir dir(workPath);
if(!dir.exists()){//路径不存在,则创建路径
if(dir.mkpath(workPath)){
QMessageBox::critical(this,"错误","创建路径失败");
exit(0);//程序退出
}
}
QString absPathFile=dir.absoluteFilePath(FileName);//当前的工作路径和文件名做拼接,返回一个新的路径
qDebug()<<"absPathFile = "<
自定义一个槽函数
1.声明
在mianwindow.h的类中写下面代码
public slots:
void slots_write();
2.定义
在mianwindow.cpp写下面代码
void MainWindow::slots_write()
{
file.resize(0);//清空文件
QString userInfo="%1\n%2\n%3\n%4\n%5\n%6\n%7\n%8\n%9\n";//将所有信息存入到一个QString中,这里用了灵活格式化
userInfo = userInfo.arg(ui->le_nick->text())//这里接一下
.arg(ui->pTE_write->toPlainText ())
.arg(ui->le_name->text())
.arg(ui->cB_sex->currentText ())
.arg(ui->sB_age->text())
.arg(ui->dE_birth->text ())
.arg(ui->_tel->text ())
.arg(ui->le_mail->text()+"@"+ui->cb_suffix->currentText ())
.arg(ui->lineEdit->text ());
qDebug ()<<"userInfo = "<
3.进行绑定
在mianwindow.cpp的构造函数中写下面代码
connect(ui->pB_picture,SIGNAL(clicked()),this,SLOT(slots_selete_picture()));//将信号与槽函数进行绑定连接
在mianwindow.h的类中写下面代码
public slots:
void slots_selete_picture();
在mianwindow.cpp写下面代码
void MainWindow::slots_clearform()
{
ui->le_nick->clear();
ui->pTE_write->clear();
ui->le_name->setText("");
ui->cB_sex->setCurrentIndex(0);
ui->sB_age->setValue(1);
ui->dE_birth->setDate(QDate::currentDate());
ui->le_phone->clear();
ui->le_emil->clear();
ui->cB_emil->setCurrentIndex(1);
ui->le_school->clear();
}
在mianwindow.cpp的构造函数中写下面代码
connect(ui->pB_clear,SIGNAL(clicked()),this,SLOT(slots_clearform()));//将信号与槽函数进行绑定连接