QTableWidget和QScrollBar简单使用

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值