SSブログ

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','完了')

 

 

 



Linuxランキング

この広告は前回の更新から一定期間経過したブログに表示されています。更新すると自動で解除されます。