当前位置: 首页 > wzjs >正文

网站建设公司的商业模式谷歌推广哪家公司好

网站建设公司的商业模式,谷歌推广哪家公司好,网站代做,免费做会计试题网站1.列表 List Widget 属性特点currentRow当前被选中的是第几行count一共有多少行sortingEnabled是否允许排序isWrapping是否允许换行itemAlignment元素的对齐方式selectRectVisible被选中的元素矩形是否可见spacing元素之间的间隔 方法特点addItem(const QString& label)…
1.列表

List Widget

属性特点
currentRow当前被选中的是第几行
count一共有多少行
sortingEnabled是否允许排序
isWrapping是否允许换行
itemAlignment元素的对齐方式
selectRectVisible被选中的元素矩形是否可见
spacing元素之间的间隔
方法特点
addItem(const QString& label)
addItem(QListWidgetItem *item)
列表中添加元素
currentItem()返回 QListWidgetItem* 表示当前选中的元素
setCurrentItem(QListWidgetItem* item)设置选中哪个元素
setCurrentRow(int row)设置选中第几行的元素
insertItem(const QString& label, int row)
insertItem(QListWidgetItem *item, int row)
在指定的位置插入元素
item(int row)返回 QListWidgetItem* 表示第 row 行的元素
takeItem(int row)删除指定行的元素, 返回 QListWidgetItem* 表示是哪个元素被删除了

信号特点
currentItemChanged(QListWidgetItem* current, QListWidgetItem* old)选中不同元素时会触发. 参数是当前选中的元素和之前选中的元素
currentRowChanged(int)选中不同元素时会触发. 参数是当前选中元素的行数
itemClicked(QListWidgetItem* item)点击某个元素时触发
itemDoubleClicked(QListWidgetItem* item)双击某个元素时触发
itemEntered(QListWidgetItem* item)鼠标进入元素时触发

在上述介绍中涉及到⼀个关键的类:QListWidgetItem,这个类表示 QListWidget 中的一个元素。核心方法如下,本质上就是⼀个 “文本+图标” 构成的

setFont: 设置字体
setIcon: 设置图标
setHidden: 设置隐藏
setSizeHint: 设置尺寸
setSelected: 设置是否选中
setText: 设置文本
setTextAlignment: 设置文本对齐方式
这些方法允许我们自定义 Q List Widget Item 的外观和行为。

通过结合使用 QListWidget 的属性、方法和信号,以及 QListWidgetItem 的方法,可以创建高度定制化的列表控件

编写一个程序,演示程序,实现程序记录和增删功能

#include "widget.h"
#include "ui_widget.h"Widget::Widget(QWidget *parent): QWidget(parent), ui(new Ui::Widget)
{ui->setupUi(this);connect(ui->pushButton,&QPushButton::clicked,this,&Widget::truebutton);connect(ui->pushButton_2,&QPushButton::clicked,this,&Widget::falsebutton);connect(ui->listWidget,&QListWidget::currentItemChanged,this,&Widget::print);
}Widget::~Widget()
{delete ui;
}
void Widget::truebutton()
{if(!ui->lineEdit->text().isEmpty()){ui->listWidget->addItem(ui->lineEdit->text());}
}
void Widget::falsebutton()
{int row=ui->listWidget->currentRow();ui->listWidget->takeItem(row);}
void Widget::print(QListWidgetItem*pre1,QListWidgetItem*now1)
{if(pre1){ if(!pre1->text().isEmpty()){ui->textEdit->append("先前选中"+pre1->text());}
}if(now1)
{if(!now1->text().isEmpty()){ui->textEdit->append("现在选中"+now1->text());}}
}

2.表格

TableWidget,表格中的每一格都是一个QTableWidge tItem对象

QTableWidget方法特点
item(int row, int column)根据行数列数获取指定的 QTableWidgetItem*
setItem(int row, int column, QTableWidgetItem*)根据行数列数设置表格中的元素
currentItem()返回被选中的元素 QTableWidgetItem*
currentRow()返回被选中元素是第几行
currentColumn()返回被选中元素是第几列
row(QTableWidgetItem*)获取指定 item 是第几行
column(QTableWidgetItem*)获取指定 item 是第几列
rowCount()获取行数
columnCount()获取列数
insertRow(int row)在第 row 行处插入新行
insertColumn(int column)在第 column 列插入新列
removeRow(int row)删除第 row 行
removeColumn(int column)删除第 column 列
setHorizontalHeaderItem(int column, QTableWidgetItem*)设置指定列的表头
setVerticalHeaderItem(int row, QTableWidgetItem*)设置指定行的表头
QTableWidget tltem信号特点
cellClicked(int row, int column)点击单元格时触发
cellDoubleClicked(int row, int column)双击单元格时触发
cellEntered(int row, int column)鼠标进入单元格时触发
currentCellChanged(int row, int column, int previousRow, int previousColumn)选中不同单元格时触发
QTableWidget tltem方法特点
row()获取当前是第几行
column()获取当前是第几列
setText(const QString&)设置文本
setTextAlignment(int)设置文本对齐
setIcon(const QIcon&)设置图标
setSelected(bool)设置被选中
setSizeHint(const QSize&)设置尺寸
setFont(const QFont&)设置字体

写出演示程序,实现表格行列的增加和减少

#include "widget.h"
#include "ui_widget.h"Widget::Widget(QWidget *parent): QWidget(parent), ui(new Ui::Widget)
{ui->setupUi(this);ui->tableWidget->insertRow(0);ui->tableWidget->insertRow(1);ui->tableWidget->insertRow(2);ui->tableWidget->insertColumn(0);ui->tableWidget->insertColumn(1);ui->tableWidget->insertColumn(2);ui->lineEdit->setClearButtonEnabled(true);connect(ui->pushButton,&QPushButton::clicked,this,&Widget::addrow);connect(ui->pushButton_2,&QPushButton::clicked,this,&Widget::addcolumn);connect(ui->pushButton_3,&QPushButton::clicked,this,&Widget::deleterow);connect(ui->pushButton_4,&QPushButton::clicked,this,&Widget::deletecolumn);}
void Widget::addcolumn()
{int column=ui->tableWidget->columnCount();ui->tableWidget->insertColumn(column);if(!ui->lineEdit->text().isEmpty()){ui->tableWidget->setHorizontalHeaderItem(column,new QTableWidgetItem(ui->lineEdit->text()));}else{qDebug()<<"请输入列名";}}
void Widget::addrow()
{int row1=ui->tableWidget->rowCount();ui->tableWidget->insertRow(row1);
}
Widget::~Widget()
{delete ui;
}
void Widget::deleterow()
{int row1=ui->tableWidget->currentRow();ui->tableWidget->removeRow(row1);
}
void Widget::deletecolumn()
{int column=ui->tableWidget->currentColumn();ui->tableWidget->removeColumn(column);
}

 

3.树形图

QTreeWidget 每个节点是 QTreeWidge tItem,注意该树形结构没有根节点的设置,是从根节点的孩子进行设置,这样可以设置多个顶层节点

QTreeWIdget方法特点
clear()清空所有子节点
addTopLevelItem(QTreeWidgetItem* item)新增顶层节点
topLevelItem(int index)获取指定下标的顶层节点
topLevelItemCount()获取顶层节点个数
indexOfTopLevelItem(QTreeWidgetItem* item)查询指定节点是顶层节点中的下标
takeTopLevelItem(int index)删除指定的顶层节点,返回 QTreeWidgetItem* 表示被删除的元素
currentItem()获取当前选中的节点,返回 QTreeWidgetItem*
setCurrentItem(QTreeWidgetItem* item)选中指定节点
setExpanded(bool)展开/关闭节点
setHeaderLabel(const QString& text)设置 TreeWidget 的 header 名称
QTreeWidget信号

特点

currentItemChanged(QTreeWidgetItem* current, QTreeWidgetItem* old)切换选中元素时触发
itemClicked(QTreeWidgetItem* item, int col)点击元素时触发
itemDoubleClicked(QTreeWidgetItem* item, int col)双击元素时触发
itemEntered(QTreeWidgetItem* item, int col)鼠标进入时触发
itemExpanded(QTreeWidgetItem* item)元素被展开时触发
itemCollapsed(QTreeWidgetItem* item)元素被折叠时触发
QTreeWidget tltem属性特点
text持有的文本
textAlignment文本对齐方式
icon持有的图标
font文本字体
hidden是否隐藏
disabled是否禁用
expanded是否展开
sizeHint尺寸大小
selected是否选中
QTreeWidget tltem信号特点
addChild(QTreeWidgetItem* child)新增子节点
childCount()子节点的个数
child(int index)获取指定下标的子节点,返回 QTreeWidgetItem*
takeChild(int index)删除对应下标的子节点
removeChild(QTreeWidgetItem* child)删除对应的子节点
parent()获取该元素的父节点

 创建一棵演示树

#include "widget.h"
#include "ui_widget.h"Widget::Widget(QWidget *parent): QWidget(parent), ui(new Ui::Widget)
{ui->setupUi(this);QTreeWidgetItem *top1=new QTreeWidgetItem();top1->setText(0,"狗");QTreeWidgetItem*top2=new QTreeWidgetItem();top2->setText(0,"猫");ui->treeWidget->addTopLevelItem(top1);ui->treeWidget->addTopLevelItem(top2);QTreeWidgetItem *child11=new QTreeWidgetItem();child11->setText(0,"瘦猫");QTreeWidgetItem*child12=new QTreeWidgetItem();child12->setText(0,"胖猫");top2->addChild(child11);top2->addChild(child12);connect(ui->pushButton,&QPushButton::clicked,this,&Widget::inserttop);connect(ui->pushButton_2,&QPushButton::clicked,this,&Widget::insertthis);connect(ui->pushButton_3,&QPushButton::clicked,this,&Widget::deletethis);
}
void Widget::inserttop()
{QTreeWidgetItem*i1=new QTreeWidgetItem();if(!ui->lineEdit->text().isEmpty())i1->setText(0,ui->lineEdit->text());ui->treeWidget->addTopLevelItem(i1);}
void Widget::insertthis()
{QTreeWidgetItem*i1=new QTreeWidgetItem();if(!ui->lineEdit->text().isEmpty())i1->setText(0,ui->lineEdit->text());QTreeWidgetItem*nowthis=ui->treeWidget->currentItem();nowthis->addChild(i1);
}
void Widget::deletethis()
{QTreeWidgetItem*nowthis=ui->treeWidget->currentItem();if(!nowthis){return;}QTreeWidgetItem*parent=nowthis->parent();if(!parent){int ed=ui->treeWidget->indexOfTopLevelItem(nowthis);ui->treeWidget->takeTopLevelItem(ed);}else{parent->removeChild(nowthis);}
}
Widget::~Widget()
{delete ui;
}

4.分组框

QGroupBox

属性特点
title分组框的标题
alignment分组框内部内容的对齐方式
flat是否是 “扁平” 模式;设置为 true时,分组框将不显示边框,呈现扁平化外观
checkable是否可选择;设为 true,则在 title前方会多出一个可勾选的部分
checked描述分组框的选择状态(前提是 checkable为 true

用的很少,不做过多演示

5.标签页

QTableWidget 

属性特点
tabPosition标签页所在的位置:
- North 上方
- South 下方
- West 左侧
- East 右侧
currentIndex当前选中了第几个标签页(从0开始计算)
currentTabText当前选中的标签页的文本
currentTabName当前选中的标签页的名字
currentTabIcon当前选中的标签页的图标
currentTabToolTip当前选中的标签页的提示信息
tabsClosable标签页是否可以关闭
movable标签页是否可以移动
信号属性
currentChanged(int)在标签页发生切换时触发,参数为被点击的选项卡编号。
tabBarClicked(int)在点击选项卡的标签条的时候触发,参数为被点击的选项卡编号。
tabBarDoubleClicked(int)在双击选项卡的标签条的时候触发,参数为被点击的选项卡编号。
tabCloseRequested(int)在标签页关闭请求时触发,参数为被请求关闭的选项卡编号。

编写按钮实现标签页的增减

#include "widget.h"
#include "ui_widget.h"Widget::Widget(QWidget *parent): QWidget(parent), ui(new Ui::Widget)
{ui->setupUi(this);QLabel*l1=new QLabel(ui->tab);l1->setText("标签页1");l1->resize(100,50);QLabel*l2=new QLabel(ui->tab_2);l2->setText("标签页2");l2->resize(100,50);connect(ui->pushButton,&QPushButton::clicked,this,&Widget::addtab);connect(ui->pushButton_2,&QPushButton::clicked,this,&Widget::losetab);
}Widget::~Widget()
{delete ui;
}
void Widget::addtab()
{int cnt=ui->tabWidget->count();QWidget*w=new QWidget();ui->tabWidget->addTab(w,QString("Tab")+QString::number(cnt+1));QLabel*l=new QLabel(w);l->setText("标签页"+QString::number(cnt+1));l->resize(100,50);ui->tabWidget->setCurrentIndex(cnt);
}
void Widget::losetab()
{int cnt=ui->tabWidget->currentIndex();ui->tabWidget->removeTab(cnt);
}

6.垂直布局

QVBoxLayout

属性说明
layoutLeftMargin左侧边距,设置或获取布局内容与容器左边界的距离
layoutRightMargin右侧边距,设置或获取布局内容与容器右边界的距离
layoutTopMargin上方边距,设置或获取布局内容与容器上边界的距离
layoutBottomMargin下方边距,设置或获取布局内容与容器下边界的距离
layoutSpacing相邻元素之间的间距,设置或获取布局中各元素之间的默认间隔

 qt creater中使用垂直布局

#include "widget.h"
#include "ui_widget.h"
#include<QPushButton>
#include<QVBoxLayout>
Widget::Widget(QWidget *parent): QWidget(parent), ui(new Ui::Widget)
{ui->setupUi(this);QPushButton*q1=new QPushButton("q1");QPushButton*q2=new QPushButton("q2");QPushButton*q3=new QPushButton("q3");QVBoxLayout*lay=new QVBoxLayout();lay->addWidget(q1);lay->addWidget(q2);lay->addWidget(q3);this->setLayout(lay);
}Widget::~Widget()
{delete ui;
}

qt designer中,可以设置多个布局管理器,但是不会起作用,原因是一个Widget只能有一个布局管理器,多余的是新建一个Widget对象,所以不会有效

 7.水平布局

QHBoxLayout,属性和垂直布局一样,一般使用也完全相同,现在演示嵌套情况

#include "widget.h"
#include "ui_widget.h"
#include<QPushButton>
#include<QVBoxLayout>
#include<QHBoxLayout>
Widget::Widget(QWidget *parent): QWidget(parent), ui(new Ui::Widget)
{ui->setupUi(this);QPushButton*q1=new QPushButton("q1");QPushButton*q2=new QPushButton("q2");QPushButton*q3=new QPushButton("q3");QVBoxLayout*vb=new QVBoxLayout();this->setLayout(vb);vb->addWidget(q1);vb->addWidget(q2);vb->addWidget(q3);QPushButton*q4=new QPushButton("q4");QPushButton*q5=new QPushButton("q5");QPushButton*q6=new QPushButton("q6");QHBoxLayout*hb=new QHBoxLayout();hb->addWidget(q4);hb->addWidget(q5);hb->addWidget(q6);vb->addLayout(hb);
}Widget::~Widget()
{delete ui;
}

8.网格布局

QGridLayout

属性特点
layoutLeftMargin左侧边距
layoutRightMargin右侧边距
layoutTopMargin上方边距
layoutBottomMargin下方边距
layoutHorizontalSpacing相邻元素之间水平方向的间距
layoutVerticalSpacing相邻元素之间垂直方向的间距
layoutRowStretch行方向的拉伸系数
layoutColumnStretch列方向的拉伸系数
#include "widget.h"
#include "ui_widget.h"
#include<QPushButton>
#include<QGridLayout>
Widget::Widget(QWidget *parent): QWidget(parent), ui(new Ui::Widget)
{ui->setupUi(this);QPushButton*q1=new QPushButton("q1");QPushButton*q2=new QPushButton("q2");QPushButton*q3=new QPushButton("q3");QPushButton*q4=new QPushButton("q4");QGridLayout*lay=new QGridLayout();lay->addWidget(q1,0,0);lay->addWidget(q2,0,1);lay->addWidget(q3,1,0);lay->addWidget(q4,1,1);this->setLayout(lay);
}Widget::~Widget()
{delete ui;
}

注意,0,1代表是第几行第几列

设置列宽度(0则是不参与拉伸),按钮高度固定,所以列高度设置不明显

 

#include "widget.h"
#include "ui_widget.h"
#include<QPushButton>
#include<QGridLayout>
Widget::Widget(QWidget *parent): QWidget(parent), ui(new Ui::Widget)
{ui->setupUi(this);QPushButton*q1=new QPushButton("q1");QPushButton*q2=new QPushButton("q2");QPushButton*q3=new QPushButton("q3");QPushButton*q4=new QPushButton("q4");QPushButton*q5=new QPushButton("q5");QPushButton*q6=new QPushButton("q6");QGridLayout*lay=new QGridLayout();lay->addWidget(q1,0,0);lay->addWidget(q2,0,1);lay->addWidget(q3,1,0);lay->addWidget(q4,1,1);lay->addWidget(q5,0,2);lay->addWidget(q6,1,2);lay->setColumnMinimumWidth(0,200);lay->setColumnMinimumWidth(1,100);lay->setColumnMinimumWidth(2,400);this->setLayout(lay);}Widget::~Widget()
{delete ui;
}

设置垂直拉伸 

QSizePolicy::Ignored:忽略控件的尺寸,不对布局产生影响。
QSizePolicy::Minimum:控件的最小尺寸为固定值,布局时不会超过该值。
QSizePolicy::Maximum:控件的最大尺寸为固定值,布局时不会小于该值。
QSizePolicy::Preferred:控件的理想尺寸为固定值,布局时会尽量接近该值。
QSizePolicy::Expanding:控件的尺寸可以根据空间调整,尽可能占据更多空间。
QSizePolicy::Shrinking:控件的尺寸可以根据空间调整,尽可能缩小以适应空间。

再演示一下用比例设置列间距

#include "widget.h"
#include "ui_widget.h"
#include<QPushButton>
#include<QGridLayout>
Widget::Widget(QWidget *parent): QWidget(parent), ui(new Ui::Widget)
{ui->setupUi(this);QPushButton*q1=new QPushButton("q1");QPushButton*q2=new QPushButton("q2");QPushButton*q3=new QPushButton("q3");QPushButton*q4=new QPushButton("q4");QPushButton*q5=new QPushButton("q5");QPushButton*q6=new QPushButton("q6");q1->setSizePolicy(QSizePolicy::Expanding,QSizePolicy::Expanding);q2->setSizePolicy(QSizePolicy::Expanding,QSizePolicy::Expanding);q3->setSizePolicy(QSizePolicy::Expanding,QSizePolicy::Expanding);q4->setSizePolicy(QSizePolicy::Expanding,QSizePolicy::Expanding);q5->setSizePolicy(QSizePolicy::Expanding,QSizePolicy::Expanding);q6->setSizePolicy(QSizePolicy::Expanding,QSizePolicy::Expanding);QGridLayout*lay=new QGridLayout();lay->addWidget(q1,0,0);lay->addWidget(q2,0,1);lay->addWidget(q3,1,0);lay->addWidget(q4,1,1);lay->addWidget(q5,0,2);lay->addWidget(q6,1,2);lay->setRowStretch(0,1);lay->setRowStretch(1,6);lay->setRowStretch(2,3);this->setLayout(lay);}Widget::~Widget()
{delete ui;
}

网格也能嵌套 

9.表单布局
#include "widget.h"
#include "ui_widget.h"
#include<QFormLayout>
#include<QLabel>
#include<QLineEdit>
Widget::Widget(QWidget *parent): QWidget(parent), ui(new Ui::Widget)
{ui->setupUi(this);QFormLayout*lay=new QFormLayout();this->setLayout(lay);QLabel*l1=new QLabel("账号");QLabel*l2=new QLabel("密码");QLineEdit *e1=new QLineEdit();QLineEdit* e2=new QLineEdit();lay->addRow(l1,e1);lay->addRow(l2,e2);}Widget::~Widget()
{delete ui;
}
 10.space
属性特点
width宽度
height高度
hData

水平方向的 sizePolicy

- QSizePolicy::Ignored: 忽略控件的尺寸,不对布局产生影响。
- QSizePolicy::Minimum: 控件的最小尺寸为固定值,布局时不会超过该值。
QSizePolicy::Maximum: 控件的最大尺寸为固定值,布局时不会小于该值。
QSizePolicy::Preferred: 控件的理想尺寸为固定值,布局时会尽量接近该值。
QSizePolicy::Expanding: 控件的尺寸可以根据空间调整,尽可能占据更多空间。
QSizePolicy::Shrinking: 控件的尺寸可以根据空间调整,尽可能缩小以适应空间。

vData垂直方向的 sizePolicy 选项同上。

演示

#include "widget.h"
#include "ui_widget.h"
#include<QPushButton>
#include<QSpacerItem>
#include<QHBoxLayout>
Widget::Widget(QWidget *parent): QWidget(parent), ui(new Ui::Widget)
{ui->setupUi(this);QPushButton*q1=new QPushButton();QPushButton*q2=new QPushButton();QSpacerItem*sp=new QSpacerItem(200,20);QHBoxLayout *l=new  QHBoxLayout();this->setLayout(l);l->addWidget(q1);l->addSpacerItem(sp);l->addWidget(q2);
}Widget::~Widget()
{delete ui;
}

http://www.dtcms.com/wzjs/453491.html

相关文章:

  • 软件工程项目开发流程百度seo优化是做什么的
  • 京东网站建设哪家好百度平台客服
  • 手机微网站开发的目的和意义如何免费引流推广
  • 网站建设用的软件今天有什么新闻
  • 微信公众平台开发模式网站关键词优化推广哪家好
  • 常州市网站建设公司项目外包平台
  • 设计网站推荐知乎东莞网络推广
  • 徐州做网站谁家最专业优化大师官方网站
  • 网络教育做的好的网站网络营销的基本特征
  • 给女朋友做网站的素材竞价排名推广
  • 昆明网站搭建网页怎么制作
  • 最好的做网站的公司国外域名购买
  • 怎么简化Wordpress欢迎页面北京seo顾问服务公司
  • wordpress导航页seo职业技能培训班
  • 深圳企业社保网站官网荆州seo推广
  • 编程软件免费下载安卓优化大师官网
  • 公司网站建设费用会计处理网页设计与制作软件
  • 建了个网站百度上会有么合肥最新消息今天
  • 网站建设公司好哪家好新闻媒体发布平台
  • 创建网站的向导和模板 信息技术教资面试小程序开发平台官网
  • 合肥网站优化seo网络营销具有哪些优势和吸引力
  • 做日文网站产品推广运营方案
  • 网站建设需求调研通知汕头seo推广优化
  • 无水印效果图网站seo营销排名
  • 做网站去什么公司好连云港百度推广总代理
  • 广州互帮物流哪家公司做的网站镇江关键字优化品牌
  • 做类似于58同城的网站网络推广营销策划方案
  • 做脚本网站seo诊断分析
  • 网建企业北京seo外包 靠谱
  • wordpress 图片选择优化课程