qt触屏滑动

7 篇文章 0 订阅

frame,tablewidget,listwidget触屏滑动的例子

关键这几句:
scrollceshi->setWidget(frameceshi);
frameceshi->setGeometry(0, 0, 200, 1200);//实际界面参数
QScroller::grabGesture(scrollceshi,QScroller::LeftMouseButtonGesture);
mainwidow.cpp
#include "mainwindow.h"
#include "ui_mainwindow.h"
#include<QScroller>
#include<QScrollArea>
#include<QPushButton>
#include<QVBoxLayout>
MainWindow::MainWindow(QWidget *parent) :
    QMainWindow(parent),
    ui(new Ui::MainWindow)
{
    ui->setupUi(this);

    QScrollArea *scrollceshi=new QScrollArea(this->centralWidget());
    //竖滚动条和横滚动条都可以一直显示
    scrollceshi->setVerticalScrollBarPolicy(Qt::ScrollBarAlwaysOn);
    scrollceshi->setHorizontalScrollBarPolicy(Qt::ScrollBarAlwaysOn);
    //可以拖动滚动条
    //scrollceshi->setWidgetResizable(false);
    //scrollceshi->setWidgetResizable(true);

    frameceshi=new QFrame(this->centralWidget());
    scrollceshi->setWidget(frameceshi);
    frameceshi->setGeometry(0, 0, 200, 1200);//实际界面参数
    QPushButton *button1=new QPushButton(frameceshi);
    QPushButton *button2=new QPushButton(frameceshi);
    QPushButton *button3=new QPushButton(frameceshi);
    QPushButton *button4=new QPushButton(frameceshi);
    button1->setText("1111");
    button2->setText("2222");
    button3->setText("33333");
    button4->setText("4444");

    QVBoxLayout *layoutbutt=new QVBoxLayout(frameceshi);
    layoutbutt->addWidget(button1);
    layoutbutt->addWidget(button2);
    layoutbutt->addWidget(button3);
    layoutbutt->addWidget(button4);

    //触摸滑动
    //QScroller::grabGesture(ui->scrollArea,QScroller::LeftMouseButtonGesture);
    QScroller::grabGesture(scrollceshi,QScroller::LeftMouseButtonGesture);
    QScroller::grabGesture(ui->listWidget,QScroller::LeftMouseButtonGesture);
    QScroller::grabGesture(ui->treeWidget,QScroller::LeftMouseButtonGesture);
    ui->tableWidget->setVerticalScrollMode(QListWidget::ScrollPerPixel);
    ui->tableWidget->setHorizontalScrollMode(QListWidget::ScrollPerPixel);
    QScroller::grabGesture(ui->tableWidget,QScroller::LeftMouseButtonGesture);

    //布局
    QVBoxLayout *layoutmain=new QVBoxLayout(this->centralWidget());
    //layoutmain->addWidget(ui->scrollArea);
    layoutmain->addWidget(scrollceshi);
    layoutmain->addWidget(ui->listWidget);
    layoutmain->addWidget(ui->treeWidget);
    layoutmain->addWidget(ui->tableWidget);

}

MainWindow::~MainWindow()
{
    delete ui;
}

mainwindow.h

#ifndef MAINWINDOW_H
#define MAINWINDOW_H

#include <QMainWindow>
#include<QFrame>
namespace Ui {
class MainWindow;
}

class MainWindow : public QMainWindow
{
    Q_OBJECT

public:
    explicit MainWindow(QWidget *parent = 0);
    ~MainWindow();

private:
    Ui::MainWindow *ui;
    QFrame *frameceshi;
};

#endif // MAINWINDOW_H

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值