#include "mainwindow.h"
#include <windows.h>
MainWindow::MainWindow(QWidget *parent)
: QMainWindow(parent)
{
this->setFixedSize(500,300);
this->InitUi();
s_PremierLeague<<"曼城";
QString pu = 0x6D66;
s_PremierLeague<<"利物"+ pu;
s_PremierLeague<<"热刺";
QString qie = 0x5207;
s_PremierLeague<<qie+"尔西";
s_PremierLeague<<"曼联";
QString de = 0x5FB7;
QString huang = 0x7687;
QString li = 0x91CC;
s_LaLiga<<"皇家马德" + li;
s_LaLiga<<"巴塞罗那";
s_LaLiga<<"塞维利亚";
s_Liguel<<"巴黎圣日耳曼";
s_SerieA<<"尤文图斯";
s_SerieA<<"罗马";
s_Bundesliga<<"拜仁";
}
MainWindow::~MainWindow()
{
}
void MainWindow::InitUi()
{
//注意setlayout在MainWindow中是不起作用的
centerWindow = new QWidget();
this->setCentralWidget(centerWindow);
v = new QVBoxLayout(this);
h_up = new QHBoxLayout(this);
h_down = new QHBoxLayout(this);
m_PremierLeague = new QPushButton(this);
m_PremierLeague->setText("英超");
connect(m_PremierLeague,SIGNAL(clicked(bool)),this,SLOT(clickPremierLeague()));
h_up->addWidget(m_PremierLeague);
m_LaLiga = new QPushButton("西甲",this);
m_Ligue1 = new QPushButton("法甲",this);
m_SerieA = new QPushButton("意甲",this);
m_Bundesliga = new QPushButton("德甲",this);
h_up->addWidget(m_LaLiga);
connect(m_LaLiga,SIGNAL(clicked(bool)),this,SLOT(clickLaLiga()));
h_up->addWidget(m_Ligue1);
connect(m_Ligue1,SIGNAL(clicked(bool)),this,SLOT(clickLigue1()));
h_up->addWidget(m_SerieA);
connect(m_SerieA,SIGNAL(clicked(bool)),this,SLOT(clickSerieA()));
h_up->addWidget(m_Bundesliga);
connect(m_Bundesliga,SIGNAL(clicked(bool)),this,SLOT(clickBundesliga()));
v->addLayout(h_up);
v->addLayout(h_down);
centerWindow->setLayout(v);
}
void MainWindow::DynamicLayout(QStringList name)
{
//判断此布局内的控件个数
if(h_down->count() > 0)
{
int count = h_down->count();
for(int i = count-1 ; i >= 0 ; i --)
{
QLayoutItem *it = h_down->layout()->takeAt(i);
TeamNameLabel *oldHistory = qobject_cast<TeamNameLabel*>(it->widget());
if(oldHistory != NULL)
delete oldHistory;
}
}
if(name.size() > 0)
{
for(int i = 0 ; i < name.size() ; i++)
{
TeamNameLabel *team = new TeamNameLabel(name[i]);
h_down->addWidget(team);
}
}
}
void MainWindow::clickPremierLeague()
{
DynamicLayout(s_PremierLeague);
}
void MainWindow::clickLaLiga()
{
DynamicLayout(s_LaLiga);
}
void MainWindow::clickLigue1()
{
DynamicLayout(s_Liguel);
}
void MainWindow::clickSerieA()
{
DynamicLayout(s_SerieA);
}
void MainWindow::clickBundesliga()
{
DynamicLayout(s_Bundesliga);
}
qt中QVBoxLayout,QHBoxLayout布局中实现控件的动态加载与显示
2星 需积分: 50 95 浏览量
2018-10-09
01:00:58
上传
评论 3
收藏 3KB ZIP 举报
日子总要往前走
- 粉丝: 36
- 资源: 19
最新资源
- Screenshot_20240427_031602.jpg
- 网页PDF_2024年04月26日 23-46-14_QQ浏览器网页保存_QQ浏览器转格式(6).docx
- 直接插入排序,冒泡排序,直接选择排序.zip
- 在排序2的基础上,再次对快排进行优化,其次增加快排非递归,归并排序,归并排序非递归版.zip
- 实现了7种排序算法.三种复杂度排序.三种nlogn复杂度排序(堆排序,归并排序,快速排序)一种线性复杂度的排序.zip
- 冒泡排序 直接选择排序 直接插入排序 随机快速排序 归并排序 堆排序.zip
- 课设-内部排序算法比较 包括冒泡排序、直接插入排序、简单选择排序、快速排序、希尔排序、归并排序和堆排序.zip
- Python排序算法.zip
- C语言实现直接插入排序、希尔排序、选择排序、冒泡排序、堆排序、快速排序、归并排序、计数排序,并带图详解.zip
- 常用工具集参考用于图像等数据处理
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈