热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

使用Pythontkinter自动隐藏滚动条

使用Python-tkinter自动隐藏滚动条原文:http

使用 Python-tkinter 自动隐藏滚动条

原文:https://www . geesforgeks . org/autohiding-scroll bar-using-python-tkinter/

在进入主题之前,让我们看看什么是 Python Tkinter 。因此,我们都知道 Python 在创建图形用户界面时有不同的选项,而 tkinter 就是其中之一。是 Python 的标准 GUI 库。当 python 与它合并时,它使图形用户界面应用程序的创建变得非常快速和简单。它还为 Tk 图形用户界面工具包提供了一个非常有效的面向对象的界面。

注意:更多信息请参考Python GUI–tkinter

tkinter 中的小部件

此外,Tkit启用许多控件,如标签、文本框、列表框、按钮、滚动条等,这些控件在图形用户界面应用程序中使用。这些控件被称为小部件。

tkinter 的几何管理方法

这些方法用于跨父小部件区域组织小部件。此外,所有 tkinter 小部件都可以访问这些方法。有三种几何管理方式即 包()格()地点()T9】。所有这些方法都有不同的作用。
现在,让我们讨论一下使用 Python-tkinter 自动隐藏滚动条**的话题。
在本主题中,我们将看到如何使用 Python 中的 tkinter 创建自动隐藏滚动条。所以,首先让我们看看下面自动隐藏滚动条的含义:

自动隐藏滚动条

当一个滚动条在不需要的时候隐藏起来,也就是说,当它不需要的时候是不可见的,这种类型的滚动条被称为自动隐藏滚动条。在 Python 中自动隐藏滚动条可以与列表框文本小部件一起使用。可以借助一些几何管理方法,使用 python tkinter 来实现。
以下示例说明了使用 Python-tkinter :
自动隐藏滚动条的用法示例 1:****

# Python program to illustrate the usage of 
# autohiding scrollbars using tkinter
# Importing tkinter
from tkinter import *
# Creating class AutoScrollbar
class AutoScrollbar(Scrollbar):
    # Defining set method with all 
    # its parameter
    def set(self, low, high):
        if float(low) <= 0.0 and float(high) >= 1.0:
            # Using grid_remove
            self.tk.call("grid", "remove", self)
        else:
            self.grid()
        Scrollbar.set(self, low, high)
    # Defining pack method
    def pack(self, **kw):
        # If pack is used it throws an error
        raise (TclError,"pack cannot be used with \
        this widget")
    # Defining place method
    def place(self, **kw):
        # If place is used it throws an error
        raise (TclError, "place cannot be used  with \
        this widget")
# creating tkinter window 
root = Tk()
# Defining vertical scrollbar
verscrollbar = AutoScrollbar(root)
# Calling grid method with all its
# parameter w.r.t vertical scrollbar
verscrollbar.grid(row=0, column=1, 
                  sticky=N+S)
# Defining horizontal scrollbar
horiscrollbar = AutoScrollbar(root, 
                              orient=HORIZONTAL)
# Calling grid method with all its 
# parameter w.r.t horizontal scrollbar
horiscrollbar.grid(row=1, column=0, 
                   sticky=E+W)
# Creating scrolled canvas
canvas = Canvas(root,
                yscrollcommand=verscrollbar.set,
                xscrollcommand=horiscrollbar.set)
canvas.grid(row=0, column=0, sticky=N+S+E+W)
verscrollbar.config(command=canvas.yview)
horiscrollbar.config(command=canvas.xview)
# Making the canvas expandable
root.grid_rowconfigure(0, weight=1)
root.grid_columnconfigure(0, weight=1)
# creating canvas contents
frame = Frame(canvas)
frame.rowconfigure(1, weight=1)
frame.columnconfigure(1, weight=1)
# Defining number of rows and columns
rows = 20
for i in range(1,rows):
    for j in range(1,9):
        button = Button(frame, padx=8, pady=8, 
                        text="[%d,%d]" % (i,j))
        button.grid(row=i, column=j, sticky='news')
# Creating canvas window
canvas.create_window(0, 0, anchor=NW, window=frame)
# Calling update_idletasks method
frame.update_idletasks()
# Configuring canvas
canvas.config(scrollregion=canvas.bbox("all"))
# Calling mainloop method
root.mainloop()

输出:

[https://media.geeksforgeeks.org/wp-content/uploads/20200319193544/python-auto-hide-scrollbar.webm](https://media.geeksforgeeks.org/wp-content/uploads/20200319193544/python-auto-hide-scrollbar.webm)
推荐阅读
  • 涉及的知识点-ViewGroup的测量与布局-View的测量与布局-滑动冲突的处理-VelocityTracker滑动速率跟踪-Scroller实现弹性滑动-屏幕宽高的获取等实现步 ... [详细]
  • android listview OnItemClickListener失效原因
    最近在做listview时发现OnItemClickListener失效的问题,经过查找发现是因为button的原因。不仅listitem中存在button会影响OnItemClickListener事件的失效,还会导致单击后listview每个item的背景改变,使得item中的所有有关焦点的事件都失效。本文给出了一个范例来说明这种情况,并提供了解决方法。 ... [详细]
  • 本文介绍了在MFC下利用C++和MFC的特性动态创建窗口的方法,包括继承现有的MFC类并加以改造、插入工具栏和状态栏对象的声明等。同时还提到了窗口销毁的处理方法。本文详细介绍了实现方法并给出了相关注意事项。 ... [详细]
  • 如何在HTML中获取鼠标的当前位置
    本文介绍了在HTML中获取鼠标当前位置的三种方法,分别是相对于屏幕的位置、相对于窗口的位置以及考虑了页面滚动因素的位置。通过这些方法可以准确获取鼠标的坐标信息。 ... [详细]
  • 本文详细介绍了Android中的坐标系以及与View相关的方法。首先介绍了Android坐标系和视图坐标系的概念,并通过图示进行了解释。接着提到了View的大小可以超过手机屏幕,并且只有在手机屏幕内才能看到。最后,作者表示将在后续文章中继续探讨与View相关的内容。 ... [详细]
  • C#多线程解决界面卡死问题的完美解决方案
    当界面需要在程序运行中不断更新数据时,使用多线程可以解决界面卡死的问题。一个主线程创建界面,使用一个子线程执行程序并更新主界面,可以避免卡死现象。本文分享了一个例子,供大家参考。 ... [详细]
  • Android获取app应用程序大小的方法
    Android获取app应用程序大小的方法-Android对这种方法进行了封装,我们没有权限去调用这个方法,所以我们只能通过AIDL,然后利用Java的反射机制去调用系统级的方法。 ... [详细]
  • 第一步:PyQt4Designer设计程序界面该部分设计类同VisvalStudio内的设计,改下各部件的objectName!设计 ... [详细]
  • [翻译]PyCairo指南裁剪和masking
    裁剪和masking在PyCairo指南的这个部分,我么将讨论裁剪和masking操作。裁剪裁剪就是将图形的绘制限定在一定的区域内。这样做有一些效率的因素࿰ ... [详细]
  • 注:根据Qt小神童的视频教程改编概论:利用最新的Qt5.1.1在windows下开发的一个小的时钟程序,有指针与表盘。1.Qtforwindows开发环境最新的Qt已经集 ... [详细]
  • 【clientX,offsetX,screenX】  【scrollWidth,clientWidth,offsetWidth】的区别
    一、深刻认识clientX,offsetX,screenX概念(来源于网络):clientX设置或获取鼠标指针 ... [详细]
  • 百度地图   绘制东莞东城地图示例
    先上图:index.html ... [详细]
  • GetWindowLong函数
    今天在看一个代码里头写了GetWindowLong(hwnd,0),我当时就有点费解,靠,上网搜索函数原型说明,死活找不到第 ... [详细]
  • 本文介绍了一款名为TimeSelector的Android日期时间选择器,采用了Material Design风格,可以在Android Studio中通过gradle添加依赖来使用,也可以在Eclipse中下载源码使用。文章详细介绍了TimeSelector的构造方法和参数说明,以及如何使用回调函数来处理选取时间后的操作。同时还提供了示例代码和可选的起始时间和结束时间设置。 ... [详细]
  • java unhandled,Eclipse编辑java文件报Unhandled event loop exception错误的解
    本人Eclipse版本是”eclipse-jee-kepler-SR2-win32-x86_64“昨天因为换电脑,所以重装了一下软件,装好eclipse ... [详细]
author-avatar
挖掘机销售mv
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有