QT中QTableWidget的使用

table.h

#ifndef TABLE_H
#define TABLE_H

#include <QtGui>
#include "ui_table.h"

class Table : public QTableWidget
{
	Q_OBJECT

public:
	Table();
	~Table();

private:
	Ui::TableClass ui;
};

#endif // TABLE_H

table.cpp

#include "table.h"

Table::Table(): QTableWidget()
{
	
	setWindowTitle(tr("table"));
	setColumnCount(5);
	setRowCount(5);

	QTableWidgetItem *tableWidgetItemSex=new QTableWidgetItem(tr("sex"));
	setItem(0,0,tableWidgetItemSex);
	QTableWidgetItem *tableWidgetItemName=new QTableWidgetItem(tr("Name"));
	setItem(0,1,tableWidgetItemName);
	QTableWidgetItem *tableWidgetItemBrith=new QTableWidgetItem(tr("Brith"));
	setItem(0,2,tableWidgetItemBrith);
	QTableWidgetItem *tableWidgetItemWork=new QTableWidgetItem(tr("Work"));
	setItem(0,3,tableWidgetItemWork);
	QTableWidgetItem *tableWidgetItemIncome=new QTableWidgetItem(tr("Income"));
	setItem(0,4,tableWidgetItemIncome);

	QLabel *LabelPixmap1 = new QLabel();
	LabelPixmap1->setPixmap(QPixmap(":/images/Male.png"));
	setCellWidget (1,0,LabelPixmap1);
	QTableWidgetItem *TableWidgetItem1 = new QTableWidgetItem(tr("Tom"));
	setItem(1, 1, TableWidgetItem1);	
	QDateTimeEdit *DateTimeEdit1= new QDateTimeEdit();
	DateTimeEdit1->setDateTime(QDateTime::currentDateTime());
	DateTimeEdit1->setDisplayFormat("dd/M/yyyy");
	DateTimeEdit1->setCalendarPopup(true);
	setCellWidget (1,2,DateTimeEdit1);		
	QComboBox *ComboBoxWork1 = new QComboBox();
	ComboBoxWork1->addItem(tr("Worker")); 
	ComboBoxWork1->addItem(tr("Farmer")); 
	ComboBoxWork1->addItem(tr("Doctor")); 
	ComboBoxWork1->addItem(tr("Lawyer")); 
	ComboBoxWork1->addItem(tr("Soldier")); 
	setCellWidget(1,3,ComboBoxWork1);
	QSpinBox *SpiBoxIncome1 = new QSpinBox();
	SpiBoxIncome1->setRange (1000,10000); 
	setCellWidget(1,4,SpiBoxIncome1);

	QLabel *LabelPixmap2 = new QLabel();
	LabelPixmap2->setPixmap(QPixmap(":/images/Male.png"));
	setCellWidget (2,0,LabelPixmap2);
	QTableWidgetItem *TableWidgetItem2 = new QTableWidgetItem(tr("Jack"));
	setItem(2, 1, TableWidgetItem2);	
	QDateTimeEdit *DateTimeEdit2= new QDateTimeEdit();
	DateTimeEdit2->setDateTime(QDateTime::currentDateTime());
	DateTimeEdit2->setDisplayFormat("dd/M/yyyy");
	DateTimeEdit2->setCalendarPopup(true);
	setCellWidget (2,2,DateTimeEdit2);		
	QComboBox *ComboBoxWork2 = new QComboBox();
	ComboBoxWork2->addItem(tr("Worker")); 
	ComboBoxWork2->addItem(tr("Farmer")); 
	ComboBoxWork2->addItem(tr("Doctor")); 
	ComboBoxWork2->addItem(tr("Lawyer")); 
	ComboBoxWork2->addItem(tr("Soldier")); 
	setCellWidget(2,3,ComboBoxWork2);
	QSpinBox *SpiBoxIncome2 = new QSpinBox();
	SpiBoxIncome2->setRange (1000,10000); 
	setCellWidget(2,4,SpiBoxIncome2);

	QLabel *LabelPixmap3 = new QLabel();
	LabelPixmap3->setPixmap(QPixmap(":/images/Female.png"));
	setCellWidget (3,0,LabelPixmap3);
	QTableWidgetItem *TableWidgetItem3 = new QTableWidgetItem(tr("Alice"));
	setItem(3, 1, TableWidgetItem3);	
	QDateTimeEdit *DateTimeEdit3= new QDateTimeEdit();
	DateTimeEdit3->setDateTime(QDateTime::currentDateTime());
	DateTimeEdit3->setDisplayFormat("dd/M/yyyy");
	DateTimeEdit3->setCalendarPopup(true);
	setCellWidget (3,2,DateTimeEdit3);		
	QComboBox *ComboBoxWork3 = new QComboBox();
	ComboBoxWork3->addItem(tr("Worker")); 
	ComboBoxWork3->addItem(tr("Farmer")); 
	ComboBoxWork3->addItem(tr("Doctor")); 
	ComboBoxWork3->addItem(tr("Lawyer")); 
	ComboBoxWork3->addItem(tr("Soldier")); 
	setCellWidget(3,3,ComboBoxWork3);
	QSpinBox *SpiBoxIncome3 = new QSpinBox();
	SpiBoxIncome3->setRange (1000,10000); 
	setCellWidget(3,4,SpiBoxIncome3);

	QLabel *LabelPixmap4 = new QLabel();
	LabelPixmap4->setPixmap(QPixmap(":/images/Male.png"));
	setCellWidget (4,0,LabelPixmap4);
	QTableWidgetItem *TableWidgetItem4 = new QTableWidgetItem(tr("John"));
	setItem(4, 1, TableWidgetItem4);		
	QDateTimeEdit *DateTimeEdit4= new QDateTimeEdit();
	DateTimeEdit4->setDateTime(QDateTime::currentDateTime());
	DateTimeEdit4->setDisplayFormat("dd/M/yyyy");
	DateTimeEdit4->setCalendarPopup(true);
	setCellWidget (4,2,DateTimeEdit4);		
	QComboBox *ComboBoxWork4 = new QComboBox();
	ComboBoxWork4->addItem(tr("Worker")); 
	ComboBoxWork4->addItem(tr("Farmer")); 
	ComboBoxWork4->addItem(tr("Doctor")); 
	ComboBoxWork4->addItem(tr("Lawyer")); 
	ComboBoxWork4->addItem(tr("Soldier")); 
	setCellWidget(4,3,ComboBoxWork4);
	QSpinBox *SpiBoxIncome4 = new QSpinBox();
	SpiBoxIncome4->setRange (1000,10000); 
	setCellWidget(4,4,SpiBoxIncome4);	

}

Table::~Table()
{

}

main.cpp

#include "table.h"
#include <QtGui/QApplication>

int main(int argc, char *argv[])
{
	QApplication a(argc, argv);
	Table *w=new Table;
	w->show();
	return a.exec();
}

image

image

### 如何在 Qt QTableWidget使用 `setItem` 方法 在 Qt 的 `QTableWidget` 控件中,`setItem` 方法用于设置指定位置上的项。此方法接受三个参数:行索引、列索引以及要放置的 `QTableWidgetItem` 对象。 下面是一个简单的 Python 示例代码片段,展示了如何利用 PyQt5 创建一个带有几行列数据的表格,并通过 `setItem` 方法填充这些数据: ```python from PyQt5.QtWidgets import QApplication, QWidget, QVBoxLayout, QTableWidget, QTableWidgetItem class MyWindow(QWidget): def __init__(self): super().__init__() layout = QVBoxLayout(self) table_widget = QTableWidget() table_widget.setRowCount(4) # 设置行数为4 table_widget.setColumnCount(3) # 设置列数为3 items_data = [ ("Row1-Col1", "Row1-Col2", "Row1-Col3"), ("Row2-Col1", "Row2-Col2", "Row2-Col3"), ("Row3-Col1", "Row3-Col2", "Row3-Col3"), ("Row4-Col1", "Row4-Col2", "Row4-Col3") ] for row_index, columns in enumerate(items_data): for col_index, item_text in enumerate(columns): new_item = QTableWidgetItem(item_text) table_widget.setItem(row_index, col_index, new_item)[^2] layout.addWidget(table_widget) if __name__ == '__main__': app = QApplication([]) window = MyWindow() window.show() app.exec_() ``` 上述程序创建了一个窗口,在其中有一个四行三列的表格。每一行的数据由元组列表提供给循环结构处理;对于每一个单元格的位置 (row_index, col_index),都会创建一个新的 `QTableWidgetItem` 实例并调用 `setItem()` 来将其放入对应的单元格内。 #### 注意事项 - 表格的小部件对象 (`QTableWidget`) 需要在调用 `setItem` 前先设定好其大小(即行数和列数),这可以通过 `setRowCount` 和 `setColumnCount` 方法完成。 - 当向表格外添加超出当前尺寸范围的新项目时,不会自动扩展表格大小,因此应确保已适当调整了表格维度以容纳新加入的内容。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值