欧美日韩亚-欧美日韩亚州在线-欧美日韩亚洲-欧美日韩亚洲第一区-欧美日韩亚洲二区在线-欧美日韩亚洲高清精品

金喜正规买球

Qt網格組件QtitanDataGrid教程:如何使用添加新行功能

轉帖|使用教程|編輯:鮑佳佳|2021-09-06 11:04:40.607|閱讀 214 次

概述:該示例演示了用戶如何向網格輸入新行。新行可以位于視圖的頂部或底部。

# 界面/圖表報表/文檔/IDE等千款熱門軟控件火熱銷售中 >>

QtitanDataGrid 是一個用于 Qt 的商業 DataGrid 組件,它為向最終用戶呈現表格數據提供了真正非凡的可能性。組件吸收了用于顯示表格的用戶界面構造領域的所有現代成就。目前,是 Qt 市場上唯一具有如此令人印象深刻的高級功能和出色性能的網格組件。(查看詳情)

QtitanDataGrid使你能夠從不同的來源加載各種類型的數據到一個快速、靈活和功能性的可編輯網格中,支持排序、分組、報告、創建帶狀列、按鈕的拖放和大量其他方便的功能。這個數據網格幫助具有Delphi和C++背景的新手和經驗豐富的Qt開發者使用同樣全面的高級可編輯網格功能,他們已經習慣了在相應的IDE中使用這些功能,而這些功能并不是標準Qt庫的一部分。

下載QtitanDataGrid最新版

該示例展示了如何使用添加新行功能。

該示例演示了用戶如何向網格輸入新行。新行可以位于視圖的頂部或底部。





AddingNewRowFeature/AddingNewRowFeature.pro



TEMPLATE = app

TARGET = "Grid_"$$member(TARGET, 0)

QTITANDIR = $$quote($$(QTITANDIR))
isEmpty(QTITANDIR):QTITANDIR = $$quote($$PWD/../../../)
include($$QTITANDIR/src/shared/qtitangrid.pri)

DESTDIR = $$QTITANDIR/bin
DESTDIR = $$member(DESTDIR, 0)$$QTITAN_LIB_PREFIX
DESTDIR = "$$DESTDIR"

android:ANDROID_PACKAGE_SOURCE_DIR=$$PWD/../../SQLFiles

!debug_and_release|build_pass {
    CONFIG(debug, debug|release) {
        TARGET = $$member(TARGET, 0)d
    }
}

HEADERS      += window.h

SOURCES      += main.cpp \
                window.cpp

include($$PWD/../../shared/DemoMainWindow.pri)

QT += widgets sql xml

macx {
    CONFIG-=app_bundle
}

QMAKE_CXXFLAGS -= FS
AddingNewRowFeature/AddingNewRowFeature.py



import sys, os
sys.path.append(os.path.dirname(os.path.realpath(__file__)) + "/../../shared")

from PySide2 import QtCore
from PySide2.QtCore import Qt, SIGNAL, SLOT, QTimer
from PySide2.QtGui import QPixmap
from PySide2.QtWidgets import (QWidget, QApplication, QVBoxLayout, QHBoxLayout, QPushButton,
                               QSlider, QLabel, QCheckBox, QComboBox, QMessageBox)
from PySide2.QtSql import QSqlDatabase, QSqlError, QSqlTableModel

from DevMachines import QtitanBase
from DevMachines.QtitanBase import Qtitan
from DevMachines.QtitanGrid import (getGridVersion, Grid, DBGrid, GridColumn, GridEditor,
                                    CellButtonClickEventArgs, ContextMenuEventArgs,
                                    EditorValidationEventArgs)

from DemoMainWindow import DemoMainWindow

class Window(DemoMainWindow):
    def __init__(self):
        DemoMainWindow.__init__(self, "QtitanDataGrid", getGridVersion())
        self.setWindowTitle(self.tr("Adding row to the grid possibility"))
        self.setGeometry(150, 150, 1000, 800)

        Grid.loadTranslation()

        self.grid = DBGrid()

        prefix = os.path.dirname(os.path.realpath(__file__))
        prefix += "/../../SQLFiles/assets"

        db = QSqlDatabase.addDatabase("QSQLITE", "database_demo")

        db.setDatabaseName(prefix + "/database.sqlite")
        db.setHostName("")
        db.setPort(-1)
        if not db.open("", ""):
            err = db.lastError()
            QSqlDatabase.removeDatabase("database_demo")
            QMessageBox.critical(self, "Demo Error", "Error: Can't open database " + db.databaseName() + ", error - " + err.text())
            QApplication.exit(1)
            return

        model = QSqlTableModel(self.grid, db)
        model.setTable("data")
        model.select()
        if model.lastError().type() != QSqlError.NoError:
            QMessageBox.critical(0, "Demo Error", "Error: SQL data base is not valid.")
            QApplication.exit(1)
            return

        model.setEditStrategy(QSqlTableModel.OnFieldChange)

        # Configure grid view
        self.grid.setViewType(Grid.BandedTableView)
        view = self.grid.view()
        view.options().setBandsHeader(False)
        view.options().setColumnAutoWidth(True)
        view.options().setRowAutoHeight(True)
        view.options().setNewRowPlace(Qtitan.AtBeginning)
        view.options().setNewRowHighlightEffect(Qtitan.AlphaEffect)

        # Connect Grid's context menu handler.
        self.connect(view, SIGNAL("contextMenu(ContextMenuEventArgs*)"), self,
                SLOT("contextMenu(ContextMenuEventArgs*)"))

        characteristicsBand = view.addBand("Characteristics")
        engineeringBand = view.addBand("Engineering")
        view.setModel(model)

        column = view.getColumnByModelColumnName("Photo")
        column = view.getColumnByModelColumnName("Registration")
        column.setBandIndex(characteristicsBand.index())
        column = view.getColumnByModelColumnName("Aircraft")
        column.setBandIndex(characteristicsBand.index())
        column = view.getColumnByModelColumnName("Location")
        column.setBandIndex(characteristicsBand.index())
        column.setRowIndex(1)
        column = view.getColumnByModelColumnName("Date")
        column.setBandIndex(characteristicsBand.index())
        column.setRowIndex(2)
        # Add cell button to the column.
        column.addButton(GridColumn.ClearButtonIcon, Qtitan.AtEnd, GridColumn.MouseOverPolicy)
        self.connect(column, SIGNAL("buttonClicked(CellButtonClickEventArgs*)"), self,
                    SLOT("cellButtonClicked(CellButtonClickEventArgs*)"))

        column = view.getColumnByModelColumnName("Photo")
        column.setEditorType(GridEditor.Picture)
        pictureEditor = column.editorRepository()

        column.setBandIndex(engineeringBand.index())
        column.setRowSpan(3)

        column = view.getColumnByModelColumnName("History")
        column.setEditorType(GridEditor.Memo)
        column.setBandIndex(engineeringBand.index())
        column.setRowSpan(3)

        # Add cell button to the column.
        column.addButton(GridColumn.ChoiceButtonIcon, Qtitan.AtEnd)
        self.connect(column, SIGNAL("buttonClicked(CellButtonClickEventArgs*)"), self,
                SLOT("cellButtonClicked(CellButtonClickEventArgs*)"))

        column = view.getColumnByModelColumnName("Info")
        column.setEditorType(GridEditor.Memo)
        column.setBandIndex(engineeringBand.index())
        column.setRowSpan(3)

        # Add cell button to the column.
        column.addButton(GridColumn.ChoiceButtonIcon, Qtitan.AtEnd)
        self.connect(column, SIGNAL("buttonClicked(CellButtonClickEventArgs*)"), self,
                SLOT("cellButtonClicked(CellButtonClickEventArgs*)"))

        # Show button menu for all column headers.
        for i in range(0, view.getColumnCount()):
            view.getColumn(i).setMenuButtonVisible(True)

        self.setDemoWidget(self.grid, self.createSettingsWidget())
        view.bestFit()

    def createSettingsWidget(self):
        settings = QWidget(self)
        l = QVBoxLayout(settings)
        placeLabel = QLabel(settings)
        placeLabel.setText(self.tr("Row pane place:"))
        newRowPosition = QComboBox(settings)
        newRowPosition.addItem("Top")
        newRowPosition.addItem("Bottom")
        newRowPosition.addItem("Hide")
        self.connect(newRowPosition, SIGNAL("activated(int)"), self, SLOT("newRowPositionActivated(int)"))
        placeLabel.setBuddy(newRowPosition)
        hl = QHBoxLayout()
        hl.addWidget(placeLabel)
        hl.addWidget(newRowPosition)
        l.addLayout(hl)

        effectLabel = QLabel(settings)
        effectLabel.setText(self.tr("Highlight effect:"))
        newRowEffect = QComboBox(settings)
        newRowEffect.addItem("Flash")
        newRowEffect.addItem("Alpha")
        self.connect(newRowEffect, SIGNAL("activated(int)"), self, SLOT("newRowEffectActivated(int)"))
        effectLabel.setBuddy(newRowEffect)
        hl = QHBoxLayout()
        hl.addWidget(effectLabel)
        hl.addWidget(newRowEffect)
        l.addLayout(hl)

        fastScrollCheck = QCheckBox(settings)
        fastScrollCheck.setText(self.tr("Fast scroll effect"))
        self.connect(fastScrollCheck, SIGNAL("stateChanged(int)"), self, SLOT("fastScrollChanged(int)"))
        l.addWidget(fastScrollCheck)
        fastScrollCheck.setChecked(True)

        dottedLineCheck = QCheckBox(settings)
        dottedLineCheck.setText(self.tr("Dotted grid line"))
        self.connect(dottedLineCheck, SIGNAL("stateChanged(int)"), self, SLOT("dottedLineChanged(int)"))
        l.addWidget(dottedLineCheck)
        dottedLineCheck.setChecked(True)

        label = QLabel(self)
        hl = QHBoxLayout()
        label.setText(self.tr("Grid line style:"))
        lineStylesSelect = QComboBox(settings)
        lineStylesSelect.addItem("None")
        lineStylesSelect.addItem("Both")
        lineStylesSelect.addItem("Both2D")
        lineStylesSelect.addItem("Horizontal")
        lineStylesSelect.addItem("Horizontal2D")
        lineStylesSelect.addItem("Vertical")
        lineStylesSelect.addItem("Vertical2D")
        self.connect(lineStylesSelect, SIGNAL("currentIndexChanged(int)"),
            self, SLOT("selectGridLineStyles(int)"))
        hl.addWidget(label)
        hl.addWidget(lineStylesSelect)
        l.addLayout(hl)
        lineStylesSelect.setCurrentIndex(2)

        zoomEnable = QCheckBox(settings)
        zoomEnable.setText(self.tr("Zoom enabled"))
        zoomEnable.setChecked(True)
        self.connect(zoomEnable, SIGNAL("stateChanged(int)"), self, SLOT("zoomEnabledChanged(int)"))
        l.addWidget(zoomEnable)

        zoomIndicator = QCheckBox(settings)
        zoomIndicator.setText(self.tr("Show zoom indicator"))
        zoomIndicator.setChecked(True)
        self.connect(zoomIndicator, SIGNAL("stateChanged(int)"), self, SLOT("zoomIndicatorChanged(int)"))
        l.addWidget(zoomIndicator)

        zoomSlider = QSlider(settings)
        zoomSlider.setOrientation(Qt.Horizontal)
        zoomSlider.setTickPosition(QSlider.TicksBothSides)
        zoomSlider.setMinimum(25)
        zoomSlider.setMaximum(300)
        zoomSlider.setTickInterval(25)
        zoomSlider.setSingleStep(25)
        zoomSlider.setValue(100)
        self.connect(zoomSlider, SIGNAL("sliderMoved(int)"), self, SLOT("zoomValueChanged(int)"))
        self.connect(self.grid.view(), SIGNAL("zoomChanged(int)"), zoomSlider, SLOT("setValue(int)"))
        l.addWidget(zoomSlider)

        airCheckBox = QCheckBox(settings)
        airCheckBox.setText(self.tr("Windows Air Support"))
        self.connect(airCheckBox, SIGNAL("stateChanged(int)"), self, SLOT("WindowsAirSupportChanged(int)"))
        airCheckBox.setChecked(False)
        l.addWidget(airCheckBox)

        cellAutoRaise = QCheckBox(settings)
        cellAutoRaise.setText(self.tr("Auto raise cell button"))
        self.connect(cellAutoRaise, SIGNAL("stateChanged(int)"), self, SLOT("cellButtonAutoRaiseEnabled(int)"))
        cellAutoRaise.setChecked(True)
        l.addWidget(cellAutoRaise)

        frozenRowsBox = QCheckBox(settings)
        frozenRowsBox.setText(self.tr("Frozen Rows"))
        self.connect(frozenRowsBox, SIGNAL("stateChanged(int)"), self, SLOT("frozenRowsEnabled(int)"))
        frozenRowsBox.setChecked(True)
        l.addWidget(frozenRowsBox)

        transparentBox = QCheckBox(settings)
        transparentBox.setText(self.tr("Transparent Background"))
        self.connect(transparentBox, SIGNAL("stateChanged(int)"), self, SLOT("transparentBackgroundEnabled(int)"))
        transparentBox.setChecked(False)
        l.addWidget(transparentBox)

        printButton = QPushButton(settings)
        printButton.setText(self.tr("Print Preview"))
        self.connect(printButton, SIGNAL("clicked()"), self, SLOT("printPreview()"))
        l.addWidget(printButton)
        return settings

    @QtCore.Slot(int)
    def newRowPositionActivated(self, index):
        view = self.grid.view()
        if index == 0:
            view.options().setNewRowPlace(Qtitan.AtBeginning)
        elif index == 1:
            view.options().setNewRowPlace(Qtitan.AtEnd)
        elif index == 2:
            view.options().setNewRowPlace(Qtitan.AtNone)

    @QtCore.Slot(int)
    def newRowEffectActivated(self, index):
        view = self.grid.view()
        if index == 0:
            view.options().setNewRowHighlightEffect(Qtitan.FlashEffect)
        else:
            view.options().setNewRowHighlightEffect(Qtitan.AlphaEffect)

    @QtCore.Slot(int)
    def fastScrollChanged(self, state):
        view = self.grid.view()
        view.options().setFastScrollEffect(state == Qt.Checked)

    @QtCore.Slot(int)
    def dottedLineChanged(self, state):
        view = self.grid.view()
        pen = view.options().gridLinePen()
        if state == Qt.Checked:
            pen.setStyle(Qt.DotLine)
        else:
            pen.setStyle(Qt.SolidLine)
        view.options().setGridLinePen(pen)

    @QtCore.Slot(int)
    def selectGridLineStyles(self, index):
        view = self.grid.view()
        if index == 0:
            view.options().setGridLines(Qtitan.LinesNone)
        elif index == 1:
            view.options().setGridLines(Qtitan.LinesBoth)
        elif index == 2:
            view.options().setGridLines(Qtitan.LinesBoth2D)
        elif index == 3:
            view.options().setGridLines(Qtitan.LinesHorizontal)
        elif index == 4:
            view.options().setGridLines(Qtitan.LinesHorizontal2D)
        elif index == 5:
            view.options().setGridLines(Qtitan.LinesVertical)
        elif index == 6:
            view.options().setGridLines(Qtitan.LinesVertical2D)
        else:
            view.options().setGridLines(Qtitan.LinesBoth)

    @QtCore.Slot(int)
    def zoomEnabledChanged(self, state):
        view = self.grid.view()
        view.options().setZoomEnabled(state == Qt.Checked)

    @QtCore.Slot(int)
    def zoomIndicatorChanged(self, state):
        view = self.grid.view()
        view.options().setZoomIndicatorActive(state == Qt.Checked)

    @QtCore.Slot(int)
    def zoomValueChanged(self, value):
        factor = (float(value) / 25) * 25
        view = self.grid.view()
        view.options().setZoomFactor(factor / 100)

    @QtCore.Slot(int)
    def WindowsAirSupportChanged(self, state):
        view = self.grid.view()
        view.options().setWindowsAirSupported(state == Qt.Checked)

    @QtCore.Slot(int)
    def cellButtonAutoRaiseEnabled(self, state):
        view = self.grid.view()
        view.options().setCellButtonAutoRaise(state == Qt.Checked)

    @QtCore.Slot(int)
    def frozenRowsEnabled(self, state):
        view = self.grid.view()
        view.options().setRowFrozenButtonVisible(state == Qt.Checked)
        view.options().setFrozenPlaceQuickSelection(state == Qt.Checked)

    @QtCore.Slot(int)
    def transparentBackgroundEnabled(self, state):
        view = self.grid.view()
        view.options().setTransparentBackground(state == Qt.Checked)
        view.options().setAlternatingRowColors(not view.options().alternatingRowColors())

    @QtCore.Slot(ContextMenuEventArgs)
    def contextMenu(self, args):
        args.contextMenu().addAction("Print Preview", self, SLOT("printPreview()"))
        args.contextMenu().addSeparator()
        args.contextMenu().addAction("Developer Machines on the Web", self, SLOT("showCompanyWebSite()"))

    @QtCore.Slot(CellButtonClickEventArgs)
    def cellButtonClicked(self, args):
        QMessageBox.information(self, "Cell button clicked",
            "Clicked: Button - " + str(args.buttonIndex()) + ", Column Title - " + args.column().caption() + ", RowIndex - " + str(args.row().rowIndex()))

    @QtCore.Slot()
    def printPreview(self):
        self.grid.view().printPreview()

    def setShadeColor(self, color):
        self.grid.themeManager().setShadeColor(color)

if __name__ == "__main__":
    app = QApplication(sys.argv)
    w = Window()
    w.show()
    sys.exit(app.exec_())
AddingNewRowFeature/main.cpp



#include <QApplication>

#include "window.h"

int main(int argc, char *argv[])
{
    QApplication app(argc, argv);
    Window window;
    window.show();
    return app.exec();
}
.cpp



Home Tech Support
Developer Machines
QtitanComponents Documentation

Index All Classes Examples And Tutorials
AddingNewRowFeature Example
#include <QtGui>
#include <QDirModel>
#include <QtSql>
#include <QMessageBox>

#include "window.h"

Window::Window()
: DemoMainWindow(QStringLiteral("QtitanDataGrid"), QStringLiteral(QTN_VERSION_DATAGRID_STR), tr("Adding New Row to the grid possibility example"))
{
    Grid::loadTranslation();

    m_grid = new Qtitan::DBGrid(this);

#ifndef Q_OS_ANDROID
    QString path = QApplication::applicationDirPath();
    path += QStringLiteral("/../examples/SQLFiles/assets");
#else
    QString path = QDir::homePath();
    copyAssetFile(path, "database.sqlite");
#endif

    QSqlDatabase db = QSqlDatabase::addDatabase(QStringLiteral("QSQLITE"), QStringLiteral("database_demo"));
    db.setDatabaseName(path + QStringLiteral("/database.sqlite"));
    db.setHostName(QString());
    db.setPort(-1);
    if (!db.open(QString(), QString()))
    {
        QSqlError err = db.lastError();
        QSqlDatabase::removeDatabase(tr("database_demo"));
        QMessageBox::critical(0, tr("SQL Error"), tr("Error: Can't open database - %1, error - %2").arg(db.databaseName()).arg(err.text()));
        QApplication::exit(1);
        return;
    }

    QSqlTableModel* model = new QSqlTableModel(m_grid, db);
    model->setTable(QStringLiteral("data"));
    model->select();
    if (model->lastError().type() != QSqlError::NoError)
    {
        QMessageBox::critical(0, tr("SQL Error"), tr("Error: SQL data base is not valid."));
        QApplication::exit(1);
        return;
    }
    model->setEditStrategy(QSqlTableModel::OnFieldChange);

    // Configure grid view
    m_grid->setViewType(Qtitan::Grid::BandedTableView);
    Qtitan::GridBandedTableView* view = m_grid->view<Qtitan::GridBandedTableView>();
    view->options().setBandsHeader(false);
    view->options().setColumnAutoWidth(true);
    view->options().setRowAutoHeight(true);
    view->options().setNewRowPlace(Qtitan::AtBeginning);
    view->options().setNewRowHighlightEffect(Qtitan::AlphaEffect);
    view->options().setSupportedDropActions(Qt::CopyAction);
    view->options().setModelItemsDragEnabled(true);

    //Connect Grid's context menu handler.
    connect(view, SIGNAL(contextMenu(ContextMenuEventArgs*)), this, SLOT(contextMenu(ContextMenuEventArgs* )));

    Qtitan::GridTableBand* characteristicsBand = view->addBand(tr("Characteristics"));
    Qtitan::GridTableBand* engineeringBand = view->addBand(tr("Engineering"));
    view->setModel(model);

    Qtitan::GridBandedTableColumn* column = (Qtitan::GridBandedTableColumn *)view->getColumnByModelColumnName(tr("Photo"));
    column = (Qtitan::GridBandedTableColumn *)view->getColumnByModelColumnName(tr("Registration"));
    column->setBandIndex(characteristicsBand->index());
    column = (Qtitan::GridBandedTableColumn *)view->getColumnByModelColumnName(tr("Aircraft"));
    column->setBandIndex(characteristicsBand->index());
    column = (Qtitan::GridBandedTableColumn *)view->getColumnByModelColumnName(tr("Location"));
    column->setBandIndex(characteristicsBand->index());
    column->setRowIndex(1);
    column = (Qtitan::GridBandedTableColumn *)view->getColumnByModelColumnName(tr("Date"));
    column->setBandIndex(characteristicsBand->index());
    column->setRowIndex(2);
    //Add cell button to the column.
    column->addButton(GridColumn::ClearButtonIcon, Qtitan::AtEnd, GridColumn::MouseOverPolicy);
    connect(column, SIGNAL(buttonClicked(CellButtonClickEventArgs*)), this, SLOT(cellButtonClicked(CellButtonClickEventArgs*)));

    column = (Qtitan::GridBandedTableColumn *)view->getColumnByModelColumnName(tr("Photo"));
    column->setEditorType(GridEditor::Picture);
    Qtitan::GridPictureEditorRepository* pictureEditor = (Qtitan::GridPictureEditorRepository *)column->editorRepository();
    Q_UNUSED(pictureEditor);
    column->setBandIndex(engineeringBand->index());
    column->setRowSpan(3);

    column = (Qtitan::GridBandedTableColumn *)view->getColumnByModelColumnName(tr("History"));
    column->setEditorType(GridEditor::Memo);
    column->setBandIndex(engineeringBand->index());
    column->setRowSpan(3);
    //Add cell button to the column.
    column->addButton(GridColumn::ChoiceButtonIcon, Qtitan::AtEnd);
    connect(column, SIGNAL(buttonClicked(CellButtonClickEventArgs*)), this, SLOT(cellButtonClicked(CellButtonClickEventArgs*)));

    column = (Qtitan::GridBandedTableColumn *)view->getColumnByModelColumnName(tr("Info"));
    column->setEditorType(GridEditor::Memo);
    column->setBandIndex(engineeringBand->index());
    column->setRowSpan(3);
    //Add cell button to the column.
    column->addButton(GridColumn::ChoiceButtonIcon, Qtitan::AtEnd);
    connect(column, SIGNAL(buttonClicked(CellButtonClickEventArgs*)), this, SLOT(cellButtonClicked(CellButtonClickEventArgs*)));

    //Show button menu for all column headers.
    for (int i = 0; i < view->getColumnCount(); ++i)
        static_cast<GridTableColumn *>(view->getColumn(i))->setMenuButtonVisible(true);

    setDemoWidget(m_grid, createSettingsWidget());

    view->bestFit();
}

QWidget* Window::createSettingsWidget()
{
    QWidget* settings = new QWidget(this);
    QVBoxLayout* l = new QVBoxLayout(settings);

    QCheckBox* checkBox = new QCheckBox(settings);
    checkBox->setText(tr("Show Resize Content (new)"));
    connect(checkBox, SIGNAL(stateChanged(int)), this, SLOT(showResizeContentChanged(int)));
    checkBox->setChecked(true);
    l->addWidget(checkBox);

    QLabel* placeLabel = new QLabel(settings);
    placeLabel->setText(tr("New Row pane place:"));
    QComboBox* newRowPosition = new QComboBox(settings);
    newRowPosition->addItem(tr("Top"));
    newRowPosition->addItem(tr("Bottom"));
    newRowPosition->addItem(tr("Hide"));
    connect(newRowPosition, SIGNAL(activated(int)), this, SLOT(newRowPositionActivated(int)));
    placeLabel->setBuddy(newRowPosition);
    QHBoxLayout* hl = new QHBoxLayout(0);
    hl->addWidget(placeLabel);
    hl->addWidget(newRowPosition);
    l->addLayout(hl);

    QLabel* effectLabel = new QLabel(settings);
    effectLabel->setText(tr("Highlight effect:"));
    QComboBox* newRowEffect = new QComboBox(settings);
    newRowEffect->addItem(tr("Flash"));
    newRowEffect->addItem(tr("Alpha"));
    connect(newRowEffect, SIGNAL(activated(int)), this, SLOT(newRowEffectActivated(int)));
    effectLabel->setBuddy(newRowEffect);
    hl = new QHBoxLayout(0);
    hl->addWidget(effectLabel);
    hl->addWidget(newRowEffect);
    l->addLayout(hl);

    QCheckBox* fastScrollCheck = new QCheckBox(settings);
    fastScrollCheck->setText(tr("Fast scroll effect"));
    connect(fastScrollCheck, SIGNAL(stateChanged(int)), this, SLOT(fastScrollChanged(int)));
    l->addWidget(fastScrollCheck);
    fastScrollCheck->setChecked(true);

    QCheckBox* dottedLineCheck = new QCheckBox(settings);
    dottedLineCheck->setText(tr("Dotted grid line"));
    connect(dottedLineCheck, SIGNAL(stateChanged(int)), this, SLOT(dottedLineChanged(int)));
    l->addWidget(dottedLineCheck);
    dottedLineCheck->setChecked(true);

    QLabel* label = new QLabel(this);
    hl = new QHBoxLayout(0);
    label->setText(tr("Grid line style:"));
    QComboBox* lineStylesSelect = new QComboBox(settings);
    lineStylesSelect->addItem(tr("None"));
    lineStylesSelect->addItem(tr("Both"));
    lineStylesSelect->addItem(tr("Both2D"));
    lineStylesSelect->addItem(tr("Horizontal"));
    lineStylesSelect->addItem(tr("Horizontal2D"));
    lineStylesSelect->addItem(tr("Vertical"));
    lineStylesSelect->addItem(tr("Vertical2D"));
    connect(lineStylesSelect, SIGNAL(currentIndexChanged(int)), this, SLOT(selectGridLineStyles(int)));
    hl->addWidget(label);
    hl->addWidget(lineStylesSelect);
    l->addLayout(hl);
    lineStylesSelect->setCurrentIndex(2);

    QCheckBox* zoomEnable = new QCheckBox(settings);
    zoomEnable->setText(tr("Zoom enabled"));
    zoomEnable->setChecked(true);
    connect(zoomEnable, SIGNAL(stateChanged(int)), this, SLOT(zoomEnabledChanged(int)));
    l->addWidget(zoomEnable);

    QCheckBox* zoomIndicator = new QCheckBox(settings);
    zoomIndicator->setText(tr("Show zoom indicator"));
    zoomIndicator->setChecked(true);
    connect(zoomIndicator, SIGNAL(stateChanged(int)), this, SLOT(zoomIndicatorChanged(int)));
    l->addWidget(zoomIndicator);

    QSlider* zoomSlider = new QSlider(settings);
    zoomSlider->setOrientation(Qt::Horizontal);
    zoomSlider->setTickPosition(QSlider::TicksBothSides);
    zoomSlider->setMinimum(25);
    zoomSlider->setMaximum(300);
    zoomSlider->setTickInterval(25);
    zoomSlider->setSingleStep(25);
    zoomSlider->setValue(100);
    connect(zoomSlider, SIGNAL(sliderMoved(int)), this, SLOT(zoomValueChanged(int)));
    connect(m_grid->view<Qtitan::GridTableView>(), SIGNAL(zoomChanged(int)), zoomSlider, SLOT(setValue(int)));
    l->addWidget(zoomSlider);

    QCheckBox* cellAutoRaise = new QCheckBox(settings);
    cellAutoRaise->setText(tr("Auto raise cell button"));
    connect(cellAutoRaise, SIGNAL(stateChanged(int)), this, SLOT(cellButtonAutoRaiseEnabled(int)));
    cellAutoRaise->setChecked(true);
    l->addWidget(cellAutoRaise);

    QCheckBox* frozenRowsBox = new QCheckBox(settings);
    frozenRowsBox->setText(tr("Frozen Rows"));
    connect(frozenRowsBox, SIGNAL(stateChanged(int)), this, SLOT(frozenRowsEnabled(int)));
    frozenRowsBox->setChecked(true);
    l->addWidget(frozenRowsBox);

    QCheckBox* transparentBox = new QCheckBox(settings);
    transparentBox->setText(tr("Transparent Background"));
    connect(transparentBox, SIGNAL(stateChanged(int)), this, SLOT(transparentBackgroundEnabled(int)));
    transparentBox->setChecked(false);
    l->addWidget(transparentBox);

    QCheckBox* rowSizingBox = new QCheckBox(settings);
    rowSizingBox->setText(tr("Resizing row (new)"));
    connect(rowSizingBox, SIGNAL(stateChanged(int)), this, SLOT(rowSizingEnabled(int)));
    rowSizingBox->setChecked(false);
    l->addWidget(rowSizingBox);

    QPushButton* printButton = new QPushButton(settings);
    printButton->setText(tr("Print Preview"));
    connect(printButton, SIGNAL(clicked()), this, SLOT(printPreview()));
    l->addWidget(printButton);
    return settings;
}

void Window::newRowPositionActivated(int index)
{
    Qtitan::GridTableView* view = m_grid->view<Qtitan::GridTableView>();

    switch (index)
    {
    case 0:
        view->options().setNewRowPlace(Qtitan::AtBeginning);
        break;
    case 1:
        view->options().setNewRowPlace(Qtitan::AtEnd);
        break;
    default:
        view->options().setNewRowPlace(Qtitan::AtNone);
    }
}

void Window::newRowEffectActivated(int index)
{
    Qtitan::GridTableView* view = m_grid->view<Qtitan::GridTableView>();

    switch (index)
    {
    case 0:
        view->options().setNewRowHighlightEffect(Qtitan::FlashEffect);
        break;
    case 1:
        view->options().setNewRowHighlightEffect(Qtitan::AlphaEffect);
        break;
    default:
        view->options().setNewRowHighlightEffect(Qtitan::AlphaEffect);
    }
}

void Window::fastScrollChanged(int state)
{
    Qtitan::GridTableView* view = m_grid->view<Qtitan::GridTableView>();
    view->options().setFastScrollEffect(state == Qt::Checked);
}

void Window::dottedLineChanged(int state)
{
    Qtitan::GridTableView* view = m_grid->view<Qtitan::GridTableView>();
    QPen pen = view->options().gridLinePen();
    pen.setStyle(state == Qt::Checked ? Qt::DotLine : Qt::SolidLine);
    view->options().setGridLinePen(pen);
}

void Window::selectGridLineStyles(int index)
{
    Qtitan::GridTableView* view = m_grid->view<Qtitan::GridTableView>();
    switch (index)
    {
    case 0:
        view->options().setGridLines(Qtitan::LinesNone);
        break;
    case 1:
        view->options().setGridLines(Qtitan::LinesBoth);
        break;
    case 2:
        view->options().setGridLines(Qtitan::LinesBoth2D);
        break;
    case 3:
        view->options().setGridLines(Qtitan::LinesHorizontal);
        break;
    case 4:
        view->options().setGridLines(Qtitan::LinesHorizontal2D);
        break;
    case 5:
        view->options().setGridLines(Qtitan::LinesVertical);
        break;
    case 6:
        view->options().setGridLines(Qtitan::LinesVertical2D);
        break;
    default:
        view->options().setGridLines(Qtitan::LinesBoth);
    }
 }

void Window::selectViewOrientation(int index)
{
    Qtitan::GridTableView* view = m_grid->view<Qtitan::GridTableView>();
    switch (index)
    {
    case 0:
        {
            view->options().setViewOrientation(Qt::Vertical);

            Qtitan::GridBandedTableColumn* column = (Qtitan::GridBandedTableColumn *)view->getColumnByModelColumnName(tr("Location"));
            column->setRowIndex(1);
            column = (Qtitan::GridBandedTableColumn *)view->getColumnByModelColumnName(tr("Date"));
            column->setRowIndex(2);
        }
        break;
    case 1:
        {
            view->options().setViewOrientation(Qt::Horizontal);

            Qtitan::GridBandedTableColumn* column = (Qtitan::GridBandedTableColumn *)view->getColumnByModelColumnName(tr("Location"));
            column->setRowIndex(0);
            column = (Qtitan::GridBandedTableColumn *)view->getColumnByModelColumnName( tr("Date"));
            column->setRowIndex(0);
        }
        break;
    default:
        break;
    }
}

void Window::zoomEnabledChanged(int state)
{
    Qtitan::GridTableView* view = m_grid->view<Qtitan::GridTableView>();
    view->options().setZoomEnabled(state == Qt::Checked);
}

void Window::zoomIndicatorChanged(int state)
{
    Qtitan::GridTableView* view = m_grid->view<Qtitan::GridTableView>();
    view->options().setZoomIndicatorActive(state == Qt::Checked);
}

void Window::zoomValueChanged(int value)
{
    double factor = qCeil((double)value / 25) * 25;
    Qtitan::GridTableView* view = m_grid->view<Qtitan::GridTableView>();
    view->options().setZoomFactor(factor / 100);
}

void Window::showResizeContentChanged(int state)
{
    Qtitan::GridTableView* view = m_grid->view<Qtitan::GridTableView>();
    view->options().setShowResizeContent(state == Qt::Checked);
}

void Window::cellButtonAutoRaiseEnabled(int state)
{
    Qtitan::GridTableView* view = m_grid->view<Qtitan::GridTableView>();
    view->options().setCellButtonAutoRaise(state == Qt::Checked);
}

void Window::frozenRowsEnabled(int state)
{
    Qtitan::GridTableView* view = m_grid->view<Qtitan::GridTableView>();
    view->options().setRowFrozenButtonVisible(state == Qt::Checked);
    view->options().setFrozenPlaceQuickSelection(state == Qt::Checked);
}

void Window::transparentBackgroundEnabled(int state)
{
    Qtitan::GridTableView* view = m_grid->view<Qtitan::GridTableView>();
    view->options().setTransparentBackground(state == Qt::Checked);

    view->options().setAlternatingRowColors(!view->options().alternatingRowColors());
}

void Window::rowSizingEnabled(int state)
{
    Qtitan::GridTableView* view = m_grid->view<Qtitan::GridTableView>();
    view->options().setRowSizingEnabled(state == Qt::Checked);
}

void Window::contextMenu(ContextMenuEventArgs* args)
{
    args->contextMenu()->addAction(tr("Print Preview"), this, SLOT(printPreview()));
    args->contextMenu()->addSeparator();
    args->contextMenu()->addAction(tr("Developer Machines on the Web"), this, SLOT(showCompanyWebSite()));
}

void Window::cellButtonClicked(CellButtonClickEventArgs* args)
{
    QMessageBox::information(this, tr("Cell button clicked"),
        tr("Clicked: Button - %1, Column Title - %2, RowIndex - %3").arg(args->buttonIndex()).arg(args->column()->caption()).arg(args->row().rowIndex()));
}

void Window::printPreview()
{
    m_grid->view<Qtitan::GridTableView>()->printPreview();
}

void Window::setShadeColor(const QColor& color)
{
    m_grid->themeManager()->setShadeColor(color);
}


AddingNewRowFeature/window.h

#ifndef WINDOW_H
#define WINDOW_H

#include <QComboBox>
#include <QLabel>
#include <QCheckBox>
#include <QtitanDBGrid.h>

#include "DemoMainWindow.h"

class Window : public DemoMainWindow
{
    Q_OBJECT
public:
    Window();
    QWidget* createSettingsWidget();
private Q_SLOTS:
    void newRowPositionActivated(int index);
    void newRowEffectActivated(int index);
    void fastScrollChanged(int state);
    void dottedLineChanged(int state);
    void selectGridLineStyles(int index);
    void selectViewOrientation(int index);
    void zoomEnabledChanged(int state);
    void zoomIndicatorChanged(int state);
    void cellButtonAutoRaiseEnabled(int state);
    void frozenRowsEnabled(int state);
    void transparentBackgroundEnabled(int state);
    void rowSizingEnabled(int);
    void contextMenu(ContextMenuEventArgs* args);
    void cellButtonClicked(CellButtonClickEventArgs* args);
    void printPreview();
    void setShadeColor(const QColor& color);
    void zoomValueChanged(int value);
    void showResizeContentChanged(int state);
private:
    Qtitan::DBGrid* m_grid;
};

#endif



標簽:

本站文章除注明轉載外,均為本站原創或翻譯。歡迎任何形式的轉載,但請務必注明出處、不得修改原文相關鏈接,如果存在內容上的異議請郵件反饋至chenjj@fc6vip.cn

文章轉載自:

為你推薦

  • 推薦視頻
  • 推薦活動
  • 推薦產品
  • 推薦文章
  • 慧都慧問
掃碼咨詢


添加微信 立即咨詢

電話咨詢

客服熱線
023-68661681

TOP
人人狠狠综合99综合久 | 国产老熟女精品一区二区 | 日本x片成年免费观看视频 性开放的欧美大片黑白配 欧美激合综图片区小说 | 一级特黄高清aaa | 亚洲欧美偷拍另类a∨ | 国产黄a三级三级三级看三级 | www黄在线观看| 国产亚洲欧美日韩国产片 | 欧美的高清视频在线 | 国产一区二区视频在线观看 | 国产日韩在线视看高清视频手机 | 91精品国产品国语在线不卡 | 男女爽爽午夜18污污影院 | 亚洲日韩成人精品不卡在线 | 日本三级理论一区二区三区 | 中文字幕日本精品一区二区三区 | 国产人成| 日本中文字幕精 | 亚洲香蕉中文日韩v日本 | 中文字幕在线观看 | а√天堂中文官网在线8 | 日产中文字乱码卡一卡二卡 | 国产在线观看免费视频在线 | 国产又黄又猛又粗又爽 | 日本欧美中文字幕精品一区 | 国产高清第一页 | 国产精品亚洲专区在线播放 | 好看的电视剧免费 | 成人精品免费视频在线观看 | 国产拍自| 亚洲区日韩精品中文字暮 | 中文字幕精品视频第一区第二区 | 国产精品自产精品在线观看 | 日韩专区亚洲精品欧美专区 | a级大胆欧美人体大胆666 | 一级在线免费观看 | 中文字幕v亚洲ⅴv天堂 | 日韩精品免费在线观看 | 亚洲欧美国产日韩精品 | 精品厕所偷拍各类美女tp嘘嘘 | 福利吧导航 | 911亚洲精品国产自产 | 国产理论片高清 | 99精品国产高清一区 | 在线点播亚洲日韩国产欧美 | 国产精品成人h片在线 | 朝鲜女人大白屁股ass孕交 | 韩国专区福利一区二区 | 国产日韩精品视频一区二区三区 | 国产精品欧美一区 | 十九岁中国电影在线观看免费 | 国产乱码精品一区二区三区香蕉 | 欧美大片在线观看免费视频 | 成年人免费在线看的惊悚动作片 | 一区二区不卡中文字幕在线 | 亚洲热视频 | 免费看日产一区二区三区 | 午夜dj免费视频在线观看 | 亚洲日韩一页精品发布 | 日本免费一区二区三区最新 | 一区二区三区国产精品午夜福利 | 97精品国产自在现线免费 | 免费高清永久在线不卡 | 尤物在线精品视频 | 欧美日韩一区二区三 | 中文字幕视频区 | 精品国产一区二区三区 | 欧美一级a一级a爱片免费免免 | 国产午夜亚洲精品不卡在线观看 | 69精产国品| 亚洲精品亚洲欧美综合区 | 超91精品手机国产 | 国产亚洲欧美另类一区 | 天美影视–天美影视传媒有限公司 | 亚洲国产精品成人va在线观看 | 国产天天看免 | 激情亚洲一区国 | 欧美a级v片在线观看一区 | 涩涩www在线观看免费高清 | 日韩天天精品综合 | 中文日本免费高清 | 给我免费观看片在线观看中国 | 涩涩热热国产丝袜一区 | 人人看人人拍国产精品 | 曰韩精品 | 国产一区精品视频 | 国色天香天天影院综合网 | 日韩高清亚洲日韩精品一 | 大地影院mv高清在线观看免费 | 午夜影院网站野外大战 | 福利片午夜免费观着 | 日韩国产一区二区三区地区 | 日本亚洲欧美国产日韩ay | 7788电影网| 又粗又大又黄又硬高清视频 | 日本一区欧美国产日韩 | 国产精品日韩欧美一区二区三区 | 中文精品视 | 久热中文字幕精品视 | 亚洲欧美大片在线观看 | 中文字幕一区二区三区精彩视频 | 午夜成人影片 | 日韩中文字幕精品视频在线 | 桃色影视国产一区二区三区 | 国产色系视频在线观看免费 | 丰满大号美女 | 美国特黄三级完整在线电 | 亚洲日本欧美日韩高观看 | 91sese| 亚洲精品老司机综合影院 | 国产2025精品一区 | 国产网站免费视频 | 亚洲无限 | 91福利国产在线在 | 日本最新在线观 | 亚洲小说区图片区另类春色 | 一区二区三区视频免费 | 日韩国产欧美精品综合二区 | 文中字幕一区二区三区视频播放 | 探花视频在线观看 | 精品一区二区三区高清 | 午夜三级a三级三点在线观看 | 亚洲v欧美v日韩v国产v | 亚洲国产一区二区中文字幕 | 亚洲人成在线观看网站播放 | 亚欧视频在线观 | 亚洲熟女丰满多毛xxxxx | 成人品观看免费 | 欧美一区二区成人午夜在线观看 | 日本伊人网在线观看 | 欧美经典日韩精品 | 精品国产亚洲一区二区三区在线观 | 91日本在线观看亚洲精品 | 精品国产一区二区三区四 | 中文字幕在线视 | 2025精品| 字幕一区二区三区四区 | 好看的电影电视剧大全 | 亚洲欧美日韩中文国产不卡 | 亚洲激情自拍偷拍 | 一区视频观看 | 国产免费一区二区三区视频 | 欧美日韩国产精品 | 亚洲精品国产精品制服丝袜 | 国产草莓| 羞羞视频免费入口网站 | 影视大全电视剧在线播放 | 亚洲欧美日韩国产精品专区网 | 亚洲综合精品 | 两性色午夜视频免费播放 | 欧美a一级在线观看 | 手机免费看一级 | 最近中文字幕无吗高清免费视频 | 经典日韩中文字幕综合网 | 韩国精品福利一区二区 | 亚洲无人区码卡二卡三卡四卡 | 在线播放国产一区 | 亚洲第一精品电影网 | 一区二区本码 | 话务耳机| 免费看老女人 | 亚洲色自偷自拍另类小说 | 国产又粗又猛又爽视频上 | 亚洲视频欧美视频在线视频 | 国产精品午夜爽爽爽免费 | 西瓜影音免费 | 国产一区二区三区美女图片 | 国内精品自线一区二区三区 | 国产精品成年片在线观看 | 九色精品高清在线播放 | 91青娱乐免费国产视频 | 亚洲国产精品激情在线观看 | 国产香蕉尹人综合在线观看 | 精品视频一区二区 | 亚洲日本中文字幕天堂网 | 国产欧美日韩不卡一区二区 | 亚洲欧美日韩ⅴ在线观看91 | 在线亚洲人成电影网站色www | 天天夜夜欢性恔免费视频 | 欧美偷窥清纯综 | 天天综合网天天做天天受 | 夜夜橾天天橾 | 91绿奴论坛九色国产 | 国产一区视频在线观看免费 | 国产精彩| 182tvc午夜福利在线观看污 | 俄罗斯美女真人性做爰 | 丝袜美腿一区二区三区 | 最近日本免费观看mv免费版 | 国产一区二区三区在线播放无 | 国产免费 | 国产一级a毛一级a看免费视 | 中奖视频在线观看国产 | 国产亚洲欧美日韩一区图片 | 国产精品多p对白交换绿 | 国产精品拍自在线 | 色依依亚洲一区在线观看 | 成人精品一区二区三四 | 97人人揉人人捏人人添电影 | 五月桃花网婷婷亚洲综合 | 亚洲限制级资源在线观看 | 鲁丝片一区二区三区免费 | 国产日本欧美一本在线观看 | 亚洲欧美日韩综合精品 | 合肥设计师网 | 国产一区二区三区欧美在线 | 欧美在线观看综合 | 国产91尤物在线观看互 | 亚洲国产日韩一级二级三 | 草草视频在线 | 亚洲经典一区二区三区 | 亚洲国产一区二区三区 | 中文字幕制服丝袜在线观看 | 门卫老头吮她 | 国产在线观看www | 午夜a级理论片在线播放 | 国产欧美乱夫不卡无乱码 | 在线中文字幕 | 精品一区二区三 | 自制国产2025福利看片 | 电视剧大全免费全集观看 | 99re国产精品视频首页 | 欧美日本道 | 片专区成人 | 亚洲国产精品激情在线观看 | 日本中文字幕在线视频一区 | 日韩经典一区 | 亚洲国产欧美日韩精品网 | 精品精品 | 日韩欧美综合在线二区三区 | 国内精品视频在线播放一区 | 九九热视频在线免费观看 | 国产免费一区二区三区在线观看 | 国产午夜亚洲精品不卡电影 | 日本免费一区二 | 亚洲v欧美v日韩v国产v | 免费99精品国 | 亚洲精品美女偷拍一区二 | 亚洲永久精品一二三网址永久导航 | 日韩精品一区二区三区中文在线 | 欧美日韩国产精品酒 | 国产精品一线二线三线 | 香蕉五月天一综合网 | 亚洲日韩欧美在线一区二区 | 国产精品97 | 国内最真实的xxxx人伦 | 中文字字幕在线中 | 亚洲欧洲综 | 欧美、另类亚洲 | 精品国产免费人成电影在线看 | 欧美a级情欲片在线观看免费 | 免费人成视频年轻人在线无毒不卡 | 欧美日韩国产一中文字不卡 | 日韩国产一区二区三区在线 | 国产综合色在线视频区 | 香港三级澳门三级欧洲三级 | 亚洲综合视频在线观看 | 国产精品主播一区二区 | 国产精品99精品 | 日日摸夜夜添欧美一区 | 欧美日韩在线视频制服 | 综合色就爱涩涩涩综合婷婷 | 国产精品午夜福利在线观看地址 | 国产精品永久免费自在线观 | 国产福利在线观看永久免费 | 精品福利一区二区在线观看 | 自拍亚洲欧美 | 国产精品成人亚发布 | 精品午夜国产福 | 国产精品国产一区二区三区 | 亚洲码专区亚洲码专区 | 日韩一区二区三区免费精品 | 高清在线亚洲精品国产二区 | 亚洲一区在线视频 | 亚洲欧洲中文字幕免费看 | 亚洲图片偷拍视频区 | 日本黄大片在线观看视频 | 视频一区二区三区在线看 | 免费追剧大全 | 亚洲日本道1区2区3区不卡 | 国产一区二区三区在线免费 | 最近中文字幕高清mv免费 | 九九99亚洲精品 | 两性色午夜视频免费国产 | 亚洲国产精品福利片在线观看 | 亚洲一级| 一级特黄aa大片欧美 | 欧美日韩性高爱潮视频 | 欧美成成人免费 | 亚洲国产精品大秀在线播放 | 免费高清理伦片在线观看 | 中文岛国精品亚洲一区 | 欧美丰满大 | 午夜dj在线观看免费中文 | 午夜一区二区三区 | 亚洲经典 | 欧洲亚洲日本 | 亚洲开心婷婷中文字幕 | 寡妇被折腾的死去活来 | 中字幕视频在线永久在线观看免费 | 午夜视频在线观看免费 | 亚洲午夜福利在线观看 | 国产一区二区三区在线综合视频 | 99精品国产一区二区三区不卡 | 最好免费观看高清视频大全 | 成人中文字幕在线 | 欧美区精品系列在线观看不卡 | 极品尤物一区二区三 | 精品在线免费观看 | 成人永久免费视频网站在线观看 | 妺妺窝人体色www聚色窝仙踪 | 亚洲一区激情校园小说 | 国产美女视频国产视视频 | 韩国美女直播福利一区二区 | 91导航小污女导航天天夜夜爽 | 蜜桃mv在线播放免费观看视频 | 国产午夜高清高清在线观看 | 中文字幕偷乱视频在线 | 国产一区二区免费播放 | 亚洲日本韩国 | 国产国产成| 977精品视频在线观看 | 欧美国产激情18 | 亚洲中文字幕高清有码在线 | 亚洲国产国语自产精品 | 2025年全裸 | 五月天精品视频在线观看 | 欧美精品黑人粗 | 伊人久色 | 色综合视频一区二区三区 | 亚洲人ⅴsaⅴ国产精品 | 国产成年女人 | 国产精品日韩精 | 亚洲aⅴ乱码一区二区波多野 | 日本一道一区二区免费看 | 国产精品偷伦视频免费观看 | 亚洲国产精品∨a在线看黑人 | 最近中文字幕免费高清mv视 | 亚洲国产精品∨a在线看黑人 | 国产精品先锋 | 国产精品香港三级国产 | 狂处让老二爽18p | 日韩欧美一区二区三区永久免费 | 国产盗摄xxxx | 亚洲综合在线成人一区 | 美足脚交国产在线观看 | 国产丰满老熟女重口对白 | 国产精品亚洲综合色区 | 精品国产污网站在线观看15 | 国产精品一区二区手机在线观看 | 蜜臀精品国产高清在线观看 | 成人免费在线视频一区二区三区 | 亚洲欧美国产国产一区二区三区 | 99re8这里有精品热视频 | 欧美性爱超长大吊网站 | 国产日产成人免费视频在线观看 | 中文字幕亚洲精品第1页 | 国产在线精品一区二区三区直播 | 国产另类在线欧美日韩 | 99热免费精品 | 亚洲高清在线看 | 中文字幕不卡免费高清视频 | 欧美在线看片免费观看 | 色天天综合色天天天天看大 | 成人午夜视频精品一区 | 中亚洲文日韩一区 | 国产精品午夜免费观看网站 | 亚洲欧美日韩中文国产不卡 | 国产精品一区99 | 成人羞羞视频 | 欧美日韩色综合网站 | 国产网站在线播放 | 精品免费视频大 | 日本最新乱伦视频 | 亚洲精品字幕中文在线播放 | 三年片在线观看免费大全电影 | 国产精品美女一区二区视频 | 91一区二区三 | 成人免费大片黄在线播放 | 欧美又粗又大一区二区 | 欧美日韩国产码高清 | 欧美在线精品亚洲综合网 | 在线亚洲欧美日韩每日更新 | 国产特黄特色a级在线视 | 天美传奇mv免费观看完整版 | 国产女m视| 国产人妖的免 | 国产91九色刺激露脸对白 | 亚欧免费大片在线观看 | 国产69公社在线视频 | 91精品视频网站 | 精品国偷自产在线视频 | 欧美图片一区二区三区 | 国产免费看视频 | 久精品国产欧美亚洲色aⅴ大片 | 日本野花视频在线观看 | 国产精品自在线拍国产电影 | 亚洲精品乱拍国产一区二区三区 | 宝贝乖把腿分大一点h欧阳凝小说 | 亚洲视频精品在线观看 | 亚洲成?v人片在线观看福利 | 午夜自产精品一区二区三区 | 天下第一日本在线观看视频 | 国产精品成人不卡在线观看 | 午夜福利精品一区 | 免费电影天堂 | 免费人成在线播放网站 | 青草青在线 | 国产欧美亚洲精品a | 草草精品在线视频 | 日韩视频一区二区在线观看 | 99热这里有免费国内精品 | 国产欧美日韩一区二区三区 | 中文字幕永久一区二区三区 | 免费人成黄页网站在线观看 | 国产女主播勾搭美团在线观看 | 亚洲清纯自偷自拍另类专区 | 免费人成在线观看网站免费观看 | 制服丝袜欧美中文 | 美女aⅴ高清电影在线观看 国产一区二区三区免费在线 | 中文字幕精品一区二区 | 国产精品一区二区三区 | 伊人成色综合网 | 日本不卡在线观看 | 国产精品免费观看网站 | 天美传媒、91制片厂、天美传媒 | 婷婷四房综合激情五月在线 | 牛牛影视在线精品一区二区 | 三级视频网站在线观看 | 亚洲欧美日韩 | 国产在线播放免费 | 99精品国产一区二区三区不卡 | 欧美精品亚洲精品日韩专 | 国产欧美日韩视频专区在线观看 | 国产思思99re99 | 亚洲日韩欧美一区二区在线 | 国产在线观看一区精品 | 欧美日韩一区二区三区视频 | 国产盗摄偷窥在线观看 | 免费国产a国产片精品 | 免费一级欧美片在线观看欧美 | 亚洲欧洲自拍图片 | 九九九热在线精品免费全部 | 一区二区三区国产美女在线播放 | 成+人+亚洲+综合天堂 | 法国性xxxx精品hd | 男女性潮高清免费网站 | 在线高清mv视频 | 挤奶在线 | 人与狗性| 97天堂nba永久 | 2025最新热播电视剧 | 夜夜橾天天橾 | 精品国产亚一区二区三区 | 黄+片在线免费观看+精品+巨 | 卡一卡二卡三国产传媒 | 两个人的免费完整版中文字幕 | 一级a看片免费视频 | 日本黄页网站免费大全 | 一区二区不卡中文字幕在线 | 国产伦精品一区二区三区 | 国产精品1024在线永久免费 | 亚洲国产福利成人一区二区 | 一区二区本码 | 国产精品福利短视在线播放频 | 五月综合激情婷婷六月色窝 | 中文有码 | 亚洲人午夜射精 | 亚洲国产精品日韩在线观看 | 国产免费a视频网站在线观看 | 国产福利一区二区三区在线观看 | 日韩女同在线二区三区 | 国产亚洲成aⅴ人片在线观看 | 精品女同一区二区三区 | 日韩欧美国产一区二区浪潮 | 中文乱幕日 | 黑色午夜 | 一级国产片一 | 国产家教老 | 亚洲综合激情另类小说区 | 老少配老妇老熟女中文普通话 | 蜜芽va亚洲| 解码2025最新电影预告片 | 国产精品自产拍在 | 国产成视频| 老年人一级特黄aa大片 | 免费一区二区视 | 在线观看视频一区精 | 国产在线观看美女福利精 | 在线观看亚洲中文字幕 | 国产午夜免费高清视频 | 综合乱伦国产中文 | 成人午夜福利片 | а√天堂资源8在线官网在线 | 国产高清一区二区三区视频 | 字幕一区 | 91黑料在线观看 | 鲁丝片一区二区三区免费 | 亚洲已满1 | 欧美日韩精品一区二区免费看 | 日本亚洲欧洲免费无线码 | 视频在线观看免费 | 日本大片免a | 又黄又粗暴的g | 欧美日韩国产在线一区 | 131美女爱做视频 | 欧美日韩在线亚洲一区二区三区 | 亚洲天天做日日做天天谢日日欢 | 欧美日韩国产精品一区二区 | 欧美精品aⅴ一区二区三区 天堂a在线观看视频 | 电影在线免费高清中文 | 国产精品吹潮在线观看中文 | 亚洲人成电影在线播放 | 欧美一区 | 免费电影资源 | 日韩免费无 | 日本精品| 国产乱之伦露脸对白xxxx | 欧美韩日二三在 | 一二三四在线观看免费中文吗中文 | 国产精品v欧美精品v日韩 | 99爱国产精品免费高清在线观看 | a级成人| 经典大片电影免费在线观看 | 日韩欧美1区 | 精品国产综合成人亚洲区 | 欧产日产国产精品精品 | 国产精品成人观看视频免费 | 五月天婷婷丁香中文字幕 | 国产精品免| 亚洲区小说区图片区qvod | 夜爽夜夜网 | 国产日韩欧美综合一区 | 国产亚洲综合区成 | 经典日韩中文字幕综合网 | 欧美精品视频手机在线视频 | 成人欧美一区二区三区黑人免费 | 在线一区免费播放 | 涩色综合| 羞羞影院午夜男女爽 | 精品国产午夜福利在线观看蜜月 | 极品美女在线观看免费直播 | 国产黑色丝袜在线看片不卡顿 | 国产精品欧美一区二区三区不 | 国产精品综合一区二区 | 中文字幕在线观看 | 久热国产vs视频在线观看 | 全国三级网站在线观看 | 岛国一区| 国产精品国产一区二区三区 | 一级一片免费播放 | 日韩在线观看 | 欧洲美熟女乱又伦免费视频 | 精品国产91高清在线观看 | 国产又粗又猛又爽又黄 | 亚洲一区二区三区免费视频 | 国产一区二区三区乱码在线观看 | 免费精品 | 午夜一区二区在线观看 | 99视频有精品视频在线观看 | 中文字幕亚洲综合小综合 | 津渝完整视频线上观看 | 欧美一区二区三区在线播放 | 老司国产 | 成人啪精品视频免费网 | 国产va免费精品 | 国产综合色在线视频区 | 在线视频一区二 | 五十路熟女俱乐部 | 综合精品网成人影院 | 国产精品欧美亚洲区 | 亚洲精品宾馆在线精品酒店 | 精品aⅴ老 | 丰满成熟亚洲人毛茸茸 | 国产大片亚州一 | 国产精品女同一区二区免费站 | 国产日本欧美在线观看 | 精品欧美一区二区三区在线观看 | 中文字幕免费在线观看 | 亚洲欧美日韩一区高清中文字幕 | 小说区激情另类春色 | 99热这里只有精品国产首页 | 台湾swag在线 | 国产精品高清自产拍 | 国产女人精品视 | 日韩精品中文字幕一区二区三区 | 国产盗摄偷窥在线观看 | 一区二区国产最新福 | 国产偷亚洲偷欧美偷精品 | 午夜探花 | 国产在线国偷精品免费看 | 亚洲第一页乱 | 羞羞影院午夜男女爽爽视频 | 成年人在线视频第一页 | 日韩视频免费在线观看 | 欧美aⅴ激情视频 | 午夜福利1000集在线观看 | 精品午夜福利在线观看 | 成年动漫h视频在线观看 | 亚洲国产日韩一级精品视频网站 | 亚洲三级在线观看 | 国产制服精品一区二区视色 | 国产在线拍揄自揄免费一区 | 亚洲风情亚aⅴ在线发布 | 国产精品剧情一区二区在线观看 | 国产精品亚洲二区在线观看 | 99视频在线免 | 策驰影院 | 蝌蚪一个释放的网站 | 中文字幕在线观 | 亚洲日韩在线精品茄子在线 | 日韩一区二区三区射精 | 亚洲永久精品 | 亚洲精品高清中文字幕完整版 | 国产精品狼人 | 亚洲成成 | 亚洲精品aⅴ中文字幕乱码 国产在线ts | 国产一区二区精品一区二区 | 电视剧大全免费在线观看 | 亚洲日本在线播放视频 | 又色又爽又黄刺激在线观看 | 无限国产 | 日韩一区| 亚欧人成精品免费观看 | 免费成人www视频在线观看 | 精品影片在线观看的网站 | 国产精品一区二区 | 国产免费福利影院 | 亚洲色成人中文字幕网站 | 国产又粗又黄又爽的免费视频 | 国产中文9 | 欧美一区二区免费 | 2025国产丝袜在线观看 | 天天影视综合网 | 国产精品自产拍在线观看中文 | 国产精品日产三级在线观看 | 欧美色欧美亚洲高清在线视 | 国产+成+人+亚洲欧洲自线 | 国产一区二区不卡 | 99国产精品欧美一区二区三区 | 伦理电影网在线观看 | 码二码三码四码 | 午夜熟女插插xx免费视频 | 浅田真美 | 亚洲激情 | 亚洲欧美韩国三级 | 又硬又粗又大一区二区三区视频 | 色五月最新网 | 欧美精品免费一区 | 色欧美亚洲欧 | 国产精品一区二区久 | 蜜芽va亚洲 | 国产亚洲欧美一区二区不卡 | 亚洲性影院在线看 | 亚洲欧美综合区自拍另类 | 国产一区二区三区日韩精品 | 一二三四在线观看免费中文吗中文 | 成人亚洲欧美丁香在线观看 | 精品日韩第56页 | 91污在线观 | 乱伦91欧 | 国产ts系列紫苑视频在线观看 | 亚洲精品中文字幕无乱码 | 亚洲欧美日韩国产色另类 | 最近日本韩国高清免费大全 | 欧美一区二区三区婷婷月色 | 国产精品亚洲午夜一区二区三区 | 日韩一区二区三区美女 | 亚洲国产欧美日韩另类 | 亚洲无限| 亚洲成在人线影视天堂网 | 91大片淫黄大片在线天堂 | 日韩精品制服诱惑中文字幕 | 三区免费视频 | 欧美精品自拍一区 | 国产午夜福利电影免费在线观看 | 欧美精品欧美***欧美激情 | 国产99| 亚洲日韩欧美综合网 | 日韩四级片在线看 | 欧美日产欧美日产精品 | 区一区二区三视频日韩 | 亚洲欧美日韩中文另类不卡 | 国产一区二区三区精彩视频 | 97se亚洲| 午夜免费福利片观看 | www.99在线观看 | 黑人巨大精品欧美一区在线 | 韩国三级香港三级日本三级la | 手机香蕉国产在线 | 91久色视| 欧美特一级 | 91tv在线播放 | 全黄性性激高免 | 一二三四视频中文成人 | 国产精品外 | 美女被男人桶到爽免费网站 | 亚洲欧美日韩 | 成人免费视频软件网站 | 欧美日韩国产一线天午夜秀场 | 99国精产品在线视频 | 欧美的高清视频在线 | 在线观看中文字幕 | 亚洲v日韩天堂片 | 成人欧美一区二区三区在线观看 | 亚洲欧美中文日韩v在线 | 手机大看福利永久国产 | 国产一区二区三区免费大片天美 | 成人天堂资源在线观看 | 2025天堂在线亚洲精品专区 | 欧美激情国产日韩 | 亚洲人成色77777在线观看 | 三级中文字幕永久在线视频 | 国产精品三级在线看免费看 | 美女撒尿一区二 | 一区二区三区在线免费看 | 青柠影院免费观看电视剧高清 | 女人脱精光一清二楚图片 | 亚洲国产精品尤物yw在线 | 国产乱理伦片在线午夜观看 | 国产亚洲一区二区手机在线观看 | 国产精品国产一区二区三区 | 精品美女| 中文国产日韩欧美视频 | 爱我免费视频观看在线www | 亚洲精品一区二区三区视频在线观 | 97se亚洲国产综合自在线观看 | 大地资源在线观看免费中文版 | 午夜成人亚洲理伦片在线观看 | 国产在线视频国产 | 午夜激成人免费视频在线观看 | 亚洲人成网77777色在线播放 | 色一情一区二区三区 | 99精品国产自产在线观看 | 日韩精品免费一级视频 | 92国产精品午夜福利免费 | a级大胆欧美人体大胆666 | 毕业后来 | 国产老女人精品免费视频 | 国产一卡二卡三卡四卡在线看 | 国产精品v日韩精品v | 多多影院 | 日韩综合一卡二卡三卡死四卡 | 网曝精品视频在线 | 九九在线精品观看 | 自在自线视频香蕉 | 国产专区免费资源网站 | 女同精品一区二区 | 国产精品视频一区二区三区不卡 | 成人看的羞羞视频免费观看 | 亚洲欧洲国产码专区在线观看 | 国产亚洲一区二 | 中文乱码字幕在线观看播放 | 欧美a级影院 | 亚洲午夜成人精品电影在线观看 | 亚洲精品无播放器在线播放 | 亚欧国产一级在线免费 | 亚洲人成电影网站色 | 国产精品香蕉夜间视频免费播放 | 91欧美| 丝袜视频国产手机在线 | 九操中文字幕在线观看 | 免费aⅴ网站 | 国产高清吹潮免费视频 | 红桃影视成人免费 | 三级国产在线观看 | 99精品国产丝袜在线 | 国产高清美女主播在线观看 | 精品国产免费人成电影在线观 | 韩国三级国产欧美 | 最新亚洲人成网站在线 | 99一区二区三区国产热视频在线 | 日韩熟女高清精品专区 | 制服丝袜亚洲中文综合 | 中文字幕偷乱视频在线 | 亚洲视频在线观看 | 一区二区不卡 | 国产精品美脚玉 | 国产午夜福利精品在线观看不 | 樱花草www日 | 成人免费视频一区二区 | 护士精品一区二区三区 | 精品成人| 亚洲欧美精品中文字幕 | 免费只有精品国产 | 日韩在线观看视频 | 亚洲欧美洲成人一区二区 | a级国产乱理伦片在线播放 影视网址 | 日本亚洲视频在线不卡免费 | 一区免费视频 | 在线可以看 | 日本91视频| 精品一区二区6 | 国产日本欧美一本在线观看 | 啊日本一区二 | 九九热视频在线免费观看 | 亚洲国产高清国产拍精品 | 三级国产国语三级在线 | 五福临门电视剧免费观看完整 |