QTableWidget 中的setcurrentitem作用函数怎么用

qt常用函数在PYQT中的使用方法
qt常用函数使用方法
PyQt4 QDockWidget 使用教程
在pyqt4 中 dock 是一个镶嵌在主窗口 而又能拉出来成立一个独立窗口的控件 ,dock 是QDockWidget
dock=QDockWidget('title',self) #实例化一个dock title 为标题 self 为parent
因为QDockWidget 不添加到布局管理器中 所以我们需要传一个parent 给他
dock.setObjectName("dock") #设置dock的对象名称
dock.setAllowedAreas(Qt.LeftDockWidgetArea
|Qt.RightDockWidgetArea) #设置dock只能在左边 或者右边显示
allowedareas 有Qt.LeftDockWidgetArea Qt.RightDockWidgetArea
Qt.TopDockWidgetArea Qt.BottomDockWidgetArea
Qt.AllDockWidgetAreas
dock.setWidget(QLabel) #添加一个label控件
dock.setFeatures(QDockWidget.NoDockWidgetFeatures)
#设置dock是否可以关闭拉出等
参数还有 QDockWidget.DockWidgetClosable 可以关闭 DockWidgetMovable
DockWidgetFloatable #可以独立出来 DockWidgetVerticalTitleBar 垂直显示标题
AllDockWidgetFeatures 除垂直标题以外 以上所有 NoDockWidgetFeatures
self.addDockWidget(Qt.RightDockWidget,dock)
添加dock到主窗口第一个参数为显示位置
在子窗口动态设置父窗口方法
1 采用apply方法
传递需要修改数据的引用给子对话框
&&&在子对话框apply按钮的插槽方法中发出一个信号,如
&&&接着在父窗口连接这个信号接着显示子窗口child.show()
记得在__init__方法下面写上self.setAttribute(Qt.WA_DeleteOnClose)
这句的作用是在子对话框close的时候把它删除 释放资源 (下面还有另一个方法 释放资源)
2 在父窗口定义一个 字窗口的 接口 如: self.child=None
然后实例子窗口赋给self.child 传递一个callback 函数
if self.child is None: # 这个方法不错
&&&&&slef.child=childDialog()
self.child.show()
self.child.raise_()
self.child.activateWindow()
下面是实例代码 父窗口
import sys
from PyQt4.QtGui import *
from PyQt4.QtCore import *
import ModelDialoglive
class MainForm(QDialog):
def __init__(self,parent=None):
&&&super(MainForm,self).__init__(parent)
&&&self.child=None
&&&self.table=QTableWidget()
&&&self.table.setColumnCount(40)
&&&self.table.setRowCount(30)
&&&self.table.setWhatsThis("mantou")
&&&#set Column
&&&#self.table.setHorizontalHeaderLabels(list(range(5,10)))
&&&for i in
range(0,5):
x in range(0,7):
&&&&&item=QTableWidgetItem(str(i+x))
&&&&&item.setTextAlignment(Qt.AlignLeft
|Qt.AlignCenter)
&&&&&item.setBackgroundColor(Qt.green)
&&&&&self.table.setItem(x,i,item)
&&&fbutton=QPushButton("&F")
&&&cbutton=QPushButton("&C")
&&&lbutton=QPushButton("&L")
&&&Vlayout=QHBoxLayout()
&&&Vlayout.addWidget(fbutton)
&&&Vlayout.addWidget(lbutton)
&&&Vlayout.addWidget(cbutton)
&&&Hlayout=QVBoxLayout()
&&&Hlayout.addWidget(self.table)
&&&Hlayout.addLayout(Vlayout)
&&&self.setLayout(Hlayout)
&&&self.setGeometry(200,300,500,400)
&&&self.setWindowTitle("Table")
&&&self.connect(lbutton,SIGNAL("clicked()"),self.liveChange)
def callback(self,c=0,r=0):
&&&self.table.clear()
&&&for i in
range(0,c):
x in range(0,r):
&&&&&item=QTableWidgetItem(str(i+x))
&&&&&item.setTextAlignment(Qt.AlignLeft|Qt.AlignCenter)
&&&&&item.setBackgroundColor(Qt.red)
&&&&&self.table.setItem(x,i,item)
def liveChange(self):
self.child==None:
&&&&self.child=ModelDialoglive.liveDialog(self.callback,self)
&&&self.child.show()
if __name__=="__main__":
app=QApplication(sys.argv)
mf=MainForm()
app.exec_()
import sys
from PyQt4.QtGui import *
from PyQt4.QtCore import *
class liveDialog(QDialog):
def __init__(self,callback,parent=None):
&&&super(liveDialog,self).__init__(parent)
&&&self.callback=callback
&&&C_MAX=10
&&&R_MAX=15
&&&self.c_edit=QLineEdit()
&&&self.r_edit=QLineEdit()
&&&layout=QHBoxLayout()
&&&layout.addWidget(self.c_edit)
&&&layout.addWidget(self.r_edit)
&&&self.setLayout(layout)
&&&self.connect(self.c_edit,SIGNAL("textChanged(QString)"),self.updateUi)
&&&self.connect(self.r_edit,SIGNAL("textEdited(QString)"),self.updateUi)
def updateUi(self,text):
&&&c=self.c_edit.text()
&&&r=self.r_edit.text()
&&&if c and
&&&&self.callback(int(c),int(r))
PyQt4 QCheckBox
setChecked(bool) 设置是否选择
isChecked() 返回bool
发出toggled(bool)信号
PyQt4 QTableWidget 使用教程
self.table=QTableWidget() #实例化
&&&self.table.setColumnCount(4)
&&&self.table.setRowCount(6)
&&&self.table.setWhatsThis("mantou")
self.table.setEditTriggers(QTableWidget.NoEditTriggers)
#设置为不能编辑单元格
&&&#set Column
&&&self.table.setHorizontalHeaderLabels(list(range(5,10)))
&&&self.table.setVerticalHeaderLabels(["a","d"]
) #设置 行title
self.table.setAlternatingRowColors(bool) #设置交替行颜色
&&&for i in
range(0,5):
x in range(0,7):
&&&&&&&&&item=QTableWidgetItem(str(i+x))
实例一个item对象
&&&&&&&&&item.setTextAlignment(Qt.AlignLeft
|Qt.AlignCenter) 设置对齐方式
&&&&&&&&item.setBackgroundColor(Qt.green)
&&&&&&&&self.table.setItem(x,i,item)
PyQt4 QVBoxLayout
QHBoxLayout QGridLayout 使用教程
pyqt4 的三个布局管理器
QHBoxLayout 水平布局 QVBoxLayout 垂直布局 QGridLayout 表格布局
以下g为表格布局 a b 为水平垂直布局任一个
a.addLayout(b) 添加b布局到a上
a.addSpacing(20) 添加20水平宽度的空白 b类型 垂直方向
a.addStretch(10) 添加一个固定长度的延伸
b.addWidget(QWidget) 添加一个QWidget 到布局
b.addStretchFactor(QWidget,20)
g.addLayout(a,0,2) 在第一行第三列添加一个水平布局
g.addWidget(QWidget,0,2,1,2) 在第一行第三列,占一行 两列 位置 添加一个QWidget
g.setRowStretch(1,20) 设置第二行的高度为20
g.setColumnStretch(1,20) 设置第二列的宽度为20
PyQt4 QListWidget 使用教程
listWidget = QListWidget() #实例化一个(item base)的列表
listWidget.addItem('dd') #添加一个项
listWidget.addItems([]) # 从序列中添加子项
listWidget.setDragEnabled(True) #设置拖拉
listWidget.sortItems() #排序
listWidget.setSortingEnabled(bool) #设置自动排序
listWidget.setSelectionMode(QtGui.QAbstractItemView.ExtendedSelection)
#设置选择模式
选择模式有:ExtendedSelection 按住ctrl多选, SingleSelection 单选
MultiSelection 点击多选 ContiguousSelection 鼠标拖拉多选
listWidget.setCurrentRow(0) 设置当前选择行 默认为-1
listWidget.count() #得到子项总数
listWidget.item(row).text() #得到第 row 行的内容 listWidget.item(row)
返回一个item 对象
listWidget.takeItem(row) #返回row 行的 所在的item 对象 可以用在
insertItem()中
listWidget.insertItem(2,item) #在第二行插入一项 item
可谓为一个listviewitem对象或者string
listWidget.setCurrentItem('dd') #设置'dd'为当前项
listWidget.selectedItems() 返回一个 包含item对象 的list 对象
修改item 的内容
item.setText('dsds') # 设置item的内容为dsds item为对象 可从
listWidget.item(row) takeItem(row) 得到
PyQt4 QInputDialog
string, ok = QInputDialog.getText(self, '标题', '说明文字')
#&&&显示一个标题为标题说明文字为说明问题的输入对话框!string
为输入的内容 ok 为点击的按钮
ok and not string.isEmpty():
#如果点击了确定&&&输入了内容
PyQt4 QPushButton
button = QPushButton('***) # 实例化一个text为***)的按钮
button.setFocusPolicy() #设置焦点样式 样式有:Qt.NoFocus:
无焦点,Qt.TabFocus:用tab切换焦点,Qt.ClickFocus:点击切换焦点,Qt.StrongFocus:貌似跟click一样
Qt.WheelFocus
button.setCheckable(True) #设置为开关按钮 toggle 就是按下按钮不会弹起
button.isChecked() 返回bool值 只有setCheckable()为true时有效
button.setShortcut('Ctrl+F') #设置快捷方式
已投稿到:
以上网友发言只代表其个人观点,不代表新浪网的观点或立场。> QT QTableWidget 信号有关问题
QT QTableWidget 信号有关问题
hxgshxgs & &
发布时间: & &
浏览:2 & &
回复:0 & &
悬赏:0.0希赛币
QT QTableWidget 信号问题~使用了QTableWidget,并设置了格式,只能选中一行
  //单击选择一行
&ui.tableWidget-&setSelectionBehavior(QAbstractItemView::SelectRows);&
&//设置只能选择一行,不能多行选中
&ui.tableWidget-&setSelectionMode(QAbstractItemView::SingleSelection);
现在要加一个信号,当用户选中某一行时,提取该行的数据并执行相应操作
试过cellEntered,cellClicked,itemEntered等,函数如下,RecordCell(int,int)是我的槽函数,
  connect(ui.tableWidget,SIGNAL(&cellEntered(int&,&int)&),this,SLOT(&RecordCell(int,&int)&)&);
但是,每次都接受不到信号,setMouseTracking也设置了,还是不行.求大神赐教~cellEntered,cellClicked,itemEntered
这些信号只是针对某个cell的,因你设置的设置只能选择一行,所以可能没起作用;
试试这个信号
void&QTableWidget::itemSelectionChanged&()&&&[signal]
然后在其slot函数中调用&selectedItems()&来得到所选择的QTableWidgetItem谢谢zhh_steven,问题解决了
是我connect函数写错位置了~
为了方便其他人,这里说一下:
设置选中一行,cell的信号也是管用的~引用:  谢谢zhh_steven,问题解决了
是我connect函数写错位置了~
为了方便其他人,这里说一下:
设置选中一行,cell的信号也是管用的~
求指教啊&我还是没用&我没设置成选中一行&这应该没影响吧
&connect(tableCalendar,&SIGNAL(cellClicked(int,int)),&this,&SLOT(itemEntered(QTableWidgetItem*)));
本问题标题:
本问题地址:
温馨提示:本问题已经关闭,不能解答。
暂无合适的专家
&&&&&&&&&&&&&&&
希赛网 版权所有 & &&您所在的位置: &
3.5.3 TableWidget控件(2)
3.5.3 TableWidget控件(2)
邱铁/周玉/张民垒
机械工业出版社
《Linux环境下Qt4图形界面与MySQL编程》本书以“图形界面编程控件与数据库编程基础→简单易学的实例→实际工程项目开发与场景分析”为写作主线,以当前最新的Qt4.7为依据,采用“深入分析控件+实例解析”的方式,并配合经典的实际工程项目,对Linux操作系统下的Qt4.7与MySQL编程技术进行了全面细致的讲解。本节为大家介绍TableWidget控件。
3.5.3 TableWidget控件(2)
返回点point处的项目。16)&QTableWidgetItem&*QTableWidget::itemAt&(&int&ax,&int&ay&)&const&
返回坐标(ax,ay)处的项目。17)&void&QTableWidget::removeCellWidget&(&int&row,&int&column&)&
移除行row、列column单元格处的显示控件。18)&void&QTableWidget::removeColumn&(&int&column&)&[slot]&
移除列column。19)&void&QTableWidget::removeRow&(&int&row&)&[slot]&
移除行row。20)&int&QTableWidget::row&(&const&QTableWidgetItem&*item&)&const&
返回item的行。21)&QList&*&QTableWidget::selectedItems&()&
返回所有选中状态的项目。22)&void&QTableWidget::setCellWidget&(&int&row,&int&column,&QWidget&*widget&)&
设置行row、列column处的显示控件为widget。23)&void&QTableWidget::setCurrentCell&(&int&row,&int&column&)&
设置行row、列column处的单元格为当前活动单元格。
24)&void&QTableWidget::setCurrentItem&(&QTableWidgetItem&*item&)&
设置项目item为当前活动项目。25) void QTableWidget::setHorizontalHeaderItem ( int column, QTableWidgetItem *item )设置项目item为列column的水平头项目。功能同setVerticalHeaderItem()。26)&void&QTableWidget::setHorizontalHeaderLabels&(&const&QStringList&&&labels&)&
设置水平标题为labels。功能同seVerticalHeaderLabels()。27)&void&QTableWidget::setItem&(&int&row,&int&column,&QTableWidgetItem&*item&)&
设置行row、列column的单元格的项目为item。
28)&void&QTableWidget::sortItems&(&int&column,&QT::SortOrder&order&=&QT::AscendingOrder&)&
对列column按照order进行排序。29)&QTableWidgetItem&*QTableWidget::takeHorizontalHeaderItem&(&int&column&)&
移除列column的水平头项目。功能同takeVerticalHeaderItem()。30)&QTableWidgetItem&*QTableWidget::takeItem&(&int&row,&int&column&)&
移除行row、列column单元格处的项目。31)&QTableWidgetItem&*QTableWidget::verticalHeaderItem&(&int&row&)&const&
返回行row的垂直头项目。
【责任编辑: TEL:(010)】&&&&&&
关于&&&&&&的更多文章
日晚7点整,微软公司如约发布了Windows 8.1正式版的
本书描述了黑客用默默无闻的行动为数字世界照亮了一条道路的故事。
Linux是当今的主要Internet服务器平台。系统管理员和W
使用 iOS 6游戏开发入门经典(第2版) ,学习为iPhone 5
本书是一本系统讲解Android应用开发安全的书籍。它首
本书采用“如何解决问题”的方式阐述Ruby编程,涵盖了以下内容:Ruby术语和基本原理;数字、字符串等低级数据类型的操作;正则表
51CTO旗下网站1919人阅读
Qt/QML(29)
QTableWidget 十分常用,本文结合了网络资源以及作者自己的实践,总结和整理和最常用的功能及写法。
QTableWidget是QT程序中常用的显示数据表格的空间,很类似于VC、C#中的DataGrid。说到QTableWidget,就必须讲一下它跟QTabelView的区别了。QTableWidget是QTableView的子类,主要的区别是QTableView可以使用自定义的数据模型来显示内容(也就是先要通过setModel来绑定数据源),而QTableWidget则只能使用标准的数据模型,并且其单元格数据是QTableWidgetItem的对象来实现的(也就是不需要数据源,将逐个单元格内的信息填好即可)。这主要体现在QTableView类中有setModel成员函数,而到了QTableWidget类中,该成员函数变成了私有。使用QTableWidget就离不开QTableWidgetItem。QTableWidgetItem用来表示表格中的一个单元格,正个表格都需要用逐个单元格构建起来。
一. 对QTableWidget本身的效果实现
1. 将表格变为禁止编辑
在默认情况下,表格里的字符是可以更改的,比如双击一个单元格,就可以修改原来的内容,如果想禁止用户的这种操作,让这个表格对用户只读,可以这样:
&tableWidget-&setEditTriggers(QAbstractItemView::NoEditTriggers);
QAbstractItemView.NoEditTriggers是QAbstractItemView.EditTrigger枚举中的一个,都是触发修改单元格内容的条件:
QAbstractItemView.NoEditTriggers
No editing possible. 不能对表格内容进行修改
QAbstractItemView.CurrentChanged
Editing start whenever current item changes.任何时候都能对单元格修改
QAbstractItemView.DoubleClicked
Editing starts when an item is double clicked.双击单元格
QAbstractItemView.SelectedClicked
Editing starts when clicking on an already selected item.单击已选中的内容
QAbstractItemView.EditKeyPressed
Editing starts when the platform edit key has been pressed over an item.
QAbstractItemView.AnyKeyPressed
Editing starts when any key is pressed over an item.按下任意键就能修改
QAbstractItemView.AllEditTriggers
Editing starts for all above actions.以上条件全包括
2. 设置表格为整行选择
tableWidget-&setSelectionBehavior(QAbstractItemView::SelectRows);&
//整行选中的方式
QAbstractItemView.SelectionBehavior枚举还有如下类型
Description
QAbstractItemView.SelectItems
Selecting single items.选中单个单元格
QAbstractItemView.SelectRows
Selecting only rows.选中一行
QAbstractItemView.SelectColumns
Selecting only columns.选中一列
3.单个选中和多个选中的设置:
tableWidget-&setSelectionMode(QAbstractItemView::ExtendedSelection);&
//设置为可以选中多个目标
该函数的参数还可以是:
QAbstractItemView.NoSelection&&&&& 不能选择
QAbstractItemView.SingleSelection& 选中单个目标
QAbstractItemView.MultiSelection&&& 选中多个目标
QAbstractItemView.ExtendedSelection&& QAbstractItemView.ContiguousSelection 的区别不明显,主要功能是正常情况下是单选,但按下Ctrl或Shift键后,可以多选
4. 表格表头的显示与隐藏
对于水平或垂直方法的表头,可以用以下方式进行 隐藏/显示 的设置:
注意:需要&#include&&QHeaderView&
5. 对表头文字的字体、颜色进行设置
注意:需要&#include&&QHeaderView&
6. 在单元格里加入控件:
QTableWidget不仅允许把文字加到单元格,还允许把控件也放到单元格中。比如,把一个下拉框加入单元格,可以这么做:
读取QComboBox 信息:
二. 对单元格的进行设置
1. 单元格设置字体颜色和背景颜色 及字体字符
另:如果需要对所有的单元格都使用这种字体,则可以使用&&tableWidget-&setFont(QFont(&Helvetica&));
2. 设置单元格内文字的对齐方式
这个比较简单,使用newItem.setTextAlignment()函数即可,该函数的参数为单元格内的对齐方式,和字符输入顺序是自左相右还是自右向左。
水平对齐方式有:
Description
Qt.AlignLeft
Aligns with the left edge.
Qt.AlignRight
Aligns with the right edge.
Qt.AlignHCenter
Centers horizontally in the available space.
Qt.AlignJustify
Justifies the text in the available space.
垂直对齐方式:
Description
Qt.AlignTop
Aligns with the top.
Qt.AlignBottom
Aligns with the bottom.
Qt.AlignVCenter
Centers vertically in the available space.
如果两种都要设置,只要用&Qt.AlignHCenter&|&&Qt.AlignVCenter 的方式即可
3. 合并单元格效果的实现:
tableWidget-&setSpan(0, 0, 3, 1)& # 其参数为: 要改变单元格的&& 1行数& 2列数&&&& 要合并的& 3行数& 4列数
4. 设置单元格的大小
首先,可以指定某个行或者列的大小
还可以将行和列的大小设为与内容相匹配
5. 获得单击单元格的内容
通过实现 itemClicked (QTableWidgetItem *) 信号的槽函数,就可以获得鼠标单击到的单元格指针,进而获得其中的文字信息
connect(tableWidget,SIGNAL(itemDoubleClicked(QTreeWidgetItem*,int)),this,SLOT(getItem(QTreeWidgetItem*,int)));
//将itemClicked信号与函数getItem绑定
6.QTableWidget要调整表格行宽主要涉及以下一个函数
resizeColumnsToContents();&&&&&&& & &&&&&&&&&&& 根据内容调整列宽&&&&&&&&&&resizeColumnToContents(int col);&&&&&&&&&&&&&& 根据内容自动调整给定列宽horizontalHeader()-&setResizeMode&&&&&&&&&&
把给定列设置为给定模式主要模式有Stretch和Fixed
int row = rowCount();&removeRow(row);//清除已有的行列&setShowGrid(true);//显示表格线&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);//去掉自动滚动&
初始化示例:
m_tableWid-&setColumnCount(6);
m_tableWid-&verticalHeader()-&setVisible(false);
//m_tableWid-&setEditTriggers(QAbstractItemView::NoEditTriggers);
//设置列表题
QStringList rowL
rowLabels && &ID& && QString::fromLocal8Bit(&告警级别&) && QString::fromLocal8Bit(&经度&) &&
QString::fromLocal8Bit(&纬度&)&&
QString::fromLocal8Bit(&哨兵&)&&
QString::fromLocal8Bit(&备注&) ;
m_tableWid-&setHorizontalHeaderLabels(rowLabels);
m_tableWid-&horizontalHeader()-&setResizeMode(QHeaderView::Stretch) ;
m_tableWid-&setRowCount(++m_Rows);
m_tableWid-&setItem(Row_,TABLE_COLUMN_ID, new QTableWidgetItem(QString::fromUtf8(warning_msg_-&ID)));
m_tableWid-&setItem(Row_,TABLE_COLUMN_WARNING_LEVEL, new QTableWidgetItem(QString::fromUtf8(warning_msg_-&WarningLevel)));
m_tableWid-&setItem(Row_,TABLE_COLUMN_LON, new QTableWidgetItem(QString::fromUtf8(warning_msg_-&Lon)));
m_tableWid-&setItem(Row_,TABLE_COLUMN_LAT,new QTableWidgetItem(QString::fromUtf8(warning_msg_-&Lat)));
m_tableWid-&setItem(Row_,TABLE_COLUMN_TIPS,new QTableWidgetItem(QString::fromUtf8(warning_msg_-&Tips)));
参考知识库
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:828412次
积分:11279
积分:11279
排名:第1081名
原创:205篇
转载:355篇
评论:156条
文章:11篇
阅读:61832
(2)(7)(5)(3)(8)(9)(6)(4)(2)(5)(13)(14)(7)(9)(3)(4)(6)(8)(6)(1)(5)(4)(4)(3)(2)(1)(5)(6)(4)(4)(1)(4)(2)(6)(18)(9)(25)(32)(28)(8)(20)(26)(27)(11)(37)(30)(40)(37)(24)(17)QTableWidget与QTableView的区别 - 柳北风儿~~~~~~~欲宇仙炅 - ITeye技术网站
博客分类:
QTableWidget继承自QTableView。QSqlTableModel能与QTableView绑定,但不能于QTableWidget绑定。
QSqlTableModel *model = new QSqlTableM
model-&setTable("employee");
model-&setEditStrategy(QSqlTableModel::OnManualSubmit);
model-&select();
model-&removeColumn(0); // don't show the ID
model-&setHeaderData(0, Qt::Horizontal, tr("Name"));
model-&setHeaderData(1, Qt::Horizontal, tr("Salary"));
QTableView *view = new QTableV
view-&setModel(model);
view-&show();
QTableWidget是QT程序中常用的显示数据表格的空间,很类似于VC、C#中的DataGrid。说到QTableWidget,就必须讲一下它跟QTabelView的区别了。
QTableWidget是QTableView的子类,主要的区别是QTableView可以使用自定义的数据模型来显示内容(也就是先要通过setModel来绑定数据源),而QTableWidget则只能使用标准的数据模型,并且其单元格数据是QTableWidgetItem的对象来实现的(也就是不需要数据源,将逐个单元格内的信息填好即可)。这主要体现在QTableView类中有setModel成员函数,而到了QTableWidget类中,该成员函数变成了私有。使用QTableWidget就离不开QTableWidgetItem。QTableWidgetItem用来表示表格中的一个单元格,正个表格都需要用逐个单元格构建起来。
具体区别表格
QTableView
QTableWidget
QTableWidget继承自QTableView
使用数据模型setModel
可以使用setModel设置数据模型
setModel是私有函数,不难使用该函数设置数据模型
显示复选框setCheckState
没有函数实现复选框
QTableWidgetItem类中的setCheckState(Qt::Checked);可以设置复选框
与QSqlTableModel绑定
QTableView能与QSqlTableModel绑定
QtableWidget不能与QSqlTableModel绑定
View与Model绑定注意事项
但视图与模型绑定时,模型必须使用new来创建。否则视图不能随着模型的改变而改变。
Eorror错误的写法
QStandardItemModel model(4,2);
model.setHeaderData(0, Qt::Horizontal, tr("Label"));
model.setHeaderData(1, Qt::Horizontal, tr("Quantity"));
ui.tableView-&setModel(&model);
for (int row = 0; row & 4; ++row) {
for (int column = 0; column & 2; ++column) {
QModelIndex index = model.index(row, column, QModelIndex());
model.setData(index, QVariant((row+1) * (column+1)));
Right 正确的写法
QStandardItemModel *
model = new QStandardItemModel(4,2);
ui.tableView-&setModel(model);
model-&setHeaderData(0, Qt::Horizontal, tr("Label"));
model-&setHeaderData(1, Qt::Horizontal, tr("Quantity"));
for (int row = 0; row & 4; ++row) {
for (int column = 0; column & 2; ++column) {
QModelIndex index = model-&index(row, column, QModelIndex());
model-&setData(index, QVariant((row+1) * (column+1)));
浏览 13985
浏览: 1901569 次
来自: 苏州
简直太厉害了
SQL server的这个分页语句似乎取不了前10条
大神,学习了。。。
手下留情 所以我就不点了
现在用VC写主要是为了兼容XP,想问一下如果你用QT实现的话, ...

我要回帖

更多关于 setcurrentitem 卡死 的文章

 

随机推荐