我一直在用我的Python程序遇到一些麻烦。基本上,它是一个非常非常简单的文件管理器。

我一直试图让它在文件夹之间移动(用户单击一个文件夹,程序刷新显示并显示文件夹的内容)。

我遇到的问题是,我似乎无法让按钮刷新显示,然后在单击时用新文件夹和文件填充它。

这是我使用的代码,它在Linux上。

import wx

import fileBrowser

class interface(wx.Frame):

def __init__(self, parent, id):

'''(object, int) --> None

Set up wx python in a frame and displays it and contents defined in this function on the screen.'''

wx.Frame.__init__(self, parent, id, "Bronto", size = (800, 600))

panel = wx.Panel(self)

self.createPanels()

contents = fileBrowser.print_items("/")

wx.StaticText(panel, -1, "/", (50, 10))

col = 50

row = 50

for items in contents:

name = items

col, row = self.makeIcons(panel, (800, 600), name, col, row)

def makeIcons(self, panel, param, name, col, row):

'''(object, object) --> None

Place a button on the window that uses an image as its icon.'''

pic = wx.Image("folder.png", wx.BITMAP_TYPE_PNG).ConvertToBitmap()

self.button = wx.BitmapButton(panel, -1, pic, pos = (col, row))

wx.StaticText(panel, -1, name, (col + 10, row + 40))

self.Bind(wx.EVT_BUTTON, self.displayContents, self.button)

self.button.SetDefault()

if(col < 600):

return col + 90, row

else:

col = 50

return col, row + 80

def createPanels(self):

'''(object) --> None

Create and place both menu and status bars on the window.'''

status = self.CreateStatusBar()

menubar = wx.MenuBar()

File = wx.Menu()

Edit = wx.Menu()

menubar.Append(File,"File")

menubar.Append(Edit, "Edit")

new = wx.MenuItem(File, 101, '&New\tCtrl+N', 'Creates a new document')

File.AppendItem(new)

self.Bind(wx.EVT_MENU, self.NewApplication, id=101)

self.SetMenuBar(menubar)

def NewApplication(self, event):

app = wx.PySimpleApp()

frame = interface(parent = None, id =1)

frame.Show()

app.MainLoop()

def displayContents(self, event):

'''(event) --> None

Display the contents of the folder clicked on'''

#self.panel.Destroy();

#self.panel = wx.Panel(self)

self.Refresh(True)

contents = fileBrowser.print_items("/home")

col = 50

row = 50

for items in contents:

name = items

wx.Yield()

col, row = self.makeIcons(panel, (800, 600), name, col, row)

if __name__ == "__main__":

app = wx.PySimpleApp()

frame = interface(parent = None, id =1)

frame.Show()

app.MainLoop()这里是fileBrower程序(目前我只查看文件夹,但稍后会更改)

import os

import os.path

def print_items(d):

'''(str) -> NoneType

Print the list of files and directories in directory d, recursively,

prefixing each with indentation.'''

icons = []

#print out the names of files and subdirectories

for filename in os.listdir(d):

subitem = os.path.join(d, filename)

if os.path.isdir(subitem):

print filename

icons.append(filename)

return icons@pthonm:我添加了你建议的代码,但它似乎没有用新的东西更新它(它确实清除了窗口)

编辑:好吧,我几乎有它的工作。我可以通过使用self.Refresh(True)来显示内容,但只有在不使用self.panel.Destroy()方法时才能使用。所以,关于如何摆脱按钮和文本的任何建议(请参阅我添加的displayContents方法)?

编辑2:我得到它的工作。我所做的是,我将其添加到我的displayContents方法。这可能不是这样做的最好方法。

def displayContents(self, event):

'''(event) --> None

Display the contents of the folder clicked on'''

self.panel.Destroy();

self.panel = wx.Panel(self)

self.createPanels()

self.Update()

wx.StaticText(self.panel, -1, location, (50, 10))

contents = fileBrowser.print_items("/home/gum/Documents")

col = 50

row = 50

for directory,name in contents.iteritems():

col, row = self.makeIcons(self.panel, (800, 600), name, col, row)

wxpython 按钮跳notebook_按钮按下wxpython刷新窗口相关推荐

  1. Material Design【Android-Toolbar,滑动菜单,悬浮按钮,卡片布局,下拉刷新和可折叠式标题栏及案例】

    文章目录 Material Design--界面设计 1.Toolbar,标题栏 2.滑动菜单 3.悬浮按钮和可交互提示 4.卡片布局 5.下拉刷新 6.可折叠式标题栏 Material Design ...

  2. html下拉刷新原理,微信小程序 下拉刷新及上拉加载原理解析

    这篇文章主要介绍了微信小程序 下拉刷新及上拉加载实现方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 1.下拉刷新的概念及应用场景. 概念: 下拉 ...

  3. 微信小程序页面事件 - 下拉刷新与上拉触底

    一.下拉刷新 1.概念:下拉刷新是移动端的专有名词,指的是通过手指在屏幕上的下拉滑动操作,从而重新加载页面数据的行为. 2. 启用下拉刷新 启用下拉刷新有两种方式: ①全局开启下拉刷新 在 app.j ...

  4. 【微信小程序】实现下拉刷新和上拉触底加载更多数据的页面事件

    1.下拉刷新事件 1. 什么是下拉刷新 下拉刷新是移动端的专有名词,指的是通过手指在屏幕上的下拉滑动操作,从而重新加载页面数据的行为 2. 启用下拉刷新 启用下拉刷新有两种方式: ① 全局开启下拉刷新 ...

  5. 【微信小程序】-—下拉刷新、上拉触底事件详细讲解

    1.页面事件–下拉刷新事件 1.1什么是下拉刷新 下拉式移动端的专有名词,指的是通过手指子在屏幕上的下拉滑动操作,从而重新加载页面数据 2.启动下拉刷新 (1)方法一:全局开启下拉刷新 在app.js ...

  6. asp登录页面跳转到注册页面_Java 添加页面跳转按钮到PDF文档

    概述 当我们在查阅含有大量页面的PDF时,可通过在页面上添加跳转按钮来实现页面转换,以达到节约时间,提高效率的目的.本文将通过Java程序来演示如何给PDF文档添加页面跳转按钮.通常来说跳转可分为两种 ...

  7. datatables 添加时间按钮_Java 添加页面跳转按钮到PDF文档

    概述 当我们在查阅含有大量页面的PDF时,可通过在页面上添加跳转按钮来实现页面转换,以达到节约时间,提高效率的目的.本文将通过Java程序来演示如何给PDF文档添加页面跳转按钮.通常来说跳转可分为两种 ...

  8. Android studio实现多个按钮跳转多个页面

    Android studio实现多个按钮跳转多个页面 Android studio通过多个按钮实现多个页面的跳转 要求下一个页面有音频.图片.单选按钮(RadioGroup)和复选框(CheckBox ...

  9. vue h5网页点击按钮 -- 跳到微信小程序 wx-open-launch-weapp;onMenuShareAppMessage 分享图片不显示,且方法已废弃

    h5网页点击按钮,唤醒微信小程序是否可以做? 可以!!,就是有点限制. 通过wx-open-launch-weapp就可以实现,但是限制 微信服务号才可以使用.也就是说必须是微信环境下. 文章最下边, ...

最新文章

  1. Android Studio自定义模板代码
  2. Android点击事件之多点触摸与手势识别
  3. 逻辑智力题【更新中】
  4. 2mysql_2.Mysql常用命令行大全
  5. 【Python】Python中对目录路径的要求
  6. 160 - 51 DueList.6
  7. 公网访问阿里云数据库MongoDB——填坑笔记
  8. Ansible-playbook 学习
  9. 高性能的MySQL(5)索引策略一聚簇索引
  10. 谷歌浏览器js报错:Uncaught (in promise) DOMException
  11. c语言程序结课编程报告,C语言程序分析报告课程标准.doc
  12. java IEnumerator_获取实现接口的所有类型
  13. BZOJ3639 Query on a tree VII
  14. 数值运算pythonmopn_python – 计算每列的Pandas DataFrame的自相关性
  15. STATUS of v$archive_dest的一些情况
  16. bzoj4399 魔法少女LJJ
  17. 软件系统产品线特征及构建过程
  18. OkHttp3——连接池
  19. 2017百度前端技术学院习题-05
  20. 个人喜欢的歌曲——女生篇

热门文章

  1. 在 SAP Business Application Studio 里访问 SAP HANA Cloud 实例
  2. Angular 项目 tsconfig.json 里定义的 out-tsc 还有作用吗?
  3. SAP Spartacus organization unit list抬头显示所有unit的标题实现
  4. 在jasmine beforeEach里修改UI元素的一个side effect
  5. 记一次SAP开发工程师给微软Azure报incident的体验
  6. Note Navigation incident local change
  7. SAP CRM代码对数据库表COMM_PRODUCT的读写访问情况明细统计
  8. ODataModel.submitBatch by default Asynchronous
  9. SAP Leonardo机器学习如何获取模型存储的实际地址
  10. Equipment download - No data contained in BDoc