0421 P23 02登录窗口布局
界面的布局:
使用widget进行布局:水平、垂直、栅格
给用户名、密码、登录、退出按钮布局
使用弹簧:水平、垂直弹簧
首先拖拽几个控件:
编译生成程序,查看结果,发现问题:页面的布局不随着窗口大小变动位置。
使用弹簧控件,使用widget,使用Group Box
输入密码:选择输入时不显示明文
效果展示:
09控件-按钮组:
通过拖拽选择按钮的功能
给按钮添加图标:
拖拽按钮和代码解和,在List Widget中写诗:
在ui界面中,选中刚才拖得listWidget,查看一下名字是:listWidget,要在编辑(写代码)界面用到
代码:
#include "widget.h"
#include "ui_widget.h"
Widget::Widget(QWidget *parent) :
QWidget(parent),
ui(new Ui::Widget)
{
ui->setupUi(this);
//单选按钮的默认值
ui->radioButton_man->setChecked(true);
//利用listwidget写诗
QListWidgetItem* item = new QListWidgetItem("君不见黄河之水天上来,奔流到海不复回。");
//将一行诗放入到listWidget控件中
ui->listWidget->addItem(item);
item->setTextAlignment(Qt::AlignHCenter);//参数:ananF1进入帮助手册,找参数类型
//QStringList QList<QString>
QStringList list;
list<<"君不见高堂明镜悲白发,朝如青丝暮成雪"<<"人生得意须尽欢⑷,莫使金樽空对月"<<"天生我材必有用,千金散尽还复来";
ui->listWidget->addItems(list);
}
Widget::~Widget()
{
delete ui;
}
窗口效果显示:
0422P26 11QTreeWidget得数控件
新建项目,在ui中拖拽TreeWidget控件
代码:
Widget::Widget(QWidget *parent) :
QWidget(parent),
ui(new Ui::Widget)
{
ui->setupUi(this);
//treeWidget控件得使用
//设置水平头
ui->treeWidget->setHeaderLabels(QStringList()<<"英雄"<<"英雄介绍");
QTreeWidgetItem * ad_item = new QTreeWidgetItem(QStringList() << "射手");
QTreeWidgetItem * ci_item = new QTreeWidgetItem(QStringList() << "刺客");
QTreeWidgetItem * tank_item = new QTreeWidgetItem(QStringList() << "坦克");
//加载顶层得节点
ui->treeWidget->addTopLevelItem(ad_item);
ui->treeWidget->addTopLevelItem(tank_item);
ui->treeWidget->addTopLevelItem(ci_item);
//追加子节点
QStringList hero_ad_1;
hero_ad_1 << "艾希" <<"后排射手";
QTreeWidgetItem *ad_1 =new QTreeWidgetItem(hero_ad_1);
ad_item->addChild(ad_1);
QStringList hero_ad_2;
hero_ad_2 << "卡莉斯塔" <<"后排射手";
QTreeWidgetItem *ad_2 =new QTreeWidgetItem(hero_ad_2);
ad_item->addChild(ad_2);
QStringList hero_tank_1;
hero_tank_1 << "熔岩巨兽" <<"后排石头人辅助";
QTreeWidgetItem *tank_1 =new QTreeWidgetItem(hero_tank_1);
tank_item->addChild(tank_1);
QStringList hero_tank_2;
hero_tank_2 << "盖伦" <<"德玛西亚";
QTreeWidgetItem *tank_2 =new QTreeWidgetItem(hero_tank_2);
tank_item->addChild(tank_2);
QStringList hero_ci_1;
hero_ci_1 << "劫" <<"AD刺客";
QTreeWidgetItem * ci_1 = new QTreeWidgetItem(hero_ci_1);
ci_item->addChild(ci_1);
}
窗口程序展示:
P27 12 QTablewidget控件
创建新项目,进入ui编辑,拖拽控件Table Widget
找到控件名称:TableWidget,编程一会用到
代码:
Widget::Widget(QWidget *parent) :
QWidget(parent),
ui(new Ui::Widget)
{
ui->setupUi(this);
//TableWidget控件
//设置列数:3
ui->tableWidget->setColumnCount(3);
//设置水平表头
ui->tableWidget->setHorizontalHeaderLabels(QStringList()<<"英雄"<<"位置"<<"年龄");
//设置行数:5
ui->tableWidget->setRowCount(5);
//设置正文
//ui->tableWidget->setItem(0,0,new QTableWidgetItem("亚瑟"));
QStringList name_list;
name_list <<"亚瑟"<<"安琪拉"<<"后裔"<<"赵云"<<"李元芳";
QList<QString> area_list;
area_list <<"上路"<<"中路"<<"发育路"<<"打野"<<"打野";
for(int i = 0;i < 5;i++)
{
int col = 0;
ui->tableWidget->setItem(i,col++,new QTableWidgetItem(name_list[i]));
ui->tableWidget->setItem(i,col++,new QTableWidgetItem(area_list.at(i)));
//int 转QString
ui->tableWidget->setItem(i,col++,new QTableWidgetItem(QString::number(i+8)));
}
}
效果展示:
P28 13 其他控件介绍
代码:
Widget::Widget(QWidget *parent) :
QWidget(parent),
ui(new Ui::Widget)
{
ui->setupUi(this);
//栈控件得使用
//默认栈控件的定位
ui->stackedWidget->setCurrentIndex(0);
connect(ui->btn_tab,&QPushButton::clicked,[=](){
ui->stackedWidget->setCurrentIndex(0);
});//
connect(ui->btn_scroll,&QPushButton::clicked,[=](){
ui->stackedWidget->setCurrentIndex(1);
});
connect(ui->btn_tool,&QPushButton::clicked,[=](){
ui->stackedWidget->setCurrentIndex(2);
});
//下拉框
ui->comboBox->addItems(QStringList()<<"123"<<"456"<<"789");
//利用Qlable显示图片
ui->label->setPixmap(QPixmap(":/Image/road2.jpg"));
//利用Qlable显示gif动图
QMovie * eat_movie = new QMovie(":/Image/eat.gif");
ui->label_gif->setMovie(eat_movie);
//播放动图
eat_movie->start();
}
ui布局:
窗口效果: