cpp
#include "MainWindow.h"
#include "ui_MainWindow.h"
MainWindow::MainWindow(QWidget *parent) :
QMainWindow(parent),
ui(new Ui::MainWindow)
{
ui->setupUi(this);
std::vector<QString>vec;
vec.push_back("aaa"); //测试数据
vecChecked.push_back(true);
vec.push_back("bbbbbb");
vecChecked.push_back(true);
vec.push_back("cccc");
vecChecked.push_back(false);
vec.push_back("dddd");
vecChecked.push_back(true);
vec.push_back("eeee");
vecChecked.push_back(false);
vec.push_back("ff");
vecChecked.push_back(false);
vec.push_back("GG");
vecChecked.push_back(true);
vec.push_back("HHH");
vecChecked.push_back(false);
vec.push_back("DDDDD");
vecChecked.push_back(true);
vec.push_back("RRR");
vecChecked.push_back(true);
vec.push_back("EEE");
vecChecked.push_back(false);
vec.push_back("TTT");
vecChecked.push_back(true);
vec.push_back("YYY");
vecChecked.push_back(false);
ui->tableWidget->setColumnWidth(0,500); //初始化
ui->tableWidget->setRowCount(vec.size());
for(size_t i = 0;i < vec.size();++i)
{
ui->tableWidget->setRowHeight(i,60);
QTableWidgetItem * item = new QTableWidgetItem();
item->setTextAlignment(Qt::AlignLeft | Qt::AlignVCenter);
item->setIcon(QIcon(vecChecked[i] ? ":/checked.png" : ":/unchecked.png"));
item->setText(vec[i]);
ui->tableWidget->setItem(i,0,item);
}
}
void MainWindow::on_tableWidget_cellClicked(int row, int column)//选中、取消选中
{
vecChecked[row] = !vecChecked[row];
ui->tableWidget->item(row,column)->setIcon(QIcon(vecChecked[row] ? ":/checked.png" : ":/unchecked.png"));
}
MainWindow::~MainWindow()
{
delete ui;
}
qss主要设置的是tableWidget和scrollBar的样式:
*{
font: 26pt;
font-weight:bold;
}
QTableWidget::item:selected
{
background: rgb(200, 220, 224);
color: rgb(2, 65, 132);
outline:0px;
}
QScrollBar:vertical
{
margin:40px 0px 40px 0px;
background-color:gray;
border: 2px solid gray;
width:40px;
}
QScrollBar::handle:vertical
{
background-color:#bbbbbb;
width:40px;
border-radius:12px;
}
QScrollBar::handle:vertical:hover
{
background-color:#9B9B9B;
width:40px;
border-radius:7px;
}
QScrollBar::sub-line:vertical,QScrollBar::add-line:vertical
{
subcontrol-origin: margin;
border: 2px solid gray;
height:40px;
}
QScrollBar::sub-page:vertical,QScrollBar::add-page:vertical
{
border: 2px solid gray;
background-color:gray;
}
QScrollBar::up-arrow:vertical
{
border: 2px solid gray;
width:40px;
height:40px;
border-image:url(:/up.png);
}
QScrollBar::down-arrow:vertical
{
border: 2px solid gray;
width:40px;
height:40px;
border-image:url(:/down.png);
}
h没啥内容。
#ifndef MAINWINDOW_H
#define MAINWINDOW_H
#include <QMainWindow>
#include <vector>
namespace Ui {
class MainWindow;
}
class MainWindow : public QMainWindow
{
Q_OBJECT
public:
explicit MainWindow(QWidget *parent = 0);
~MainWindow();
private slots:
void on_tableWidget_cellClicked(int row, int column);
private:
Ui::MainWindow *ui;
std::vector<bool> vecChecked;
};
#endif // MAINWINDOW_H
效果:
代码:https://github.com/yangyang0312/QtTestCode/tree/master/testTableWidget