关键词不能为空

当前您在: 主页 > 英语 >

QtableWidget的用法总结

作者:高考题库网
来源:https://www.bjmy2z.cn/gaokao
2021-02-13 19:13
tags:

-

2021年2月13日发(作者:懒惰的英文)


N


z


在使用


Qt


不多的日子里,已经两次用到了


QTableWidget


这个控件,也慢慢的习惯和喜欢上


了它。再使用


QTableWidget


的时候,已不像刚开始使用时的迷茫。嗯嗯。现在就来总结总 结我



QTableWidget


相识 的历程


......(*^__^*)


嘻嘻……



使用时也查过不少资料,在此感谢前辈们的用心总结与分享!








★∴






... .▍▍.


..


.█▍





★∵


..../






◥█▅▅██▅▅██▅▅▅▅▅███◤







.◥███████████████◤




~~~~◥█████████████◤~~~~



Widget


不能在


mainwindow


中随主窗口的大小变化?




解决:在表格外部添加布局。




代码:


tableWidget = new QTableWidget;



tableWidget ->setObjectName(QString::fromUtf8(



QVBoxLayout *verticalLayout;



verticalLayout->addWidget(tableWidget );



2.


将表格变为禁止编辑:



tableWidget->setEditTriggers(QAbstrac tItemView::NoEditTriggers);




(参数含义:


Triggers--


不 能对表格内容进行修改



tChanged--


任何时候都能对单元格修改



Clicked--


双击单元格



edClicked--


单击已选中的内容




yPressed--



Pressed--


按下任意键就能修改



tTriggers--


以上条件全包括)



3.


设置表格为整行选择



tableWidget->setSelectionBehavior(QAb stractItemView::SelectRows); //


整行选中的方





(参数含义:


Items--


选中单个单元格



Rows--


选中一行



Columns--


选中一列)



4.


单个选中和多个选中的设置:



tableWidget->setSelectionMode(QAbstra ctItemView::ExtendedSelection);


//


设置为可


以选中多个目标




(参数含义:


ction--


不能选择



Selection--


选中单个目标



election--


选中多个目标



edSelection/uousSelection



的区 别


不明显,主要功能是正常情况下是单选,但按下


Ctrl



Shift


键后,可以多选)

< p>


5.


表格表头的显示与隐藏




对于水平或垂直方法的表头,可以用以下方式进行



隐藏


/


显示



的设置:



tableWidget->verticalHeader()->setVisible(false); //


隐藏列表头




tableWidget->horizontalHeader()->setV isible(false); //


隐藏行表头





注意:需要


#include



6.


对表头文字的字体、颜色进行设置




QTableWidgetItem *columnHeaderItem0 = tableWidget->horizontalHeaderItem(0); //



得水平方向表头的


Item


对象< /p>




columnHeaderI tem0->setFont(QFont(


设置字体




columnHeaderItem0->setBac kgroundColor(QColor(0,60,10)); //


设置单元格背景颜色




columnHeaderItem0->setTextColor(QColo r(200,111,30)); //


设置文字颜色




注意:需要


#include



7.


在单元格里加入控件:



QComboBox *comBox = new QComboBox();



comBox->addItem(



comBox->addItem(



tableWidget->setCellWidget(0,2,comBox);



8.


单元格中添加图片:



tableWidget->setItem(row, 0, new QTableWidgetItem(QIcon(


o



9


设置单元格字体颜色、背景颜色和字体字符:



QTableWidgetItem *item = new QTableWidgetItem(



item->se tBackgroundColor(QColor(0,60,10));



item->setTextColor(QColor(200,111,100 ));



item->setFont(QFont(



tableWidget->setItem(0,3,item);




另:如果需要对所有的单元格都使用这种字体,则可以使< /p>



tableWidget->setFont(QFont(



10.


设置单元格内文字的对齐方式




水平对齐方式有:



Constant Value Description



eft 0x0001 Aligns with the left edge.



ight 0x0002 Aligns with the right edge.



Center 0x0004 Centers horizontally in the available space.



ustify 0x0008 Justifies the text in the available space.




垂直对齐方式:



Constant Value Description



op 0x0020 Aligns with the top.



ottom 0x0040 Aligns with the bottom.



Center 0x0080 Centers vertically in the available space.




如果两种都要设置,只要用


Center | Center


的方式即可



11.


合并单元格:



tableWidget->setSpan(0, 0, 3, 1) #


其参数为:



要改变单元格的


1


行数、


2


列数,要合


并的


3


行数、


4


列数



12.


设置单元格的大小




首先,可以指定某个行或者列的大小



tableWidget->setColumnWidth(3,200);



tableWidget->setRowHeight(3,60);



还可以将行和列的大小设为与内容相匹配



tableWidget->resizeColumnsToContents();



tableWidget->resizeRowsToContents();



13.


获得单击单元格的内容




通过实现


itemClicked (QTableWidgetItem *)


信号的槽函数 ,


就可以获得鼠标单击到的单元


格指针,进而获得其中的文字信 息



connect(tableWidget,SIGNAL (itemDoubleClicked(QTreeWidgetItem*,int)),this,SLO T(getIt


em(QTreeWidgetItem*,int)));

< p>


//



itemCli cked


信号与函数


getItem


绑 定



Widget


要调整表格行宽主要 涉及以下函数



tableWidget->horizo ntalHeader()->setResizeMode(QHeaderView::Stretch); //


使列完全填


充并平分



tableWidget->verticalHeader()->setRes izeMode(QHeaderView::Stretch);//


行自适应宽






tableWidget->resizeColumnsToContents(); //


根据内容调整列宽



tableWidget->resizeColumnToContents(int col);//


根据内容自动调整给定列宽



tableWidget->horizontalHeader()->setR esizeMode//


把给定列设置为给定模式




主要模式有


Stretch



Fixed



15.


添加表头内容:




方法一:



QStringList header;



header<<




方法二:



tableWidge t->setHorizontalHeaderLabels(QStringList() << tr(


<



16.


清除:



tableWidget->clear();//


清除所 有可见数据(包括表头),行还在



tableWidge t->clearContents();//


只清除表中数据,不清除表头内容



tableWidget->setRowCount(0)< /p>



//


连行也清除掉


15.


一些零碎的知识点代码:



int row = tableWidget->rowCount();//< /p>


获取表格中当前总行数



table Widget->setRowCount(row+1);//


添加一行



tableWidget->removeRow(row);//< /p>


清除已有的行列



Int row1 = tableWidget->currentItem()->row();//


当 前选中行


-


-


-


-


-


-


-


-



本文更新与2021-02-13 19:13,由作者提供,不代表本网站立场,转载请注明出处:https://www.bjmy2z.cn/gaokao/652203.html

QtableWidget的用法总结的相关文章