QT开发之QListWidget拖拽(二)

本文介绍如何在QT开发中实现QListWidget之间的数据拖拽功能,包括创建自绘QListWidget控件的步骤及项目配置要点。
摘要由CSDN通过智能技术生成

两个QListWidget之间拖拽数据效果:

1、创建

头文件

private slots:
    void Receive_number(QList<int> list_number,int count,int type);//列表1拖动
    void on_listWidget_customContextMenuRequested(const QPoint &pos);
    void on_listWidget_customContextMenuRequested2(const QPoint &pos);

    //快捷菜单
    void Copy_single();
    void Paste_single();
    void Clear_single();
    void Rename_single();
    void Add_single();
    void Delete_single();
    void Refresh_single();
    void Open_single();
public:
    MyListWidget *listwidget1;//用户设备
    MyListWidget *listwidget2;//用户电脑

    void Imoprt_preset();//2导入1
    void Export_preset();//1导出2

.cpp

//列表
void MainWindow::ListwidgetInit()
{
    listwidget1 = new MyListWidget(this);
    listwidget1->setObjectName("111");
    listwidget1->resize(272,252);
    listwidget1->move(96,165);

    listwidget2 = new MyListWidget(this);
    listwidget2->setObjectName("222");
    listwidget2->resize(272,216);
    listwidget2->move(96,468);


    QStringList list;
    list << "100" << "101" << "102" << "103" << "104" << "105"<< "106";
    listwidget1->addItems(list);
    listwidget1->sortItems();

    QStringList list2;
    list2 << "010" << "011" << "012" << "013" << "014" << "015"<< "016";
    listwidget2->addItems(list2);
    listwidget2->sortItems();

    listwidget1->setCurrentRow(0);
    listwidget2->setCurrentRow(0);

    connect(listwidget1, SIGNAL(customContextMenuRequested(const QPoint)), this, SLOT(on_listWidget_customContextMenuRequested(const QPoint)));
    connect(listwidget2, SIGNAL(customContextMenuRequested(const QPoint)), this, SLOT(on_listWidget_customContextMenuRequested2(const QPoint)));
    listwidget1->setContextMenuPolicy(Qt::CustomContextMenu);
    listwidget2->setContextMenuPolicy(Qt::CustomContextMenu);

    connect(listwidget1,&MyListWidget::Sendnumber,this,&MainWindow::Receive_number);
    connect(listwidget2,&MyListWidget::Sendnumber,this,&MainWindow::Receive_number);

    

    //listwidget1->setFont();
    listwidget1->setFocusPolicy(Qt::NoFocus);//去掉选中的虚线框
    listwidget1->setStyleSheet("QListWidget{background:rgb(39,43,47,100%);color: rgba(141,141,141,1);font-size: 16px}"
                               "QListWidget::item{height:28px;border:0px;padding-bottom:8px; padding-left:15px;}"//36+8
                               "QListWidget::Item:hover{border-image: url(:/resource/img/list/preset_select_hover.png);color: rgba(255,255,255,1);}"//悬停
                               "QListWidget::Item:pressed{border-image: url(:/resource/img/list/preset_select.png);color: rgba(255,255,255,1);}"//按下
                               "QListWidget::item:selected:!active{border-image: url(:/resource/img/list/preset_select.png);color: rgba(255,255,255,1);}"//按下后当前活动控件不在列表中
                               "QListWidget::item:selected{border-image: url(:/resource/img/list/preset_select.png);color: rgba(255,255,255,1);}");//按下后鼠标移动到其它位置
    //设置滚动条样式
    listwidget1->verticalScrollBar()->setStyleSheet("QScrollBar:vertical"
                                                        "{"
                                                            "width:4px;"
                                                            "background:rgba(0,0,0,0%);"//滚动条背景
                                                            "margin:0px,0px,0px,0px;"
                                                            "padding-top:0px;"//留出9px给上面和下面的箭头
                                                            "padding-bottom:0px;"
                                                            "padding-left:0px;"
                                                            "padding-right:0px;"
                                                        "}"
                                                        "QScrollBar::handle:vertical"
                                                        "{"
                                                            "width:4px;"
                                                            "background:rgba(61,66,71,100%);"//正常时颜色
                                                            "border-radius:2px;"// 滚动条两端变成椭圆
                                                            "min-height:20;"
                                                        "}"
                                                        "QScrollBar::handle:vertical:hover"
                                                        "{"
                                                            "width:4px;"
                                                            "background:rgba(76,80,84,100%);"// 鼠标放到滚动条上的时候,颜色变深
                                                            "border-radius:2px;"
                                                            "min-height:20;"
                                                        "}"
                                                        
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值