So-net無料ブログ作成

Python3 tkinter filedialog [Python]

Python3 tkinter filedialog

 




#coding:utf-8
#file dialog
#python3


import tkinter as tk
from tkinter import filedialog
root = tk.Tk()
root.withdraw()
file_path = filedialog.askopenfilename()
print(file_path)


Python3 tkinter filedialog.png

Python3 tkinter filedialog2.png

 



Python3 ディレクトリコピー コピー先に日時を追加する実験 [Python]

Python3 ディレクトリコピー コピー先に日時を追加する実験

”/home/telstar/.config/libreoffice/4” を ”/home/telstar/4_backup/4backup_16-07-01_09:13:22”

のようにコピーする。

日時を追加すると重複する事がない。

 

Libreoffice5copy_Python.png

 

事前に4_backupディレクトリを作成する


# -*- coding: utf-8 -*-
# フォルダ コピー
# shutil.copytree
#tkMessageBox メッセージボックス
#字下げ(ブロック)に注意
#Python3系

import os
import shutil
import tkinter
import tkinter.messagebox
import datetime

root = tkinter.Tk()
root.withdraw()    #←これでTkの小さいウィンドウが非表示になる。

#today=2016-07-01
todaydetail = datetime.datetime.today()
daytime=todaydetail.strftime("%y-%m-%d_%H:%M:%S")
#保存フォルダ名
myDir= "4backup_" + str(daytime)
#コピー先
url1="/home/telstar/4_backup/" + myDir

if __name__ == "__main__":



    if tkinter.messagebox.askyesno('LibreOffice 4フォルダ','LibreOffice 4フォルダをコピーしますか?'):
        tkinter.messagebox.showinfo('MESSAGE BOX','コピー開始')    # True
        shutil.copytree("/home/telstar/.config/libreoffice/4",url1)
    else:        # False
        tkinter.messagebox.showinfo('MESSAGE BOX','キャンセル')

#コピー完了メッセージ
tkinter.messagebox.showinfo('LibreOffice 4 Backup','コピー完了')

 

 

 








シェルスクリプトを書いて、ランチャーに追加して実行するようにした。

#!/bin/sh

python3 /home/telstar/NinjaIDE/4folderCopy.py


Python3 tkinter.messagebox 押されたボタンの判定 [Python]

Python3 tkinter.messagebox 押されたボタンの判定

追記
頭がBasicでオブジェクト指向?でないので、Pythonのいろいろな記事を読んでもイマイチわかりません、本買おうかな、、

tkMessageBox.FunctionName(title, message [, options])

tkinter.messageboxの種類(FunctionName)
  • showinfo()

  • showwarning()

  • showerror ()

  • askquestion()

  • askokcancel()

  • askyesno ()

  • askretrycancel ()

で、ボタンは2個表示された場合 Yes(true 1)No(False 0)



Yes,Noボタンだけ確認した、他は未確認

tkinterMSGBOX.png

「Yes」ボタンが押されたら、 tkinter.messagebox.askyesno('askyesno','はい いいえ') == 1 true
「No」ボタンが押されたら tkinter.messagebox.askyesno('askyesno','はい いいえ') == 0    false




# -*- coding: utf-8 -*-


#Python3 メッセージボックス


 


import tkinter


import tkinter.messagebox


 


root = tkinter.Tk()


root.withdraw()


 


if tkinter.messagebox.askyesno('askyesno','はい いいえ') == 1: #Yesバタンが押されたら


tkinter.messagebox.showinfo('MESSAGE BOX','はい が押されましたよ。')


else:


tkinter.messagebox.showinfo('MESSAGE BOX','いいえ が押されましたよ。')


PythonではSelect case.switch-caseのようなものは無いらしい?

追記

 



 

# -*- coding: utf-8 -*-


#Python3 メッセージボックス


 


import tkinter


import tkinter.messagebox


 


root = tkinter.Tk()


root.withdraw()


 

msg = tkinter.messagebox.askyesno('askyesno','はい いいえ')

 


if msg == 1: #true


tkinter.messagebox.showinfo('MESSAGE BOX','はい が押されましたよ。')


elif msg == 0: # False    elseif はelif


tkinter.messagebox.showinfo('MESSAGE BOX','いいえ が押されましたよ。')

 


LibreOffice Pythonマクロ メッセージボックス [Python]

LibreOffice Pythonマクロ メッセージボックス

気が付いた事
Pyton2,3 とlibreoffice Pytonは違う、つまりLIbreOffice用Python??

参照サイト  ttp://p--q.blogspot.jp/2014/04/calc22.html

libreoffice pythonmsgbox2.png

kadai2を実行するとメッセージボックスが表示される。

#calcMSG.py
#coding:utf-8  #必要ない


def kadai2():
    message("WARNINGBOX",4 , "LibreOfficePython msgbox", "メッセージ \n 1234567890-")
def message(icon="",button="", title="", msg=""):
    win = XSCRIPTCONTEXT.getDesktop().getCurrentFrame().getContainerWindow() #フレームのコンテナウィンドウを取得。
    toolkit = win.getToolkit() #ウィンドウピアオブジェクトからツールキットを取得。
    msgbox = toolkit.createMessageBox(win,icon  , button, title, msg)
    msgbox.execute()
    
    
    #msgbox = toolkit.createMessageBox(win, icon, button, title, msg)
    #                                        アイコン ボタン
    #INFOBOX(ヒントアイコン)
    #MESSAGEBOX(アイコン無し)
    #WARNINGBOX(感嘆符アイコン)
    #ERRORBOX(ストップアイコン)
    #QUERYBOX(疑問符アイコン)
    #
    # 1 (BUTTONS_OK) 1は数値
    # 2 (BUTTONS_OK_CANCEL)
    # 3 (BUTTONS_YES_NO)
    # 4 (BUTTONS_YES_NO_CANCEL)
    # 5 (BUTTONS_RETRY_CANCEL)
    # 6 (BUTTONS_ABORT_IGNORE_RETRY)

 


Python3 Tkinter が tkinter に [Python]

Python3 Tkinter が tkinter に(古い情報かも)
追記
Python3 tkinterを使用するには、python3-tkのインストールが必要
インストール方法はsynapticパッケージマネージャーでpython3-tkで検索すれば見つかる

http://stackoverflow.com/questions/673174/file-dialogs-of-tkinter-in-python-3












The package Tkinter has been renamed to tkinter in Python 3, as well as other modules related to it. Here are the name changes:
パッケージTkinterは、Python 3(それに関連した他のモジュールだけでなく)で、tkinterに名前を変えられました。名前変化は、ここにあります:



  • Tkinter → tkinter
    Tkinter→tkinter
  • tkMessageBox → tkinter.messagebox
    tkMessageBox→tkinter.messagebox
  • tkColorChooser → tkinter.colorchooser
    tkColorChooser→tkinter.colorchooser
  • tkFileDialog → tkinter.filedialog
    tkFileDialog→tkinter.filedialog
  • tkCommonDialog → tkinter.commondialog
    tkCommonDialog→tkinter.commondialog
  • tkSimpleDialog → tkinter.simpledialog
    tkSimpleDialog→tkinter.simpledialog
  • tkFont → tkinter.font
    tkFontな→tkinter.font
  • Tkdnd → tkinter.dnd
    Tkdnd→tkinter.dnd
  • ScrolledText → tkinter.scrolledtext
    ScrolledText→tkinter.scrolledtext
  • Tix → tkinter.tix
    Tix→tkinter.tix
  • ttk → tkinter.ttk
    ttk→tkinter.ttk

 

python3msgbox.png

 

# -*- coding: utf-8 -*-

# フォルダ コピー

# Python3

# shutil.copytree

# tkinter,messagebox メッセージボックス

#字下げ(ブロック)に注意

import os
import shutil

import tkinter

import tkinter.messagebox

from tkinter import * #必要

 

root = tkinter.Tk() # tk NG Tk OKS

root.withdraw() #←これでTkの小さいウィンドウが非表示になる。


#Tk().config(bg="yellow") #NG

#Tk().geometry("50x50") #NG

 


if __name__ == "__main__":


 

#4_backup フォルダが存在するときはエラー
#事前に削除する

 


if tkinter.messagebox.askyesno('LibreOffice 4フォルダ','コピーしますか?'):

    tkinter.messagebox.showinfo('MESSAGE BOX','コピー開始') # True

#4_backup が存在するか? true なら削除


     if os.path.exists("/home/telstar/4_backup"):

         shutil.rmtree("/home/telstar/4_backup") #3_backup 削除

         shutil.copytree("/home/telstar/.config/libreoffice/4","/home/telstar/4_backup")

     else:

        shutil.copytree("/home/telstar/.config/libreoffice/4","/home/telstar/4_backup")

 


 else: # False


         tkinter.messagebox.showinfo('MESSAGE BOX','キャンセル')

tkinter.messagebox.showinfo('LibreOffice 4 Backup','完了')