pyqt中QTableWidget的勾选框,怎么pyqt5获取文本框内容他的勾选状态

Qt中QTableWidget加入Check列实现_百度文库
两大类热门资源免费畅读
续费一年阅读会员,立省24元!
Qt中QTableWidget加入Check列实现
阅读已结束,下载文档到电脑
想免费下载更多文档?
定制HR最喜欢的简历
下载文档到电脑,方便使用
还剩2页未读,继续阅读
定制HR最喜欢的简历
你可能喜欢1& 均分各列
<span style="color: #
tableWidget-&horizontalHeader()-&setStretchLastSection(true); //就是这个地方
<span style="color: #
tableWidget-&horizontalHeader()-&setResizeMode(QHeaderView::Stretch);
2& &整行选中:
<span style="color: # tableWidget-&setSelectionBehavior ( QAbstractItemView::SelectRows); //设置选择行为,以行为单位
<span style="color: # tableWidget-&setSelectionMode ( QAbstractItemView::SingleSelection); //设置选择模式,选择单行
3& 删除选中的整行
<span style="color: #
int rowIndex = m_pAttrbuteList-&currentRow();
<span style="color: #
if (rowIndex != -<span style="color: #)
<span style="color: #
tableWidget-&removeRow(rowIndex);
&&&&&&& 为了将数据能够在界面中显示的更清楚一些,在这里应用到了tableWidget控件,现将该控件中删除指定行的代码介绍如下:
&QTable里有一个removeRow(int i)函数用来删除当前行,但是如果我们没有对于table进行任何的选中,那么QTable是如何返回的呢?&用Qt Creator里拖了一个tableWidget,加一个按钮,点击删除后执行
<span style="color: #
int i = ui-&tableWidget-&currentRow();
<span style="color: #
<span style="color: #
msg.setText(QString::number(i));
<span style="color: #
msg.exec();
<span style="color: #
ui-&tableWidget-&removeRow(i);
&在不选择行的情况下发现每次点击后删除的都是第一行,i的输出都是0.
&&&&&& 原因其实很简单,就是因为table的当前焦点在第一样的第一个单元格所导致的,解决的办法就是让table失去焦点,在构造函数里面添加ui-&tableWidget-&setFocusPolicy(Qt::NoFocus);然后再试,发现点击删除按钮如果不选中行的话是不能删除的,返回的i此时是-1。
控件刚开始的时候左边默认自带序列号,如果想去掉左边的行号,加上下面的代码就可以了。
<span style="color: #
QHeaderView* headerView = table的名字-&verticalHeader();
<span style="color: #
headerView-&setHidden(true);
4 添加整行
1 int rowIndex = m_pAttrbuteList-&rowCount();
tableWidget-&setRowCount(rowIndex + <span style="color: #);//总行数增加1
tableWidget-&setRowHeight(rowIndex, <span style="color: #);//设置行的高度
6 --------------------------------------------------------------------------------
8 QTableWidget *table = new QTableWIdget(this);
<span style="color: # table-&setColumnCount(<span style="color: #);
//设置列数
<span style="color: #
<span style="color: # table-&setRowCount(<span style="color: #);
//设置行数/
<span style="color: #
<span style="color: # /*设置列名*/
<span style="color: #
<span style="color: # QStringL
<span style="color: #
<span style="color: # headers&&"列名1"&&"列名2"&&"列名3";
<span style="color: #
<span style="color: # table-&setHorizontalHeaderLabels(headers);
<span style="color: #
<span style="color: # /*给单元格添加内容*/
<span style="color: #
<span style="color: # void addItemContent(int row, int column, QString content)
<span style="color: #
<span style="color: # {
<span style="color: #
<span style="color: #
QTableWidgetItem *item = new QTableWidgetItem (content);
<span style="color: #
<span style="color: #
table-&setItem(row, column, item);
<span style="color: #
<span style="color: # }
<span style="color: #
<span style="color: # /*给单元格中增加图标*/
<span style="color: #
<span style="color: # QTableWidgetItem *item = new QTableWidgetItem(QIcon("myImage.jpg"), NULL);
//只加入图标,没有字符串
<span style="color: #
<span style="color: # QTableWidgetItem *item = new QTableWidgetItem(QIcon("myImage.jpg"), myString);
//加入图标和字符串
<span style="color: #
<span style="color: # table-&setItem(row, column, item);
<span style="color: #
<span style="color: # /*插入一行*/
<span style="color: #
<span style="color: # int row = table-&rowCount();
<span style="color: #
<span style="color: # table-&insertRow(row);
<span style="color: #
<span style="color: # /*插入一列*/
<span style="color: #
<span style="color: # int column = table-&columnCount();
<span style="color: #
<span style="color: # table-&insertColumn(column);
<span style="color: #
<span style="color: #
//使行列头自适应宽度,最后一列将会填充空白部分
<span style="color: #
<span style="color: # table-&horizontalHeader()-&setStretchLastSection(true);
<span style="color: #
<span style="color: # //使行列头自适应宽度,所有列平均分来填充空白部分
<span style="color: #
<span style="color: # table-&horizontalHeader()-&setResizeMode(QHeaderView::Strtch);
<span style="color: #
<span style="color: # //使行自适应高度,假如行很多的话,行的高度不会一直减小,当达到一定值时会自动生成一个QScrollBar
<span style="color: #
<span style="color: # table-&verticalHeader()-&setResizeMode(QHeaderView::Strtch);
<span style="color: #
<span style="color: # //设置单击选择一行
<span style="color: #
<span style="color: # table-&setSelectionBehuavior(QAbstractItemView::SelectRows);
<span style="color: #
<span style="color: # //设置每行内容不可编辑
<span style="color: #
<span style="color: # table-&setEditTriggers(QAbstractItemView::NoEditTriggers);
<span style="color: #
<span style="color: # //设置只能选择一行,不能选择多行
<span style="color: #
<span style="color: # table-&setSelectionMode(QAbstractItemView::SingleSelection);
<span style="color: #
<span style="color: # /*去掉每行的行号*/
<span style="color: #
<span style="color: # QHeaderView *headerView = table-&verticalHeader();
<span style="color: #
<span style="color: # headerView-&setHidden(true);
<span style="color: #
<span style="color: # /*设置让某个单元格或某行选中*/
<span style="color: #
<span style="color: # 选中单元格:table-&setCurrentCell(row, column, QItemSelectionModel::Select);
<span style="color: #
<span style="color: # 选中一行:table-&setCurrentCell(row, QItemSelectionModel::Select);(注意此处的列没有值)
阅读(...) 评论()在QTableWidget中会经常用的checkBox,但是如何判断复选框是否被选中呢,方法是利用QTableWidget::cellChanged()函数,检查单元格内容的变化,然后连接此信号,在槽函数中检测checkBox的状态,代码如下:
QTableWidget *tableWidget = new QTableW&
QTableWidgetItem *firstColumn = new QTableWidgetItem(tr("test"));
firstColumn-&setCheckState(Qt::Checked);
connect(tableWidget, SIGNAL(cellChanged(int,int)), this, SLOT(changeTest(int, int)));
void changeTest(int row, int col)
&&&&if(tableWidget -&item(row, col)-&checkState() == Qt::Checked)
&&&&&&&&...
&&&&&&&&...
本文已收录于以下专栏:
相关文章推荐
在QTableWidget表格中显示一个QCheckBox:
一:最先想到的是void QTableWidget::setCellWidget(int row, int column, QWidge...
在QTableWidget中会经常用的checkBox,但是如何判断复选框是否被选中呢,方法是利用QTableWidget::cellChanged()函数,检查单元格内容的变化,然后连接此信号,在槽...
一、简述在上篇 Qt 之 模仿迅雷 根据Url获取文件信息——上 文章中简单介绍了一下几个版本迅雷的界面变化,同时展示了这两天模仿迅雷新建任务窗口做的一个小例子。在这一篇中将讲解如何实现迅雷新建任务窗...
简述QCheckBox继承自QAbstractButton,它提供了一个带文本标签的复选框。QCheckBox(复选框)和QRadioButton(单选框)都是选项按钮。这是因为它们都可以在开(选中)...
QT之CheckBox单项选择与多项选择QT之CheckBox单项选择与多项选择
结尾开篇之叙
今天简单的给大家介绍下CheckBox的单项选择与多项选择。我们在使用Ch...
在实际开发中,我们往往需要知道哪个按钮被选中了,才能进行下一步的操作。例如对于一组单选按钮,只有一个选项能被选中,最好的办法是将这组按钮作为参数传入一个函数,通过函数返回值判断哪个按钮被选中了。
现在很多朋友都喜欢使用jquery了,所以很多的表格判断都是基于jquery的,但实现方法与javascript原生代码不同,对于checkbox的判断大家可以参考下。
//是否被选中验证有选中...
经常碰到问题是关于checkbox的,这类问题主要就是前端获取到一组复选框中被选中的复选框的值,所以使用jquery能很快的得到结果,下面是关于复选框的各种情况的解决办法。
代码如下:
他的最新文章
讲师:王哲涵
讲师:韦玮
您举报文章:
举报原因:
原文地址:
原因补充:
(最多只允许输入30个字)http://blog.csdn.net/mingxia_sui/article/details/7681863
在使用Qt不多的日子里,已经两次用到了QTableWidget这个控件,也慢慢的习惯和喜欢上了它。再使用QTableWidget的时候,已不像刚开始使用时的迷茫。嗯嗯。现在就来总结总结我与QTableWidget相识的历程......(*^__^*)&嘻嘻……
使用时也查过不少资料,在此感谢前辈们的用心总结与分享!
1.QTableWidget不能在mainwindow中随主窗口的大小变化?
&&解决:在表&#26684;外部添加布局。
&&代码:tableWidget&=&new&QTableW
&&&&&&&&&tableWidget&-&setObjectName(QString::fromUtf8(&tableWidget&));
&&&&&&&&&QVBoxLayout&*verticalL
&&&&&&&&&verticalLayout-&addWidget(tableWidget&);
2.将表&#26684;变为禁止编辑:
&&tableWidget-&setEditTriggers(QAbstractItemView::NoEditTriggers);
&&(参数含义:QAbstractItemView.NoEditTriggers--不能对表&#26684;内容进行修改
&&&&&&&&&&&&&&QAbstractItemView.CurrentChanged--任何时候都能对单元&#26684;修改
&&&&&&&&&&&&&&QAbstractItemView.DoubleClicked--双击单元&#26684;
&&&&&&&&&&&&&&QAbstractItemView.SelectedClicked--单击已选中的内容&
&&&&&&&&&&&&&&QAbstractItemView.EditKeyPressed--
&&&&&&&&&&&&&&QAbstractItemView.AnyKeyPressed--按下任意键就能修改
&&&&&&&&&&&&&&QAbstractItemView.AllEditTriggers--以上条件全包括)
3.设置表&#26684;为整行选择
&&tableWidget-&setSelectionBehavior(QAbstractItemView::SelectRows);&&//整行选中的方式
&&(参数含义:AbstractItemView.SelectItems--选中单个单元&#26684;
&&&&&&&&&&&&&&QAbstractItemView.SelectRows--选中一行
&&&&&&&&&&&&&&QAbstractItemView.SelectColumns--选中一列)
4.单个选中和多个选中的设置:
&&tableWidget-&setSelectionMode(QAbstractItemView::ExtendedSelection);&&//设置为可以选中多个目标
&(参数含义:QAbstractItemView.NoSelection--不能选择
&&&&&&&&&&&&&QAbstractItemView.SingleSelection--选中单个目标
&&&&&&&&&&&&&QAbstractItemView.MultiSelection--选中多个目标
&&QAbstractItemView.ExtendedSelection/QAbstractItemView.ContiguousSelection&的区别不明显,主要功能是正常情况下是单选,但按下Ctrl或Shift键后,可以多选)
5.表&#26684;表头的显示与隐藏
&&对于水平或垂直方法的表头,可以用以下方式进行&隐藏/显示&的设置:
&&tableWidget-&verticalHeader()-&setVisible(false);&&&//隐藏列表头&&
&&tableWidget-&horizontalHeader()-&setVisible(false);&//隐藏行表头&&
&&注意:需要&#include&&QHeaderView&
6.对表头文字的字体、颜色进行设置&
&&QTableWidgetItem&*columnHeaderItem0&=&tableWidget-&horizontalHeaderItem(0);&//获得水平方向表头的Item对象&&
&&columnHeaderItem0-&setFont(QFont(&Helvetica&));&//设置字体&&
&&columnHeaderItem0-&setBackgroundColor(QColor(0,60,10));&//设置单元&#26684;背景颜色&&
&&columnHeaderItem0-&setTextColor(QColor(200,111,30));&//设置文字颜色
&&注意:需要&#include&&QHeaderView&
7.在单元&#26684;里加入控件:
&&&QComboBox&*comBox&=&new&QComboBox();
&&&comBox-&addItem(&Y&);
&&&comBox-&addItem(&N&);
&&&tableWidget-&setCellWidget(0,2,comBox);&
8.单元&#26684;中添加图片:
&&tableWidget-&setItem(row,&0,&new&QTableWidgetItem(QIcon(&:/new/images/kingdemo.ico&),tr(&&)));
9设置单元&#26684;字体颜色、背景颜色和字体字符:
&&QTableWidgetItem&*item&=&new&QTableWidgetItem(&Apple&);
&&item-&setBackgroundColor(QColor(0,60,10));
&&item-&setTextColor(QColor(200,111,100));
&&item-&setFont(QFont(&Helvetica&));
&&tableWidget-&setItem(0,3,item);
&&另:如果需要对所有的单元&#26684;都使用这种字体,则可以使用&&tableWidget-&setFont(QFont(&Helvetica&));
10.设置单元&#26684;内文字的对齐方式
&水平对齐方式有:
&Constant&Value&Description
&Qt.AlignLeft&0x0001&Aligns&with&the&left&edge.
&Qt.AlignRight&0x0002&Aligns&with&the&right&edge.
&Qt.AlignHCenter&0x0004&Centers&horizontally&in&the&available&space.
&Qt.AlignJustify&0x0008&Justifies&the&text&in&the&available&space.
&垂直对齐方式:
&Constant&Value&Description
&Qt.AlignTop&0x0020&Aligns&with&the&top.
&Qt.AlignBottom&0x0040&Aligns&with&the&bottom.
&Qt.AlignVCenter&0x0080&Centers&vertically&in&the&available&space.
&如果两种都要设置,只要用&Qt.AlignHCenter&|&&Qt.AlignVCenter&的方式即可
11.合并单元&#26684;:
&&tableWidget-&setSpan(0,&0,&3,&1)&&#&其参数为:&要改变单元&#26684;的1行数、2列数,要合并的3行数、4列数
12.设置单元&#26684;的大小
&&首先,可以指定某个行或者列的大小
&&&tableWidget-&setColumnWidth(3,200);
&&&tableWidget-&setRowHeight(3,60);
还可以将行和列的大小设为与内容相匹配
&&&tableWidget-&resizeColumnsToContents();
&&&tableWidget-&resizeRowsToContents();
13.获得单击单元&#26684;的内容
&&通过实现&itemClicked&(QTableWidgetItem&*)&信号的槽函数,就可以获得鼠标单击到的单元&#26684;指针,进而获得其中的文字信息
connect(tableWidget,SIGNAL(itemDoubleClicked(QTreeWidgetItem*,int)),this,SLOT(getItem(QTreeWidgetItem*,int)));
//将itemClicked信号与函数getItem绑定
14.QTableWidget要调整表&#26684;行宽主要涉及以下函数
&&tableWidget-&horizontalHeader()-&setResizeMode(QHeaderView::Stretch);//使列完全填充并平分
&&tableWidget-&verticalHeader()-&setResizeMode(QHeaderView::Stretch);//行自适应宽度&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
&&tableWidget-&resizeColumnsToContents();&//根据内容调整列宽
&&tableWidget-&resizeColumnToContents(int&col);//根据内容自动调整给定列宽
&&tableWidget-&horizontalHeader()-&setResizeMode//把给定列设置为给定模式
&&主要模式有Stretch和Fixed
15.添加表头内容:
&&方法一:
&&QStringList&
&&header&&&&&&tr(&1&)&&tr(&2&)&&tr(&3&)&&tr(&4)&&tr(&5&);
&&方法二:
&&tableWidget-&setHorizontalHeaderLabels(QStringList()&&&&tr(&1&)&&tr(&2&)&&tr(&3&)&&tr(&4)&&tr(&5&));
&&tableWidget-&clear();//清除所有可见数据(包括表头),行还在
&&tableWidget-&clearContents();//只清除表中数据,不清除表头内容
&&tableWidget-&setRowCount(0);//连行也清除掉
15.一些零碎的知识点代码:
&&int&row&=&tableWidget-&rowCount();//获取表&#26684;中当前总行数
&&tableWidget-&setRowCount(row&#43;1);//添加一行
&&tableWidget-&removeRow(row);//清除已有的行列
&&Int&row1&=&tableWidget-&currentItem()-&row();//当前选中行
&&bool&focus&=&tableWidget-&isItemSelected(tableWidget-&currentItem());//判断是否选中一行
&&QString&proName&=&tableWidget-&item(row,&col)-&text();//获取某一&#26684;内容
&&setShowGrid(true);//显示表&#26684;线
&&verticalHeader()-&setVisible(false);//隐藏左边垂直
&&QHeaderView&*headerView&=&horizontalHeader();
&&headerView-&setMovable(false);//去除表头的移动
&&headerView-&resizeSection(0,284);//设置第一列宽
&&headerView-&resizeSection(1,127);//设置第二列宽
&&headerView-&setResizeMode(QHeaderView::Fixed);//列表不能移动
&&headerView-&setClickable(false);//不响应鼠标单击
&&setEditTriggers(QTableWidget::NoEditTriggers);//不能编辑
&&setSelectionBehavior(QTableWidget::SelectRows);//一次选中一行
&&setSelectionMode(QAbstractItemView::SingleSelection);//只能单选
&&/*QScrollBar&*scrollBar&=&horizontalScrollBar();
&&scrollBar-&hide();*/
&&setHorizontalScrollBarPolicy(Qt::ScrollBarAlwaysOff);//去掉水平滚动条
&&setVerticalScrollMode(QAbstractItemView::ScrollPerItem);//垂直滚动条按项移动
&&setAutoScroll(false);//去掉自动滚动
&&tableWidget-&sortByColumn(0,&Qt::AscendingOrder);//顾名思义,该函数意思是将某列按升序/降序的方式排列
嗯嗯!暂时想到和用到的只有这么多了,再用再补。。。(参考了某些前辈的,不要介意哦,(*^__^*)&)
Qt5以上的版本,所以其中有一项“headerView-&setClickable(false);//不响应鼠标单击”,这个setClickable(false);函数已经被setSectionsClickable(false);所代替
本文已收录于以下专栏:
相关文章推荐
先看一个普通的C++类的定义:
using std::
class MyClass
MyClass( const ...
QTableWidget是QT程序中常用的显示数据表格的空间
QTableWidget和QTabelView的区别:
QTableWidget是QTableView的子类,主要的区别是
在公司公示Qt开发一段时间,表格用到不少,所以,今天在这做个总结,防止以后忘记。
以下为个人模拟Windows资源管理器的一个表单。(写的比较粗糙,谅解一下)
一、设置表单样式
QTableWidget是QT程序中常用的显示数据表格的空间,很类似于VC、C#中的DataGrid。说到QTableWidget,就必须讲一下它跟QTabelView的区别了。QTableWidge...
QTCN上有人问,复杂列表控件怎么做?
控件布局如下图,求指点思路
有高手指点如下,
红框圈起来的是QLabel,1个进度条,2个按钮(toolButton),1个布局,...
在我们经常应用开发中,经常用到将drawable和string相互转化。注意这情况最好用于小图片入icon等。
public synchronized Drawable byteToDrawab...
问题1:无法创建unbuntu 64bit 虚拟机
&#160; &#160; &#160; &#160; &#160; 安装完virtualbox后,新建虚拟机。类型选择为Linux时,版本下拉选项只有ubuntu 32bit,无ubuntu 6...
QTableWidget在表格中显示图片,在表格中画线,
一、准备软件:
1.Qt 5.5.1 for Android (Windows 32-bit, 935 MB)&#160;&#160;&#160; (info) :
&#160;http://www.qt.io/cn/d...
他的最新文章
讲师:王哲涵
讲师:韦玮
您举报文章:
举报原因:
原文地址:
原因补充:
(最多只允许输入30个字)在QTableWidget中会经常用的checkBox,但是如何判断复选框是否被选中呢,方法是利用QTableWidget::cellChanged()函数,检查单元格内容的变化,然后连接此信号,在槽函数中检测checkBox的状态,代码如下:
查看源代码 & id="highlighter_318552_clipboard" title="复制到剪贴板" type="application/x-shockwave-flash" width="16" height="16" src="" menu="false" flashvars="highlighterId=highlighter_318552" wmode="transparent" allowscriptaccess="always"&打印帮助01 QTableWidget *tableWidget = new QTableW&
02 QTableWidgetItem *firstColumn = new QTableWidgetItem(tr("test"));
03 firstColumn-&setCheckState(Qt::Checked);//加入复选框
04 connect(tableWidget, SIGNAL(cellChanged(int,int)), this, SLOT(changeTest(int, int)));
05 void changeTest(int row, int col)
07&&&& if(tableWidget -&item(row, col)-&checkState() == Qt::Checked)
08&&&&&&&& ...
09&&&& else
10&&&&&&&& ...
本文来自CSDN博客,转载请标明出处:
本文已收录于以下专栏:
相关文章推荐
在QTableWidget表格中显示一个QCheckBox:
一:最先想到的是void QTableWidget::setCellWidget(int row, int column, QWidge...
在QTableWidget中会经常用的checkBox,但是如何判断复选框是否被选中呢,方法是利用QTableWidget::cellChanged()函数,检查单元格内容的变化,然后连接此信号,在槽...
一、简述在上篇 Qt 之 模仿迅雷 根据Url获取文件信息——上 文章中简单介绍了一下几个版本迅雷的界面变化,同时展示了这两天模仿迅雷新建任务窗口做的一个小例子。在这一篇中将讲解如何实现迅雷新建任务窗...
简述QCheckBox继承自QAbstractButton,它提供了一个带文本标签的复选框。QCheckBox(复选框)和QRadioButton(单选框)都是选项按钮。这是因为它们都可以在开(选中)...
在初始化函数中,添加如下代码:
0;iui-&setting_tableWidget-&rowCount
http://jesserei./blog/static//
我已经解决加入复选框的,不知道这个效...
现在很多朋友都喜欢使用jquery了,所以很多的表格判断都是基于jquery的,但实现方法与javascript原生代码不同,对于checkbox的判断大家可以参考下。
//是否被选中验证有选中...
经常碰到问题是关于checkbox的,这类问题主要就是前端获取到一组复选框中被选中的复选框的值,所以使用jquery能很快的得到结果,下面是关于复选框的各种情况的解决办法。
代码如下:
他的最新文章
讲师:王哲涵
讲师:韦玮
您举报文章:
举报原因:
原文地址:
原因补充:
(最多只允许输入30个字)}

我要回帖

更多关于 pyqt5获取文本框内容 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信