qt c++中tableWidget 设置单元格点击后颜色无变化
时间: 2023-12-29 12:05:08 浏览: 444
要设置单元格点击后的颜色变化,可以使用`QTableWidget`的`setStyleSheet`方法来设置样式表。
例如,可以使用以下代码来设置单元格点击后的颜色:
```cpp
ui->tableWidget->setStyleSheet("QTableView::item:selected { background-color: #3578E5; color: white; }");
```
这会将选中单元格的背景颜色设置为蓝色,并将文本颜色设置为白色。你可以根据自己的需要修改颜色值。
相关问题
qt c++中tableWidget 一个单元格中添加三个button
在Qt中,可以使用自定义单元格来实现在一个单元格中添加多个button的功能。具体步骤如下:
1. 创建一个自定义单元格类(例如MyTableWidgetItem),并继承QTableWidgetItem类。
```cpp
class MyTableWidgetItem : public QTableWidgetItem
{
public:
MyTableWidgetItem() : QTableWidgetItem() {}
MyTableWidgetItem(const QString &text) : QTableWidgetItem(text) {}
// 重写sizeHint()函数,返回单元格的大小
QSize sizeHint() const override
{
return QSize(100, 30);
}
// 重写paint()函数,在单元格中绘制button
void paint(QPainter *painter, const QStyleOptionViewItem &option, const QRect &rect) const override
{
// 绘制button1
QPushButton button1("button1", const_cast<QWidget*>(option.widget));
button1.setGeometry(rect.left(), rect.top(), 30, 30);
button1.show();
// 绘制button2
QPushButton button2("button2", const_cast<QWidget*>(option.widget));
button2.setGeometry(rect.left() + 35, rect.top(), 30, 30);
button2.show();
// 绘制button3
QPushButton button3("button3", const_cast<QWidget*>(option.widget));
button3.setGeometry(rect.left() + 70, rect.top(), 30, 30);
button3.show();
// 绘制单元格的文本
painter->drawText(rect, Qt::AlignCenter, text());
}
};
```
2. 在tableWidget中使用自定义单元格:
```cpp
// 创建tableWidget
QTableWidget *tableWidget = new QTableWidget(this);
tableWidget->setRowCount(1);
tableWidget->setColumnCount(1);
tableWidget->setFixedSize(200, 50);
// 在单元格中添加自定义单元格
MyTableWidgetItem *item = new MyTableWidgetItem("test");
tableWidget->setItem(0, 0, item);
```
这样,在tableWidget中的一个单元格中就可以添加多个button了。注意,如果需要响应button的信号,可以通过connect函数将其与相应的槽函数连接起来。
运用qt c++如何更改tablewidget的单元格的当前焦点
您可以使用QTableWidget的setCurrentCell函数来设置TableWidget的当前焦点单元格。例如:
QTableWidget *tableWidget = new QTableWidget(this);
tableWidget->setRowCount(5);
tableWidget->setColumnCount(3);
tableWidget->setCurrentCell(2, 1); //将当前焦点设置在第2行,第1列的单元格
在上面的例子中,tableWidget的当前焦点被设置为第2行,第1列的单元格。如果您想要在TableWidget中设置其他单元格为当前焦点,则可以通过修改setCurrentCell函数中的行和列参数来实现。
阅读全文
相关推荐
使用学习的表格技术画出一个表格(只有一个单元格),创建一个按钮,每次点击按钮的时候表格中的单元格()的背景颜色都会变成另一种颜色,比如一个单元格A的背景色是白色,那么,点击按钮后变成红色,再点击变成绿色,如此往复在几种颜色中循环变化(比如在红,兰,黄,绿四种颜色之中循环变化)。