一、添加资源文件
1、将图片文件 拷贝到项目位置下
2、右键项目->添加新文件->Qt->Qt resourse File->给资源文件起名
3、res生成 res.qrc
4、open in editor 编辑资源
5、添加前缀 添加文件
6、使用 : " : + 前缀名 + 文件名
二、模态对话框与非模态对话框
1、模态对话框:不可以对其他窗口进行操作
2、非模态对话框:可以对其他窗口进行操作,防止一闪而过,创建到堆区
模态对话框创建:
QDialog dlg(this);
resize(400,400);
dlg.exec();
非模态对话框:
QDialog *dlg = new QDialog(this);
dlg->resize(200,200);
dlg->show();
dlg->setAtribute(Qt::WA_DeleteOnClose);//delete dlg,保证内存不会泄漏,55号属性
三、标准对话框
所谓标准对话框,是Qt内置得一系列对话框,用于简化开发。事实上,有很多对话框都是通用的,比如打开文件、设置颜色、打印设置等。这些对话框在所有程序中几乎相同,因此没有必要在每一个程序中都自己实现这么一个对话框。
Qt内置的对话框大致分为一下几类:
- QColorDialog: 选择颜色
- QFileDialog: 选择文件或目录
- QFontDialog: 选择字体
- QInputDialog: 允许用户输入一个值,并将其值返回
- QMessageBox 模态对话框,用于显示信息、询问问题等
- QPageSetupDialog 为打印机提供纸张相关的选项
- QPrintDialog 打印机设置
- QPrintPreviewDialog 打印预览
- QProgressDialog 显示操作过程
1、QColorDialog框常用方法:
QColor color = QColorDialog::getColor(QColor(255,0,0));
qDebug() << "r=" << color.red() << "g=" <<color.green() << "b=" <<color.blue();
2、QFileDialog常用方法:
//打开文件且输出路径
QString str=QFileDialog::getOpenFileName(this,"对话框标题","默认打开路径","过滤文件格式:*+后缀名");
qDebug()<< str;
3、QFontDialog常用方法:
bool flag;
QFont font= QFontDialog::getFont(&flag,QFont("华文彩云",36);
四、常用控件-按钮组
QPushButton 常用按钮
QToolButton 工具按钮 用于显示图片,如果想显示文字,修改风格:toolButtonStyle,凸起风格 autoRaise
radioButton 单选按钮,设置默认:ui->rdb_man->setChecked(true);
checkBox 多选按钮,监听状态:2选中,1半选 0未选中
QListWidget 控件
QListWidgetItem *item =new QListWidgetItem("锄禾日当午");//一行内容
ui->listWidget->addItem(item);
item->setTextAlignment(Qt::AlignHCenter);//文字水平居中
可以利用addItems 一次性添加整个诗内容:
QStringList list;//容器
list << "锄禾日当午" <<"汗滴禾下土" << "谁知盘中餐" <<"粒粒皆辛苦";
ui->listWidget->addItems(list);
QTreeWidget树控件
//QTreeWidget使用 //设置水平头 ui->treeWidget->setHeaderLabels(QStringList()<<"英雄" <<"英雄介绍"); QTreeWidgetItem *item = new QTreeWidgetItem(QStringList()<<"力量");//一行 QTreeWidgetItem *item1 = new QTreeWidgetItem(QStringList()<<"敏捷");//一行 QTreeWidgetItem *item2 = new QTreeWidgetItem(QStringList()<<"智力");//一行 //加载顶层节点 ui->treeWidget->addTopLevelItem(item); ui->treeWidget->addTopLevelItem(item1); ui->treeWidget->addTopLevelItem(item2); //增加子节点(addChild) QStringList hero; hero << "刚被猪" <<"前排塔克,能在吸收伤害的同时造成可观的范围输出"; QTreeWidgetItem *one = new QTreeWidgetItem(hero); item->addChild(one); QStringList hero1; hero1 << "月骑士" <<"中排物理输出,可以使用分裂利刃攻击多个目标"; QTreeWidgetItem *one1 = new QTreeWidgetItem(hero1); item1->addChild(one1); QStringList hero2; hero2 << "巫医" <<"后排辅助法师,可以使用奇特的巫术诅咒敌人与治疗队友"; QTreeWidgetItem *one2= new QTreeWidgetItem(hero2); item2->addChild(one2);
结果如下图所示:
QTabelWidget控件
//tabelWidget控件 //设置列数 ui->tableWidget->setColumnCount(3); //设置水平表头 ui->tableWidget->setHorizontalHeaderLabels(QStringList() <<"姓名" << "性别" << "年龄"); //设置行数 ui->tableWidget->setRowCount(2); //设置正文 ui->tableWidget->setItem(0,0,new QTableWidgetItem("内容)); QStringList nameList; nameList << "内容1" << "内容2" << "内容3" ; QLsit<QString> sexList; sexList<<"男"<< "女" ; //将内容设置到表中 for(int i=0;i<2 ; i++) { int co1=0; ui->tableWidget->setItem(i,col++, new QTableWidgetItem(nameList[i]); ui->tableWidget->setItem(i,col++, new QTableWidgetItem(sexList.at[i]); int 转 QString ui->tableWidget->setItem(i,col++, new QTableWidgetItem(QString::number(i+18))); }
五、常用控件介绍:
stackedWidget 栈控件
ui->stackedWidget->setCurentIndex(1);
ComboBox 下拉框控件
ui->comboBox->addItem("内容");
QLabel 显示图片
ui->lable->setPixmap(QPixmap("图片路径“));
QLabel 显示动态图 gif图
QMovie *move =new QMovie("E:\\picture\\hs.gif"); ui->label->setMovie(move); move->start();