QT系列第1节 QT中窗口使用简介
创始人
2024-03-16 08:34:46
0

     QT中窗口按照使用场景分类,可以分成两大类,一类是独立显示的窗口,主要是 QWidget ,QDialog ,QMainWindow,一类是嵌套在别的窗口的子窗口,包含各种控件以及子窗口,窗口类图如下:

本篇文章只介绍 QWidget  QDialog  QMainWindow 这三个类。

目录

1. QWidget类

1.1 构造方法

1.2 public方法

1.3 信号

1.4 槽

2. QMainWindow类

2.1 构造方法

2.2 public方法

2.3 信号

2.4 槽

3. QDialog类

3.1 构造方法

3.2 public方法

3.3 信号

3.4 槽

4.使用举例

4.1 Qt Creator使用注意点

4.2 QWidget使用

4.3 QMainWindow使用

4.4 QDialog使用


1. QWidget类

1.1 构造方法

 QWidget(QWidget *parent = nullptr, Qt::WindowFlags f = Qt::WindowFlags())

1.2 public方法

bool acceptDrops() constQString accessibleDescription() constQString accessibleName() constQList actions() constvoid activateWindow()void addAction(QAction *action)QAction *addAction(const QString &text)QAction *addAction(const QIcon &icon, const QString &text)QAction *addAction(const QString &text, const QObject *receiver, const char *member, Qt::ConnectionType type = Qt::AutoConnection)QAction *addAction(const QIcon &icon, const QString &text, const QObject *receiver, const char *member, Qt::ConnectionType type = Qt::AutoConnection)QAction *addAction(const QString &text, Args &&... args)QAction *addAction(const QIcon &icon, const QString &text, Args &&... args)QAction *addAction(const QString &text, const QKeySequence &shortcut)QAction *addAction(const QIcon &icon, const QString &text, const QKeySequence &shortcut)QAction *addAction(const QString &text, const QKeySequence &shortcut, const QObject *receiver, const char *member, Qt::ConnectionType type = Qt::AutoConnection)QAction *addAction(const QIcon &icon, const QString &text, const QKeySequence &shortcut, const QObject *receiver, const char *member, Qt::ConnectionType type = Qt::AutoConnection)QAction *addAction(const QString &text, const QKeySequence &shortcut, Args &&... args)QAction *addAction(const QIcon &icon, const QString &text, const QKeySequence &shortcut, Args &&... args)void addActions(const QList &actions)void adjustSize()bool autoFillBackground() constQPalette::ColorRole backgroundRole() constQBackingStore *backingStore() constQSize baseSize() constQWidget *childAt(int x, int y) constQWidget *childAt(const QPoint &p) constQRect childrenRect() constQRegion childrenRegion() constvoid clearFocus()void clearMask()QMargins contentsMargins() constQRect contentsRect() constQt::ContextMenuPolicy contextMenuPolicy() constQCursor cursor() constWId effectiveWinId() constvoid ensurePolished() constQt::FocusPolicy focusPolicy() constQWidget *focusProxy() constQWidget *focusWidget() constconst QFont &font() constQFontInfo fontInfo() constQFontMetrics fontMetrics() constQPalette::ColorRole foregroundRole() constQRect frameGeometry() constQSize frameSize() constconst QRect &geometry() constQPixmap grab(const QRect &rectangle = QRect(QPoint(0, 0), QSize(-1, -1)))void grabGesture(Qt::GestureType gesture, Qt::GestureFlags flags = Qt::GestureFlags())void grabKeyboard()void grabMouse()void grabMouse(const QCursor &cursor)int grabShortcut(const QKeySequence &key, Qt::ShortcutContext context = Qt::WindowShortcut)QGraphicsEffect *graphicsEffect() constQGraphicsProxyWidget *graphicsProxyWidget() constbool hasEditFocus() constbool hasFocus() constvirtual bool hasHeightForWidth() constbool hasMouseTracking() constbool hasTabletTracking() constint height() constvirtual int heightForWidth(int w) constQt::InputMethodHints inputMethodHints() constvirtual QVariant inputMethodQuery(Qt::InputMethodQuery query) constvoid insertAction(QAction *before, QAction *action)void insertActions(QAction *before, const QList &actions)bool isActiveWindow() constbool isAncestorOf(const QWidget *child) constbool isEnabled() constbool isEnabledTo(const QWidget *ancestor) constbool isFullScreen() constbool isHidden() constbool isMaximized() constbool isMinimized() constbool isModal() constbool isVisible() constbool isVisibleTo(const QWidget *ancestor) constbool isWindow() constbool isWindowModified() constQLayout *layout() constQt::LayoutDirection layoutDirection() constQLocale locale() constQPointF mapFrom(const QWidget *parent, const QPointF &pos) constQPoint mapFrom(const QWidget *parent, const QPoint &pos) constQPointF mapFromGlobal(const QPointF &pos) constQPoint mapFromGlobal(const QPoint &pos) constQPointF mapFromParent(const QPointF &pos) constQPoint mapFromParent(const QPoint &pos) constQPointF mapTo(const QWidget *parent, const QPointF &pos) constQPoint mapTo(const QWidget *parent, const QPoint &pos) constQPointF mapToGlobal(const QPointF &pos) constQPoint mapToGlobal(const QPoint &pos) constQPointF mapToParent(const QPointF &pos) constQPoint mapToParent(const QPoint &pos) constQRegion mask() constint maximumHeight() constQSize maximumSize() constint maximumWidth() constint minimumHeight() constQSize minimumSize() constvirtual QSize minimumSizeHint() constint minimumWidth() constvoid move(const QPoint &)void move(int x, int y)QWidget *nativeParentWidget() constQWidget *nextInFocusChain() constQRect normalGeometry() constvoid overrideWindowFlags(Qt::WindowFlags flags)const QPalette &palette() constQWidget *parentWidget() constQPoint pos() constQWidget *previousInFocusChain() constQRect rect() constvoid releaseKeyboard()void releaseMouse()void releaseShortcut(int id)void removeAction(QAction *action)void render(QPaintDevice *target, const QPoint &targetOffset = QPoint(), const QRegion &sourceRegion = QRegion(), QWidget::RenderFlags renderFlags = RenderFlags(DrawWindowBackground | DrawChildren))void render(QPainter *painter, const QPoint &targetOffset = QPoint(), const QRegion &sourceRegion = QRegion(), QWidget::RenderFlags renderFlags = RenderFlags(DrawWindowBackground | DrawChildren))void repaint(int x, int y, int w, int h)void repaint(const QRect &rect)void repaint(const QRegion &rgn)void resize(const QSize &)void resize(int w, int h)bool restoreGeometry(const QByteArray &geometry)QByteArray saveGeometry() constQScreen *screen() constvoid scroll(int dx, int dy)void scroll(int dx, int dy, const QRect &r)void setAcceptDrops(bool on)void setAccessibleDescription(const QString &description)void setAccessibleName(const QString &name)void setAttribute(Qt::WidgetAttribute attribute, bool on = true)void setAutoFillBackground(bool enabled)void setBackgroundRole(QPalette::ColorRole role)void setBaseSize(const QSize &)void setBaseSize(int basew, int baseh)void setContentsMargins(int left, int top, int right, int bottom)void setContentsMargins(const QMargins &margins)void setContextMenuPolicy(Qt::ContextMenuPolicy policy)void setCursor(const QCursor &)void setEditFocus(bool enable)void setFixedHeight(int h)void setFixedSize(const QSize &s)void setFixedSize(int w, int h)void setFixedWidth(int w)void setFocus(Qt::FocusReason reason)void setFocusPolicy(Qt::FocusPolicy policy)void setFocusProxy(QWidget *w)void setFont(const QFont &)void setForegroundRole(QPalette::ColorRole role)void setGeometry(const QRect &)void setGeometry(int x, int y, int w, int h)void setGraphicsEffect(QGraphicsEffect *effect)void setInputMethodHints(Qt::InputMethodHints hints)void setLayout(QLayout *layout)void setLayoutDirection(Qt::LayoutDirection direction)void setLocale(const QLocale &locale)void setMask(const QBitmap &bitmap)void setMask(const QRegion ®ion)void setMaximumHeight(int maxh)void setMaximumSize(const QSize &)void setMaximumSize(int maxw, int maxh)void setMaximumWidth(int maxw)void setMinimumHeight(int minh)void setMinimumSize(const QSize &)void setMinimumSize(int minw, int minh)void setMinimumWidth(int minw)void setMouseTracking(bool enable)void setPalette(const QPalette &)void setParent(QWidget *parent)void setParent(QWidget *parent, Qt::WindowFlags f)void setScreen(QScreen *screen)void setShortcutAutoRepeat(int id, bool enable = true)void setShortcutEnabled(int id, bool enable = true)void setSizeIncrement(const QSize &)void setSizeIncrement(int w, int h)void setSizePolicy(QSizePolicy)void setSizePolicy(QSizePolicy::Policy horizontal, QSizePolicy::Policy vertical)void setStatusTip(const QString &)void setStyle(QStyle *style)void setTabletTracking(bool enable)void setToolTip(const QString &)void setToolTipDuration(int msec)void setUpdatesEnabled(bool enable)void setWhatsThis(const QString &)void setWindowFilePath(const QString &filePath)void setWindowFlag(Qt::WindowType flag, bool on = true)void setWindowFlags(Qt::WindowFlags type)void setWindowIcon(const QIcon &icon)void setWindowModality(Qt::WindowModality windowModality)void setWindowOpacity(qreal level)void setWindowRole(const QString &role)void setWindowState(Qt::WindowStates windowState)void setupUi(QWidget *widget)QSize size() constvirtual QSize sizeHint() constQSize sizeIncrement() constQSizePolicy sizePolicy() constvoid stackUnder(QWidget *w)QString statusTip() constQStyle *style() constQString styleSheet() constbool testAttribute(Qt::WidgetAttribute attribute) constQString toolTip() constint toolTipDuration() constbool underMouse() constvoid ungrabGesture(Qt::GestureType gesture)void unsetCursor()void unsetLayoutDirection()void unsetLocale()void update(int x, int y, int w, int h)void update(const QRect &rect)void update(const QRegion &rgn)void updateGeometry()bool updatesEnabled() constQRegion visibleRegion() constQString whatsThis() constint width() constWId winId() constQWidget *window() constQString windowFilePath() constQt::WindowFlags windowFlags() constQWindow *windowHandle() constQIcon windowIcon() constQt::WindowModality windowModality() constqreal windowOpacity() constQString windowRole() constQt::WindowStates windowState() constQString windowTitle() constQt::WindowType windowType() constint x() constint y() const

1.3 信号

 void customContextMenuRequested(const QPoint &pos)void windowIconChanged(const QIcon &icon)void windowTitleChanged(const QString &title)

1.4 槽

 bool close()void hide()void lower()void raise()void repaint()void setDisabled(bool disable)void setEnabled(bool)void setFocus()void setHidden(bool hidden)void setStyleSheet(const QString &styleSheet)virtual void setVisible(bool visible)void setWindowModified(bool)void setWindowTitle(const QString &)void show()void showFullScreen()void showMaximized()void showMinimized()void showNormal()void update()

2. QMainWindow类

2.1 构造方法

QMainWindow(QWidget *parent = nullptr, Qt::WindowFlags flags = Qt::WindowFlags())

2.2 public方法

void addDockWidget(Qt::DockWidgetArea area, QDockWidget *dockwidget)void addDockWidget(Qt::DockWidgetArea area, QDockWidget *dockwidget, Qt::Orientation orientation)void addToolBar(Qt::ToolBarArea area, QToolBar *toolbar)void addToolBar(QToolBar *toolbar)QToolBar *addToolBar(const QString &title)void addToolBarBreak(Qt::ToolBarArea area = Qt::TopToolBarArea)QWidget *centralWidget() constQt::DockWidgetArea corner(Qt::Corner corner) constvirtual QMenu *createPopupMenu()QMainWindow::DockOptions dockOptions() constQt::DockWidgetArea dockWidgetArea(QDockWidget *dockwidget) constbool documentMode() constQSize iconSize() constvoid insertToolBar(QToolBar *before, QToolBar *toolbar)void insertToolBarBreak(QToolBar *before)bool isAnimated() constbool isDockNestingEnabled() constQMenuBar *menuBar() constQWidget *menuWidget() constvoid removeDockWidget(QDockWidget *dockwidget)void removeToolBar(QToolBar *toolbar)void removeToolBarBreak(QToolBar *before)void resizeDocks(const QList &docks, const QList &sizes, Qt::Orientation orientation)bool restoreDockWidget(QDockWidget *dockwidget)bool restoreState(const QByteArray &state, int version = 0)QByteArray saveState(int version = 0) constvoid setCentralWidget(QWidget *widget)void setCorner(Qt::Corner corner, Qt::DockWidgetArea area)void setDockOptions(QMainWindow::DockOptions options)void setDocumentMode(bool enabled)void setIconSize(const QSize &iconSize)void setMenuBar(QMenuBar *menuBar)void setMenuWidget(QWidget *menuBar)void setStatusBar(QStatusBar *statusbar)void setTabPosition(Qt::DockWidgetAreas areas, QTabWidget::TabPosition tabPosition)void setTabShape(QTabWidget::TabShape tabShape)void setToolButtonStyle(Qt::ToolButtonStyle toolButtonStyle)void splitDockWidget(QDockWidget *first, QDockWidget *second, Qt::Orientation orientation)QStatusBar *statusBar() constQTabWidget::TabPosition tabPosition(Qt::DockWidgetArea area) constQTabWidget::TabShape tabShape() constQList tabifiedDockWidgets(QDockWidget *dockwidget) constvoid tabifyDockWidget(QDockWidget *first, QDockWidget *second)QWidget *takeCentralWidget()Qt::ToolBarArea toolBarArea(const QToolBar *toolbar) constbool toolBarBreak(QToolBar *toolbar) constQt::ToolButtonStyle toolButtonStyle() constbool unifiedTitleAndToolBarOnMac() const

2.3 信号

 void iconSizeChanged(const QSize &iconSize)void tabifiedDockWidgetActivated(QDockWidget *dockWidget)void toolButtonStyleChanged(Qt::ToolButtonStyle toolButtonStyle)

2.4 槽

 void setAnimated(bool enabled)void setDockNestingEnabled(bool enabled)void setUnifiedTitleAndToolBarOnMac(bool set)

3. QDialog类

3.1 构造方法

 QDialog(QWidget *parent = nullptr, Qt::WindowFlags f = Qt::WindowFlags())

3.2 public方法

 bool isSizeGripEnabled() constint result() constvoid setModal(bool modal)void setResult(int i)void setSizeGripEnabled(bool)

3.3 信号

 void accepted()void finished(int result)void rejected()

3.4 槽

 virtual void accept()virtual void done(int r)virtual int exec()virtual void open()virtual void reject()

4.使用举例

4.1 Qt Creator使用注意点

(1)QT designer界面介绍

 (2)布局管理

水平布局

垂直布局

网格布局

表格布局:和网格布局类似,一般使用网格布局就够了

打破布局:

实际业务开发中,主窗口是要设置布局的,不然某些控件可能不能显示,或者改变窗口控件大小不能自适应,这一点在开发中要注意

 (3)修改程序左上角图标

 (4)UI设计方式

UI设计可以使用designer设计,也可以通过编写代码设计,有些UI设计designer实现不了,所有的UI都可以通过代码来实现,在实际开发中,一般以两种结合实现UI效果。

(5)UI designer转到槽

鼠标选中控件,右键菜单“转到槽”,选择槽函数,就会进入代码编写页面

 

 

 (5)显示console并在其中输出qDebug信息

步骤一:.pro文件中增加: CONFIG += console

步骤二:如下选项打勾

4.2 QWidget使用

 如下程序演示点击按钮获取输入框信息,并弹出消息框显示输出内容,运行效果如下:

代码:

工程文件:

QT       += core guigreaterThan(QT_MAJOR_VERSION, 4): QT += widgetsCONFIG += c++17 console# You can make your code fail to compile if it uses deprecated APIs.
# In order to do so, uncomment the following line.
#DEFINES += QT_DISABLE_DEPRECATED_BEFORE=0x060000    # disables all the APIs deprecated before Qt 6.0.0SOURCES += \main.cpp \widget.cppHEADERS += \widget.hFORMS += \widget.uiRC_ICONS = MainIcon.ico# Default rules for deployment.
qnx: target.path = /tmp/$${TARGET}/bin
else: unix:!android: target.path = /opt/$${TARGET}/bin
!isEmpty(target.path): INSTALLS += target

 窗口头文件,窗口实现文件,主调文件内容如下:

#ifndef WIDGET_H
#define WIDGET_H#include QT_BEGIN_NAMESPACE
namespace Ui { class Widget; }
QT_END_NAMESPACEclass Widget : public QWidget
{Q_OBJECTpublic:Widget(QWidget *parent = nullptr);~Widget();private slots:void on_pushButtonGet_clicked();private:Ui::Widget *ui;
};
#endif // WIDGET_H
#include "widget.h"
#include "ui_widget.h"
#include 
#include Widget::Widget(QWidget *parent): QWidget(parent), ui(new Ui::Widget)
{ui->setupUi(this);
}Widget::~Widget()
{delete ui;
}void Widget::on_pushButtonGet_clicked()
{QString strInput = ui->lineEditInput->text();qDebug() << strInput;QMessageBox::information(this, "提示", strInput);
}
#include "widget.h"#include int main(int argc, char *argv[])
{QApplication a(argc, argv);Widget w;w.show();return a.exec();
}

4.3 QMainWindow使用

如下程序演示继承QMainWindow类,不用Qt designer通过手写代码的方式添加布局和控件,效果展示如下:

代码如下:

#ifndef MAINWINDOW_H
#define MAINWINDOW_H#include 
#include 
#include 
#include 
#include class MainWindow : public QMainWindow
{Q_OBJECTpublic:MainWindow(QWidget *parent = nullptr);~MainWindow();private:void initUI();void initSignalSlot();private slots:void on_under_line(bool sel);void on_italic(bool sel);void on_bold(bool sel);void set_text_font_color();private:QCheckBox * m_checkBoxUnderLine;QCheckBox * m_checkBoxItalic;QCheckBox * m_checkBoxBold;QRadioButton * m_rBtnBlack;QRadioButton * m_rBtnBlue;QRadioButton * m_rBtnRed;QPlainTextEdit * m_palinTextEdit;QPushButton * m_pushBtnOK;QPushButton * m_pushBtnCancel;QPushButton * m_pushBtnClose;};
#endif // MAINWINDOW_H
#include "mainwindow.h"
#include 
#include 
#include MainWindow::MainWindow(QWidget *parent): QMainWindow(parent)
{initUI();initSignalSlot();
}void MainWindow::initUI()
{/*if (this->objectName().isEmpty()){this->setObjectName("MainWindow");this->resize(555, 412);}*/m_checkBoxUnderLine = new QCheckBox(tr("UnderLine"));m_checkBoxItalic = new QCheckBox(tr("Italic"));m_checkBoxBold = new QCheckBox(tr("Bold"));QHBoxLayout *hLayout1 = new QHBoxLayout;hLayout1->addWidget(m_checkBoxUnderLine);hLayout1->addWidget(m_checkBoxItalic);hLayout1->addWidget(m_checkBoxBold);m_rBtnBlack = new QRadioButton(tr("Black"));m_rBtnBlue = new QRadioButton(tr("Blue"));m_rBtnRed = new QRadioButton(tr("Red"));QHBoxLayout *hLayout2 = new QHBoxLayout;hLayout2->addWidget(m_rBtnBlack);hLayout2->addWidget(m_rBtnBlue);hLayout2->addWidget(m_rBtnRed);m_palinTextEdit = new QPlainTextEdit(tr(""));QFont font = m_palinTextEdit->font();font.setPointSize(20);m_palinTextEdit->setFont(font);m_palinTextEdit->setPlainText("QT\n\n你好啊\n\n很高兴认识你!");m_pushBtnOK = new QPushButton(tr("Ok"));m_pushBtnCancel = new QPushButton(tr("Cancel"));m_pushBtnClose = new QPushButton(tr("Close"));QHBoxLayout *hLayout3 = new QHBoxLayout;hLayout3->addStretch();hLayout3->addWidget(m_pushBtnOK);hLayout3->addWidget(m_pushBtnCancel);hLayout3->addStretch();hLayout3->addWidget(m_pushBtnClose);QVBoxLayout *vLayout = new QVBoxLayout;vLayout->addLayout(hLayout1);vLayout->addLayout(hLayout2);vLayout->addWidget(m_palinTextEdit);vLayout->addLayout(hLayout3);//说明直接调用setLayout窗口显示不出控件,原因是MainWindow已经//有默认的layout了,此处我们新建一个QWidget,然后让MainWindow//将新建的QWidget来安装,然后在新建的QWidget中进行相关布局//setLayout(vLayout);QWidget *widget = new QWidget(this);widget->setLayout(vLayout);setCentralWidget(widget);
}void MainWindow::initSignalSlot()
{connect(m_checkBoxUnderLine, SIGNAL(clicked(bool)), this, SLOT(on_under_line(bool)));connect(m_checkBoxItalic, SIGNAL(clicked(bool)), this, SLOT(on_italic(bool)));connect(m_checkBoxBold, SIGNAL(clicked(bool)), this, SLOT(on_bold(bool)));connect(m_rBtnBlack, SIGNAL(clicked()), this, SLOT(set_text_font_color()));connect(m_rBtnBlue, SIGNAL(clicked()), this, SLOT(set_text_font_color()));connect(m_rBtnRed, SIGNAL(clicked()), this, SLOT(set_text_font_color()));connect(m_pushBtnOK, SIGNAL(clicked()), this, SLOT(accept()));connect(m_pushBtnCancel, SIGNAL(clicked()), this, SLOT(reject()));connect(m_pushBtnClose, SIGNAL(clicked()), this, SLOT(close()));
}void MainWindow::on_under_line(bool sel)
{QFont font = m_palinTextEdit->font();font.setUnderline(sel);m_palinTextEdit->setFont(font);
}void MainWindow::on_italic(bool sel)
{QFont font = m_palinTextEdit->font();font.setItalic(sel);m_palinTextEdit->setFont(font);
}void MainWindow::on_bold(bool sel)
{QFont font = m_palinTextEdit->font();font.setBold(sel);m_palinTextEdit->setFont(font);
}void MainWindow::set_text_font_color()
{QPalette plet = m_palinTextEdit->palette();if (m_rBtnBlack->isChecked()) {plet.setColor(QPalette::Text, Qt::black);}else if (m_rBtnBlue->isChecked()) {plet.setColor(QPalette::Text, Qt::blue);}else {plet.setColor(QPalette::Text, Qt::red);}m_palinTextEdit->setPalette(plet);
}MainWindow::~MainWindow()
{
}
#include "mainwindow.h"#include int main(int argc, char *argv[])
{QApplication a(argc, argv);MainWindow w;w.show();return a.exec();
}

4.4 QDialog使用

如下程序演示使用QDialog制作一个大小固定的登录窗口,效果显示如下:

 界面布局如下:

代码如下:

#ifndef LOGIN_H
#define LOGIN_H#include namespace Ui {
class Login;
}class Login : public QDialog
{Q_OBJECTpublic:explicit Login(QWidget *parent = nullptr);~Login();private:Ui::Login *ui;
};#endif // LOGIN_H
#include "login.h"
#include "ui_login.h"Login::Login(QWidget *parent) :QDialog(parent),ui(new Ui::Login)
{ui->setupUi(this);setFixedSize(399, 318);
}Login::~Login()
{delete ui;
}
#include "login.h"
#include "ui_login.h"Login::Login(QWidget *parent) :QDialog(parent),ui(new Ui::Login)
{ui->setupUi(this);setFixedSize(399, 318);
}Login::~Login()
{delete ui;
}

相关内容

热门资讯

汽车油箱结构是什么(汽车油箱结... 本篇文章极速百科给大家谈谈汽车油箱结构是什么,以及汽车油箱结构原理图解对应的知识点,希望对各位有所帮...
美国2年期国债收益率上涨15个... 原标题:美国2年期国债收益率上涨15个基点 美国2年期国债收益率上涨15个基...
嵌入式 ADC使用手册完整版 ... 嵌入式 ADC使用手册完整版 (188977万字)💜&#...
重大消息战皇大厅开挂是真的吗... 您好:战皇大厅这款游戏可以开挂,确实是有挂的,需要了解加客服微信【8435338】很多玩家在这款游戏...
盘点十款牵手跑胡子为什么一直... 您好:牵手跑胡子这款游戏可以开挂,确实是有挂的,需要了解加客服微信【8435338】很多玩家在这款游...
senator香烟多少一盒(s... 今天给各位分享senator香烟多少一盒的知识,其中也会对sevebstars香烟进行解释,如果能碰...
终于懂了新荣耀斗牛真的有挂吗... 您好:新荣耀斗牛这款游戏可以开挂,确实是有挂的,需要了解加客服微信8435338】很多玩家在这款游戏...
盘点十款明星麻将到底有没有挂... 您好:明星麻将这款游戏可以开挂,确实是有挂的,需要了解加客服微信【5848499】很多玩家在这款游戏...
总结文章“新道游棋牌有透视挂吗... 您好:新道游棋牌这款游戏可以开挂,确实是有挂的,需要了解加客服微信【7682267】很多玩家在这款游...
终于懂了手机麻将到底有没有挂... 您好:手机麻将这款游戏可以开挂,确实是有挂的,需要了解加客服微信【8435338】很多玩家在这款游戏...