zoukankan      html  css  js  c++  java
  • 【PyQt5-Qt Designer】工具箱(QToolBox)控件的使用

    工具箱(QToolBox)+toolButton+tabWidget

    总体介绍

    QToolBox类提供了一列选项卡的小部件(选项卡内含项目)。

    工具箱是一个小部件,它将选项卡一个一个的显示,当前项目显示在当前选项卡下方。每个选项卡在选项卡列中都有一个索引位置。一个选项卡的项目是一个QWidget。

    每个项目都有一个itemText(),一个可选的itemIcon(),一个可选的itemToolTip()和一个widget()。项目的属性可以通过setItemText(),setItemIcon()和setItemToolTip()来改变。每个项目都可以使用setItemEnabled()单独启用或禁用。

    项目使用addItem()添加,或使用insertItem()插入特定位置。项目总数由count()给出。可以删除项目,或使用removeItem()从工具箱中删除项目。通过组合removeItem()和insertItem(),您可以将项目移动到不同的位置。

    当前项目小部件的索引由currentIndex()返回,并用setCurrentIndex()设置。可以使用indexOf()来找到特定项目的索引,并且item()返回给定索引处的项目。

    currentChanged()信号在当前项目改变时发出。

    更多详细的介绍,请见官网:QToolBox Class | Qt Widgets 5.10

    类的归属

    PyQt5->QtWidgets->QToolBox

    继承:QFrame

    小例子

    我们先通过一个视频来看一下今天的完成效果:

    https://v.vzuu.com/video/942417282891333632
    • 核心代码
    class Example(QToolBox):
    
        def initUI(self):
            self.resize(280,500)
            self.setWindowTitle('微信公众号:学点编程吧--QToolBox')
            self.setWindowFlags(Qt.Dialog)
    
            favorites =[
                            [
                                {'des':'百度搜索', 'pic':'image/se/baidu.ico'},
                                {'des':'搜狗搜索', 'pic':'image/se/sougo.ico'},
                                {'des':'必应搜索', 'pic':'image/se/bing.ico'},
                                {'des':'360搜索', 'pic':'image/se/360.ico'},
                                {'des':'谷歌搜索', 'pic':'image/se/google.ico'},
                                {'des':'雅虎搜索', 'pic':'image/se/yahoo.ico'}
                            ],
                            [
                                {'des':'腾讯视频', 'pic':'image/v/tengxun.ico'},
                                {'des':'搜狐视频', 'pic':'image/v/sohuvideo.ico'},
                                {'des':'优酷视频', 'pic':'image/v/youku.ico'},
                                {'des':'土豆视频', 'pic':'image/v/tudou.ico'},
                                {'des':'AcFun弹幕', 'pic':'image/v/acfun.ico'},
                                {'des':'哔哩哔哩', 'pic':'image/v/bilibili.ico'}
                            ]
            ]
            for item in favorites:
                groupbox = QGroupBox()
                vlayout = QVBoxLayout(groupbox)
                vlayout.setAlignment(Qt.AlignCenter) 
                for category in item:
                    toolButton = QToolButton()
                    toolButton.setText(category['des'])
                    toolButton.setIcon(QIcon(category['pic']))
                    toolButton.setIconSize(QSize(64, 64))
                    toolButton.setAutoRaise(True)
                    toolButton.setToolButtonStyle(Qt.ToolButtonTextUnderIcon)
                    vlayout.addWidget(toolButton)
                    name = category['des']  
                    toolButton.clicked.connect(Branded Short Domain Powered by Bitly)
                    if name == '雅虎搜索':
                        self.addItem(groupbox,'搜索引擎')
                    else:
                        self.addItem(groupbox,'视频网站')
        def run(self):
            if self.sender().text() == '百度搜索':
                webbrowser.open('https://www.baidu.com')
            elif self.sender().text() == '搜狗搜索':
                webbrowser.open('https://www.sogou.com/')
            #...下面的代码和上面差不多,不再描述

    在这个例子当中我们实现了以下的功能:

    1. 将按钮分类搜索和视频两类,并分别集合到不同选项卡中。
    2. 点击按钮会打开对应的网址
    • 代码解析
    favorites =[
                    [
                        {'des':'百度搜索', 'pic':'image/se/baidu.ico'},
                        {'des':'搜狗搜索', 'pic':'image/se/sougo.ico'},
                        {'des':'必应搜索', 'pic':'image/se/bing.ico'},
                        {'des':'360搜索', 'pic':'image/se/360.ico'},
                        {'des':'谷歌搜索', 'pic':'image/se/google.ico'},
                        {'des':'雅虎搜索', 'pic':'image/se/yahoo.ico'}
                    ],
                    [
                        {'des':'腾讯视频', 'pic':'image/v/tengxun.ico'},
                        {'des':'搜狐视频', 'pic':'image/v/sohuvideo.ico'},
                        {'des':'优酷视频', 'pic':'image/v/youku.ico'},
                        {'des':'土豆视频', 'pic':'image/v/tudou.ico'},
                        {'des':'AcFun弹幕', 'pic':'image/v/acfun.ico'},
                        {'des':'哔哩哔哩', 'pic':'image/v/bilibili.ico'}
                    ]
            ]

    因为在程序中我们涉及到了12个按钮,每个按钮显示的图标和名称是不一样的,如果我建立12个按钮对象,再分别设置太麻烦了。

    因此 我将不同的部分抽取出来,每一个按钮对应一个字典,而每一类按钮又组合成一个列表,最后将两个不同的列表组合成一个大的列表。

    for item in favorites:

    将favorites列表中的item进行遍历,每个item代表一个众多按钮的集合,也就是QToolBox的选项卡。

    groupbox = QGroupBox()
    vlayout = QVBoxLayout(groupbox)
    vlayout.setAlignment(Qt.AlignCenter)

    我们新建一个组合框,并对其进行垂直布局,布局方式为居中。

    QGroupBox小部件提供了一个带有标题的组合框。一个组合框提供了一个框架,顶部的标题,一个键盘快捷键,并显示其内部的各种其他小部件(这点就是我们用到的)。

    Qt.AlignCenter是一种对齐方式,我们在

    学点编程吧:PyQt5系列教程(21):标签(QLabel)​zhuanlan.zhihu.com  中介绍过,这里就不在详解了。

    for category in item:
        toolButton = QToolButton()
        toolButton.setText(category['des'])
        toolButton.setIcon(QIcon(category['pic']))
        toolButton.setIconSize(QSize(64, 64))
        toolButton.setAutoRaise(True)
        toolButton.setToolButtonStyle(Qt.ToolButtonTextUnderIcon)
        vlayout.addWidget(toolButton)

    这里我们对每个按钮集合中项目进行遍历。新建QToolBox对象,并设置其相应的属性:显示的名称(是“优酷”还是“哔哩哔哩”)、图标及大小、按钮是否自动浮起、让按钮显示的名称在按钮下方,同时将这个按钮增加到垂直布局当中。

    更多关于QToolButton的介绍,请参见

    学点编程吧:PyQt5系列教程(23):工具按钮(QToolButton)​zhuanlan.zhihu.com

        name = category['des']
        if name == '雅虎搜索':
            self.addItem(groupbox,'搜索引擎')
        else:
            self.addItem(groupbox,'视频网站')

    当我们遍历完一个按钮集合的时候,此时我们判断最后一个按钮显示的文字是“搜索引擎”还是“视频网站”,并将这一系列的按钮增加到一个选项卡中。

    toolButton.clicked.connect(self.run)
    def run(self):
        if self.sender().text() == '百度搜索':
            webbrowser.open('https://www.baidu.com')
        elif self.sender().text() == '搜狗搜索':
            webbrowser.open('https://www.sogou.com/')
        #...下面的代码和上面差不多,不在描述

    这个就是一个常规的信号与槽函数的调用,当我们点击按钮的时候会打开相应的网站。

     

    我参照了上面大佬的代码自己用eric6 敲了一遍

    效果如下:

    完整代码:

      1 # -*- coding: utf-8 -*-
      2 
      3 # Form implementation generated from reading ui file 'D:360DownloadsPython编程PyQt5教程PyQt5学习资料PyQt5内容显示系列控件eric6-QToolBox	oolBox.ui'
      4 #
      5 # Created by: PyQt5 UI code generator 5.11.3
      6 #
      7 # WARNING! All changes made in this file will be lost!
      8 
      9 from PyQt5 import QtCore, QtGui, QtWidgets
     10 
     11 class Ui_Dialog(object):
     12     def setupUi(self, Dialog):
     13         Dialog.setObjectName("Dialog")
     14         Dialog.resize(513, 465)
     15         Dialog.setSizeGripEnabled(True)
     16         self.verticalLayout = QtWidgets.QVBoxLayout(Dialog)
     17         self.verticalLayout.setObjectName("verticalLayout")
     18         self.tabWidget = QtWidgets.QTabWidget(Dialog)
     19         self.tabWidget.setMinimumSize(QtCore.QSize(0, 361))
     20         self.tabWidget.setStyleSheet("font: 75 14pt "微软雅黑";")
     21         self.tabWidget.setObjectName("tabWidget")
     22         self.tabWidgetPage1 = QtWidgets.QWidget()
     23         self.tabWidgetPage1.setObjectName("tabWidgetPage1")
     24         self.gridLayout_2 = QtWidgets.QGridLayout(self.tabWidgetPage1)
     25         self.gridLayout_2.setObjectName("gridLayout_2")
     26         self.toolButton = QtWidgets.QToolButton(self.tabWidgetPage1)
     27         icon = QtGui.QIcon()
     28         icon.addPixmap(QtGui.QPixmap("../image/se/百度.png"), QtGui.QIcon.Normal, QtGui.QIcon.Off)
     29         self.toolButton.setIcon(icon)
     30         self.toolButton.setIconSize(QtCore.QSize(80, 80))
     31         self.toolButton.setPopupMode(QtWidgets.QToolButton.InstantPopup)
     32         self.toolButton.setToolButtonStyle(QtCore.Qt.ToolButtonTextUnderIcon)
     33         self.toolButton.setAutoRaise(True)
     34         self.toolButton.setObjectName("toolButton")
     35         self.gridLayout_2.addWidget(self.toolButton, 1, 0, 1, 1)
     36         self.toolButton_2 = QtWidgets.QToolButton(self.tabWidgetPage1)
     37         icon1 = QtGui.QIcon()
     38         icon1.addPixmap(QtGui.QPixmap("../image/se/360.ico"), QtGui.QIcon.Normal, QtGui.QIcon.Off)
     39         self.toolButton_2.setIcon(icon1)
     40         self.toolButton_2.setIconSize(QtCore.QSize(80, 80))
     41         self.toolButton_2.setPopupMode(QtWidgets.QToolButton.InstantPopup)
     42         self.toolButton_2.setToolButtonStyle(QtCore.Qt.ToolButtonTextUnderIcon)
     43         self.toolButton_2.setAutoRaise(True)
     44         self.toolButton_2.setObjectName("toolButton_2")
     45         self.gridLayout_2.addWidget(self.toolButton_2, 1, 1, 1, 1)
     46         self.toolButton_3 = QtWidgets.QToolButton(self.tabWidgetPage1)
     47         icon2 = QtGui.QIcon()
     48         icon2.addPixmap(QtGui.QPixmap("../image/se/bing.ico"), QtGui.QIcon.Normal, QtGui.QIcon.Off)
     49         self.toolButton_3.setIcon(icon2)
     50         self.toolButton_3.setIconSize(QtCore.QSize(80, 80))
     51         self.toolButton_3.setPopupMode(QtWidgets.QToolButton.InstantPopup)
     52         self.toolButton_3.setToolButtonStyle(QtCore.Qt.ToolButtonTextUnderIcon)
     53         self.toolButton_3.setAutoRaise(True)
     54         self.toolButton_3.setObjectName("toolButton_3")
     55         self.gridLayout_2.addWidget(self.toolButton_3, 1, 2, 1, 1)
     56         self.toolButton_4 = QtWidgets.QToolButton(self.tabWidgetPage1)
     57         icon3 = QtGui.QIcon()
     58         icon3.addPixmap(QtGui.QPixmap("../image/se/sougo.ico"), QtGui.QIcon.Normal, QtGui.QIcon.Off)
     59         self.toolButton_4.setIcon(icon3)
     60         self.toolButton_4.setIconSize(QtCore.QSize(80, 80))
     61         self.toolButton_4.setPopupMode(QtWidgets.QToolButton.InstantPopup)
     62         self.toolButton_4.setToolButtonStyle(QtCore.Qt.ToolButtonTextUnderIcon)
     63         self.toolButton_4.setAutoRaise(True)
     64         self.toolButton_4.setObjectName("toolButton_4")
     65         self.gridLayout_2.addWidget(self.toolButton_4, 2, 0, 1, 1)
     66         self.toolButton_5 = QtWidgets.QToolButton(self.tabWidgetPage1)
     67         icon4 = QtGui.QIcon()
     68         icon4.addPixmap(QtGui.QPixmap("../image/se/谷歌.png"), QtGui.QIcon.Normal, QtGui.QIcon.Off)
     69         self.toolButton_5.setIcon(icon4)
     70         self.toolButton_5.setIconSize(QtCore.QSize(80, 80))
     71         self.toolButton_5.setPopupMode(QtWidgets.QToolButton.InstantPopup)
     72         self.toolButton_5.setToolButtonStyle(QtCore.Qt.ToolButtonTextUnderIcon)
     73         self.toolButton_5.setAutoRaise(True)
     74         self.toolButton_5.setObjectName("toolButton_5")
     75         self.gridLayout_2.addWidget(self.toolButton_5, 2, 1, 1, 1)
     76         self.toolButton_6 = QtWidgets.QToolButton(self.tabWidgetPage1)
     77         icon5 = QtGui.QIcon()
     78         icon5.addPixmap(QtGui.QPixmap("../image/se/yahoo.ico"), QtGui.QIcon.Normal, QtGui.QIcon.Off)
     79         self.toolButton_6.setIcon(icon5)
     80         self.toolButton_6.setIconSize(QtCore.QSize(80, 80))
     81         self.toolButton_6.setPopupMode(QtWidgets.QToolButton.InstantPopup)
     82         self.toolButton_6.setToolButtonStyle(QtCore.Qt.ToolButtonTextUnderIcon)
     83         self.toolButton_6.setAutoRaise(True)
     84         self.toolButton_6.setObjectName("toolButton_6")
     85         self.gridLayout_2.addWidget(self.toolButton_6, 2, 2, 1, 1)
     86         icon6 = QtGui.QIcon()
     87         icon6.addPixmap(QtGui.QPixmap("../image/ico/China Flag.ico"), QtGui.QIcon.Normal, QtGui.QIcon.Off)
     88         self.tabWidget.addTab(self.tabWidgetPage1, icon6, "")
     89         self.tabWidgetPage11 = QtWidgets.QWidget()
     90         self.tabWidgetPage11.setObjectName("tabWidgetPage11")
     91         self.gridLayout = QtWidgets.QGridLayout(self.tabWidgetPage11)
     92         self.gridLayout.setObjectName("gridLayout")
     93         self.toolButton_7 = QtWidgets.QToolButton(self.tabWidgetPage11)
     94         icon7 = QtGui.QIcon()
     95         icon7.addPixmap(QtGui.QPixmap("../image/v/tengxun.ico"), QtGui.QIcon.Normal, QtGui.QIcon.Off)
     96         self.toolButton_7.setIcon(icon7)
     97         self.toolButton_7.setIconSize(QtCore.QSize(80, 80))
     98         self.toolButton_7.setPopupMode(QtWidgets.QToolButton.InstantPopup)
     99         self.toolButton_7.setToolButtonStyle(QtCore.Qt.ToolButtonTextUnderIcon)
    100         self.toolButton_7.setAutoRaise(True)
    101         self.toolButton_7.setObjectName("toolButton_7")
    102         self.gridLayout.addWidget(self.toolButton_7, 0, 0, 1, 1)
    103         self.toolButton_8 = QtWidgets.QToolButton(self.tabWidgetPage11)
    104         icon8 = QtGui.QIcon()
    105         icon8.addPixmap(QtGui.QPixmap("../image/se/搜狐.png"), QtGui.QIcon.Normal, QtGui.QIcon.Off)
    106         self.toolButton_8.setIcon(icon8)
    107         self.toolButton_8.setIconSize(QtCore.QSize(80, 80))
    108         self.toolButton_8.setPopupMode(QtWidgets.QToolButton.InstantPopup)
    109         self.toolButton_8.setToolButtonStyle(QtCore.Qt.ToolButtonTextUnderIcon)
    110         self.toolButton_8.setAutoRaise(True)
    111         self.toolButton_8.setObjectName("toolButton_8")
    112         self.gridLayout.addWidget(self.toolButton_8, 0, 1, 1, 1)
    113         self.toolButton_9 = QtWidgets.QToolButton(self.tabWidgetPage11)
    114         icon9 = QtGui.QIcon()
    115         icon9.addPixmap(QtGui.QPixmap("../image/se/优酷.png"), QtGui.QIcon.Normal, QtGui.QIcon.Off)
    116         self.toolButton_9.setIcon(icon9)
    117         self.toolButton_9.setIconSize(QtCore.QSize(80, 80))
    118         self.toolButton_9.setPopupMode(QtWidgets.QToolButton.InstantPopup)
    119         self.toolButton_9.setToolButtonStyle(QtCore.Qt.ToolButtonTextUnderIcon)
    120         self.toolButton_9.setAutoRaise(True)
    121         self.toolButton_9.setObjectName("toolButton_9")
    122         self.gridLayout.addWidget(self.toolButton_9, 0, 2, 1, 1)
    123         self.toolButton_10 = QtWidgets.QToolButton(self.tabWidgetPage11)
    124         icon10 = QtGui.QIcon()
    125         icon10.addPixmap(QtGui.QPixmap("../image/se/bilibli.png"), QtGui.QIcon.Normal, QtGui.QIcon.Off)
    126         self.toolButton_10.setIcon(icon10)
    127         self.toolButton_10.setIconSize(QtCore.QSize(80, 80))
    128         self.toolButton_10.setPopupMode(QtWidgets.QToolButton.InstantPopup)
    129         self.toolButton_10.setToolButtonStyle(QtCore.Qt.ToolButtonTextUnderIcon)
    130         self.toolButton_10.setAutoRaise(True)
    131         self.toolButton_10.setObjectName("toolButton_10")
    132         self.gridLayout.addWidget(self.toolButton_10, 1, 0, 1, 1)
    133         self.toolButton_11 = QtWidgets.QToolButton(self.tabWidgetPage11)
    134         icon11 = QtGui.QIcon()
    135         icon11.addPixmap(QtGui.QPixmap("../image/se/土豆.png"), QtGui.QIcon.Normal, QtGui.QIcon.Off)
    136         self.toolButton_11.setIcon(icon11)
    137         self.toolButton_11.setIconSize(QtCore.QSize(80, 80))
    138         self.toolButton_11.setPopupMode(QtWidgets.QToolButton.InstantPopup)
    139         self.toolButton_11.setToolButtonStyle(QtCore.Qt.ToolButtonTextUnderIcon)
    140         self.toolButton_11.setAutoRaise(True)
    141         self.toolButton_11.setObjectName("toolButton_11")
    142         self.gridLayout.addWidget(self.toolButton_11, 1, 1, 1, 1)
    143         self.toolButton_12 = QtWidgets.QToolButton(self.tabWidgetPage11)
    144         icon12 = QtGui.QIcon()
    145         icon12.addPixmap(QtGui.QPixmap("../image/se/acfun.png"), QtGui.QIcon.Normal, QtGui.QIcon.Off)
    146         self.toolButton_12.setIcon(icon12)
    147         self.toolButton_12.setIconSize(QtCore.QSize(80, 80))
    148         self.toolButton_12.setPopupMode(QtWidgets.QToolButton.InstantPopup)
    149         self.toolButton_12.setToolButtonStyle(QtCore.Qt.ToolButtonTextUnderIcon)
    150         self.toolButton_12.setAutoRaise(True)
    151         self.toolButton_12.setObjectName("toolButton_12")
    152         self.gridLayout.addWidget(self.toolButton_12, 1, 2, 1, 1)
    153         icon13 = QtGui.QIcon()
    154         icon13.addPixmap(QtGui.QPixmap("../image/ico/UK Flag.ico"), QtGui.QIcon.Normal, QtGui.QIcon.Off)
    155         self.tabWidget.addTab(self.tabWidgetPage11, icon13, "")
    156         self.verticalLayout.addWidget(self.tabWidget)
    157 
    158         self.retranslateUi(Dialog)
    159         self.tabWidget.setCurrentIndex(1)
    160         QtCore.QMetaObject.connectSlotsByName(Dialog)
    161 
    162     def retranslateUi(self, Dialog):
    163         _translate = QtCore.QCoreApplication.translate
    164         Dialog.setWindowTitle(_translate("Dialog", "toolButton+tabWidget控件"))
    165         self.toolButton.setText(_translate("Dialog", "百度"))
    166         self.toolButton_2.setText(_translate("Dialog", "360"))
    167         self.toolButton_3.setText(_translate("Dialog", "必应"))
    168         self.toolButton_4.setText(_translate("Dialog", "搜狗"))
    169         self.toolButton_5.setText(_translate("Dialog", "谷歌"))
    170         self.toolButton_6.setText(_translate("Dialog", "雅虎"))
    171         self.tabWidget.setTabText(self.tabWidget.indexOf(self.tabWidgetPage1), _translate("Dialog", "搜索引擎"))
    172         self.toolButton_7.setText(_translate("Dialog", "腾讯视频"))
    173         self.toolButton_8.setText(_translate("Dialog", "搜狐视频"))
    174         self.toolButton_9.setText(_translate("Dialog", "优酷视频"))
    175         self.toolButton_10.setText(_translate("Dialog", "Bilibili"))
    176         self.toolButton_11.setText(_translate("Dialog", "土豆"))
    177         self.toolButton_12.setText(_translate("Dialog", "AcFun"))
    178         self.tabWidget.setTabText(self.tabWidget.indexOf(self.tabWidgetPage11), _translate("Dialog", "视频网站"))
    179 
    180 
    181 if __name__ == "__main__":
    182     import sys
    183     app = QtWidgets.QApplication(sys.argv)
    184     Dialog = QtWidgets.QDialog()
    185     ui = Ui_Dialog()
    186     ui.setupUi(Dialog)
    187     Dialog.show()
    188     sys.exit(app.exec_())
    ui界面代码
     1 # -*- coding: utf-8 -*-
     2 from PyQt5.QtCore import pyqtSlot
     3 from PyQt5.QtWidgets import QDialog, QApplication
     4 from Ui_toolBox import Ui_Dialog
     5 import sys, webbrowser
     6 
     7 
     8 class Dialog(QDialog, Ui_Dialog):
     9 
    10     def __init__(self, parent=None):
    11         super(Dialog, self).__init__(parent)
    12         self.setupUi(self)
    13     
    14     @pyqtSlot()
    15     def on_toolButton_clicked(self):
    16         webbrowser.open('https://www.baidu.com')
    17 
    18     @pyqtSlot()
    19     def on_toolButton_2_clicked(self):
    20         webbrowser.open('https://www.so.com/')
    21     
    22     @pyqtSlot()
    23     def on_toolButton_3_clicked(self):
    24         webbrowser.open('http://cn.bing.com/')
    25         
    26     @pyqtSlot()
    27     def on_toolButton_4_clicked(self):
    28         webbrowser.open('https://www.sogou.com/')
    29     
    30     @pyqtSlot()
    31     def on_toolButton_5_clicked(self):
    32         webbrowser.open('https://www.google.com/')
    33 
    34     @pyqtSlot()
    35     def on_toolButton_6_clicked(self):
    36         webbrowser.open('https://www.yahoo.com/')
    37 
    38     @pyqtSlot()
    39     def on_toolButton_7_clicked(self):
    40         webbrowser.open('https://v.qq.com/')
    41         
    42     @pyqtSlot()
    43     def on_toolButton_8_clicked(self):
    44         webbrowser.open('https://film.sohu.com')
    45     
    46     @pyqtSlot()
    47     def on_toolButton_9_clicked(self):
    48         webbrowser.open('http://www.youku.com/')
    49     
    50     @pyqtSlot()
    51     def on_toolButton_10_clicked(self):
    52         webbrowser.open('https://www.bilibili.com/')
    53     
    54     @pyqtSlot()
    55     def on_toolButton_11_clicked(self):
    56         webbrowser.open('http://www.tudou.com/')
    57     
    58     @pyqtSlot()
    59     def on_toolButton_12_clicked(self):
    60         webbrowser.open('http://www.acfun.cn/')
    61     
    62 
    63 if __name__ == "__main__":
    64     app = QApplication(sys.argv)
    65     ui = Dialog()
    66     ui.show()
    67     sys.exit(app.exec_())
    68     
    69     
    逻辑界面
  • 相关阅读:
    CodeForces 19D Points (线段树+set)
    FZU 2105 Digits Count
    HDU 5618 Jam's problem again(三维偏序,CDQ分治,树状数组,线段树)
    HDU 5634 Rikka with Phi (线段树)
    Java实现 蓝桥杯 算法提高 转圈游戏(暴力快速幂)
    Java实现 蓝桥杯 算法提高 转圈游戏(暴力快速幂)
    Java实现 蓝桥杯 算法提高 转圈游戏(暴力快速幂)
    Java实现 蓝桥杯 算法提高VIP Substrings(暴力)
    Java实现 蓝桥杯 算法提高VIP Substrings(暴力)
    Java实现 蓝桥杯 算法提高VIP Substrings(暴力)
  • 原文地址:https://www.cnblogs.com/XJT2018/p/10225640.html
Copyright © 2011-2022 走看看