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