赞
踩
这次任务要完成弹出窗口及QSlider控件的界面设计及代码编写
一、Qt5弹出窗口
1、界面式布局
建立项目工程文件
(1)、建立应用程序
选择后,命名、两个下一步后进入设置界面
下一步后点击完成。
⑵、进入设置界面,进行界面布局设计
双击dialog.ui,进入界面设计页面。
在界面拖曳一个PushButton控件,其属性设置如下:
其设计效果:
(3),添加单击“学生基本信息”后弹出的窗口。
步骤:
①、右击项目文件,在弹出的菜单中找到“添加新文件”,进入选择界面
选择后:
下一步:
完成后,在左侧设计增加了StuDialog界面及文件
②、增加代码,使两界面有联系
步骤:
首先,双击中dialog.h,添加studialo.h头文件,然后定义窗口变量
其次,双击“dialog.ui”,右击“学生基本信息”控件,在弹出菜单中找到“转到槽”,进入设计界面。
确定后,最后添加代码:
③、运行程序,查看结果:
2、重复第1过程的步骤,再建立一个“调色示例”弹出窗口
其设计界面及属性:
设计界面:
其属性:
设计完毕后,再添加弹出窗口,最后效果
添加代码同第1过程:
运行效果:
二、功能界面设计及代码编写
1、功能界面设计(先设计“调色示例”)
双击“colormixdialog.ui”,进入界面设计。
第②、③部分属性设计如下(从上至下):
第②部分刻度大小:
界面运行效果:
2、功能代码实现
双击“colormixdialog.ui”,右击“SliderRed”,在弹出菜单找到“转到槽”
确定后,添加代码:
然后在窗口类ColorMixDialog的构造函数里添加另外三个槽函数:
3、运行程序,查看结果:
三、学生基本信息界面设计及代码编写
1、界面设计
双击“studialog.ui”进行界面设计
其属性:
界面运行效果:
2、功能代码实现
首先在studialog.cpp中加入头文件
其次:双击studialog.ui界面,右击“修改姓名”控件,在弹出菜单找到“转到槽”
单击“OK”后,进入编辑代码:
- bool ok;
-
- QString text = QInputDialog::getText(this,tr("修改姓名对话框"),tr("请输入姓名:"),QLineEdit::Normal,ui->NameLabel->text(),&ok);
-
- if ( ok && !text.isEmpty())
- ui->NameLabel->setText(text);
最后,运行程序,查看结果:
如果要把弹出窗口中的Ok,Cancel变为中文,要重新定义窗口,并赋值,代码如下:
- QInputDialog* inputDialog=new QInputDialog(this);
-
- inputDialog->setWindowTitle("修改姓名对话框");
- inputDialog->setLabelText("请输入姓名:");
- inputDialog->setOkButtonText("确定");
- inputDialog->setCancelButtonText("取消");
-
- bool ok;
-
- if(inputDialog->exec()==QDialog::Accepted){
- ok=true;
- }else{
- ok=false;
- }
-
- QString text=inputDialog->textValue();
-
- if ( ok && !text.isEmpty())
- {
- ui->nameLabel->setText(text);
- }
运行结果:
按同样步骤,完成“修改性别”,“修改年龄”,“修改成绩”功能。
其各自对应功能代码如下:
- 修改性别”:
- QStringList SexItems;
- SexItems << tr("男") << tr("女");
- bool ok;
-
- QString SexItem = QInputDialog::getItem(this,tr("性别修改对话框"),tr("请选择性别:"),SexItems,0,false,&ok);
-
- if ( ok && !SexItem.isEmpty() )
- ui->SexLabel->setText(SexItem);
-
- “修改年龄”:
- bool ok;
- int age = QInputDialog::getInt(this,tr("修改年龄对话框"),tr("请输入年龄:"),ui->AgeLabel->text().toInt(&ok),0,100,1,&ok);
-
- if ( ok )
- ui->AgeLabel->setText(QString(tr("%1")).arg(age));
-
- “修改成绩”:
- bool ok;
- double score = QInputDialog::getDouble(this,tr("修改成绩对话框"),tr("请输入成绩:"),ui->ScoreLabel->text().toDouble(&ok),0,100,1,&ok);
-
- if ( ok )
- ui->ScoreLabel->setText(QString(tr("%1")).arg(score));
运行程序,查看结果:
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。