🎄teratailクリスマスプレゼントキャンペーン2024🎄』開催中!

\teratail特別グッズやAmazonギフトカード最大2,000円分が当たる!/

詳細はこちら
import

自身のプラットフォーム・プログラム・データセットに対して、外部ソースを取り込むプロセスをimportと呼びます。

Tkinter

Tkinterは、GUIツールキットである“Tk”をPythonから利用できるようにした標準ライブラリである。

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

Q&A

解決済

1回答

758閲覧

Python GUI set関数の反映

KKKM

総合スコア16

import

自身のプラットフォーム・プログラム・データセットに対して、外部ソースを取り込むプロセスをimportと呼びます。

Tkinter

Tkinterは、GUIツールキットである“Tk”をPythonから利用できるようにした標準ライブラリである。

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

0グッド

0クリップ

投稿2021/01/24 07:59

python でGUIアプリケーションを作成しております。
仕様はおよそいかのとおりで考えています

1フォルダ参照,参照したパスを表示
2テキストボックスに入力されたファイル名を取得
3実行でファイル名を変更

A.仕様1の参照したパスを反映させることができず困っています(set関数がうまくいかない?)。
B.ウィンドウを閉じる処理をしてもデバックが終わらずコンソールで
Ctr+Cをうち強制終了させる必要があります

その他の部分でまだ仕様を満たすために変化点を加えていくつもりです。
つきましてはA,Bについてアドバイスいただきたく存じます。

import os,sys

from tkinter import *
from tkinter import ttk
from tkinter import messagebox
from tkinter import filedialog
import shutil
import glob
import tkinter as tk
import tkinter.ttk as ttk
from tkinter.scrolledtext import ScrolledText

#ファイルネームの取得
def input_filename():
result = text.get('1.0','end -1c')
list=result.split()

#print(list) print(list)

#フォルダの指定
def reference_folder_dicision():
iDir = os.path.abspath(os.path.dirname(file))
iDirPath = filedialog.askdirectory(initialdir = iDir)
print(iDirPath)
reference_folder_entry_box.set(iDirPath)

#originalデータが保存されているフォルダへのパス
folder_path ='C:\Users\practice'

#originalデータが保存されているフォルダへのパス
original_folder_path = 'C:\Users\practice'

#originalデータが保存されているディレクトリにコピーファイル保存フォルダの作成
if not os.path.exists(folder_path +'\create_folder'):
os.mkdir(folder_path +'\create_folder')
print("フォルダを作成")

#csvファイルをコピー
l = glob.glob(original_folder_path+'*.csv')
print(l)
N = len(l)
for i in range(N):
shutil.copy2(l[i],
folder_path +'\create_folder')

l = glob.glob(folder_path+'\create_folder'+'*.csv')
r=sorted(l, key=lambda f: os.stat(f).st_mtime, reverse=True)
print(l)

#for i in range(N):

os.rename(r[i],folder_path+'\create_folder'+''+str([i])+'.csv')

#メインウィンドウ
root = tk.Tk()
root.title('rename.exe')
root.geometry("700x700")

#メインフレーム
frame = ttk.Frame(root)
frame.grid(column=0, row=0, sticky=tk.NSEW, padx=5, pady=10)

各種ウィジェットの作成

#種別ごとに記載

#APPの名称
label = ttk.Label(frame, text="rename:\n")
label.grid(row=0, column=0)

#新しいファイルネーム記載
text = ScrolledText(frame, font=("", 15))
text.grid(row=3, column=0)

#コピーしたいフォルダの選択

reference_folder_label = ttk.Label(frame, text="フォルダ参照")
reference_folder_buttom = ttk.Button(frame, text="参照", command=reference_folder_dicision)
reference_folder_entry_box = StringVar()
reference_folder_entry = ttk.Entry(frame, textvariable="aaaa", width=50)

reference_folder_label.grid(row=1, column=0)
reference_folder_buttom.grid(row=1, column=3)
reference_folder_entry.grid(row=1, column=2)

#実行時処理
button_execute = ttk.Button(frame, text="実行", command=input_filename)
button_execute.grid(row=4, column=0)

root.mainloop()

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

teamikl

2021/01/26 08:05

質問に掲載のコードのレイアウトが崩れているので、 markdown記法を用いて修正をお願いします。
KKKM

2021/01/26 12:03

ご指摘ありがとうございます。 試行錯誤しましたがうまくいきませんでした。 今後気を付けます。
guest

回答1

0

ベストアンサー

コードの実行は出来てませんが、明らかにおかしな箇所は

python

1reference_folder_entry_box = StringVar() 2reference_folder_entry = ttk.Entry(frame, textvariable="aaaa", width=50

textvariable が StringVar() の変数ではなく "aaaa" ? になってます。

投稿2021/01/26 08:04

teamikl

総合スコア8738

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

KKKM

2021/01/26 11:55

ご回答ありがとうございます。 アプリが想定通り動かず試行錯誤していたものが残っていました。 正しくは以下を入れているつもりでした。 reference_folder_entry_box そして reference_folder_entry_box とコーディングしなおした結果所望の動作を実現できました。 ”aaaa”を入れる前に確かに試したはずなのですが... なんにせよ問題解決してよかったです。 ありがとうございます。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.36%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問