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佈局:
窗口效果: