一 案例:----排序--利用STL裏的容器、算法
在主界面裏 添加 控件:
5個 LineEdit ----用於放置 數字
1 PushButton ----用於 觸發 排序 函數
排序函數爲:
{
vector<int> vec1;
int a0=ui->lineEditNum01->text().toInt();
vec1.push_back(a0);
int a1=ui->lineEditNum02->text().toInt();
vec1.push_back(a1);
int a2=ui->lineEditNum03->text().toInt();
vec1.push_back(a2);
int a3=ui->lineEditNum04->text().toInt();
vec1.push_back(a3);
int a4=ui->lineEditNum05->text().toInt();
vec1.push_back(a4);
sort(vec1.begin(),vec1.end());
QString str1=QString::number(vec1.at(0));
QString str2=QString::number(vec1.at(1));
QString str3=QString::number(vec1.at(2));
QString str4=QString::number(vec1.at(3));
QString str5=QString::number(vec1.at(4));
ui->lineEditNum01->setText(str1);
ui->lineEditNum02->setText(str2);
ui->lineEditNum03->setText(str3);
ui->lineEditNum04->setText(str4);
ui->lineEditNum05->setText(str5);
return;
}
二 案例:----點擊保存按鈕 可以將界面的學生信息 寫到a.txt文件裏:
在界面上增加下列控件:
number 學號 LineEdit
name 姓名 LineEdit
sec 性別 ComboBox
age 年齡 LineEdit
chengji 成績 RadioButton 3個 優 良 中
aihao 愛好 CheckButton 3個 游泳 聽音樂 跑步
//代碼:--點擊保存按鈕 觸發的函數
void ResultDialog::on_pushButtonSave_clicked()
{
int number=m_ui->lineEditNumber->text().toInt();
char *name1=m_ui->lineEditName->text().toAscii().data();
char name[20];
strcpy(name,name1);
char *sex1=m_ui->comboBoxSex->currentText().toAscii().data();
char sex[20];
strcpy(sex,sex1);
int age=m_ui->lineEditAge->text().toInt();
char chengji[10];
if(m_ui->radioButtonA->isChecked())
{
strcpy(chengji,"優");
}
else if(m_ui->radioButtonB->isChecked())
{
strcpy(chengji,"良");
}
else if(m_ui->radioButtonC->isChecked())
{
strcpy(chengji,"中");
}
else
{
QMessageBox::warning(this,"告警信息","未選成績");
return ;
//strcpy(chengji,"");
}
QString str;
if(m_ui->checkBoxMusic->isChecked())
{
str+="音樂";
}
if(m_ui->checkBoxSwim->isChecked())
{
str+="游泳";
}
if(m_ui->checkBoxWalk->isChecked())
{
str+="跑步";
}
char *str_c=str.toAscii().data();
FILE *fp=fopen("a.txt","w");
fprintf(fp,"%d %s %s %d %s %s ",number,name,sex,age,chengji,str_c);
fclose(fp);
return;
}
三 案例:Spin Box組件的使用
使用步驟:
1、在界面 放1個Spin Box組件
修改 Object Name爲 合適的名字
2、在 界面對應的cpp文件 中的 構造函數中,增加下列語句
m_ui->spinBoxAge->setRange(1,99); //本例中,該組件放 學生年齡,要求在1-99之間
3、在其它函數中,可以讀取該 Spin Box組件 選取的值了
void ResultDialog::on_pushButtonSave_clicked()
{
int number=m_ui->lineEditNumber->text().toInt();
char *name1=m_ui->lineEditName->text().toAscii().data();
char name[20];
strcpy(name,name1);
char *sex1=m_ui->comboBoxSex->currentText().toAscii().data();
char sex[20];
strcpy(sex,sex1);
//int age=m_ui->lineEditAge->text().toInt();
int age=m_ui->spinBoxAge->text().toInt(); //該語句使用了 SpinBox組件
char chengji[10];
if(m_ui->radioButtonA->isChecked())
{
strcpy(chengji,"優");
}
else if(m_ui->radioButtonB->isChecked())
{
strcpy(chengji,"良");
}
else if(m_ui->radioButtonC->isChecked())
{
strcpy(chengji,"中");
}
else
{
QMessageBox::warning(this,"告警信息","未選成績");
return ;
//strcpy(chengji,"");
}
QString str;
if(m_ui->checkBoxMusic->isChecked())
{
str+="音樂";
}
if(m_ui->checkBoxSwim->isChecked())
{
str+="游泳";
}
if(m_ui->checkBoxWalk->isChecked())
{
str+="跑步";
}
char *str_c=str.toAscii().data();
FILE *fp=fopen("a.txt","w");
fprintf(fp,"%d %s %s %d %s %s ",number,name,sex,age,chengji,str_c);
fclose(fp);
return;
}
四 案例:TableWidget組件的使用
步驟:
1、在界面上增加 TableWidget組件,並修改Object Name爲合適的名字
2、在界面的構造函數中,設置表格的行數、列數、表頭
3、在 添加按鈕的 觸發函數中,讀界面上的學生信息,然後寫到表格的第1行中
//cpp文件代碼:
#include "studentmanage001widget.h"
#include "ui_studentmanage001widget.h"
StudentManage001Widget::StudentManage001Widget(QWidget *parent)
: QWidget(parent), ui(new Ui::StudentManage001Widget)
{
ui->setupUi(this);
ui->tableWidgetStudent->setRowCount(5); //設置表格的 行數
ui->tableWidgetStudent->setColumnCount(6); //設置表格的 列數
QTableWidgetItem *itemNumber=new QTableWidgetItem("學號"); //下面都是在設置 橫向表頭
ui->tableWidgetStudent->setHorizontalHeaderItem(0,itemNumber);
QTableWidgetItem *itemName=new QTableWidgetItem("姓名");
ui->tableWidgetStudent->setHorizontalHeaderItem(1,itemName);
QTableWidgetItem *itemSex=new QTableWidgetItem("性別");
ui->tableWidgetStudent->setHorizontalHeaderItem(2,itemSex);
QTableWidgetItem *itemAge=new QTableWidgetItem("年齡");
ui->tableWidgetStudent->setHorizontalHeaderItem(3,itemAge);
QTableWidgetItem *itemChengji=new QTableWidgetItem("成績");
ui->tableWidgetStudent->setHorizontalHeaderItem(4,itemChengji);
QTableWidgetItem *itemAihao=new QTableWidgetItem("愛好");
ui->tableWidgetStudent->setHorizontalHeaderItem(5,itemAihao);
}
StudentManage001Widget::~StudentManage001Widget()
{
delete ui;
}
void StudentManage001Widget::on_pushButtonAppend_clicked() //點擊 添加按鈕後,觸發的函數
{
QLabel *labelNumber=new QLabel(ui->lineEditNumber->text(),this); //利用QLabel來轉化LineEdit
ui->tableWidgetStudent->setCellWidget(0,0,labelNumber); //第3個參數,要求是QWidget *,或它的派生類。但如果,直接放ui->lineEditNumber,則實際上會剪切到表格中,因此,需要利用QLabel來進行轉換
ui->tableWidgetStudent->setCellWidget(0,1,ui->lineEditName); //後面的語句,也都需要做上述處理
ui->tableWidgetStudent->setCellWidget(0,2,ui->comboBoxSex);
ui->tableWidgetStudent->setCellWidget(0,3,ui->spinBoxAge);
//ui->tableWidgetStudent->setCellWidget(0,4,ui->);
//ui->tableWidgetStudent->setCellWidget(0,5,ui->lineEditNumber);
}