
QTableWidget如何使用?
1、首先,我们打开QtCreator,然后,新建一个widget或者Gui应用程序项目。
2、然后,QtCreator会自动加载项目,我们打开项目后,找到对应的界面文件,然后将一个QTableWidget控件拖到主窗口中。同时,为了方便起见,我们设置一下布局。
3、我们接着运行一下程序,看一下初步的显示效果,可以看到窗口的白色区域就是QTableWidget,但没有显示任何内容。
4、我们打开mainwindow.cpp文件,然后来设置QTableWidget显示列名。在构造函数中,我们首先设置tablewidget的列数。然后,新建一个QStringList用于保存显示的header数据。接着,将setHorizontalHeaderLabels设置为刚才的数据。
5、然后,我们再运行一下,可以看到效果了,虽然显示的列名,但都是乱码,所以我们要再设置一下编码格式,只要在main函数中加入QTextCodec::setCodecForCStrings(QTextCodec::codecForName("system"))即可。
6、现在,列名有了,我们添加一下内容。
1 定义一个按钮[cpp] view plain copy
QPushButton * pBtn = new QPushButton()
2 链接信号与曹
[cpp] view plain copy
connect(pBtn, SIGNAL(clicked()), this, SLOT(OnBtnClicked()))
3 按钮添加到单元格内
[cpp] view plain copy
table->setCellWidget(0,0,pBtn)//如果点击按钮出现崩溃现象,就添加QTableWidgetItem 到按钮的那个单元格
4 实现按钮的事件
[cpp] view plain copy
void myPic::OnBtnClicked(void)
{
QPushButton * senderObj=qobject_cast<QPushButton *>(sender())
if(senderObj == 0)
{
return
}
1.QTableWidget不能在mainwindow中随主窗口的大小变化?解决:在表格外部添加布局。
代码:tableWidget = new QTableWidget
tableWidget ->setObjectName(QString::fromUtf8("tableWidget"))
QVBoxLayout *verticalLayout
verticalLayout->addWidget(tableWidget )
2.将表格变为禁止编辑:
tableWidget->setEditTriggers(QAbstractItemView::NoEditTriggers)
(参数含义:QAbstractItemView.NoEditTriggers--不能对表格内容进行修改
QAbstractItemView.CurrentChanged--任何时候都能对单元格修改
QAbstractItemView.DoubleClicked--双击单元格
QAbstractItemView.SelectedClicked--单击已选中的内容
QAbstractItemView.EditKeyPressed--
QAbstractItemView.AnyKeyPressed--按下任意键就能修改
QAbstractItemView.AllEditTriggers--以上条件全包括)
3.设置表格为整行选择
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)